PREME/G/MU942031

0143329278191318540034473089992681319695300000154960388349365492270018385301436045067048135494723707106861109682915489004653449436317341403124310381844146817332928779218021396024860390806901347918928834370662830181447463495702189137861918669803529848299170515462107486251891697486555250890772635749925653644187598677309331233350831693135634742090288556189805665752581055348161180511703843164677413342399172524458748297779153322253759500836325826396290511374201909290756336179737497252286987700928000495982598540150334539252050330498901435239579109381602980610311194902067285898541383674174743370632473787268405047919360916389058387849178077334378263233223463811719749062727708442597237411056322193319705175702959587373538673086608762512604385822577728392199156811230781927908800618703906736884342740975107742838554103059402591596648326463227430286039280815371140268818839851700978886508011837623280808913947969545383649834699282409519204748907125368244454960961294138259869364838058931931729206038979456093149525652868322414257442282757403825325973311432774698062311642709304092536923844045950334217900665005120199616777380807311904840542117658617361354970451712399682254975309372570727765916040452768615698440262244539506678785404177604610910200504222979238864542560710682684096796883087423916654193514237249031188552798960532176817835840831410676763543623717054043563341892285573528157593066684413886858644346215757006819477711555178668971283477155083516964269124881607232829797536607162264562352463118021437527365539971615386811632153131713570233474402588282638373278609534376485037709991866375718421812286837570914788543927239477308204731067332183172507395899202586940087041975567679429611404267800087081138263330091448134562318899667181647698956795952239885623641322426734153197300436888792012648885639768214955640054596046617550736053854622904248282936716397232326683091224238903869225586186504113401336848145342491174094591981718016754696381221683602680381490810205196233608251305470903388813248621239692201563258689608223158053074086546827891111943810398124968695635075970113579064102791963514263454235396416239823072827552817084372399681598979426789909846458876705679551030027082420563389095952692937037937205695676430583293569699473788199739025369002346623406310522378996173834352559359020647638349290903956774122547497694380351457330506984536091226156340203119252205132204361947107600322879677423332988637834524933224444308890911557674184896414246411743417683808226898229425176683332944772128492664499560997952316140433578188497072624513956382841186504929269055600985908741528788650339613500653790675005829356155431473313178352100425756798183268944047307103961178446689418103964974579998238427846353140849735226792368851820494608855724219906645049746178703974003257689936056048045539420256883984329162699335671732650147749588770779445779912317537778120198921282903680017435808960553670745222603819901571852055413005560473838279834039973329132409252600065457387971032398925262911104792669106393785080881153388669975774628770958440348188750596197934434408428071264109262823587543939199276832999872961820360022390310272883944309773131188452604736509403302390360684010656045999233391400781445643969012335078826980730345525727548385362829917761072176316022059065503073957242399128551157632979190982234176240627642879990864691588085496610800928974818000882728834957634240822989211482630085435793292648697701979277577225625097607088647513042473776436272123194023039985471018344324858451795359607208995278879908085877150497646690302442118724583447086102084367894946181489502309128420248591851993902183953751080135197243205489188192701139905979911480772762447709830054682548043170912727274877748232341866267384267159762467429920514606063649333298630510799102423779401671143116807553542977748204700422501681164120651045078077816128391345101060404317649290948710024308901493618013783613780750121538364378002337075896748007764451655942922679272842055839530949026831616453136074745547703549076378813014141806751675625874215718479457745084438870569161248030545079383568898775767212432065311703571270436275895695861744154186756665273860159618764701318795939702520461260776244158641314606026074099961415227261354833822070139532295382619258264233265165424985275928379209431422319132596869357753735944705779507387733671415058444383697763535842858566294107862373014250273811804102293773704388761895572996831809216137243477868926063986748086167747716103288677254227491069418070239507803250421406671197109326862546471293655384862087230671789854856481552144074579256716914191839270539579257448842443160176384611144353896097913135098257287920481944816687708285762252433070443605844272329043105455583454292620818511664472919222318071511985387182136484690245282706580919472089847330025302996395088585726039253946680941042295728732109186180397092974426387054375603658147497143979213456902071067376903293133923596128213993999183805196536030947434536470427664162810425321477581714332125959412080148286461961683178605562389826330971742310739989063155819997509014918430362484564106183185527075579255167252130345337507485629285933823292152125024166292564550887827762459372924554009701459155687715361900386955686147050058217678746850832821520950830660976792348068804667583660629122752350449379821023126202172417678285709721927017869547817704051609139902350120268701393420012548208172102320628153176187472278924518714159552874444839254353239831762461218268842673928981904096772465187675329873925148249334288155250927944125487684281343343676844169272852017943852443428548118960991256393511575392770191737549451836889986551064532756102941981167594249908771562496347975697826272364563140893096379006725107378638927681292791464416139559860182950021368108269938143220143496618215297268663810411525286650265958551215469575362085338835742196182645540546633416303378876649664223116067992041550520194731844905729513095792105902939704695306272307709215165663387698510755151588985984945624061124883505444623359003433051532928757093782218333867482991496007026244991684645395713749076563002776878510919979169296298150990462848482699423161686471214366466280481698376841966735475063950927409444536836553610380471014939147593393458313042493385534735317620855095613677147596783096864704981012688708259780407732778792671828637148450226786448456621902535833181383105647635505977199972180944475871143810229197887275873077684734486390117255310973691382079657075919169634442361722155352780232797416974037155624939985477258222388092244657628466711348583954916976064973741422730110763726560069422124757613532938326336086048510870349278087199551695017884109815001825633777699772575137910179109565324095472499812882215408604632530203095746499967023310674738744958919105315421220446073293524471806293496051901431577612015150885106059921537959863529026527306482045698956639337654027483868086412065997535970681869722927524648830392426949600741598299717845169810140183962377243699468174358032104870310399581875831585998048821353182527786439811358763347306596062878831108096439165153980904685009418204141645651497526683317377416196226294891934541527058199241264693097330979537055957594152411922932959310213543151346177373903643119283387375071006229247021061200593383883868729320494422807278101580072048910081430002397254179240715724384045697265386112378552172120889226446525315496080242356308889280152368622951663901482884167876860527996918323318901119696360678917165172399611822383849456634820914790537330415793403839773957063119110922832152678193341582663065941455798861201958198644418966719832155527441540791319653656793243240707323275137718671130247203711381954906668104583196792734301548211047060912229672399744443729840055432024357843248368635488830510770472335172974814145006976785617549414607274039753766641316240599264065415298697845855556769652607322269268300814835987012740927031235208891327816550404871204494147106924359545428134098558129229390164163902932440067751719812237945364430303431472469563588659931175070969497999982874711081140197719619425670754292097689075790798942637216213486884485345480395739221895268817216992350823195434001620021864995153441871685732622612558865755782886125431125141805242738373401403734623149720386188995631267585997789886393784424713387776691685518789939575834602244528266589854078943748033561478312033075905393325494302186970939350526651847719445566401959985035389229440003712541690422291320351550585778459238533596376370845622947034066348879157241634975942337398180364153730944815685079448953444629071469420341882384006053482310653454680244695045234606873751338913126095504409717122181103461791599036672059609301983008169498293294687607941343246071894900329808898599517536634613884819607241916438829292999572898130763520291550987918195430230877875526914581039155800963335564349002828169369986371898533373436877021719809294632372019059658991031709768485772966736283758977248423631906621762623926047972216048530700848479880569697395831639800626174767284013009396790990141820968580494859393153399304971868170141713004090680080224457475576512181813575489994892122812708127753304661937274706829197803099943873278159320825056570117491784432613968045788082393970245779868163121151271148306744825096626924553643407233519679192622656082963299415348257949929780397390979550866780742226993604264624616579571007152081950235384651734880014128239740598024746843230946388507940917135590640462945609984098928859107627191208693039349987228900056546406847836868894324434194869085142784801112322460649930897490702771984261549370559753208126868800529856281569306428320951650338220778011169366989678874849014452443443336070748062043851455883174968740078147934059014756448016781219042436744499793223489292091573774959222373349464045497738641960222228774008179348107290129072632565135701071749298732436575967092267527444892280729462556767247143643270648389721695043409262627597014048793237698833330443098653966626381351583400852161893748725824317219372472688940337577005083740267428741731065287859104023308492987655288108607581090097778956615175089695602105501093412189471552778747366989704444465745458789126516117956008789372940719810314805157845543301768115207447998158862118872017373806010535893362985953173382253043364066472893776550131812324371218272233164907329948840275405061296024305726552249944296080672332402722992141427403771764246686776431945886379909421426239947477440101365390768197462126492489340685048829849639211075432798623895846891229690061295526197344914771512510750660410589741873324945482629872168802762187214850757499263080164542977449173234113062748612447331531294529876960881016599718072648399645082096118978750164890033660413912628507796820508798912749036205717162184788678680115651338900980194890349445284737389563017189284330817914725452571029483010825105847829240234036035719950336479565662212653698445523093918787347255110083067384559482979421636821115659107688898946186683442857746323484200268429434559912674471833054535143541957356298349651048696577677269867460309905838994712517505817450288142441366069895468955803489851306107104047115589390417536072930973219720044109231725999710068432050724788342449221760698578753835757656254185443229299779051830799582276023245470132534321378965806398732583193138899046597547424480342874233953486732784502731615897817158716544845431235342325072692575176073667852919976092733966731252194300222013180174774650256646899037615116274771978128074529670687451677415705825601566673050543137549402930926439394030202814115328507235355667946503127909252936200038920254900280703874769302336959240955313378011701290189187872758172181069300330767287135124861686152907530573527557911783871568832773502436769362342726954486958656590427067676505752551598477844582662813995489410330178131783318948266989767596079274331056971798859951240586807713488379836358874854612766837394606999775254060959325927767122796057163922213518298291326869744674004875658410278271289220345476880423662958339625677112012136789886943869392053269247612670625820648831345380629240190300595334419410193126827767911019226134963818749229376550788113324027724012727010885109291910492585850685571930228199202947730966411468772612167298991926945003566114531000339287549333578713179208150593439736451201411693563125476884163278719839733025028768871039867145198158062708967615510813127557963984697418978628861726299459131621154615910825763697224726408948759234960014706898539961977750399413640742683041720073448922911533494789845749170049336223368403298100820034388981195751655866982631988749488998735686821627243522524670103552032236684629288706008290332069843121960636531926717444178698747501448882233073605131135553651959413348588622882381418931142374418453484299027144815469566300352278739987009678100484235456015204550334320121970979002659897022668758606813668593211097677594415916107096177663905443457711232371869124103332878325629101346001189276246870228109320219044245787466334802498063432357698827660179242229977051360540670406847365042116536251401377624346640372327468965680658808928662431673721269953454308295261999421345109900388274270620161547117041704569252190497397560050675619755768855930319533603625198183920220049779402281967993271834943796074293587086349471985683328924324520178060553163643463412718797459151221236287335917685603958283266727276657528384476398545641596928828918389016961578033238905126021215824101799420371374990364906040964880880969756143568272681717353613099854419298983157663792179635814624077041482860648522768936524461946363338423413191105509098793614180668021259814890976631996252765417373292622631220335343607454270008387985033427139432804212921264237782262349862463565028441227992530555847050312089583069186925583052308037310884963000257945178731677885330851254764800600258003030080922457347357805050909339422123925559299845488062769094285253000829518062851767400979744437649622663424888008070557800825594688714669735582104302663843155190235904294178830398479279647309351742145382306560992460400879548304542990137792728795140969955296470354523032439971622318447023221424618263066180503395342728072472228436886999526128427184426059709381312431116028438061021454826770000234106720443963780655450336322732374404531024675848029831073921755263657136156455158947551465064620857784266959738960590786684288404935161230310141677480491255340555498950780344974596863156106166527258737007690346560329106375532120346353115409067695140760835116487032327974820604444959911245934136567206453412423918678831693937108495543463330581975409869994573704183510604259079183412471713226229047598720184162797429129700072081947647430380934605345936913640894331775795203626580188496258890818684237435181018912140628872664259634721408474783327791315981572997701491461055799585082245328608049342388973096691322571878541599084118545491647587498390299664302742402668788887609790821085898042109496363697579245258150761261543535358801574439863605708500008983921629687225941562970104051086223560867600223032325738450997633994564307671324003693634741285661505663848658703621667059479774277435408589125320010087561621004270148694700148717815678616107982593110966807918126955348218208173253514693629983553132096421654265029715107058428958941813660987583969541066924885242507035377264532988222710933906829342268845010808116506169422114097593341647637181675557806576632836512195755717507264085994949847532647368503288447842068219439033913826073759469724504222091232941869142774399434663829701175775692435500115896231317318075456575360752164192206104736453453560003500293822008872436881967117290326028846089845461944407914840826838869030122076500678715292280770708119653291601244266945956780152431903930766300590339234988565240174526472060183902847286906461903763691408498438778784637114534851642526376166929078304592231683282173719453649385568090767394359193194236119110862830482939079261945441852438283674271913316565868837553366527669512048781268137979884461887110826551364772883387351397476763793895183083989845746443254863648438536702088328714320356332166746822298064316531902904382842573952700903073092640337446765083682004975849036084053939265322595833411454722657666879633381755886192953620541566561399426457332258077376592132458199678497167621386738247325761632117641004069609646632304062548553673802942134010286867477707567935045682509727833311167922999681781166026393701789375438763210611285256376695320142745936009819545177603247333093794884057323203639384792889311269246039143209886354636056525596626047757942230511139039405674150462065768111006692404150832803664887150654088606850662541041449732116256381706051576728583213534480216717164043086240679939878631105047303587918057858039643679074513591665763231475209348757962776950087478196692417149316956012979893860337918089728129989047268570901377076062572697969221019841597052139290651148314148774043474265465542396457671185382825221253897798089131990690306656441958700237522047729294268865768842687234317361383745476200254964152097215247093201874949528897271964337947249244252809169421664850558570252693680925428567195657775242188164396181751623149078576430015562715392325587416064115717735644365839287750223753090266216151829848544847815691081093439206332219293792061883452087028770079975021493754219285424648689139008948875137066415515222526090457743170184461577414583280544045977364728578835127030190369414909593330841579058437562464863630355841753376962460134178327474876847553375172335703153237716240878394772308516601312259953703197241729936325583241775602011150080619501052574235615533349755018710499795305199696408913463744189113877718481047101425600036001697336680824169163655198444445562742315052282161084624663969127685872733051521071208642535133042279446376255241261878476480648123576323530927162263252492447747509300624000554391926759241782407881111153055374493795230789825463981149024797261168791600775156265610712346756949705864984501206144431012587779427827395062350409942391561823354982496783129199799517427410368801144147823951989297071847841859334186828042728045373977287659070065576679975901676726012804904328617043052286990102410152021355680976557894031067265399722847596036825566459441051858651100272176225107067097706788574952912390798753656250419256092367420427290581599857424855959577282580035229826196239023793803575010353630518069208194515457304333223733049947506284459940964130394495759867634733047174600256735493248059682103305496430360286400322772619277470925085613888149391419783442688065629466751341747947433115314831874209187278385721481194826072888484017176775521784400006953819905088490703842716856145512802408102490242433140205625651181900299668687717866254405281069285008580847112989649148428135783283807071042163908540945893173687147253513504835786589895582814145372694534407112043831715263620589261539285899155990266438018520750043503627982241400155601341632521801656275072482315146414585722810800644139617491749363972869773208004764249998186961225229486908779205667692634762924593819491997174756081452503266875342585256230494141683724094974646952025956107658279643333795432740239649341449615731126931997188434533945466383330932048092555055815684855459075651441104733792227228067166073885658387475908875004043963574160547301070565242470264387652382411338087884172555246503146991624902420511395282222733510193996115198278986050199948301986323874476600574944125931722308664997865324151703911073951720814300453409450366039469464716667851082969942922055270971356770391760616739067184576042338835430701682245321240594408917126607357935652548917747216488985744325046008876122843667417204166660575585837143966880285570055222462265757540300034740998154248352935162401386092099087227960919726452528352889676665420916234834598020636017568909692806548085815970614301616070523278943600707828259332083809861732255394229907586324504285534152867743058577412842863913210595211986616821348554479697810962635208560655140980704544373768439379680194929535504177277168331184045558331410978299233709734774263679478789916474548906062679201588748093455881392759068470467026241865076597518437505386432963075002637379721030588628785120443574441512199541208528793003000053587063729466654305515660196889020741023468609118058610551781597191977808821831290899039318464187463210129521507709731537481209697487837565672793913465269571627539776205167601547270155095058343700209283844922069327389994030820154645570806122589633652722224989553295957843819312620977373177901287957941940290936451330802302217432536428314947544834154975627716874559159517147740775284033717049058297472757242255436372374386739577562298043379557090956139269156900059085614142961155134045221056190416459077979146192376411992709233045512155150075227081281472232618826705690372467497396344345225002906381736465863495875057024025027711668823252433081348059494893694336123279565764436611929831393623938214638986537085161948315754167511042659951874293821007388542835700415971017150154118442072948840380943978405211778181940306879479233462297557407005548780828407071232292415128245624432538099968371476156037066810819158925052871595262288765481742400119047341711571116641060648872375449639080893015007842584727611327600963127045076938104524138433510695631265023432968477869319494343217245426985289373782695473907459469564500693715820845767743458868029181879640501803268648269051022047172729899298051392620100687801868056660208994415001743257930530877044336255033045997918978010000140381301503335595474289143926731132051937151057809412862169586641540310569171857106422186633597251224666017345237521450551938447641610195967165732933152065191652905282027559009221626023579766763493265558786925008086214906747616500671281722912723908202076406683028939075947077624734534856044902438038597112240648214435276387054679546388079461204882765151732774971893977567076001179545422134987647404318147776350073137808133223061151393545356731543005126838540715569468596431557732057278973607947806350744326608959715063461826042001562257477850029991244968290028518578744747078018497423512659186620737500786503048512465436956591694640632758689718060006776001369079332534571919282998491698022841419640759325565748373343436144996246558545460094422085293613390853254059961540925572968850990744774569720425174582275127918774283589761673205107061033668374363154613465409202144159896081652801220192821404652038479845764382243071074911816079382887902821958584744111807185317820201152486688934802742642402987751750065378043946706544223435483053903223558981661814291480768852788515671109099175997894573177375843866997148515215688212050104415972722755407507332729170034452764566689763429163637478984167175886862947599284381804496850920679409236889358303706565004552299674582848854302869746957033411930238534746902593552067367268436978294850210176652808641835575390339036521025016952941963411244976651238218721986071997724607695187237262272631007851149901397970126163376843068105069072673666259581751453526743440786576438296157373985228065503157378009901477552866390554287367790201000031117529285782748998630199663910450448779248774357782412395439306596630231302724799265598636524280326930706454603796596358858477812466933965919699075465461049468971985429392868754617952684638903622994294291002131871480696233351458380827433856044545471694096642152275465576985980435077355568697783843228814317664683016386255758550922613373358817815539475127145094010384522193809665447481300680212587203874470244241456210165164198856337370029907313688373584656161151491984761863333307812001410794292973276251592988362089578704167798422577036585262222366237974031731354737390451991837533333318160150339250977785068632509556912386441628997948511183536073584372961296377037645728281227400415243315747878731430931443122851347610217915255363989528802914677080941281410710344703165781296390387522842205937965988605061570487229888105690284855184484503138821654919949592361047146525059571666370404821774733658865148092096529273056702720991916640855004752078284467952090615550327629979689013383053526306573959754011961128726352356653946567577246308133092198616898862466438816824683205865754076188110870753197822721980183257440601696517297022267444717249816376803370760037131269125141558117948604866501972756844061676362280809735359476452079183032997536253344319599661974075114487530650194070996896491835335162555864404076901356935117536587857607045078380286144114626332812634183248422796081192640699572940025374029795531959051472875364230426748293538368781619241486767271728315527279657805018160795377989558472678254705919087548555621089894814731026036097923314932705799660031128416145965208552944880586527432197044464862684822476170723252523789070564928690516068728325599995119763653735613505229912209624637148874154028121502708730460852146751453351732501442441713193019312864870306513752187559477557705727103102683672006197022370222210571350956500567964940657669483086963298336957770853876362582017988101200570461053625466781064237817197118225744106821210444555684680446452203690565455164277914107031578407683123442531193167770439595491745211494288717270722982564945131866271057054309548722376334561437769641676294332192079369083727391453970533349604302051411678593172934693066886470913362339911022585770113752798732386010074621532293478102392764277388185591372739372552595631158774697076449393100686619796527077315922943499285504773619044557691725235811948776203181272141663286812646901967317188775326133705827107607723958625293532819947365151425586062587501452608783894766896493211772012870186560648278171373470861369273449995370734642667399712630900121619134471262005473484333997531294779897330840524737874613821033027048863498129786274285452067470383167613513928723438457428538092937061414809705976109598731925280674629102995672907887814950435240266496801847174108607590336411173334523030693363981670801155038880299912400160529266659644517699428034077065929421052383948929851265632324843781009703704477852026873572005764270546225748930838830963340607615700323965668649107320906090421734119420846887733096113122101947545415764323305975256541339052363173857726595089245382763542773582762792749481034358043369329897330337944790432278918118064037906442637540594298404755546848792973989826246636224966845061868832230694050601135309533639225977307955397148399116969616417726780944275828824792803342808414899577228958169911305413537922207367794669538073103598620957965742960551749695005486589971748130522945162048790290540017193628217528791479286700224037206557307927025518485791925220779204674371886238947527284935850424550582898423387117955902719406542315393932378385592867774184423640468398219691808461374205369316310135068898570186887286726269660275496033553659303956165173603825177269801920992912538630490510702264825155744930085546032237469968263899998638390192312378570909287777078532101928645140659674789973314548122864912281742082431522361759669692246180256671037717744123933386881792661230841795158100159464740999088705911181427727285430502984083381146100315208021698076409680196574979337761002367794592683695648193897222163690875458194794282814560544784231186096884188882614246777497057184149767199931287589879386700685903144919785391199388756210834644920050333293467179625005657166519871189749306566315217496984390127981463113756416457653637965037980993959936266658820756740810470243205523332493595939584168592722491534354845031738005590750711309810156527147622244580531689296947234988683868582955235484990378743776488666750563954404215582007179666034010844386479748204916922109526945771925537130463179410025031291802032912790401317092230029895183836945822877457223020859141950000288253450964729854668410506924820070042288076080800595942447058241012451560135086032097420231660209507844831184330669157542390181397376307644827734057978039259592902651855943110472814839369165897821709297342268373014466358469472249099490090546667281619234466973922062020349998358341351237314927434939042593468549967874255521430587849260018471866365925906765273478195672914867841971625738852554456854301546693199994900996055057135469093242956373575291279197133021131113585631705169187560417550560237396935938324451397158042491007862638463656355316067032837998753537479095467099923495415634607380240175760123262926741042483623764289102680391940290966900376928222375204051616532250325223014593083152709660104063155264733674895180556811136759327254238673567914228470951518948066367330926184509854444126520426877939181717551284156735594232947187811257728641141783890538890489352270428074181206295567889547373479853294887566538397688073836168848707157839142536135518487494769245923131262770927635211643360630064134145441708004590735723367806082622563858698872340426893781606502847476074827873989033938653520295313761502173526138546160367139325212798311201583926951796291136941180959123052835876702477588392731153227289708880302641050081237823012353014581822386095709524245248141943769672211959073526472309308606463937864129764251556563925616260252881163908473577080986670337445345162662472828377901455551083458203910826323248413215920764174200192614450396109042626651343329977342399487721937467916431335011649383277059637522636567417442156357641133042153662700455658041808916369385389409429959617492454610320796172851140246214811479791588825100691011746608485181565435320144749168531101099436724658058926793132200772417524201320405229134140663150696975149565257049071381691179038587739371010087417468647612174145056111431279311812320852392164639735461789694281171055669231660537893144107807604187466952010108916425216995193849840283384179214194056638674397576824782270342530274840878787460589397301480052531251800995147990179673750207622431712771089542739931217429651504847041151707229171356691642268522992833577252213175318810888950891527114274607847212152171687407770086896407858353402448112858504494088275688610768191807450104101606622482650470100725430644769322021819257069257143054103516783898545885431333670529451657264658944624633511128295826660951184861172346323845617705777183967095946060967339215162589681384092487171413731973264341448289100254153632784276339142491751745561191495382772314031161633237714092516025688714215204726678405433164130591224213988296198125309854876246712543440843389545014003986318617440476361117740388992778900496327141577049407611503414369308355101330790768539609293038312242485802239759420398992048685861618621459330314672365670224898227114994996963250628277460522685105482603150345157266478553569340900128629442436099818766487409015083702176911968554086157682780035708190669177893811035679659279071760893635811270887517286246876576532141649144408017062478337475080166980464341502149644767129037907956999368118647201157089900944677568051968181612077572338907105861546766915079246297240553033601499282403778286198736400311076733732445253631578058096590706222947197763712516980448867960103937813505067747521854601128506757622614716680476988546133372422654246444115149242995234163836471043985172950011511817407636242269061153184105689144092247259398557054838255958971484436382819275017961379346827749690701197762168717420384714806177779609428780901313353392704269888512872766734485163323487379142042671439746048942632825088911593211671318774700490007574361946347564075154476715026795448316054455717424907836198526576795961287571835207299430108805173643143638604147503864564690627458199933702627399081373032030033569940261569038933842489885797318608677444965172439873786839136625678506693554873772912679317546037096664872188314296321206673377517477939546150438647096951789569203190456999430194841102974526228055615835286805112808469993115375999539710891955412817889608354581766910017052694966635227840137987812763881065896186116454079253538193840911463283136089715982910557128106555491057426685428278169235211334920914080634158741187980119924732352287207839099470974560514777669172218641839995973596990156394803656130672055466062647084995966156932979451274185957292056908109925637027870581595594718807899963619342880462046945093535311949138984897761453238853133665917346819160416079806265166260191386600210355608682174323166640064697692880961575950547007309666992425899218011188031404636313923273029265888426992413760280256867980861269285973751583941502012748856949291796258235386706271082313660708621062798212448354253703653808927374187253663803716627905637529860861909507520649352101643240000027306816815507731447217226415630804885580709373354622113932107355092868797466421217808833143872994487014439420468414290804541359290000795619904227457337831173332952251771149984772739440417843680052812841985074912037614295016763072775106058408554667282902775718429144112960124917209172586249121641484702008085752632984852455548782931313059888926159790572036769325628309433701890620734524472949300186335668800041977144570855033423094440265724272763405711623282084371036600651248148981895345977751469549323660500469940351895351856309584705371461001578052906002448262142769953146065830198697042003376391547579016310314195172973470851873184760212396653099783785817645913368864699145217891169328828221465597226756968260292944022690859253882064192221459482643864736764843484859305408807004547369852933515291705844014636838772225062927174242815562686836834888961785270236898592311431504816256433838887115749326171513894705082816855443167396604725440237732993409862022742033565820567756812503388964906284659137739085123668633248393900407388082240426341527054168952745471159454976167796529132936435734559068296524003068291830586677755791771743311660733336601591448074157078947290371158841695642192387928411692507659810527425491354755753366548850142593078225598527225347718592265296008693984083404817860068836249736428097300750708636034516017123328798364818986577520976919370047554612342170161029855034732519483911552451402415893848800937860840861326590028739146521060604133423589194697651256788753177428992441389946585348389986891867542684408106547839821755411519564509032902259133032942053602533961500343903977665177361626876529281530809108071827683211859816299136607091349457989636367251858547618779308397571523791284085700774243228255542848287839402947823761758313990965701724408250333689062761090369965924056103693320228811730722751231445253848110618182939749124657844351773369348876154342726976431754240333899063000324480904871174530584442792546611989623374623739857360891779433083316108289133291717393685875358299403309219943404539435606388810320931667254016246603727180793497712849103112866491679741000850944748626984410842655544167721342602130475654871773560635194987769854891583656222219912025480246288125411187874070869097949683316196071937972466442751525482667345721949090475004862822101546906100906323176826126377042614823473499915634417522371246088583811548745019075065793260109440389803431320990544493819719264916633557483597243893400391621427633564856583386997591498350656265148518442370166429689693400709190444334894521022757955274401833041555508885931396792717542714191769330736024442078023757421722379930534549659391772628019170936437194344759943381321840765166558742872858826914487148197952470445181962031831147144674995315396267641042843350354787685467399297902924016985313858379488610518560925813158171597800572944729334876957847276776328244584926092747685078513131897707342935895776606633690697113120388245702754459874021795557799484163916710312130226388900997098228983847039133878675017854030173567101760150871459340922092154794499339669156547379829385550281840692403543937758922957734197764195321942639616958893300280508339271054148413516541954790629491587345709060199606430859110690671488127422169769463380536696946123154356377511030087529814245528881786625103642945661309844162300486215271936102528076051164255092092811493184434344452215069207122687688719701968469052595456271230734351264295827883564333811434710593403081068208737399851587295897655147666622743571020323387047911024924778099853654836648867606019500520195463552922275335277128205023878810123534096733126422245924957258021906106235598030703668770467989523599550046883840026290152620479558825185305539704720704661305409774833566660088174511224234962439466074410027227196033824251318495150012070803254449046904071663641419571919741486629824926058676158038562468121500277753301309482466179622936509455390802002075443299199824389059984118250156579122681256761499328292171947731165789010074116228898777528677190158027192526750829314432094468068311724847318760355771744959366393718913005159249828311446675192651934500487689297349635154233965137589755055001871437197524034522863476676624656417074280808461150602888097357018138860356079143391298171239918817378679684628524901411822025135508675965571943889725415538328213188687555359839850826820748306755305071896473112377496979653340093393992928214703122617261054584659887183157479469279977685779540902357322466990715217144336645842677869605429864917486425099280476030395106668465675023011645011451145685785897860561984146767944868283909395566882704846539899861829610243843995955569647597021299902062520916779309914789679235012421049640641537923860817807675588538794373054525864431886732632834658963235697852112350830404656435022319212341583826655408844423627111790382548209043022268561830397890071697874656603935219738327109458717135891169013505395547371067461518477328234213634520842559306183180430866286876816402659354851765923236285156404429995053663313787189240824401957083598350990659469849845059164568439384001219518855892078617310814697202649274184372860898881433237536698662662149386514993045650935737276335155864440590490219973232002778727643370188243667989066913262413172629581749812140389054847373357047862937820938675488186722934303790344904079849652469301890376188207415306754034936750389520763818917677691619683823243195318909912412109814202039831976770117319960000188924207666961428555369468340172887703234671408417795057581370494284307524645793741784906451386645533880955086110383932614685788977851011410283258509874171207467141882959773813262018697629507268188632921026016781745794438681822664772505556801385057914325993028855185738555323270796506668606871565190813557188144137900108997585223914774120817957523390580402509217474337642955024393926812743231474514247295583947962010299046219679468089644479448273967312520684591311405888004093694691843670497504235624321631886820912592312492119844561122415988044614457632329905153209636118396818734711781391045608851163119051719277041279655147246111768543537663853629515613653438504362447995312847988667949804168908546473234986133640574010158423899497818652943907011438777468983588480062388373086452243754269361833392844998227971565090940095369160339694040096724242404824632615571184910279674601742115793144074137827673706308894097410957396758315910871527542626179254345406468173280402003870151205143882144737599134205906728847721634943369923263522334744264756358441994692691238139933255069105541681778432211490587134653683711517214545909232313447262869765698287610707798535288187061166755867702793553983586171064374465137925924595628139771632854761773110962720412994302485865206331058022718191931707285249075678319861615884050563954674776859855449523434936456237278144566795992795120934563751775424573822226015609785656408641625463774381221159162965391608994790512944415813177586631329175890992199628943373446519501530408821766628170163907372974924388205510285566778961651830882688123739980389243696450433571032994225099533319817853905848492998686283368149121286700453899691982442444953951961364839170070021370398305961778051238615119578223576032196263725454445632965347667653444366586439634065739570610240055770103751825557022478682535160874774870696893380300977578327101918749011627779430341606844335235818333376832914534957206984385679799333618883186587230880883648777211796630998416675314253945352443035203630685281223073572834409667465865167291181492059188611569658701863877370105318082775494721684386868039961169641937729271568870397066188122797312411986106553367578305095816560014255162056314443381658032720260106629554616676176147832616385889349570440481534454957479292891278428953215465954213664281680985719027793180730433073035490501012655333667365318541677658620148524841147382693475159063958190930237285970964608641923514691091381998488612326187328796054019870053909345099664952139728291597079016854578639939671938967343624878079313827290398596869680610865247681950886728381218168687583721508004575173844520229286269988524870851476222376324274445933465898331807225359440297218202514361776336637977777318174563573095143623284763725659180974040198883599836768213781849355286076831920379919577156547924144428945733269414619861249634919075040938235911983000193697669432571789634938987410568842712104147471055088885252812046824551967804207969306202358848010914972525111394543363300606734953964450309429923233436756140712395233670658266783728231294118854870356632091285922509162709203032447139398800057375615408842455551470378327840960901710222082729036167293358573757202141005352878300534619743113296856912182241046473403297443427070715885458014754544112605307366583507657592364066196901101522407943132223060212286379918330024328494199003050495197280042568018290723680919610493994304103277374346460174899925722023713436378805945687134704905200060134526699817739456573859564040897014570508191713213981549678227253966677270969388893261459617732778810522715357589122409882449410286876797729846639847641010984314696478608919131854046836561571079893156221127238169654652170756296489780450136418211958131868422067069363379830284138052960069272351869768486679458433874416564650829169412098590586017959020981917006735331031881843758814950420373110464346962302098838457430062272166890128068627976872305482864255821601717967337060743037847338023915712565285038968779784090064835562296267393043443507942997761235398430980555476967846399001278273740454347031344879162652375806191986534652928733823072517953675059719748463081239488914116152647744069494416898719913961886467885437733161557152492712579885626955977469051784795216335012864211530420856258512653321003391310128059786139083217081624575234192166415766004455123383062872502085720954973206202737377482224003074735200574149090139372865824436543242067178405327959758852836190208071711230859127825002116382541883046532051354959972250207830672142102339152070551057438011265487876998418626277789732580669708988311570855260049669071658478523396387316044670283622576762001173709791798949517686616224770211386791995832196928149425577305890771557371972672288833195994997529912640196050763190967709249275335560358599300845635307392120014111965126087764065942686215134612716436706879258312296740976868588503271710330992891598343649347285331405369633725696567300341197839131268415773656940377868753594836594022916247592440310484022159296945668287229959678006079493193788756611534484696858908625006828974340665741772314230354529617940841649911032308177925418432696054255654679871328437379375324194762070586067815266545573177372736183978542708731185445042923690837740437334242878999209263455621072757335138174698467214283575488270725573534906032293903650902606159365891780011859153145044772412366579722897231441939364570525212555875484660328138236741843496372600853289230964195056290617004527033824637946920095291081601157680335600719934051030758600342308722409825977118753623265246387974895071482204055232021044881871904509181090004488394251654330838313741898289782294225648597573192220152061789041587596848008756414927545210141652160860071499496021470396790520447501895526251866044129658974840253624895829826880018224797895416570423647469218474373517640725979852121885411217433125030722558112421831088546932877244150604549637659546518202945080440973627499715455199867249720001515890397907549434170099088093463865269110877805623700489243282514284124544410454908235425242644733660994292091243548641485764912667515687853746125865205367038931790415745059714904068434973848906833594963610643378983773187107525669259041238128497598709354285797663937374795071599526348451220049480546084649871014166977988743073854579171302507362137965834713535893263700565364787079928315649386162198064372792435512427405543961493669025891158218038159458039426361039273484509545091787041679844335487437442482997111965293209083776770863874803073790551840897723778655345663319160156635280886328879008533193042736201329141194746966072289193591286190769581328435199597216041524735764206507415825690639050750140525447844983406794313758487742761192658915977078424151172692511528238868679210286090589752495568690709364371843810524296324332747963878007677593699964783985130157227350607770352939213599526540060648244014202781881875378617710351747580119798892970795095880946351513155713543870217441003322158516149318959847039903770005797559436464697156444094051185224516241754223807532373194166362043240747903680706133328783573278982866223268454648214409137076906708639255558418999693440121007194007483590473199617809662381235363117069954889469302924632889267388712961397791778790357987796330126577006393042659770652041289038833631478210860940797206419756083173502415533103068230956649885066007570466982118006521250365741855487183432945271845941094951842285012358586162200117096765581178855373324654761020954196010436817179394714291420808980222107711902863331626438465499698854615578149059749020079191939561549890020433198056536118301519621235151468658748303654915765047874295221909546714440078025361125154381330504237459798083451267385669213362931617729120719417425787032465106243995642185702818755782189916543577262492341188122365436369415670456779186203206319644256779366016861109039830634377720021149598509829849942290566673608211447133798502841112009898367062140831005948070793338596859366925233297629429534686966952924676006409325588239800663653523454934040860927222862947318805047858708549473440884419444877957983491978832436694942799891342768658158980888459873345723524761332817899474055960022120343396000437999861868342048525964905904970716125852457980819701287405870897946323020993237941906868315060218566897334000332456516809572919110029827478501815240284944331071084075894866610314033091916339446238569645049713963220659764096200087506668547633749715764648714377978039428485333820422489306536652854130469230838462177403852111377581941912095990692706023187405160074059977660900719951470841168966768060403519225092752123696580981565227709103568918439573875124379515673775724432678205555718045549059536837314912353427125558532356893940364538087947602638642420684840425302863965583706729778270413744911495522294573469347995655992079511901613999050767035083605287379674786694389270864458611004469991900011144007817012029232907824358145916062784701524964313010074914211771614341474107790101983724333809111439223313455234823657417872556672022216117234650701235157277947754418991406135367985851946221346074731078510806533451063114900947622150711953325224322042948305659237034929234488448746672893859250614474114117171484224815431438774838926872130772560881810981815982192102871935364460002662656057501134656976722030499857376174885053507720221012947653805781170593775543619925607365166687334780226004842401390152274891790922282342952945439740001410569782538563509137121609678824882280515976150154957817909327444235559837885794549848871464099603651787953182916085010849699766819843663836058557715082634025051393914863979177889324570486799866106428249862044601297149687411995823013297551405752066859837595756633256190566574055565341492720909919847867619813555245775249115719335913970351640452089119268151443633908035175659420662414839514190315900887080786113153334851076588300297325395207018127092093772669785204386650227168961077983404911458285182503401838191742179666116440075761927911496918327695668435905360195388239548747726919085819459090720400192596720079033284306571662617229144155193046950826003056716457939639931934631304489466391080472337525017137721370002567206671965798812197436998754821754280509362756445092133718075766999385983564374048671438491177079735553567188501949715009371940485851284508509561271479145281066645081045689285947592561310110116628262888501196664576559498772252872870234136834020668285726057835385673575903168188150537978802385667236408317474811485729043391661453767843073626211930996609157305155677809578014811077386149897814892923362875469685989986755390011886235373952256958516820587229527842868809802587243479995169980477142565098668965946979539451986920272228127203794986477476444882762175432325229886296487698274998110741508992772365049455491215479232034546398737669878184638036910618759661762941502724007367677255519683203269924457332669780510047278276099638498399022249105831953378520595517330430988906212218592155146204932498187992001171134481824979583951989106382444494234283218927617378135280400181852402425478766479679441513287027419659559753480362330835828885777906512552015363355308026847907372717414666776248384571149341004846698598820773121667077198388933777561137701856290793354953280038721973921360648942176819374523650005454245557583314689113469907618723563136019003198659348982229489749457062024272459084357166768631446499223200295213777794948676914704214751531107071189875810049127328097648482721388040598327902284697476802604383366991839836088795298058529015326527573127175874648381831594082229763482219744165128154056380000495892877231476210784503168799377186386363156897790363461961942970827916645984222406982571425778208842770934723053466293977261709578723424568949393525172799281926468916452829588317777343420275696240988011276963963071818046192862354634693576663449430530765205729905141907533230375832943864922647657266549805952854982146123480893090532720183381266303079645860648386530258997869399324667683973882421594410567426579452726006425591659488205972541734145182588580340698964576226890681587375259368237855082308836760879200083099421083212621026020606244843993708113204071824308218831549196104849781368220208131891597926328895445372346195252879648251528548818819961698561396957335955393465235260730192459324834866508468400009443789331064919930251847953976090080874553652178201330830524984560726057360679988728028238809990923219218651168970761012074706126071050926465298093135808895693051814590079993326115554810488940870174050791211302880562753292403205952438326710074281534255779492495383408876870512247040411864009346340373285899609098559162129583689212206427065701949171700987875504926599721921244091631389045694136367970268495466480520632960809334835312076510465580279351657937102499576634993738548855372572966739922015073969907343000042017717083955308384081693982186313645258319825074390996382919300128521311587716547769580026621672948917365394552226529395483847832135718657349486866642995466093829071655589771838995690382385174746420411531848261688904207778584284224676677977715105852771147290155381073202065945072997584654845675826984417479399593980798551815029568128451131702734374142368854398799399394396824591255668770440282992551075740184402898497871889606139856929704060168397769370380574543213638328018795693217219196024653981573723246043223110251286754891230280104197578464217375833301015261284546121674203426260126577687388250825237568333226846664579443175702656241731667266380661285846566483809285321391313458783059505525494107420239968707415710587698145025794081214304181233681579250133765941387503406674687460605167138763567447981648750820132152386981885983710079752074199057809393775086507996949632637863319293897625037190395502086310165777570522646167663074870379112158066262848458574994974007639780942299911789536876701733666885455410742054711851928781102481503175408336868007203090693447951079080870472588509409721318981315045697816649891883172440002034649883422548479282235564648413850042085642194024115206783442126760845667092038639664963093984538892556740210898800158175364184135412217032760969152319981758964425607400300245681223810941908702927102574702460024671329775934448003564603879300812155379938207039059662922759615701485100273517884742357964361676410799428541828614367156959053517094330225272267557187468112756085961703072442591732285894849204846904095899559302721497999702022119326558165250128501839308941175563657999993187241996585362760783201608829241621168759832556537867390852659596301878839582430588157898489016289804899533377390723661954998203576061864178247896773817074113673374868111766623580164622016757588812693630661331143940349252074773987768175162283719839288170439558805855708677856339400299619237061893159844606872767569111661664460841026308464250481593679004065483491618757092845213620842249224914546900663273747428757796748432269493919903951098935568232556596413317303948785693945144590167762129574022310953976520036012860220652149689567430553262868458262924354477921371443964158961266298977091919432791487981852892766321836223638007414509853172705710394240119365118350279012659780132198524198128308290921544605362219379868021048492237164716493453016708982917059924711466485398063867491277210281480037175735356387630431102836219378694812196863417657701331520159965865996990917470712985425595094684780752571557845339154488496388143185314769912728343446450514441624880949136577967445248423986893736720992449688842840600541984696889051729624736441183186883038904042845554452875702077202098219212582974961035060268000391571638850761213384060977706750706414177853703751309403583273797800911380431174599489163873137861165487215782589906666839970601980989274683229527802485231522094333732661388356380993232959652913491880098908596921444892870636523232119651228488225706112413205068255828086843288886031673128672835458606122689903106238859670224287113921835440793375861964782382352358616731607039286406597190001768817553352412758775575358740078218067889969958350403445427855831584971070056165513295702191077377850256407951348871286350984951454738390320903357257379315927455501644689837569721382977301408635747003716369923127682912787473437177644430318792633390923047292197472260500182771578285744556710200881133629481846564034714553473642725461890171926469751903708512718058378699455799500519260060267836866910242423209739825664400681249817671677180267313351159280166045914623147393847648233973598356679721235750031363699519178356628586627714024085320439319149878915894577841425355835283684474268823763689060197627089158126580727098095149280925571091290975642490303785451312332991630223527532459348564965465150047945903314024543793212269723939918375573309785726828283278760316725152291976910311954186796615051995551760146503727640949937157644304383567799068075875753945936155384568190804714942914430511169106468586660891360497664241273450003225035779642970663519915706170775646116421629860370527914276950595719587034923296631267387135808562067778625634226343718726959381683684348208842004447427926157692608144367958910092785149332084924629777947905962684748879083042015462998378381352576519631630268672568739502977482995702802611713789896611896345360385556755723732876454838870080772150365847809924197906796188076821993330559025291559745346582323130540146351471209463496742584020708114991041947497599184485587996693256185097389338691046568068213264897655816618003710564569116118537700824873731107585364833856869454777728180116551247546352816349567168284900093768254468933155023647885933609625094617799771524569259581362627966890910398227311502735722734695756099236680243894085982391879431012992313537821487454738200528365746265376417181193340919313716486378265194473945145639540949137775693551740561962817920888263441190385357984528085812968837091010003482018430019643168141452152973031144109436617366059462388951707829182484263030975976125108631579820725549475038127238744885365587620779722285229868559097886853320934031900443115202162375670296389326955629795830027112178188904090836139424054383787097705658275475533940105712969207918420165306335567963712133755757435779007755574876370118495638311649030048845791482892714256680903525933338940208030874607725838872236428378484357505372289225647861736269919071492848290993062454812604899856120739047780406626222191628540502648835415083785914701040515512821642889563409815021236794700896663316083657565588465312748718861992553035203024361275157152610638447789118245203540085614147564969800082073936090665748293045626098140795841460881643471666080776695806490301885029445039685719868152039464021385692944391287564919720597944167709417826074573547353959090135665737731934014179032527642190832757964992199706345392785545132654929597773697567353625098257166332441946765873151137588807806756899094338490214610167520256854390267078399124596253106142611927359773829567890174273132976021114142683267923641786728528502634751375579252290731193937097755225653631242045374508736275025846699284310122118765568384944331090011746221033248371177510116279205196840553037184387492823954781046483210622109987923555197680760974806370519731620682291243325062999096843219153876534289287548268656642804267201352506236998407343385882379289308944757982631665537858467119363535413541803520966764299297629277032225768194216537281968697372203527896297901767074468086139913912895960723925181857076930997474191939308803686989542794425818898943423146900457762586128556146221666203551273806462050171983123944165772801537718342221377776236626331214687993959812484152422342031537978772364385684092304176669183822051159573887634926302459812815464649238181262299554140497499007447780979627632844135455839916161830282593916474970731517574486213775736987000987541611657645050405198348926260290512085680612079298959062850768077752977972183490379891349316588813803946205462998020171529395684018751291450705213407076514916096022504027726005468001006150378449906913105498884811648737339629088961235734296273399012936797830326516291601767753507259050473869776306529787650043169240231017059666962690679751304646070472672064909496413978171703670454208383977428809713496930124585127152452903848982290609224749240312208614621523741872065242503116049032221696051195312129465167386949228144931116776734936014815768367906491783802066960754243724155382115698246290150595087821286368968857777715462947303369395934607827043209653882146623404233272948438422873083171024721656054907395723799798361605708040417431217664084251954741279270235082244424136786409039317502602140314656793559752216147593007504868775396483902376962003086900918921772125345726375577424864700586859274421891960379347082882732471304859301400688668772352497352564596682870747489377695297877813781822100375951535888435329793716271548195278993758263662194236736910484097772479058908084127399747420635456571548988451248640906630177499332323759912087316244768647340238930054871787079959200352019235208219109441959757989450717503779051701493826655718372597149334779675860590286593810820641749425184651865834416424853730104465286092492282435670230911262274827972705279875830844613172968173071382225791356724873521996591022324029229848625427547638854495223396742613400398688772494498438550899987275304597213939946712726002298500287776831987302427255073142766550787829876353925819699637837422200611464253442249964096171497706080432910135651535012925099047042473734153642549819060355111481851282812055986141995819393881651074061407273094089256537922851317606423225370726312622318928842548819726979908884550416786125031376962871884601400765147819399254930416134429330538194022551197235814432914740941493789954886928280064321635682833246365287100511829467007004814470146139761950322109495996694275903324382269287647451358272211672481528157871635847342567988651292312720788060257309503653843219459729654443557092001560101969674597523410658918293379825088425842949870619615252758951497196885412756556055892260589397785455450541049689228498312161149993341765569274950646477111953903600146130268052377841843712227990529522239388044105319982991790662623069129647507030442062697632830674535473115815757365897974809781448342040965207309195671048642561120101221727743998244137052987351921966479417375496254071950890344479834751804558476947397493961384024217912519381345124091929974733455987081180034921465969069594716259746926849850245117614768875238255198528599247766508505040317543969613667844279110808417878287081628157535366228462520825167939191372292811063513553081006267457864402958907886846175370859096128964822393155098130263159597853011090464295074169122033631908585289933147524867013917665108103603085288316213609589751522002618388934849159248513601671864925491461418976603651218783290069665368815166174596087823005571113081992178765665662285490266099876849721433532449122749400543496622768672241228153386484254809550265672687152565194637838356908755096978816486214807382150095617984416090417621410180097984542824841471181384146120975909802692040966855776754763406138212120498588383568353115841346605749245464822536299737053632524888249796459992818198718821365736952394117953481240999253517815039838778538238186428749291544929932757883668447761509492539241571197286735423167917326288213983296705089791058531525532668420884513659603152011332359411236698809592467195091617577834932434858495756353868131882595930212936583007359263323926947286704886798769557016142234263122531251899097549971139546690539080027503908713061077479081231926932266597435828748660368108566376329370992711696987913093366575213761486644420818825014060646245356867233730006053784157487128943633289085732081608486019184032737711615000978875961758555578139646058424132802764955757862456255838239584843890611384614399882394755308139462333801567534512267124341193785959163655585503283028932433337161478269668839062381847092564007969431106829667013185044978677289418823425971727104608171670501164114510584717512972697102936411080054544669584815392753245693774520017027678338823074037052259004946348970082855428002835311565066546579631979573567020721764589111655648264070059643389495019678763061815347698852460376024089014833556354055952093725931673710880357841321813196733244288110233570442676816942184139452159577969672088265389283030319733897399578680944527723340422040982001957000543348270527152474324780110885000466837904832909837244247420544419887084511683197591075018096461262509510503472585394515247112057729851347094332780632768603161073345993170639611138820180087198408347325028738632364287022417895815671345552014339754711488652935126892845770395459376281768589042489621447925831317596893831825059209129512583820478594771703715720775727346282065532307129618915874504339606169794473302541454957204218688871148878097328904399844245593496144786559241884103635952839265772091167472477421108102122581008375510997773293880967579147359050804638654572502009313321243019944234989216136890878466931366045580428966010838891409254390666150202237080190228635099124046940491981297387334779883943817985266346030997857786484473421586737498990909935008998374567420364398948049818817274660290298999506206245760735974519586844725867328034186534183478137433167506774023138538509582295036573713011661124145224071420281036847584076420466496356324022382277933109724575439691360962242315455416579071372510974457468012143735878610046130332842226718932866036711476553937650802086448171353297464104082531343400867477077455091038496772976911931584263148261734215396698023712403200123514252886771664670726175198906629964706709000581078555884715028556838642387504195795952489922931530430927412762544819261464185971793180058616804404765962578397888082995305199076119846261785383951104494828666605020723809622066214222288260229837002672688380303842048947645127216182144140464384283474093524274417487092622596139817879806178518960789749186599242245072986553479421041909352328808852584589504255585789147857164618733660114604755538386605849230947423595144600579130407040436584061029888790275240211488307554968513428610896156096433868317322964806820107378877313477900507254268857310754108933850987593443134543749101371907705838399114273050478629086406897716764034077445467176261008998920829484718759547136811579657753409362131941235240088752623459844649012002770110974462493662489688473131241591663668861832967356996707040964812594473644276103574121042194017413414603586717114750948415669502672679125692117832277178443609705007476530885464337408235141879390289430634357116465266717959446157857721982926400800732299627875425985133144113663579202729372396783480054089199349634045491350064782051453500383567456510984936383705156916720167240071399655861465538666537296897491920704729413783266955573107089037976808237861964123296855911613138453207167312107956866233176404018801010441907038498550417581213486943660173394334934190664517944545619621374088237468390261550309975801544582034757930610998439891504356967467497514620004056013501845912043884997846379290028058090868940379689674452310740934209513148872071008354944292844099971486216613077887098660799009000239337974466937445454842043171211866442188136011584245580881941095350954348302874960218232367888558227889552915840310462840155787744418637379233983432072165252375503652359363480491108840994756859685437248272093893655001476501401434935803821596996849602398239402305078630351826438707597065769756701816194910727476963934986032137546954996802736409722184399294147796526296613171858037758844233132368447892722967099108056874511865495302216453737531340456029240005959923028708999130072168940645286147045064034239778054252708633032481244102313363044202301923151342910524295171336406318231642014271258679223595490741828992499440337987781813420681883612307760126871310468506735689537322563409055085502041208587424576020444226999185349957982577671587223784142384292130477483236751431294909942168434248111247174020920329456753204852207615806835397614479899969425571525151455561385157203129827210016827579592672180666767251398319330505402170485632323690663128271031410559975319475163873646998475776135052950522744275192719798530929203851113790964135671701113315376695158460631335357521827218105671061574017794029115517365603053930155551491879995344868955045014833422077059318402200920611105558965147714301177754189453868811041346875049644846918091327772483321225404894377674171444903587563740164709962410544027203722802391989393930646631047633055369711988785854248862565098155202308765038176799776448245174519503147430958244278935983300583146812754243797093151444430125270889714953821904699328330349882479225393503522081313329377959276964510829038520274567319509079489712574778597080565050611861680234041035693051094988542503850284883903614870048386202375834352816201234854178734976934924304294363979442631375119311495578362409052787894405658433986664829770687936403456140338508682265106826816592469035406072101292608225286636878243642430175081572602346247589770359286834081473825814766568657031396768798485173129766269868558450046214457795582627143786029297273173230156784680797022425234232831180616114168265456286276971571551515189764789258013403064428662184826551713281650590395732465611359218474648407624104593886636902400205457236987033252774977630984430484797709278995006196362575896587299485244637126279574614076354654984131109012153493818077138355950419337570700128245902706214710266770220619305442342873328252953800941499933227674048355232016008632812262615826808745195045967235175970013724935882913110348134762235318040224420939272302519079209092885095847567446940392532137755804138369372546583371964998582536971625331893069146793465636169329610239023150948294443979725129139556574224361834195091256896899507908070873163746224452654530084090597211458671684467498668460009275851970254284375852806919826133053049479214621890725638959211795835340944279014970271924308562706420645903556879247350515228423867460020806528290287644087591669820527781680425165781769718085314199535161207463104739271506341303820051500865289768190516485869754942540003245044115702034328340157556054780923069015143535535268738626480366427206987130173979023728175318266292039772579675641795553968394253045009802711001860291669372425479446207529114080421274045429946150411094333610955937282457954881452221755011132078768670475652935839301140458703700757160136382426152537805079756326186727876830727446880097057300238099251895022940995442701671757156125522516894989293586162034330278196443179245660678703157623438563016215110368105599250932458203884425799214736966290714603351297801156840482476978768289516504642026848343791369679929803144646935610348697714341268752753834792930170344858881496440753523104457086661899907591949637074833384304081692472169467480760958626613340081771590566030484888175909249277810106947096941239621491349959797638806662499428007701299478707966694517417324913328948490911898505916452696633983128510740033213373228693131309056141725383510039894773515004690199542897854177753364873630827229118158843117206643941611913633457051864065617754681882352279575856492618633940851637882885838819491582384911732044515798908636994453590688019972119165394028005270219252453650570452576839452459902501698930245279236302858036420247341863844521383108269509237232148109817015308608234042839755665328270963521832881822127668615403004560593130973601810332385852462097284052163690377640725794201446487604808827683524310431167780106630909998301939813051691743998043765858676123870403980814636806775649723874796950741696939508250386800504378212634224649567726676475196718445196821667277391791212416002654576221559658430260180137330248718511075233811073615113721333215292857186911206007924739632855175270823194230407696458652654898745558539635820486966466904767034479298939576655419895517516741674827283325753560356289847751618486051791822855525530752231823670245216277376118339560965301035365902756247992087043284525147051894905303536664216425369803248620133815171449332697975810942508943881959555150806758988522781857037882467328601230590891797496001630164202009517951095433518873561747375992921386869124326182754680311150218107843875156191705831534516527110182158380055283493518489575990676013840716028708871646466132457547468803548994096696963944644731404537367899132560105352996166649608877877478774669021450636524614408831246239160205780527578393074330706238308396101613899897608630777719151001088597118957611020647436564094384193589460122641270510346275687551088699691065822709636736888148824798756986504563858399739108865573548129782156199749167493248919886561618936268376074276294470782882799945774111560670200828165638434264606451726192851301685619769707226894088917354126268090048788451234872318177885672417282655008495802150263417549014838551216511353530751342389063745552160744948592198945420124395365961702075311083319939806296513717080600194143625167466029259426416976105428364460450782114685128467271279690287184319170827069151549418960714402685557507327181824083151250865454861611545449881922633535642468223442114148874490307874356486061152641289472178067502176275724764013268336134095633330275863125605920621954090364119127727443958740900019673174338620751267859180484784677804507361576247355207469296407873836283703529451508426898941721867534874385492765887182937958018998447060567424510625130641581629273179180417310550401532554083420380012181897627642278460710530130524665362857538130478315207923745034035875317713250986597857268754151716055907960796469081447717077039535292771962943961459540018177359365046467955656046064038940144763620510894839844116313475432443559764225551482634330337036637917376103905540072424654947949286411391957117522804756466756079673577524885295761318564724625201193637537513582029735461241808981484736798339375019643560439141061432174566469660115232982132504134444682702476876209759082700896813322743141574155732032504533868461393648181908225165526931234999687784897596529017438787077098958653973377992810025091752123957769124072519983041042696132630681647351926824616880654932416082562229249256672500870998904525761160439923757451095833008188933021493335055915881903822254101112509618931895731330971784874877264354908123286965717455305107162385860088650266451146883981319182372415799911042049129297089927510062424931921517060499249950573802436648681942137185954326211312527075934833822050323335489865528722973012412574605615195058808759532520800456997883470006712725821998819957736753952874454848597433098032582498697888671978493033019112580654508434422805040840020456110873715693548427148880417612514296484422972199431412229840747050435821262171618088867933335091045557836603565866437365078559229415964389399326975270709433309405498664947595870298165430052524879957833449905837785230111149896539702067862562025007776292625529845052952373811615577727328457587327802589433977969648040654802808079193393355838414132054777627167729631753104954091171029458194401301339671777928682864632966461851851617379191667166596029188047880047831659879962318164647533350102012451261698794633637975466877121343040203487840956028113105453724644732701415211885853054184419693699782345912647027407804992696251574011127461246915565163514931785867211480475297560199558473464226177781824673510602886431576959928279075665064186417096369369919220159891673357810009875277971291826443181264128357586772751394972968246174291954431944757716177135800687220334471855726515228988956919238809771551228818922211336200194093442922626174031759753706063246257999170736437708621985942803343158158042848966647618285228810628780050066696364801452948175954159165260397570470290378323050478018653879524140557731230393685671088843652170293722108247979127176589725641209414597715757334500641564449634066859088543957919365488361545591035685805074817480856704092746520427659648423740476574799776512299591810465951991228833919515659378276529540808942006535012858821369366737882420875539048219443731715967315803602185266054411077437216196355688286758444823223554071220740501386568747937715442395440029018215571182657967299199125869720275823711063328955728326669379901529785928794945402124085337370399968833865011186311093622090300717941669939801438950604569489100045517300199021136661118998809174956893461790577539338523700937574922911117091808420646585398474287420751662247373231954896046398230739584990747905277939903245002028161260833133078153131089865786994479612344549937192800894353412434546357611864569301625735695359632709408374494110765630498622398360792333993738940976477509027125962332147645679656366114579944106939532133418970150757231881531684318926465553618485435656046191073221197717776732936850882772861261435973684164392300456880282044454817028622341680389154958563644981820982405686664680479715450343270565775682959183952626710105992255864732565601355617300194894325874763643688857657659759194038646767212430857677462491192536658767622511439353918907873456133868767492761390050201889425038816668856508794067389371931796090815859201888656043425480086354743573342543300124618746713875091086766855248843934622093293928074215112205944089547524432527379107074840818285514319090968788410937678481723839700059606995851947680044871433804925862037298992422357002793075418736539978598583713553865980293784202774812549486571526363375469662707076559701478789892306566714414366723985041889838310046492289170497630109731423678653841858400298736022800480883806417421731582856412103978407930847958915058926469328708897604060152233667981265933914967408797913762362034122649230892056692325860381957404032701066397182700869130019487272995273478251176523597555071624645200192120457899178833209895322728599490219304106979669556837422270281785698893962117875068902070561469341153929346041165755080677489100187965157543043038478641430909641294756851596700209467405027810037147079360747316018317289718265553782779788171719835650623830977426420486928890056959420110442399570988745970669915774554177363468031340674527146216708564807478828425353353651096612160598117350792988881619005943747439039666734107510809856481845238397461602914158228200408481704297573824895702166115712854400677264166756022033964349799244595406547818948464086502245696838321636186269379391654118431688029401424698631791774606241966879546055964116684665957458047183571178111005678475346274674202946872504828230540632283100101744787167221468654518929367582100300062555401368681357472779767617617489622671243661342330183056235677167366690932351835983485395504429500265521163951683533619594345178694135217959931404109612389210335179121974373023789869255519049749810772221659048830927296519096315379111830591450537810176753722089081215449072379429985532254998529995643140617636662236505265133576008419830973113153813924428737226700578446679654558019534896586421468257927785510646969281673926699670007747539771755355176330553704831615269137577317292533294607026809546741850818944742155762482204311793227672719626866561777940154717735609710789667933917904324228146904213417223640834975843174426256161791436684447140994170425639821185740852810530938224963478804767305866897003301035545527284236254666074634734881047964961960181821811094307797347970010423824557907081011956149953890014084915142290089297585971158984196824424457955883338101132840363028533870082468697527250051421911237456357791095409387541855284541835840041620393958644103817247861021065259810799673007244141466295794833267355489634173254427004252586229755940881232594064397303755935559834687520597614877434623549749212671852213356132193149621865356035243801205590957603268196668884367063826141828386540834777576899854966596007091303160079933498017689692780274296854433241246912819087614240352091685437550878496538528188169315584721839948624353307942963302854954269777164004273174924480215874244771117713631525611208126546225282750879628378084069926911842159965614646068812835749573292879406133324154701526672539215002045903876811538224751028567544918067317335230976075332738143314653412979524223409166892683579477974662834853933456737925378961621327576514772722651210769927678053395545766350478282676985149031294334324435093545087445426852418867301148318949286196571057205495197107783017249493707643605917114354336939762790414501542496956319696411453373640418608735375049332904378948154882992021158084199954838972832332692296784032458324522708662183174485840278905025022889451289409609710669651882735575653491639079780782518108805919546296009300767693073441929009132767445266435894751834110392261533380927138442067204138388700848435437409543488234205116855623057370248533117089449202430969547847046451401073999053928324545787744924479728340687567197155362414350168670010351957023544649053464014264130859969986610151064097801564557768444591121195644006591682958799095717277448210748385583634683186375763153595597620738792142529033879677917101720989489671186484087379513582085011015176539846546409500779981421073409397784000438180036270720433187998097523135122976160613504586742388652237689114143160122808508768776607979216058255456869357539850569634696717812651659707345085411040128425302141074919426878733881100200120073103420263277611731766021857584890723295472352757277494454871005950835491119332320513980315174196781298705147567803490638552923282117532053239489573211613481429063196752145437551460701781673715140978026121517582402200748055264594057388280331493364648796862247262997300331637045668180135221256625818153443616753734131528035863030357611295526553990795592703986533466707898029922577832112108712101427649709826097676173798296447717747809337801995638335805893931001290684464868712489036893710085037203856187564539813052507722877369587613351260299179839515736824871409182871790400398009498509346191829133051389331009959352720327713564421602236519929753470847176852655998623406234826983887215694864112237600659857422038153989478180608223931892092217109288804703298825992144887908146877799345146704078650202143872731489057488334125885368926869033741778892819731731018323509322909504584055244270814200276110093160184430537351643294299444854925075438906321996828756696343875508328775270649628654155416282659671048791613184716265083656411761819291215600972633044345043296238849955490514029899823727390006724422025516761277886244200807805591405003161783311558682522537485769650482369273673452391000241280103468456168327794379895999246143396815088762508992853710416500008600467496266728480416663356436206887867783538554891963404209246773793272506145114483809116253710372823507851983730526976242593594775726699369357209269247251901933598376135700570322490569938332233099980307566230505013380187302565080738033642057949915446856563041849891095474244342207477076446523797092379156279188945195437234406761793634901785753274561532831195161471210850496333912272755203292275665746542166069799157318828328586372683749958530054190905829860976584410041142320147494822156863746185070507608455447234600313402217227738593371544639145123902610832428415682220534747357557733885260204817826481608639532888696775766481604189914893722811902652028932457175192632063946076668037561029344417780180830946376231902960546334579940825711004393496415153831515678787172138848252837066713446849204892177665909001866643921902195122472989551363832820362050777754498925742721664523584460037518825202635746679329648271022581232504676653388701825626864551600948950423944507604638974433304234837629697795622214397526526790028742778350187770205991935485499293816499195165350894185193828190186563666082282548020584284463790098526498403601285172847615211134669090875527752761912954148961815581371256086897380727757299649504221813630920903655389981517140454124663905308820969932988627351035973978642442736101133911210303163941880919357366750798150848233768925443685037203196313776182611732747361342475214728343842277896338628032745288822734186581381557183217528123496691811644910206230516038567813562006336734471540631767400719428250599462904177892959898173843625218440463117700255652144637261889871172069295268941257309283847275552042743260539375712028953643472060548754737209951226087094629665599524137971599830982415380065532446339952227107033732943338137735683002571198465466399091108614163723143619687420877814543786612889418412018576276310865289192535925544230399054624072393800520351325869872466803677585112536168372630593271074729334242420225392664132945912241804130376564126063068793236524180673265114257807781057993518703916537137424251322214654851080836251274197999919600605457486467557996150237562252233146804576139978531624442049658956906547304992375640805770023115448672609957446925813272809498641090103214788097525955510020053761619304097360129240940019364564395769082343851294668511640626548181518450701287707740441019000598469347567234915447612501819054818046389912420395943109939499110895261579810496801271986342497068957321096515158889754031935351369668516577746730540326995958978546722822186768627852342110355098273678235187086876023030566286974636465439681314985390392914533433961539984390727478280972781040184270419522444114847730266417070847976464159422356704789253671264776178306780471806353469147246226715857375901546088399041720858086640619841269699669567702629983307479075793342217201753272470015766515385181052913080773170380270196073726942843502745086579223339858613044776787521276682281113446212981923274894330601458998906719309349513485064071374865061281002290502968878674668731135943399783266310147595264249828824008598437066250997911020603675189701174065368387049551579899420561384603013846025570981250871749494869663195498891822949440126372009710250593147405550805813694967996359716333634249843709503513533107867757201390014266553211527006365360332020629113380625938964985378415893397275254532578502162515827713676406764944519164722593967967858093195112807420305986730582629061510283421390939308897331534723816496386732795584324141702343945229279553754102364787909911366466414090576195885305902327022755019114289009649437698469528519811876942839764238978358084662615082718294091054424650355470394218268967481374701699017981318332996128942160380424939632441600435278185066585207755714877865753116372549667032872338933652645257523184603839312865039128929333786726939094324119871492650313287559470823549340177269754772810396432396096977500645341904020634195651407437535074173010452205604056599698300343588961234955374383260913294303476271934110144608909282952084142825263469022617312530809035917715569987523633904286745823946837627843667782147369800843559720495776808052613862884073228095636282920219517139972678183683625374810651788854432291174679242619099414830483443384218001101408188157360550466091645776245296020866313780730379564208481654065349974824870812733488480385758198867337125418228149191058589764866009264250847609419485214806567772148648942071167791297364967467026281128753726259330976538582493010018753694366643954921784696732676486093473031955323500178974346053040936767211303706157452393697892496300540501133522059861946861129183727730655545439363605990226224853424509869634450250797263818088838851356788208497534979803912610176078624020291466003129879113186416740633511453488331741219424913334441422269484555347332666226420749211575145471171880489610860802394423648265524637110967233229891996440211415033320868748379996291978362134877077021273592708413404574114951311293525944130566369874757280308188068874995272960208715750368701157559018987667728760268598598751024250358861659121632023704463025427165666868215675019530111765412477347236201396780058874340629664351949150047217544391195540184274337894574606411147549857013122269585421717917527384953609927140587499191784146407131884227031169912494109451752518179614125481747967132369037973358278071108256601094436406330287195655418432010982519723886655724132737741434212571139445489328306371452319542110803362663418227693758969949433287220540095849044319020899362265886596856299818108152643140216868090649870187714120416354386718922420040055284285191480361981860252359806742951588603884037075441848925090261104206628536878357222803815811367680523017409204946009738406361952881602069521502764622344654060330604026151854431183206337375484889816346905453363937723827477570642844156445685562307622333965727135349981929269883183856039839190650233412565423355146747351735819843000966340768918861947576300099719144354670609280112513736130270431159402466013041263847394076577094874931456254544310974991708050242383647877319827167013228290424338882649586038485136478147638532006347068485945449836688430477327004090525123373087606950476859023013082043888293534240271947892256416802809711666149280799594991666826914752997292914502573876537239883785457948352802385518464785313446453788169502352193018178832278185231583700983687403827640703822492498632786464347340870778629672306315470766245425031417364641250483682744198442131639654523073648515679583342254996188184615783612940153493138738494741875050185084030391576788524673619632213968341661236117897047184203652513939407830935945053674527158516923784175150489389439396526756379760447478181297341361593232988453754902704690491010428518940094877341863288336363544290544692855713459360811413271978096539205341966116650132672485498658380450346624246550687149886143767961174489769170053702404648398543182644952812693557902588349786585448586419680839811411180608729242444501239619767808269775081973537068488666363151387246823681077009245032982088097689647784020882564045156275823841141722745939492514644947290357343427922673984600480736779697295679787695413407198129641923933828299630417286394833086763627607123566997713632106228111070751479946639463535313670059401377896196101432713893903995619127970870291124981318752079678159104755696699514184769756718949084794333244102145252690769527100335873289335720683129651771425319854684090542294498004048167865698365246196817627629515528541380724018985769067848006189940857550934927077929224575057206518237245500408930747170582497345439943025606745332356772679105328185258021430296875834008730262615895849845946887007373689789486310993910049799370867927068832118292007412801188609067405895404793859614296937419081942070415524946992826067013407236290155517590873114654263341699390686406632213605254619639744375010401266757402082539589084194268831427639069403836033206565290397213114054568292148013898493310001454296624900485033660282648624980393951753578348301419235171938322277342370507036958908566702553456729681503856210965312858542619271951916523337079151018813470922553071777090743059914692154272851313713402444332656090852660793383460980099647634402370477120212535366792169557863681607363915106683540558344236812728475791491866501705843057621917450418603982860262037101894852069410803255211825419604160393480050266478422808729030111872897293843434723370037765945278251262852778809366369462275799198402721350967040812704016934302021276208335995454065011378004799244854741369070446492879079293753878243676067905667964561073492089600926183235461082166567529304725655790792676310621952511252002175022877398283454934767512088092102786037240968538838036344920096077057738771357850733580869724903337816135327420909142942852548736988608795915663003323038884421525578285832856028109541182786354240419112763655807530178457976784608322886430222938780761577392638241474895809215238231017080346853103740931079839247690199582663653200891723831611338723053503218070055664116191311523635113679440521316078299952020833134363314956844304904159541049237278259297020287897186441973949345909107071712908086092546297292260678793987154495831122920777469368595329279886561402190510271947667123309424479971258676194331487235868818632669455708105080283535312797022551434580423298119366522498741939871688388661321253994054413022261818783445229927772103441398029083139568194171788113342725112257496131847593928549366501772942909751669871567646484575892872103361427198111190877451747204857319522747217070061228763025008090582618634892626879647273232008958835531529107458218284258198352466623528438291511167662167383696489332907157609139047713841194266476941766968291361615603623555097592892577716928330026736261855687966833300245658557381605432747010664498718002388727844882425644011269028297359159321881639554445943199675276060115229352514223375623739664974477864122134526393292010450526961762615884573558465197695846264567492559998696975815477778748615336901181474430076152639573076282529613588988491426959921132073223824556647634135024706390866523161754016628358196685602916366815608949759424203408852121307466619807098774823398056273842399604944761704928385359655629410567061906503752224540100498413949964582458671960512078099177692222096686625813627116671661249931408713674339436523955682681495531056105213518995492258898210090980574489429958859626128227573713492321020916424860877626934975314264785254251992146590525105460876553033815894994981624759162156990983817009965436629988252755285659299972796606962288673931181556772913669409509546402657819834027118225239822817954933183642720759707237608763507279713209682126443480489106972517410201418068615925920543619180752589562573059868455355069557236477495573270210837959382117843911918255707759997116755453612257989294548464419076561055142474420241389286778024351916631520208452257161138507775490055837200642917468822605457596936904328051948049865460560174757563582239573823534346344591772666428690331133016501818986887495141439705618129266453934868703990453505787740687561704587360096945488447721327679242171761904419509405302124759937127782809626890688144734893645423121735432948090195500222916522606709207267398743713140964948795890327865731382632541865195007649715069551230808196647041257511077279640578512300086439050988340441493658364470108430549071934280055814767147040393249933077021171073236378077448924053878383792397088403087702346891146233280788572720933464750080743760970125318367817382450467513649203453505822451849119643777209286296180964664070796145170609170677246457653087446616426245771282759923113202198011174929399751682131165866106045727909983467003918489317472298373690800604354156389916486439337302012524477803990088143321098648000113573365302823554762726950396958678747372128620160797254286648703032749508878247144806058771366366080248634794756919219391325407059427302275452045929739145878401931539557561910575317583770515694419996586841606763883965473650582772342322005559722500676494029028192852204220394484539609208554426875706494673617548846048218060602123264496324623698711507293474272737030673267382241897679460896480455209904741651503905485835495068163679783518953405745538255230121685860103813420177318879982364083608093135082300178821265269766905856350229548660795498093971803346920995975588536917025871861819143766390593810304253780794416315053977213855571303854640655802957283081995048212318202314284829895475125048873390772461416350185719514496622907705065747725098845336424423131142394287803456439665169666909386446147154621594273703353641450887552113330253246922172093293321771465843964519580342701203708081310122268016279604836060765194638812441428525545915063472737036493971502650420283850956420718762524841195294082273035400475929084185029047889136124631102736390037087381454657632139890178042567686026517588020299929549666154061293415803408344051531899061662756732354922472088569647346040971492285020910667574687972206934695616102381192025006488138973088745819938080009379821425058846228816104700265160995841357460597226973856143483607272688570105024757061907983517507305214205561579594589877795190683401643158507682833128188079281284896233014774168050337832010741896530347054873566503791483064759463418317262929700784498881269703781188446450938159901969577233682149892839431858201413305467134263407037787834534265189031416872595286158697002782527971123842036932215929234870008504148364552710726519002023426484336172751714020400924306205405688307348096518371760536814102655793182805743206471672423244316560573670228948792527666229230813176161616083193479727388409928052863810068417279677406908719162300009997563868622329249586028684956629316086499995416844019848655616761612070105183079082067317329969350906818903476570473908403282524247368992719217702419036665341936377320179563310369346278542024883695368682518014494820437447346519342794666956441981950775811494320275287949134092475021075946553675515817258805606181892699746017402172479421073388194151061597411528256257188650151823776420248804886154443483515286261808592134253426060199855284188646904365332352299549744440108304137954215753375856672967876159373405234144107812892050552679092887128722315915820182269750560396219876740797117698679236714719695118678449111859046571130969255596969524075226151643708911297815371753847851538650722262931456665230223551232761778924991486738064495131672786644221990518684428800205031134343310631875803088663978837356591822272108612746693791843860177371249466867956458086627923233930469742760602592933429106238550446177250899792778610979096527781518472080754704507369775839625932948467997240392099446465392830015086879825728285379517120336377368306819521853336936118663382120707630870788528495436536395526648127499503872825369416145192057023169052692225286162739446434316906836358906964662054905442698136968735896708692575250207625450433887688875519512490033777640373663535745719068477901564678593794453791167336140381152904252236212127628914400139277424066525619136239313873529038116466983070478834556869302545601423453219660920196180539988203009519548201212019777755734175726831855320966295683814673457208868975515994478371354596006677146724409619145475216688993624216471339752494819400809225931933645894950850365563672710818982257263317818499873776904658695970020505024125522753767702176120590642769475982328407444677011651773975537213890947915051793403741722023064324088557053588182707745411717378480763997648715164743871827829262977550448450099857326665314200655103082469182099196179529407324602583062848986732908844857072624653281336589416251823447284468393905706209919798681455526037460526570251579735934652859545370389961487669143208012663836546599694330049537945174806553747540689403588553383932168705120033359419644225566671961851795879256034508591369316598774653575029688209763065747120042601971443703927898718528824275695980400662684930852400147869999190321167514419747760821959244960167819100286115424100649207882021034587871970134900871746623303246780249298116456264307552935979472554800049562020285629532494222103216048740825345974926078087833623094935602540652510585944542740920478658934079787532069239912430196762385576529586137561080826091600348892029464152876956091003726361112136305262112798400081771651611433475977359185352115289861548548000824822943969344815763693934109919204433791987102855038550224135519885852717994341604218410899964822004201672481191857549629589547868953057777558376325413877560502340079600059798202352003403895143503597823849376067895949574654709601480767642050505597052209329705033820173626430545568735536077042641476224825983936875493354871763363304961198271945601378053447711131638398678675610064802456960989265720257288001853241378120218855630561303527257488853532186399074727565049533583453878600777835092374638953112824349334704373165485341807736616094956201003237565234966330948092011147545473723489569779844956231586796133007403106511718550961213633500649927840162203561623111404513981680166991256446881357902193591917163798865169803137911776823901683397441368455004708833206613210917451777579524573771415697270535867739687840844863986195570281516163718806912292648661138202240673233836087485796126140028213608672933896150002216205839548922855888849822722179602261545528692964942342406740207366495384121162134320277001882258434895895755285639714589456538607893457387845181658183266814450200550921660266756067465810142603505880538229052110938469759070628858735750882398792155092814939635624817256335607510300948003043627524213640303558772787450298803117110867301265206514274455368511931319946044103830078599108295538018379176266478885923880340556416342906952042718353977506874404610077355710275467088016141048853101962242051273519698788703633965485261473730747193100100228235732750333854154157774773998356633289100401163596235890706610309618657101795928821344046486938408275395048148595231465543338306103849991121274385941685548399178458737204928273954026127074554714672185005084157413342558613448341645626347405352725707279614940165635720836360561930851263044290167373610690228083293759698708509117488200241046362506839462861121297061817784432880174768562165819734370596184526929295359600072462295962271241776787753154247121334075254191627023070750084422236252536898172056427293656553176962801182596858030933075962508028710267907183356526430554625008714041105690519656970768190371155033843512213832822436149577775059270032812391422426720420950498164984878480471058072939677014771816143809885043681560135466234021994341234985553430597227408006791536090415034075479187114995220492880956718528373663931288544693001825533268573091167595282480401165219571953661040234678757673836921835166387316724856278192540444607926608032704807895281203113353384894824340257344215772478249495890719719182160959742917109213934580996992033058698213403076984644638787022514654291451275494637400712527481552493723430807903913671693637825740510156862693290044180392430186273584417515916771502176803824674563795358260718200749876285204401402866567915225805667357175818196674796153886995036103751157935895547176281074182726696213957888975841760000639301658752243401928739616603226714722266252590419453623435633732801821365258508801185795385103464522002297452376561672352942334541498364096217881758782306291894135180167460270269272976153141707373182300829443610899233266119704645369645093262062969373371247792034921082431165607954493461079330618153435515108967880446586026718799900887463872974840040123184387920563292455218112231982750533376088558404505088169679105157308430163186600629462053397261467223887250761121999605232522319001612788850157035590659679316332793188462790639543810048856318413143492248344339488172890555432201252441493657947988233309854766989097412367998849670908423983481077738861394075173683498106621019190978967096213310617030503590974022008413866496437460898990180201523689144698719595409087102023034550173501644528050515011073138916004678846359005888705440378229028703687959932839117121772322134962909925392881124545131399107575678732395422850004556393919947497884747905489691466605090772897579541459336088338023192639364940487620055919969657936242101597416987902628484616182576672135800165705739744102837008693255667457199154543383362465966256890790140840302806838684764003532797105478236731716593137501614021936683901031955735799820154919571648083110197237859597887395272328001875412301646151746848098602755580527300893788080436119148794560206244803001877040853836569370558352708669536089904427471679323678542496992481816774203659335759268408548295621251636548679256009021181372796120914440454315088032641002302755966044792944598815644389368417939695568567778679706226654682530832391881827163961823433346507536743709225129560520536156521300221909281391606072222855803573257957872305469350373194241998612929236425313387541622883021448286076880585728499246738077186972886264187685248914200542818262340444327082496489235843858960871330624314503676701710867189396531273939607439061879286468992798300771283046064397524954722702243845576279828152991821177877610570135475210425283193701839094441134326643424867682028327120484694942884406417761558529024037676558824248792793061875149646736680357794148968987317721790649854898751915935351403598841056397506081851601611145330363743099741640421331931628383036934979851924567391425384835791709970273094900400350106973895250998022386510425861733081447683896091999953735082766623180970750246681533566519979666834059599654564271710455681707189819724884429662768475196630959088955180149133874464296743289780362563840142576269123231939976627245370464374606728114391776514872035543925467037034229300358681397775859027737388496624709904492747115510682727563603375524074939954050798224094108756898888397698393572928198856489578292435987523951852711938799318058083882892627216776927844728382773808636753149079191894403932001496934612280815000908179737302698317774110718587852603092600860192513994780574648978084477186560495573553000040691107239007835980060343365076481422415747725730145107427895498768636591790428937034872317749251557629799781787685805704018908989642447621709706633427960056497995925003913735857109338038461104425154050995157149037202063310631190483038869525328873362939512852832245048389119811971965136731146451864290510354322538922902189521908833948411914380245834853305176213030916455784236544405887003618380148459521991892126456990275295212054770205629776011583750822886980340683722394443479998442298877471448742255812094362268481605575507832097128998428630891857923920321679138452139982368173404485785195502168202032705068511266343280233302847916341054869464936755387926409118279984933156308885368810812758167213503751328219416139814268447120605803880211247013378344338885611386819737750553467055542295971289484841825845465524276362447577468220704338573268983629250929010459460375740421914195638617689348416541588163666731394807053868245415676167213341400215418654644004442913923967727276817844247475326962485195068736988328349584682892171448824856552815797013314224393082984954427377434878227243975084858593460125658663312319800076868034957391573391240219161856779187462909630782834184049242185308419355469737506145215714505161306542087516790584633960997561203873469326171980582179893570274077134605744423717565639991662321301808547342250109349158338639293192849164288821401429738573027915619506371057528076606553145079627820459316034021804128758001634522142151486229413776343695458995130325159063543096891623228432822510350151499713514531628750430698638065836405593722347293884909942532103191421238475168359665689822836812268203929996189049885757513007665316375867761480573134942367994301871632539922774706784680327251444230997876135713778301352702794282243501984174248520087740185678367733624822395357522510796719765446788296038911211299742519990538259722385410596454593162477709559012183457800681030258173273488241705263805980234478101793100400441239081391251458700913908041550331529744812753554995084747479120949543024180331506356728960615760023165844897838286761605006344651623085346221390511510425270997783902311080369078799054561000260531120159085442861823989310302724806109468977491978635934066666198069349147336185249158410752313192476612035131857252507516281642678344034426205891324724176105630001358207719347720613219583100130251703875101552840384163007750953248796914694547961909762021075880369798561246952338894789122033226989531309418135418457090047737178214688068408314122991826780590595608113178748974794635882056071771475585757007557260610950611281532976263993671302689981389014582539260787962450121224805219533508721078700742839202134323918869786660025819661365136367139094295644819738026084257367229247709855878144158925043367006386249941418120950381984875028514504394608620244848126770777779299961222083601189943023373851720266267413241700311463639539389323257724208184992653519304251768979569325159044229914363226534409514344100638880139724882220612364140891756123845203006654448291416832967729418245279471871811507472150197059861383818878592848794089225383927912088957755060288038792886827616229597889166431166308993574438339415927305066418325274734509796294033277542796538620143590322360014302081168380448006355170916543415026788125941007757548561911266556275252594143109472507435573192359834536498910197453599097319575436936793085367118244981314791600028518970332504328603838317481925272677301309592206447354718377075247696417492856755915798244806415688615062026001239239756034869498706213103779333601552550516887988985766624354625730066766420396488224618328132818876569550718207349477157736558968650932375810056917347084450086843268464385503309972276408342233970607924661612375260115941467651660629207642112978521490057477279403739917329285402059216506586301554236652626672509300350487816488337201825301375900955699855697671549518651309076845879676471526236940273986089274750541377142290118458612709910320035850196159545173239575033422529591100593494873236405227175243477082150730722336184372514114258544154655058480394951322447344369862445177031796472613456080912256199135383629469691597792969574371107090471430846843295953271309344090691182558777364094584556514643096025417401047217416099461980002722932344623133000213544238893986970206518142920155357457162397329132803787561692083611162206432699830114401525798391765176791136489219379291338096180238613657895239713004762012798606975565518180317982348402124242492625404304630868751453908362248734859233208316880606914226094364946799430455963399346172751326926893656751361619034899995740367992325217760689065522004740039392435607683520391369240971905757540561315122164004329713189009864651850875720898263954265493291227838227121803014864390299265965362929158322147427890581751907063415430879375578621900757568657912009397531731721170034047404780014980859661959702922895985970059604635943557365642642596440138683462991538913722130690807969778035922909992204279421152010882539648495745042591328632318967540746130424161532332786201838104455332844183101062835633162229714898908704508516339462295003572018642609307140160277580519155929717007472293379301985632421290986812632677250193998304440151290487615565475370968356566272813019899728199886456403842110242239699487124165583977016726067136497829582895251964396722185060957539917294606006018791131149342900796737144304723472909949684220296521732701855617469480925451658424881928804816849921163976536121660969618934183929062971309090434110951110664279911272435561428983381666637400446629829123240559174756494059790512855038734333113687972790987184053611661720639405790717168301012492657950373250953416641339939229518984896545983815820613069486647122997756946954582028377797581380810071757264786670569649285936828545182962102352328972765675487538206299045868750988788108478048097682536034294106615113629649323959856722841115425297402718184286155364781117892679799414594974809187179565866210204290575146115457673638013931780771462312260055282269790897959734921586049030368503029752448744729447188791503138310998140737221215379717095270704010364773011944608937966451468956135674706162051372760053222460458866286099514029925761280593911564336466882119981161165870449548238551794717049989933373387540000580053584816199255646338456462831485319624856587495312621744573612420991263478246851508043342111032984406228534118172699922078291759991257679290576792663397149741212428814365234973526983833929237111266993029760584751553846074035852435345055950301070843313114973718870397306031079888826592281077881871807559991660661772958711619669253061182935716432490595276389123200907879792339586431782283795713922223469707974895617953530773060046166669170253688064625973478562162247714640012406111160648777398067181231292524062678648391022331073625048659057782781299877849860143616226078705325232383344745977037613500553348789492632765548825722358019396310330136646663862131681091840314086140926799879948768565737974516563551850030993858998335261190282910256714859485398224323711165145055720528962186432088118710507304357100787331755144213785181654227196988524468731506622063309748125499539591067462900745748301988628365599822782874654255296051702899987295113603175606779647471711022361004525163204433364272066065942557362903194896487304404684891728513084970118551685574249501625455605992352854191421947321146721234568255963304198127439007042811564684936405663038209620659350749779064320931725623201306924516654928854701524447666322277853531779794562212865671667728324337672356759878957448940115125959862423300746166685956918905188591028141221893524194905209730337695636609009893587441911251853614221017922890289505281219796288334907211253761490772593653667611350528255009513468236390052556969355392903517406522367514096420074493806304718509689937126646478346741889738996054960435463854882792192264301623128994105198367253215159668490641471206116488270960577007338299291478322439329792564669182650537646553292825881305304885472898282686575544678114736824272382004402179224757588697178346801236653574809371415728213277892030893560546728862780823945916930966897653577587274483682757523722146868608220915499851253754312430313613800443721314656550971529080625292943652388756460649751028705190221836122572046750446180367774901959403180719342470870417657358352305701080752188630657744369278474081665563705949670226299809906632816234641189309878653700098832973380406298444415513342425324996273555700422558963146200394682887260339437219349195958893729280748348143492814760956029766583198426913954004424585449454731621774297187180432788194176433032918892066823823799543328764152951217127656474532322900079685031817514787479925169353612065308088830782758925175894532896520914438831879868672980146559113547571509154981297598318531924361228506659556716958498606675980147844476333132414571341864285084815129075005915423777952208749919520851741162206283517466260842733916781661055474323840328772009709725918096135831375196301689455700666459188086834505789670118983139772074959422020104189606163188026336096563593453048450880162126435672666311871147797274932376332180907730387542961863981015864604266697184314123257154200583931870612352479671135007015922526184237161273336715796584582496476693585466457949066381359417029793186410582421414106888948031203347222796177488899675569608218036794815753315187379877894894363272316827666717706004811997407492473735163881627375170225165047616139442424032112829680126175631743692443021519166316769906234106648644150605566545025988280657946655240126066437103939296047879967879110714971770968778924444180395854384102620903143921813806061931150908209449184705313144259250433176905259472957916875580850985575338360832977759793072377602663570447099676806585897543399039108227682664559570158473781378283987245366385029194822255702405834539593104971043491722935581664308505046374630086474290068809896606528635991016527566732249203026710744340181480271897096727834219401456346736891531763147850983363440131917975497171017270998717062756050453867944403798978213229859407992687734057241849094132056044066879236810294184805208890238215793098324703042722213351422070838299993641147343290731986560216576435028092838592090536603064088438598983283007950511354181039446159242776148285414922530893290920331996470153509258316455178553959451522809512335121314152551584226926993923587681049366972143367379001625321566504850201167375868715491673971948287788098573627107818858027308517600019919018674733943763086541968771907748434256050158604672337540652414407140096628559512250357792304849775103873196812892547021900939723517150016007022740964350329073550859411702519106639451985786365446567260871847210629561497613442791650009681596849222862271816592111816179600167672503065256136467862262237606139389398731079098795787787821938274531807439148693082076641172941893491181415629431333566277752561109731761214451557280472104002357974267372016096200712804150543831946912943808535588319825741202391580472798104123252535987823927293797768760722318893453425023650146357038768997130683360664053741546802130629983528042648534879846451114818122712804411925122794245417435710069107852825959370304239570277795196869147987381070660336146355579774047528964810721578966436138082762877201152429608346302710713043789909209915653286444688077238806366712361946873642757101659972846747639365026814427981437058287513752315700178213144092940121293796703110373388878019726385307734655409776357319740842362744302739545692990538235774399596327361227247880418578013301997232137036204975583230278997214781624004227786125925457874699650200015602617015998753796948688822191819785172105973838881281495411682137624511061594102349587817197375534398057252669310936626618171276202745339964468992191507612193230170514870091750160459018974686143269670648379204262530760992902723727077356452179679267315820629595961311468403258123580447362528240987276384734160523530155503210788319676489453065603445248196251035495310402707861104267777159124346854389985493485887585181927421782936414395753330205855525466097921023996765805979603160335326871367121417282990526376153343521607708010235345278900094031177526197559238583737306060562324105084371222371674046337293187674711915433597500438118717923550147044536174170495262798832901207658220262157627604399149471363871609674271202385009508694414429717081683167423211550473604555134347196557626899535367026861718708590342404662985643013090516160873994341405146645973770209753250869611797921957171944354566928846823217490668685253740629022531333821424318624992962287925685542691467531474963371986017383208738220176615077471584644613300148390295521918787025430354722067954361025902756122780661130764249480468722330835061367563172934364751423927875297159651959021236459543261018426938339430562644695011990577804788993614823522489763621323178875102806115389531313497679283056313399900318295299959877181311788972969985425180976977991666972733524174963440696175815410057688803093980307788755039067604715585516067319400745220871646868299720604441831044230557790315492424824763541029998596616959029443428436908161940311409353996909764679478415735968549315285937950625310935819499925292290741796733414071115849105622306475094894492901859463298106648081422457922204326576851939906370355956766107674340537980443213584500167030896537814070829154270322929645359047131384372400306200821215556634582107536979384544860735082678284018810734248231657564371169141519165345113136012364943852403692905157197297448484282391559789060965067007516485524998765478376400178407158380022250577098744746320101566073138860234698008984204598113094246176685211256095155640869423292680759258201153452524037260174642705620849187168348567490222814092204047782055564289840595464696788104629297227867041115884365103478851277531385888199966269445872803939540920429634104874881778598673922096717532828880197632686960105470311630028203419339594348797644628565790768750176605813884952996238655837284003155724655540670059160707084296203683369320186858448409013446218384456698086871459060471444970028009453867708672921455615732237010057059335780197297257360003975112933790036025739814145336371191599906920054681557240874815011338610352706372873378286337822687277454465785160153492305035330357937214269939006849121398340812658299477565915875533329073640104666910960328583861879672654574906627933467305534845324722628501883693718409379786630953445123265829752808054444124230222028376785888923515123087466442031833011114226615603913557386881963636898518367089387281409083858494594795028478473990382411706014434350756876553227807612857894566479393704900075173421973335166446610797480236727835870495642975806317680138805475862116236900146368478375161469975195343817219810721322163573719727269749205089706762688695613222878230053287340539397324950683617061724586291816869269424061893004592148177879586919101243886954246522891608973358957697075972291918262434264714084290201183183142348070948706728169434530039745612669560721181215588941538820361706472482696298616770868481585221611986409293256554823752768892820851088713631137438793175283868842018016615525181493463888974825929775133183431848425846207505900081924781515782651336469515626756877259555726556754953885998716762645937196974137911672895640765168867863471802456658545944872206333686172884279635100290644154759884710608410096173279842446164205825515436736882015760187995798794337682407336839282467434445185263631721947765914634731361891773865524960752931263703403024858102250811885935928820433048727350551166410285956836232585901062726313250792847335380681229599214250517823358446258223865551911799257808211671480060997121243572529858677675621966778037590264587212439103219827951691481740145169723836653480759546510172553647581964822638424448708676517544101500370554409742126021028377510536712926667882183206042802262087715011853466604425449551194625743547677787106931087945791892222564698373770535781153046205771840345200550193584597208432830234912569971281858668520677340604838468293472446581822418734284572280988033516897258081632793121550003834094080292350898400888169781459955690716825576652035499341293873556817666112387082750933234987548124129452582307149084097160400784171342946752671158880570709948462290448399487386017712968924312931066245679559987875472692138017465013967328400636192165986867828488335310460150656710117182579293274087306726437880485554249307004115212150706617561758883608782819651611466523963078053151423705703960582421249931987424406952614852066260687287157917048547404930185116795398677312927679996279118798857100919333202826798537102895716082986432315805480037722157713217488736313530135033887531604530197507386045650469611851978667223181161374235038743214023673862119856376714165083058340635143590684890640454978927644453288215616704111828711126503002403157479829180013894079201754882337469817486224378925551648748548790515192486305840751896347154357233103013476706360720168774483649986632311938904295711775594878175567593589062245426700184681997319732900350656477042894042109579461371151324252110198050117500906189348649020228713761132219290074828253993584927340486031659550570248370879053584624227056497637702742030337129606281875551171111458054262700580739163398927304666151088358994618927209485514829486298806556118340024245336776930328560559972409434509053645723833320659708492495424026167025055653135771541201992687899973839675200560970324401579146318275769995479762409113983748617110863373718680786410268347581948846136391699540416615407445578781323299493606945641872721757002002371253912748246533895452124976929964195016301423813149379929350892560352643495494285461149477726615043232414157452095961441181644183594172750909808966327765910159169478791739293674816245773780143142656660299574742675849705040092692508943798927507012587819600716506971120155802039705402445712526326972395717680538607331230887381848795982739552737531240388647476082472359041337831367441049744890989287355712057901101433946230225116489123331072620340953233422264651725214533328159211997667745697531637321601104070608126663843444089330467470770070784324290054605396599364857298269076477302404224523131379544871126038380313205829518541679759566514923045945772841506401430530748485643608900985504571015378535477489518214751855926789402992610862512934804011452017860275421298463576229665236686875901890096660957590457666770774429049279203220975083678150032989328326234973864890120441246659912974480323477232049900422431377172001352090142269753891660060658722830122290793705796831745252844577361901446590938130858157974513779256401785154621492528100640141193721863979382246964807975246912360529377762798648647914019483840706611017962184704675725689849877603914069068102675442782923462038401541333325047496427692740651062366109152625306220896716672089726284940370413001496313664643057104734391398072207019228475753647820373635367831234844947354333472523461684309752852268509690518229999461452075540279647479570852518851309731242675931561026505204213404005898242933776222921134825017681052738588776100153659730654521123825060273814160986092670171120955037827963021528959788812706297389489876827973429509078422090518907440651931286698578592452299138052907754710051403378160486168646979851194609839162580696322347502164471875156128103772505636567253519167249358689033465059172522892866035737507327738035251140546472251606656457315411963465126516546408027607305452846020782615964036981374623719472145997312833073548629539553295526225606235506553333316504693337181483031263497311433739970505518364689146977457504428440538830441724783246307999994274727711614597617738746273280016887650226949709661348103223925350556957941307165757754598225862354837378865573261924084699352098446510601492990207550726591640302108625723208353047618681826500066145614864450000904987692297471720794746953667224749154786508651851534657893028856347509672081752417187537751369130966923513619605509318246511038753750422155365163997037017033880929362557042840627258552793627735770178198442517417370081146165123660322766772671066058491623561484172435613593154525349328004855058046009072001209421019674706987369388779444973959978709918894068328355885386141627177501567729806542855597220596244216207415714187451543381808680272478075673371522100164018769051411982009261972817411446571203126821904400603302928497646901251447043064547622436222664681366543308570863623520474088796903451735770995283709810889185597918350225527030473067802652282684313751005580904049893314972813081447537883240513593453000999371601257187122546893977527085099698576070703419598617281531577458355435940889165262939557326557437623238774381611594685800648675833015930035024804977666828843189833139956127801900445012892906463392551480527405719465529015421706264328467534298230405126292718484273752557193185803592932837355960841639318133615161074212156528994909694637260409645251994478822814864004456519216587945102688166571098814952632469282718875468149412601469744458375080477297725727188515051544203212853199783012844242296866988752458762528998498203423144618133346199740675926455799088480094111828849582284822597939745832523653289453093089820204442436729458706157693188000102082806418467482680789393669642535918460367145275011317946605080969195466796633877389106721003995915179266347977132053802182915302599708376099323576555152406890192191334224940997273863107564246692443767118312136337871304382816275478831359735793279838662545158422501399640664171873744418757607565866887630256354339352197032816647865430337449592114825847899735365808982795475505047520097024626438016758922970966285695303047530425437105988032068232440318294917175251257029177354732520984471692448771349664983264826213992098548714005216472173167327940260833010281403897573643892337493919840484950794239746341782624418040689893241646029410350915305400689173818788236088966816780733720385664744282930377682114818450526406267661747192431526920897679283202832693183243424487582820044851670599270915034307815688976579329469572954421747169362096264198602657690364211676131935041716068960102993172041291943416578076742586588451585719724964781523324039235864400984450837792459971022134125604311369820647898954085190901618222131048388515302063383178733353584236729611505723074834307733370435037573917848217604254077351248929693957260501098036911468541438972251445042522935551636653481882895751658026020431773771225255809758841814411518784375808049165981648858195719912061698103221898116065801983726388162661816170174253031634975488009890613310057044627058555755510628715506046364939123722772733531893988711726653784337046501764044300429751726240457257490728856483266935329554453803283018790555808808420745214139697110272963022723430350444590309827047815911992939459805579671743722140049332339046054403594627634764410997913102887918631172544133907754838690231098815086401133889584391037165167873448027127105085945255996875736775413963130594057569193402778181045346395406580206523330770882880342427108989271157298613913640319627371055155841846912175629013864557498086739557220609649802143768182505172958101593996080951857075373084300831443315390662125020995581818292615596457029006966432947592999570968356078006367499195985359181506540343165849072663248002323477963008311721061942301736116608198696640011224889718633361306149363640749202912646487363982971437052316840380453520709211238352342280714971663916565251632468132898378646900634345601854249323983200046001265201824446320944750403123391887944086162711369414585501726357735879974202759975850068426039502640588382466684677650069997122322148461963747914757558585754507883570114213434843503493506976276854532625197342812247662845281826622188491514729854244423276404943058593460161251982469700563882046407041464578718831163048411198251035566099468288531156946905812381177034842397907039781047711352045295674607465723189662076705843080295349536673019618787960915909351994648598156910419646808874381575003402548217704405607551703097171206438950861361145045447448208267105839491566991745828475766390769830282563387460873612074589284738776168665914125560227366649043420078673457441865554582639541690917864439389716525927572063787021982793913081432579058919465068197268404729286902428220028673261730206033503598486180377694394845585693093473954714981413931964528761544151209342554086277590664023342648906672938022722609580141564267051810044245165793604046105590273139832906964099756272081887157215879349457851906181516773882616505209249242158036255898431877061054685631246076746586656859768375938002821791897625944454023861511655172526641675066673544555083760923838041563552079937961913090905028564842208689304302818217388319701123008512997298073844368873510075860121442241743147402907426149940497412971968270733854913475196155507690909826707179862371194662893813471928173454829624253659907100729338831966453414191848694213505090940677181622073510645146211578696746118838122093789216372890067224740774515456804710589405826670395756462487419594287762369740051332612327736953883769727745154567560252006049923343859634459391354280387191449472247490848049786212847672778230558451534843191230529050936407507036557423033213459810526032556459051854555126154914555013835063718960067409948520055942780334522866404053429502748221492523345588274439222926955574983510329910752683620931400784205701048914919534757890413516045657563559307919949974643587297374103310652441029843633882351843703161044319851749150394114630154558390136731213394320398256066225758416861410172151193427918644622245319312642758870120366339324551782332159514650828090996308719811635316825291187431836910161977315874769676011523487390845245767149654367087531866313969878967166394608881816296105206643698890059898161053509363585016789852692795544861935775835574489931935774613348568228241706004841786182321237415003038510688013934331098861306342851615707585121150957938866598400505302843140971794735548775260982705764388015901222001616591944098145489125702225757121098245740576877208491652218490835540274889562304004494889379044531175314902142346799041764292360274753066774619330294284681994553914178139847746375827857937127170947942398033712024972867370083811131131223261243164100275102108010322239084885216425079373594593968125205996327164562327105949596171014770171243440483626957763139568331244741704138116982058842241991891063752238225652928497502442178240149703786921381648418737549611821299628881887842956002416241348204654182259742803332289405904704173607214915541317302034711998499592690711988342944274775614463598944635411958674553954863950794810617258506208038048699104501187858800914325520830794668625080787331391203015065149208313913813068354687275753955745989899071012526974336410357439958235539133132959263309672831279541318045430736419071428503297586139456397443630605237367658558052053149507078811239782348445799765218728777262708848512593411819554398138051755642073546325411618364504979326291573683881507704711702330045915757210516339669279407189312464373491882479791524788951545769681132296150615960641121661085138832439956658577001239307388589101143030714666605189505076329392424492025406454928500848909600665932399006902141665746060208272499787419693583767613001402998601435829062556308671908123102823467028811570659789973234057670018822975231748474976873180716152539535812871620790634334639500513857200000843960998592407472557429431195897647101820317736476345357586514797811794349808464178444321458044534885019315990376357304219369567497741371502132324714614676039504256917802462991467218082221216021236066377338304043263281878771697143229835840638997606822373671749015347002344761197928415831778115672663734934032018611186439500765157298453995464697245156138129202329270399175205813067426728033394064048523553587125102518393034513185059827657783360298940125530356763927557309072177039011813317772754094722281253830963836505018020746918237869095932481412259961974385856967323141168180056679089784977978987704017636194937338629328026502192138652567652246028021903736081528026930106377224134893940573614640334489605692296972712737814401806711853904041005423044694838428536674916848205786744159189636889930877579524907685745140975353996705244611650050489334390734198535908380247718284236218944680553405645152253209936125771318682151530343175310680877267939275677999385447240912430993332393692211246587335536469840013406985283134785066969694489340653296793762012296764352198742899955372744020323710161620723412996046170991154026085040040944479143893345067448184024374347354909887015785724164895210311389197106155841466351762672694513762740636158074691786991755587726730576552305759903223813986984899711288032514916315727797499922207531757387110107657286466486839819826381619002353448543707561389694310502935554250347054753375584698852158834555512370807231816319603183797919834168884118956991349378508805504866026274705539071135838867113548710698934040978235091732396346911064839340570642505826642840916756740107505528854593432597574228125452075596459836453492734770097142995208918796026234846062039828812437134687748357113345121553741250449106225824428442485448092244200275887587468960711375728871917872336727499115488594203103045795324685036845925314531673712471140372408827375369829138166077489906455485712042946065394454307819296872431535947594465937117462349433997113765212630495181947748515831815449432849020836175040968030116412584263440236768033968411029605549046135912270465947065538760409039283253999664803838662187940278264237357643664495834455040635997265388269337063979307098164264035705788432965831702117755688282807946258300228491016374955612576837000755895580926085661103535721464037784041784425130137114289309724012305121857167641941552405139420227247012927699295079601824936837609156376548362191194311718905784256685565811132701428709209957082028072287262776527641236321232906273095406541273613503234231793170191701632077906964539808665972273241321041964559130132407743465709621539076914322026247631925133268116687362420730198438806097167617245001778635915295490352228837906241635560068157340312872929483972064639112462504063918874721642511384998264686825591036760786079316746035408580687679514003664897067924096553747736477274325884129723906007916798156765670293178739363750356662854964872992245709060662867129160907069029418061866847182024504759261957444442689369164532446729677945730562575930952797908029666816502571345650336213997788669039045950881492068339985091592510494733136484689016278141249988273319883068242616874159618379178022956439856764763544743920902531439947122881937725945442820931209265537235011639472848654714738417609088918581368184370843920670558150273481490511799524572936537678893005674796716532410219295251976929402476772165481122866353006357919631881556208360174572378323768920728213355437611748179706862130616793301523540766552725818221905183721100487299059656216713810669816738573150525205776591017007010925386657011391051592328558293029198164367851687239692627942118359739325713272843107655797469991088871945345300153877263457067909282282240411360162796121825534007355676438154667590737577818022537448751633079468930654268931638894643972868532907702439729226012785763618694602328006173270643567017210703212810062099978845899008479935938270829648590356312585947179540213897951954687013620679154105245818465713161045332541927563496749645844586056865865088248219378266278847027201325424514498684961071797785804803947338831040732488369269109876547860149941520770087312063169721575358916507401438171566927790764629688352089391366601501564117888754891119837581552090429598473572008900160341128781895084265056499466160349200422050494342040017160169150155892754757635852717666464392067953363049732238949229622656812626414252508039988000811679986174035152184649008280512103077908427572858503823639162243730663768046295178644227625197947731050794973394452524326497008418488576504794102581363381048214985673183310794525800328810247975854784448873179203627341267910155445470636332936717588328216050918173929537489216081553465478107559831377702356804449179267560503140958715041116743731807834499564743276488009298333537968666163756180839791799348678627239275232090391093707068213766591856126523041821324176011162801222760631846081769841200368845921660722402809788471149897870150481385161732074689389660449083218648883154678647037088410519970809460178969142991812032272151906618695771000517755516226672901248808661566488669544306975047818583244982414563683431853308913695700566005663234798195331765941252934108635096939828067777912735880302558898646980773369628326061316222031546900540757823784723106186416195415861510909412309706387081980788783755512391168168228542846994843779610680588451942739663409532337011727132368587501174044552688097777764831797316867022700148004423099027117124917460256608469496305295712329031084913570332693804353166574536204091905097950768890439547677343585261817485241879561305491397462337638371915025575007008797946978846255492959296435525999620976798277706089690727524973862068214566905638506467463031902681811427350065427520175118708699628520618342585168769431370724701460951362762028360151758307421260020286203934049463731061668869688163573709350313189723622771083623984675489286853992566163131346755993299576204452011308509781648765017590357885273014202347889340609892699654015110471754031249878692670496736111105477497440061518472071830898325383175153171247558869587923871950113817303721449057297973923250772486576949513584702187269646731875430692061225662884362973188048039171641829754622297187031045116272300310567732480446205700889343569264549088316640187021278223732248162291051821131015141774975072347342243449243287248155077545241047651999209572576540132055132707142590736663653212884342528242907185676006174518394370268740859972582519182597406551775921581357507817054348832333990045671586704332403615851781984458635006248817900207047295139809788193644906285458778135180445352868461124790844863074229650311178465491242002779102248105799664294048988706626298422809445321236084140902271186755899509350762253870559237815925396292302353369195744092295492875232593103146740501662116140605897975761740686953178281945443499648593069685618628422552518427526102402420307066113364699340046260418842542922933173100649661147046138153294669549149577261653458019635582128295692167356855301820534189524807047887179219667928219112823106249123549292031731702308730625407191544858534893971280411930550492631597941131593984713897409098771498453634545177987369995556376071026198383256532636530789396062627843141817362601796099442002670369698897315727467927016344866589200504830397055566902964341365876405854932991073626056142622310670767818756972920622818092769339596389762800254253871818008461474634335299527371758671392857260653658196061201286313226947589928050352334938012809206989342287106859318753049955983712233694953492831696335854026981409921445692231998406713673403705983647994689249445436667356507861306169521404599201283401589497106758280478692424752938369550429450098670631471857267903068320268861435152719982132968555315023572895988618709128432337638302672982599145784305113146450938580958187602697896519791224290124455138551911211533048140286788764004555868004093790649733106886909827654161905833662653235301730446200487869236559516768718954901428320816803792189131590035026922696207833074784136376961964026602677164291872606934241058327843713590208145582907541702936651872920546994248991995017127406232615798139983966105422997831866849566150544553739831811398886291393803599014123662531692496274756520080358012212766021111061633168270334765711260193969534950065133123579649479062780445332412530517324638268565591849675215443640660006753641001549716829960607369820584023234238459149975996847850011640181864280052361225473146670825971436047945616530391338840951208167775299665891072910014668739501585641397251383420002472850742239605221278553648063763620194508962457121037878345849980852492979041318964049309098840374366853396722834562859832647287875030273867399464316454717074598046935389620986538209347160210033285538129224660101842719872382709636860308461335890833227002729266977974036884458042544332879643230558816165128899704422120119899764800864061702235753708238106041670014638583149441568396905808908417287279547225881446801768002202355739044809833085075587290550614126304357710122000703045207645186345580711015582575553288206599839183153039542842095151655354962716056806628732969704463183442801970689946980552781120184515853967753148849682314676181396803392136788516458983388557725055016559212921809180713245869588139239978632814406508268216756169598351904165288840213223238965049899188988522559907292654102038473202049064181988767156179439485770198233322792777432084353417862590303644063394424491599265374798755424982326065333966657235172021494787772308741945816051226873101226468134632138325766998200206262739771653094265942528188394414067427422163651070463214890423216180345127033443001399858119037471898858056412813200159564037776232503119909197896980086176030668841661781414846077677683100076501289231038623785518287544360235673117801354447784577140559981990636958420843551915081614430360974972443410094038092139807110769815866637476945225115886283446062382071467124448986953641342848551441073874572787850813780174559389335599774782835231684682306391760246261461521040132861021659746883697571269393255838151175442399650418487057033734104880354762811251058172594291402754334298650980196740577204044724404844853138375620650114302978157821647465930749753208391839497530637550328765780729285247509988429204296971905936211140959533565971531708600887154635174911915955633246474091082771810692791548503609685042379434361047212893966467726656541650210213863818946347066546360125693054303856891373762929926467344016418880224636629267960328696531850163723631521121423205631002472253311173914578006352964511844223015236349995019098725153663778476203106561234308143488358000068040592502468881086177341871827264108539718013205983208829131466537464908042422130911679141346509914631053603217735816368700914596032494187524911776257102262026139516104377551718085851150179928150396839611715143325822689617928964384090179859792417257847485200682487938792039907616038822216389005602903198547727653748943441833230068248662007529941398814869713601948092337532326511548257616529320726986274859963523183132194026668758197409964938246064763637818869584426164755695461360220038911899788311523741567950100231851622148633712105919579056775381776711107670835000493808397958606343273827547714501646987695877576995976248341600265239272699710848643508577951120609332269106360339460017645128358878892255528253286359920141817928950145244877781214125780199177155307308098100379547263222561518282198178172313208499662615716439302272986547995187532938590311572725758879909421498613456240610521837765732201365205037716419577518878786242464005072906147692747152606325460031071097911679781729071399377758234001598321855404571302643447843723752774327310133976616550562665795984796263404761119812435504415208299155415516245680854339315393910309767061454296654286461716963030556007069605476382418071854884238690526139542865815739353503274276534939655980325352356525540664550061602102210964407662157216416601805006182377277641826716382775284656212225470459605942294477842017093558494517970156162307646599179483814547276711177638845163650250546421628210575099774977417232379788466304116668300192411613120124004692116808225792992606004959551320749377914605870097095902190074118312755160653683635876249932088141918255102554224582505897736192995819494224831268509539454786037634164989213691091087845233956437278576215143846164852424474153886539614517753766965933211757527400989453215039481933381542975761872291285954067621042262797733557179228407879656582510205311566207224367003588277745186985986839742819577094761928297439661033784825037487165684287799022492583211609922028113867256526495824716883738319205918333909192607185082935365558499870212751377744631347392093560526753745691359148250094305269149354948529903136181641140778030489454736586936782699258857551365796661935608334127365733744031963435447545625981038629202016233661413060661014922729965714535061133925516263219386124144791167583858689797128515879539586170884837656210479275602120093094310689625227157310621727020189580286226018143620517074624859748930087395584737741928143797799829094867543126982757929415197538306850580725146348904668788066001629942555213859288989406063591760234851124608794836571599928299523276846968591628394940132179943765916119204299655651790119514107218105577852055989335412969673861137352002760791614265713424219023339665071343606233898195320985132249102019693843556675297074570810401211149191518341758641038725850610576899823306128421899427033370175335182813850923818723784073624808222220254386240364979021858266605005618141400220269509015791996949721022251447603980484041227275880497326718284217085251423253142093876325033996212755070129420348477882414193955326231596616086041088049270943355188469823879173497447833018156274896960750522073680843684204100838642869489130361081698512999574116979557026648629920159860857113054589514271375346790605573732773152135008409314813348935697755597651558361828539962154683376398587496976503650377689288903693606581797322786353601382381680696061968304682265908408229077445146090616006828019894476535378718721556754008093844743532978610411052423890015431877756817137689323294142472377249138167865139746416378767862024606829585356278504148446949629848343443359029402820122449920110381945165032702338702404034100917443355548951579609647439508885388501555433541558227725187485524746294901785871028456888529152154268453723512699904187186141085584673577342753697076023746519708223772161326423035644578099853994758519039551812386236568081967266455035443268429972088332949908905708348372734803997368797465839048005471545861684107555312188143191495139751407236585935506269930738289701205804149479353537008339481463221925148599311174286836598249053130107755875767479653422308595317183876961464167791236414056852448725202067720728700545823067241595062044359317777336671191057880039833530381174806493952339322828996749158900689452959022985823345412042137957327703955620186315872868574598053829784561748480426184411771766965975391316242395399259150961374597710669560278241365831266246564686580990014637195957948595258537331314254018644908878366130461606686319711270899456489241970833706367516513277225021913350332226547512935577745551016217654266585999329032629903889321083561523652305692870572506504019137716174835394183742156125629960018709609708451587415032361165020197399749277088081807441244486257123984034165601498038270665548206264737661006555127117971419596581685191085175798781992642290346178813097386662724770232333114689301856317386860352650429932416358560441977852252383282175096617035177294050823329653298245874646240039512945229504839202838061267390915441754652244092595006638802525907556832776116278863938365138361236264844541958650862512113983357568738818243280174808010324112896412764382080809921389320432473706618059725638072495053066614596143564614301825741057439727557949075554939742475683905032129983589923518217525148979527196786707625766749062678594490376403634441720552941907755591487728724491043944083092156143296573943646365760517050618914195582201904457274018031420012156581738327682398289853430046361136556046731345968647405678659838954282200838697518371622351804608000780955898604004093598545890269789952809594991384357315298028078851935882385501568728399168648362856115485363963098030692362466295041786558861005877704852687750254886813341165787175087658948330220720644699022549274697239925460881210642386306008532303974967982967531256674488578435843347509509699379418234539881510500959792149049176565464152226545300342653345957791444189345770536467917512747220493156086502760205670956433728775242383102452489094361547773470119335007812972566888810591835117103053967899437068029796055828246732320586910978044318325479615545141379182350475446681903635325512801708533296628023650171665003616238118803831999007921842703758603063232580460744629771331981785699319787660732134151947504541481838340176937670505017883697377016048288557937705259689513467594975010216588884158930576490298052893790765943845727409172184489736459910409075129801974313717649816007002539326869766739217408224609750990700496153954528326341267343518272392891582618057022933575185817158079727046080431375539708079910307038712662445515832424800785523833564027185000447953024330810144697408266786807507869895219699250220248086756460407049211251750166372428232250594952855725170728830601520701677302073924718018293269198277094715044155569292685567866494898262684316330915659187084032307473477831698772674864089069060670586673426031938857654269650985225755421050616400155027275019415914997206251145761020992999503343607883406424662782474672532213472108048515356426098078893723606262553338014571408245567409248699905701908664752926336904077270533653769375202469905398957192550770800767808380793759995575010280820870898178490654260302651530270015236399054058511514440141026101980293819203945146421585068397106090855073504214287273885241600233389854731541397569338783665508717396887971608166052151667583341597670003237076553090576075269698107005581287897036641089421781106283618492817780973671875596218484143169224724778772844673541380904825127776258869808828896812046310545506118750142663163395236913451484086375339779753585837298617261356152219303680682545179091146689999958637594917219843130304464983981624627183142634963051597422462924557299520212275724958544104141686372710132744856811805163010205291564820678074560436043096123595896256880751974477451276448163954513832295000069175008437660125762512500652435243512735741596196330266000023635976966188042765895776055198374133945890896746403101179261816562738389015245730194766834616101839781898422016476445321505479393469756355632572304760992614593807453700449737964982347750672246656499176412235883343728031843175636062764284260376854787071420615336314095527544833498919735801719283813332529230543366448408816947315763849892747295180467563530045466106344633669106291496642754369683465388633411060870886656717835606972561379362365820925339231760350498650745546057987561179741215877524652783482521459841025246208858106999310191496478985614244006789785714017685021581899615240159835919548991973388694304381310767840110420119123197312607729021356004595098781609943902023612628597958771322535758869041467662737699306206536986495356665637197224382620414560796111844230600605160586784826537645558788315817516283919834276384430460860561646017916025677949720355876108148271408236914683552157563396528818809251484175836557115629365832047216998228390871340282162809312765485341644871561238022405812934054183319157032073119009922646312087193831470922248682261558403257735664753061332880543192806580437713864588554015023574667736500291905661022424894160416380996640123825467037208860713515612857017497729374167807997320099024941630637202014631386825914772630724121515588488004024052133804170906986675929050270928847794491068477502905394922018679109945272345898610169421414444607534070804723050144194091312493580726598137180441616897961944646929879960703979948696651417390130166570243412437225978166881994531020862477591513843758677268375426343833757011629569626965028212003070991214538430856535936329623105696019261561661762995261642056928052163371431479207550481220495208030475567094551864827085548126316796828978347028891264481921353144283306994004208820351592473808575467171513198031098175998234744190609345654545932399397449538825234018357362097626437737611565912812749996643399178110148114904203463322512271569550592199460149584303023796604759270580389991654000030562749953235623167161273072000260762691153298838316632879331675283110967838272594456768956234785948505179507210708261506797189785458156387741536770802695212909759358434113032765557833885681633542215521059752365471506827137834255632279180187146065025828669779980174014313728366101023379867949013835222528977037076162244498931513373090661509799901490926179281269574506717782063796954335253463331029675162850625607343321713344336742632938513282691929334309611178305995528256694430018327734626099264489924143531442861704202485604623165728008229443449215023442453615027995664676025248207080696870144033792520138420724300171088652870906556905516005742778959157008304950833321320693976150477340789703136300619428838988696945636556139565114627566636306395779274093507123301715919836995854002711150327687835615567809441855903185009840536926584379282476350186432618603672117528662555771324245056616020029722137441905798038110029631944629525549570415243886521330542500156882976738987201341838755913959442676011541549850513009492285228575910947018095556274449747646141797713932975974184887741269817196099685530971887993924361549760528966612161419204297434889622446467918787280256458775170404618659895243360672818809306918962356676802731472950655142826393656114203635183199226351131585799550060838224828697984766373801869547113430952815788459298933716591783916941191228187998602869219222001061614628934783238400311573294619394829672865543351416194111742915721146456479218449578707662605331254025724540039832983555393867082038089941577623540364309707210343335048169753700213473147591223790846798844525350362841812751424074297818923251354983903959071094338182992283218107829125908155968541775557897555946053088957738045364991875136675218154604619630838548590926158906142750552432520156010594392922483241515876615547216794652994350346895094409638613133202130488336383335176973096531449002420562928186873414163351333908073933482475038629455094220835856872712915109989021480780807423639478922829550776848418655421568425285855370778646368020999838900115276179360335173487291641779229424055447984764537308788171782624424345587274546689461987018989341505287699713961425596327619813587368699276313551289687724588600646112576574025431176742655924533912681408362336178098755718038297827689266964995248192001363787952419254875173304601947656201341380553317260135778847504708840365999914570146111517511109095945138134548292199636119364613999964641479764740410263844580600614151483212347657098987285688050361677904209426355987155895432696973243453966569107556621810987662924587268813743351018203869043997168053697755326759055117440525274813722404149046473538112170800961852562947702049064307061724520726430768536979320156366664182220490338974541796557066029689210716761632440063598611829384606858583477048518469575766311601330100485565262431512644253730489759461263254988569617625938018264624115684299340050579250987506491478995852155090392766691138994601348291485424120676528842096086120511570810546206440776763303411622803370320438174520948897713742987687074737087588948996679171687062792575489345096198644212095984730091268465568916455253030511017787430776991753705579880440308242679669794344579549806142803870548735419633494382588871824110342203090136109701236718348801000056975455512945362335386961528527628416681694059237386978641886104320540078441315116534349078536697253745371160419402625312557154981455953719363184330978175273656391465566713557909165480041134134815800503076158422675788423423498721585443309493136632771633335367387239059008958319729042532820119542737256101166019299680853277429557554684445401716304395216244728615624076633122600548788144779422850959094160490454149101597918391820664325063626052293295845252342849755791118375108445220490262903594315959545618295288438413721038156076871976125196002555010164130559272455938179077697833899920525834802307702167828965554567343327274032731368755316824174005327127947214461659783972147819329741670468095506395121310541790996948858899199524882815250339806219795964190239567897357834161640699158807038082183763648914331332948651941832275357531007973929048914623526865957952990942822471535888721570591096784031542846441471635869981644112718549814371572705261344568265191985286708575924069630287533166527810254758333901577180881660352781220012232827178205713778066031924220549690466167266251990126394418247158706315362963909287968965091401339250375609198219844365244149466405610557439184939675924666950008660787532015041369910698275638614806521332908698181396435025804006155033782137703746101312296700193319223040190088300444709048506945789870933240877023373659602789339919032653446241622423418478717612227903052694162396661618260780170285089584765758499582203278966353056813473135454348089061518687325913327295621437367194409189278827927011889107892695217449265301433961121843010957210497187605486595828969633916180449723826433438645821243636774804842670210430466739316376793919399865007511681419938260907912967974980217411732551927845524836664077372308416225903352792974264628797867585645320507356325902464109273526795805377463271507378474386535263828457072744845570309896079220721667754500541268779894753622870963359785872862452521682905189339897958272933506494275109277122811946449259669514169931735323306270876996877906480328810467484349977700200031931681114023545455971561303907264144571945962817406155134312581894631712338530918010777028091122983986065179003807851727965109815865112831627495001499264270487648498667825257805125547685044323647201997355323503656829275517847282654559041354412754150701744028303539347036018556494819918825179629578271330961800289612808216611044300618031941285212552937085820942831513095250049837653812861963312648726583270065212574077511467891831278692428485103156763027134675543495353302146061315023563611927369520974386711064579768118900897599152641101376687887165692033328927974470816019627794584001264696127175228458777656649265895730706074280467877852624949780433590522925172532522150551430715896086951725317727103975160398621982201763650227926767081484040884069410411362613860900908323968485600967427627882011936327600157051492511476901154225376949876837290064989184593341079888621272392579505581828626421636263004712112753300458964485663014850407560194724256850987789049937645868359690663991385672360533341016532287005662884388060867348449570213403756576956881499555931608805889618376362140538035010464728401310828114903340039199994701208385320084954823279464075741800366190355868106631122996296640421640154106076630858336619440355418019278977377164495037858932238717740667328840244187598077330320853732071978155243507613263344307381052980115733299875229746787199277130731381567774323633645429191713067736547438026866318006160633600747640785697471727317293413948279117132994137754586785295576636235259876653799795564798783119662237135912670410780291766464271719605096079998180780067178584085229979595869580889301501755632608146316186462094402508646397438717687073507703282972584235727903399305978108477968257025215968249049048718684847402129327210127445404990957214240147685123429424154451045330087765389169795777246388844585990725306393894639598549828001117488309629347310489215126812835617414656894784533684961745675930995310466991494874540353651710230992155292222346106653121728521079799342252338750151038793972538309505504024580465813854132196634834494486584290277731844261557833718378733782264528327653860159507729717430157902711217921548014554106849500372113111676514244353252884010552461469760159043070593455889485342659942044888442073041181187174456581462513221944505965081856376151670143136609458668211970081349009444940998877371369519131272555007971004892106516555810001752650674004805120891003571190869461494855321414051382804551256421026271112351152637476495216437943667581962048116573244922863488950579610593764182480181633792829782854398502131013497335943432400095542194859501345088731633577328424906485574198455195204503708411963144877217501232615163530581469127332968499199297294875122785249489990937645565937848296842132582389871840179535460281964388530508378217382500814965720479879207859015042717104539146904045698540764522712103174131969101995084473377984469169700538298000789477543117281897962947737099600774029551511352016517754794355612766614456251154665060922122288556165317529973482228188033010128449795932812406773592738791536311025881315514837938020881332752380499528549315786183705887739986007936044562261282830310935940502691241548264760760073044232306502394321418767253417337102549404013200082908263132698908278004229211710150367273539341099021115505290855058670172262351568022579453896514888379202971668350691046500719055354009813896015208708961109262761602050406237498861529229784723818766118867946199239156305201700382785278901537898339894620691010284377084893375732318867592390579479692205670363854197244805940435314126239936643539434488036446456996925386929743089711592642673120151904901602827208423053669840455159013323635942822399886337755977817609162441984990281166742322031265313411434439182524195469442442258867315523602400458404162191511735752460596309854359114876060534992405413825056750873996370782950525637266023964609609616671349048741360496698388835462973531761837118927473294053641363594368418919845701953577127932817434424725063076462736991416039841307608761502530556429668821113918243327759878509311683974909827950204364306019356133306489912728507846435600056651844909810459531528707326188058916374007761859261684805737818408118862734713577633742811445762906013461111459088873925972521682641394441467928538746342521031812743892872514250445739317024553356740699645912806908412267847210688327698484725206882107262602268096232457796953341865713076805240380545464409602718300829500513141207041604385662326976526896958079396480357831809760230073306798550737157001771515332147254384544142118307938521374798199444165847165123776297312677177445831354864099403214303714039111624406526221174404282113063882990539816378951431418583962171510973498072802892842754752017272995806896948790179870805376604201669011224184532002423785792151754918698231009652457905508851866410347991208673489947039254369797726300763112549992644426949936872268106329397152608494303866391640827069279229497307593624758915039133986252220061276978358451006354362427888855795833452994458401124639893691306570298204536950630609685839758151530301860523323106303502308426956349056324500435698402437770824333255952718496525472649602940183432407548711178440067742673234017358419965894306035548303375543925617300416308744316362027908180530212575721526440837492224915014845387512040274835195316644862648790998982328863522097695786734450879687975206603537089058208723923539580033106541466915595470858091808625893466401233821161507113921889607626495629841908402270709474847242282501656275490684027997330515841896053393441750094945300524095596736011994699146513407210206114369993057464243296234350245809452752260141363040467114878286992252856246426378005658586118221865301400204136518237124904118001107002399959925875302690110020156561439486208377019828577957694753029064798375594701659553242106876411064876643250493635693803248368811098106878966344899386912545384908910013347567502343306361527114692499770718691116853753399819302047768513162788453272466491518898880365317149548628916749197864335476028975005902673023051010041157948393174545612196885033579724256300951858428762113971462233313793311618265234047494435603479702224215438868671184678890972457592891729655622210916094916948541425021110730546656107705400307396992194677768105449192447660206098106282167529835509457532184452459248460680081449417061496758037607317711888432343314144335679650963019379131737024297195874628101140859657696230746899671298517224333009631714826804443692786757691755276257311576379426679636301288880318752160325768155152475794000823620077547949312695389477277035773482175177602622720792248008094306200680552210707490946666695230209818894718975538000863091996742657838509800697615281738353848655282238641999553375415727763226603455987692958649702566809873722303467665401312087805806857511539457237106065369722782660372577621767623795285076964315501524950754309126419425961742083440261149083916599879050664301799056337795229229522189501129769842334339357121512450529410157235222724054442491810467091038072824408963780513713285276198859793506066260566179728113449912301280281847007518972565385868571546966369640943058700445711744131926528725755541048885868299406305329588193130728645713897256908585754691930958506885249522995923872639518396062595783107534770672241283590032914538962896347320240907316358367915282074416079872921265850366126798205301016564715186816184321225658946146910792683791610334636256701831935692240988808523016204468499510439730815971096302789955276416532490062272823582232938674707707083872183965787582584938723396674789312133750554797363869420403682612874920968421600943130342982316460210418077416247721702034172192987563933051747532139631660440548680995789112619522993074014362437503852488699504618091091525575724318325536784669871822144127661109673410368712279312996578840319904293426158618947236344757128820157121117469582256388551867584350296168014727902364981333018972910881423787658013830481358838311739037290132824590425394017540866602878638619620669735321830455938811693910359878736773121068596473880099896993913698948159753420437327130511597583786943095568191320266963301433027263440043602549814740090865852771357910954198717838430693219448025708550373240478377765678537963840811166966909602263587708184943600070637292537369305921810058967980218302273419055076261601031123562585485061701952063475706676761467124522879568779186467772213501371002566175172772791610048049801434303172955032090591794656979634688706087736697936400265087207619415645644062265176577927185401997056781857343207874812017601869020379766094853747036930418947355420190478529953203655938876187666956619360986848567139627760558086590752657147018324344788694540291498500297464159564667855126842494896579287542551179865576988614208633390253404682772526513557009696636386454483343718897588360588991372823164433697113388466369137047914828078551285444300744773192439572299682131885817356963200616340798338586293219499597421106556617585005666748893672022665127905288423123344880988590222895290783733188505121435538338134966631035076690476792580533056419307849650801076782678580747848948872385866953789437083713120473180600597586716038781236343162097076307391646146434946726875101298924709574578122970409721093453400061925076027395997147646686570862551529639283150769005833411440555244813922393721645579217526817049077959145421533741979774705504201945753922330060444229572246635702535934868969089842184665215203459681140627125053437033918763269984422503207631389437580600544861127362051669860496791039106841817079917839909621404304659241586093667454249403193426534721850761692405892478535946858006490658340037847006915027262487958831461170725710961597449392990264111366229897250612905312480649009219770126524437225998824624502763998985699451991785594220304666673489379266702988879063613996269394113980830188390145995830034902080505521713774502172019437942008131111535124165978276824086486677495180452265404130111864867652350664690497448473831012615808686909052945723466963060758879024171746508739164166071238975569738998675873300748458253578972261838182131722518739842025847881505249917787197953023617256151861040000542657398736752521584222494097806624845054442907787537252949086804291098241311675323186439418020599057012990815293691021859843544580992307266463474162659081991203599830986724538279219550627217983925757378367404625574940983608693681753994267836330703974674093115683414226909175408019616356738762306699808736290464154117167337036329048471947316143121678555507248504503259080743946199623198628730802688507793396262497773396934132555804103551713194898982298725485421126749704824672651038334550693560917080402230693054003627840258252787462330003993218713424192364136759209002254150885726463711319104759353630003641090198781876288864000885804416705996893874667679907262209838770468070242587905421032012994424099973992308129241463820091889218133045894699657904257887577305055555916333632873557117757573484422128998547594385290276382541413251124096711975158175933269585654071528876480683198869184831083403711183937759780008020698403652607246466808954117943262096172799326432293603466698437311458056785521868787975518679391113471831360066511725583813497218331640756999984299806193172649274490454436473423903846506493027139066697922971309992399421682670187164097306990358904895983082681471288719489794660001571832552743547816813327059882979021818139969921601682448791070011792669172541890109120495941681011552786360796124640169792995188009285851983495511906840102905778477224505939239499888940763371842769330209885879257970602254326325606131180660856995421135109928169794553434733810188253117189683007205588804153191596223909661482214746934042046938240290571291987581489316815644042121090907652931245041101320626317548220780089054187097802348015388423207517396447973939723675412134427108442942249072917078407235957695736522884708637751849408338650536394253434354689222782681323247171800264711880540720274555530132207166999105277752771222907658250368112512697403957251061690426331415311576932618550376316215345539670986821257162586153424865901614931962357450586126063932147254950010393039521371956300546296916849342971589692333871896025663124345908767587627691701133454777838956133376172495772259305562347827377597991942953916740241706644957010151545180568131855369450291797432893645465175021192495241514679721996184838740307998216551203368696134810811506455625556939776880389694027338651956541386801944737340280937806615276738456467245738008292590559360389132007159875012216863975265485485751472752919792814300873447937119400119171880006196786081895828324201313927979117541192576192418790464348403984281861654194498515047704582442284251519782265090281055793820772234013743384064192655270093347437340100828502257193045772057531425967802236319260740938305393975015451458072454057359952534551159986633182425379149647081823753629593386877551241419960075323211955379699690106314924979429181398438663828629370611033564323204134392297494186645237290001584673248944070926686822426898310926214211385404377887464583057799005337521433048019331014226945101391116002376496805506587569316834544082189720783267096823396271371259063744082957327291675479772460009485910544040614412851409458937659499674135451720549934444680649361063148003763454835414341916012324424114029404777273318063194288438946827050383492915960931469509788572153668404994241500077693129401319383292114588679068910488400611050373478254397185773981527687251842538098060100697578745225313036153283073962030911466235471777495780568918752565999042397471979686671065553674889874963410717136840356318734492085138474048042456165717133523581075087690451416290426830313681252508779626471838179183356087329305428822371960267223429944103119066394403837976873104490974238424159245744971996058248163065942598391302680846885834521915905708794081700274757320387937639330462925358147746138442837046585290732812041309219568724667153823620415263298115052754591873075061221569512104769141526467687780690671222355165852245825429587009139871756106866596929779317192572874527623680201137189538420535004588606919543107906611533666519481200882049857198866402649962998165209883803884268791383960227326318311077952396760300484501341075433499364506581711073758559197447377739958987225222193101445369263993954119623034277145212082464735998316933628445182021597916288351063457416841416169552670815304901060556506400601306172320928091607966488058198056351750029199743178621707963733620621084743570776601660787061603538690714528483335720419558091339063007960928128386413060420463148540068718060745786719617304742394107215220533009352303270588993852659217806944366185043884524364698505964421351001447829317549825905826666356473217293252838673140354224613161830760704019691482909420994669775446833645625153999237007275938249930335322993252208179140276837771920288185428928375420804444646778482170568223116618890043919222598225729678702632165635276326434029231393688735497089493356149269445720021088851630827251763649581265293676296525914940589657733450432529991971078856139278943886489669007146391402137107398820349502961164578388020736188814275765249870142663052713614605410068641018255059380143685098027463685542376716389510062615538873067378795423957759110732940978751999071634818624366430144180472747212943693849824103227732051344609457963743484388394687945437684527122038558234766375087315332959005813034206269516450942962169179793558752136952123624897464605405176744423524444964414101116329040340245694079460078412271626321533659159696031386954998156222316740756239082946048021382985861839320486326375713492939868425174376593266079547798287915876328514088508445895058825471092496954625697659549808956956751226635327848914777669670276376371850107388842748790955894393346565340655693300817296515374923042488139822440409546457000446030332483944942968517223379979638308705701670400026047190478655044677646711848756042765599113089569201399519810255874478273732249824052369873223228752812293900572657212394313668487661486147934146771070739852138137195783507288826903703843861784408008126754061965103504175714439072023488178162480541830343949247586752663847661138797579869588506237617518241277371886740699081339940530834441849801057586268906723695705638257126245018738389392027713857279991203661305666939899270085635466598497621942292452257266179447584522834637582532930024638490480969312541698835766236099243962118361080239183705357800433322758784010952469309791617431776157580181126131919829455525348461233986113479635484912162758124419904140613219378196046275732011146022663081106917042414031781587332740869939898459750231099486722988656438467334083051700220140057551396254548247996418937295578328636733742280037038534008003030887261556950006978453358784796421815984593969144635432881705691235553734469833759390564616313750604099495968449726828559434871026521216324251590176125274591381926672334191373143743728178553244128115606648640074328526666274650445151205442523350999518538516897250979116707280263884399381214801567687538126212754292322951109789183182809431085135297071092387196013562254136790011534785411587815484015579342932826736197319006177954232509119440191663305440264751040524297312851176160896754387385044085133288768275448887208935597086759285389466541155838023960649935388948991273311887389888511056057753874997138988568992296813396678563121198401584664316403379652362809863747664073106952328093934993124419730964497531390801186613315371060570171390425451870260451588452693468382910932747094926161077557630917083468303293456666200518462734685232960620580393156611758189371723347053161173190105220689113272705959493318155339286002077321199330986530653011763553811855932934762047973956928850258411762806300725801759475191911903528651022985316067628932464385147165625812628525954221192621768288487793101013169794716284007804501631834251822893412120548597877764079327975197924591209038981757232969598595341058957442568461130420690417875241380502416756657227494056054696946826596062002512470278336835725045321155723999110242142336650949917286882156424616292539026170112584366159639931278385784819468303672525462753715550434053814074877217716283792179201948355568639055852620528065026845873666643390824037276342581432979972902514464637136745349609153252405507105025246870489144690488999844626405218420038893391080197467080115374008339716086282157342322973440534468611686740300597889489475911897272847071465691553003248110442390267500864636488417384699713211061103803816355254853121961562810749585624389226331807307831818960861386681324225893373196687859895669825423142956222314157489642586507217913511169475512539943145588115435748874207957512221544476430872899397802574816582497089807477169583181430810434531748491750970084971832351447096099099871328252554901512766784249545399613495807196863813081352699035196864761435888908304885531652990117432200309975983295252708845485196423441732595990312501165980265643835254537264114319416842156676647130632659180530713955636798332855076631412383603074194026321204476144353448527385762393007092766393149590553659173811006776035304459756160077911522785963251076281419644940704545932022333966236131404347412062573111605507028243436409995273166524800155520023828354709320419019779000414572238894190343080099046070807885147365791733041395534464536120448803536815382202730467122308402652191024989679579616425617305635048780178891977362680866234734716442217816285034482034544576224082487316813981246622617687702985448744243767501905190470951779850601012519785216307141479807817853934934952408930212598389582428157465947233061912047512415433483743932907693906362887961382029868312285993362783999488479684724203774162114033846344221961964867347491265536358989422269760685553568598781182416386049092043967299429891144966237128803931744376669727277191076100170440697078850438949992431740383726239988552879315676835077626276261548101313944814236140980419877960694864085036557275426938996815494427492543545979490313215747184478074249834768018273343929120969050134253197071285421260311067205569290471559669668917525268451006062931653470919146342073180367719280075079719610690954591408626385959666663715413037137443496907332233530303525402358165179740343231641001359531208058749202032132795402505846570241115340676421744534258899128098086685526067430887374473332691198627357539036923404087192249046316564854714357142324398267532183675246251812352503022739448866373449303000984267933001143263850121068846939398309254752221389633480363803477462156753933122100728191015521939809858561309770219451106375470961071192829674815186121920434545109783503235017583520150377752031068973552801047704830788110061473006271892890138827422268833731424363101575368025258559001967834220496014465345398261806913584526885148057065280219733086537486989057064445057594062973794856403661087788893380861007330450249620355515695009767668145526416498708236891810095802026970785897534582786683225098475134060711714908573663488721922980348875433608573898103055435553248090127950585652907067127136077994534500240134784255135009316985090921091850618148970514732292215640769000358139173154015024228399862849347882222406167667862592102738500884254892349258903105220212213378366179172821441023864058973682442607965713319134086035960863359732054640051369351082927913363985248231567206367733233873221472259920866407792929722895595817658843826364274163385332631840702427331494265607918255174208173822551833301202488284758839129198762302284862059286131149920018048501658932558552872255082287225373644794916342474405024872505927328913773475809688539618619143933327993194646385348633916205586735761529277964254608149732126961289589697289818427368933890275958215326084546400612230355579704912778565405579568485129335435679110701677135842216380131654808928684364136093290628985415115216910275772029608186488694715074154287550492647941460429341985195416629947472493211798952801880166752754719309872762587753981467247231911997003659541867549468872538963933135712518876298386705800109558298441840162755916917421061684395569255287434545088631108648484430821218245507460465024874124233532166704917604384886980093580378065417554554651136752374154202281259900336512690879118292614335787970742968679472853489325549130536637783677271784903936879614076800062468352723880545956370672465497294270796171308289725400706464254536845019366619292332152522280943976145901148766178526611738358643644087486085513519681694947040607483570660439418006988169249359787801192604137651904311967980056552740228350212340470522281180319750307307778559021210455930466701003750710166665626406031460740048551134463555058118659220108208720563148831868406342785731985848672635429341668483968981369086846786399088378165420552030247320480657311328240108894915007193291194605426663961921156532137200273444502303573232112910815607696220546334010804290646952082390596475766760010970388171414221734497727787165131676007416889628564607747774286001336095936442205974251009803757935878669033432248032542971544090800095867093658090971647374400923552262663268658211871549734490991219177184486851161022613853173955777965028397500057314024742846228172890872612605492775442055194323295102648478448550670676658566119992148017192125767687638135851475830030806153838551473395448597642512362083997904506429788712662350219241895100408561445909094624023072642026797177206110451224536661342119514169167767807306044564171336352294542939920656295395707404314349416339299324014368069506457036714182999030857701297952291723067201684103598722172112804085359131963368703752401482583103082144010184623985955261726080609074440063472978297781152181183680429951992324803594860495987616527702677107777495400764097123104598076088777773078731255010192232242048967518788197631667870395334164131534489500018015744735328674958836733794492963801115843433538276633397421070375667410100639707246289368965513553355567981226783867551465875805405108042315797745110893078340804026496287173187544003779398806750513191972954925030944509524231610713251393396559787604218428017034686092588476020824565715821674746291635459177915037952131889336745115461922052000340904773542225598056930531803787978510538844792546289287537452909068711125210527838963961177952196900429617811871921919436455460317001847270387333445670460802067274499721710506439611408105579571605858990354578220216092849306883923481125178020552844678633801708798511200157412627756270864981105547771298394525921459915844025032470002229653239926488099087251731660870891243134601597532718923851968492541009093520257098391796136841880174741397143518730907638148535205516384505359812206453747506269582677064662948201026546634678166467325786324862835845074327096755595821982976609729298898183384400470047043969300428947482019981663749111952641457185623767982013466297997716939632689358629794535384784573253247545823354442418406050891132995097685346884764580992287837201350866251725876869015285700137734694607450391106249599860851806927210317300411702791679560223308922416636571642753237532314930617443280482872460521150702369827631456889101322708933541907621090067640432478984529344228138031250857860266742872076637828003807431866518232466638134474036757003151791404075363178031393852660077254596141611697788251953114583963967655238435466627913929466859537387354851068719318662941059528606741864554880107370502454625688472398093755477787065317662381563235819465906982062410096404023213929896569666338835283676363357840932482831216818572913937827519895703775538267056840442223058096206669297179667270227928528675189287450081295126911699880776679672417765420152052678393356734989187279269518871349479476884805511529430630072666398164124936742131732698489241256322343324161111377905097815464287106831621959693487929487426309649693662798747954835065129494213989580420822525544098075508936111238993557688500796568290046401600260981935558309655072505308737223322214026387053077933578768441429858538250148461692879900152501990294918775757173775679318304222682202189665170398766956218614351542580533270204591438199960140794002303568528469598454795378826548196359247700210219204937032408545777525747849905216407272448791926762886699991010535815627123425320645044188197336918938088161842994731913945864553580108709603269384558663686150709465323243774459385749813152825437264535362105237778890468916341680413874294840500791472345672379789192740404125879786185163790911187212706871930530980447347167415669545544767417046711985201041895111185815129480480822154110315562409165275948039012202127567340907721246566882030773041852208823033368342716537742083907082955384148523271397089276789198522994445264856379154126004053834337272889117599806139063797622535016007233927091042522975690917415072128648475188742705674463246487276648971469646601432237557645413742759881347939845285580902220879803415693871529596553685072989371767321115891717122317626148190895496353415376480538716998975191157154245919595889176748603266910681340681827146701474677360678242781875292540323474059378003287172197797222654125152046992394468274677531651497964148240981807446201829022211998800060847883995597079819114640695495192800358622341067539866253182682141560141779955151651623403484661637634959375843901907059081512872987416644471362458716499328861283811354333816232548114620871019613399230270901921481736263168140183100054479070269658722044343965443083751779550786622564936476509213191513014791720495243279082842210430219902417230348256054284781589904692637766887014545177922511315295548951649005882821887682181243302428549896910942543296196743585982231792683409108855019782469893337570520599586846483694066750643062629885566723444510890694728742581673983347054292624734065668631503804688548589275889540807489587022793558671431152668706569401818768731862164230007995019459662606259561559800140977297588025962810834019647663257978758243548338466266650314549809551231249104522586944807373911407676090949255393927944153270642611098599952444935854048048105030027766798412075633875051184840994769960527900756663823664285746093076814120573208346665149012230306313699916910534237184120853798710175704247055349897058888410171268430911959309192533107511919641135990165252554520484530822612612164578119298601570671722129459625000133945193641101621391063130529204174268716184944929002512684253470245220123924576520192437304244476510599543929432929439162022920659243607388189640375503361586068060241376042435170240290044730847902372374136193325369921052035600824964446016815457010022355558093351708213308913023180041013172017124836924008704993252266092116444279678936202536882264448815936523144749390124328728894145326180700955853481389497681035726710350966078721428173350128115558979414895759608964012733236354709112737452515410337879221525872563265270291272037461471445574239418140195727457415144020474480638751940920080419400686824770399377350415010487287330759311487313290606124598120377174992770133002375888376330075958071147068296749724113652203804415694992990541021634410694558211766586160040669955610535213142105461940668019592453100623854551960878982690732982080108007949856635137029423884812151694918598316194924557520158671587379459147241659130411748676826176043380143174258070064530577830335347786027332326210451860752102727145996855397899019950682565712981363365927854474683461316776399048840805368278687691116148972235249616920177349008018630276855782347382327604665602497111647967094075320281088770160665521628859689617548979021272319420959944650929633718695734635152724525527602869361040877450460009234262922937240451360364558548469665064082887073497780195182109655905278787450936677135374788595883325447091983022056996208256520267965486356291686423235745656145000599562052999775529048926051705899172539058828150410808981838134169267157003663140567089142966620721551935367544422615763819601107237836383490205510003845458888551253449040290171443113490765277960957006201549261497189170707176065172026696638992222138391265411097949605335275417580308438732535170895237100208598889713783910593512342466362133570719837851518735595218158800516430014764178368174495027975296386369668979184334991293425650504456297077776431722397961538960321871439459584617944831514544060900597266748122133590065438905365238802660243852443630862932182808745955477708586153404680919723038709481970655342715139532681651431373113035854463660223353107662146272595999291695309924073211188696587509393821524075151116996903247562297706671299437110485458763445011922092112946700553701569303584311732060354070826468412312047766526938385112987454306588760011767865347414178895292514519850647073163906872831241509923513240718061924190394734690307093086011841392440163621945800499527720606627411557578613442997570086497607328784781619430045880049704429609016560341753262838155350065262090181112654590099992337537273253122375174052379884892017142039975008061589588199701011493127842001307160833942668585351032488765355322698999471939226064806358923755019377772018953542259679672782074941419130187105939868871198214218782284259825112272639076073935175721326388869991419914479959162911013170843681418157436963241964358785633268780470300381214146025431444686166447369016095113016755793117407554625822819743344383361214581707291254506688516393738949015025816948411980777313245882319460249170962498844215278440630196821790046524086972331899526860240810328095144459781816428601470645020883090492564671594575742945521172437134797023355800694258069345003385909195739931526501470718934211671497759488503741602191384899753596184856600683199378774162520970333993571591999847966166540652497117870722393729834929340862449956924385364632106660145761573788962268394921171042753626909254780128970791441665407995399180810896015756637302241190316655299842828858960933760502039591880547379735035498906649868095955446485182856420841240672776768577729296542071231369176058960982135911927613182735520521998113946206436923126907960617540863237912038808335706272487222810854347574185650414738900752723879072196848132790012250219813774204108842005700537453789615418010427640273601369912235823094666061054571381376536643330225737760347852488173951280406803406335970843857529219946652353601691783527701252187054626605522836397808541408576946762671640644700164392788275042803394452557843023875332477155799436459268248118663168505620323704651000086633713631600116951032416392337061223486040633003184710893448209596818815332831732592315209057980873921357666083622359447486408685920862214021563835095646371572252936565671973976658459222443394136353813288895898393916738666507989087066455395230995148922750307745957698887898688379778050601274994136145179622492583732987278400946780175427764216982525057813780604162065787664398210445931179010410446506993677479435884788970117187134203715770889804824512731929886228435060215339129727526560703746561929818004197088452567601451502253964136745978364287877292542435078672293948277680987154229817634198658324477799872330281820258799319301869019664928438685548977203130867915873077360721299816642997371951995725591235318485459703379195757150814606222409980314270718135154113248163150357668104050847473131064048254683980533247346653336361242328970399772451065007365436272113864780687678637581605278985300115121033061388475823325995409348018299021078556053226866957861907723504490801331694704825812917371797773644099914502603870398722344266923583277793226346752170704324496180329084381816084813917494735025940898605767462357678256879127723100913647466079859967922686967332750086522003429572650177786790866711909647287683044560498077841463627452778350873507565271292500647340184396381295400427791640329760235762317445190573492949527263091378034575759179416999593655018754964946895766567590638417837450195889378925699551856214322512937656982972579780511635838646473599065933059072176616235267097100214012071273988405350412648427129387645612132795222177672825264792975019010380327782568497862511529130434213647839891169500587550795013382683999722695438647221235793186429583237833130002067851004611523775067654231738202782211888458426179255040371688088865481536228237083823676827776268267260693075964630383779037942611746257161391688258991387156733365023721010393150468941856185583655062483400317536470815251828494507066523833738439281884000448285235132716793204413466410376873154951239622311054251485617143826454776358576973667137178262710608487562421332473677475403042890636555978979470057927135291990873567219926641655253329592031332927818413226297757995328594450670230833314010764285467701246732122798734487274058244596602386086198118948818896539250941813753911598956417116386981773918677123340720457374281483745562759930886818992825112610245167294760454868317253032177172739753259506840673923179776184472720123636609372596566818429346313837147677368248588038099737622706612954800217241137000455262129393267181368425328593054903461171086502228573650632226517930009486457239820337914254032119194742792485413535807636193178879021220640740536003091973942881009205071050702464223775386098193902607404248880518986941624595203009282742976700301984283284963314525107488034619123883654679771681788144730716826831455110377683870961438067540617802691643253177955253981763204541172439352619453552404617942220653271534568975714924788021749256877082632364484360917652615511459251318088428107138341552575262574979755210312547007542633796717719712947495152775078925090267047441308595699735624907688208744321923430020479181957968888142969676154066440874074852021664863073700833203852148578018920751037167720848395545024370570355499865443171412007811790967198083504587477255312576142998296601931418098066400012852079078011715742389491301526618834964934177844504370746731243429689336825921043809068096794622307689010347478404727115602189459144692277467506723415557442968690455654587133053432494483926414491880215457652658956292927392267437247333450253945820745478708128486027666859772360537642924536057990646915644638391567399022310257119238157396007164265650820621326845346107350044293059509036553866036472197399842263319279387626298901785965912864206886764968319279016199270656948845004296891463158278871158264351720388092968253967187877981503397439708599249012609751382345195377201203495350818880470919149757237914239350421512201818968995029921028116621292329158607057608991284665854431055118770757249196536597915984214508727245236152893400336867012868722125890701644514620618199918122855638061379496506310059328156966557102641400977049990723285363704231168161376529230146013266582869458784569709426238004775339918535702460262328197823146187454702903734259472810934993961404216228627604357988082230804721466981979869675327470666825110563021666051273892543659369217615149200949949030123349534859523205818033114360662374120843272551706095115779035475893806845306657558769629229813769681687012349684812405766257969033625696684468579233763083691911522276376719410534958199452799811211063708680825285321467240299997939217630746800370922260153946437506702781958881198168512125942347397099459524726219684410711145063516938905058030925716240577111324588055558738708946599948495948749011120329128563069288320299257414286232122615420429696021810465552729465528550907525194063216434533796994302496582837824277147045604302304606854467610736650262434684312677203549738683912585096514036391499930552957782753618091289626646428498996883403235594683625787736674183831661936810123521001218351959914071409376018634360428461336886285028921621032974714024159825277663537778899907205203248416329035260799874465879897514712071131445058396688770361581518260355751114722743562701736967853865375469279295214204078239260556201956569208537315445185889806488632362737220960252626109941910851876770663364529055619723305396729398092438550270325128402640113922385615904361390206937423981748517321810072773343949452175389192758318039905743688592594149370129501046581828700901040618737425740948982693425132567549758248983711301694043088891631291474517501831106991611989714877995215645535471056410046571465556432518364980560486695717431228189453079384432160469610753286048772120571900409707901290669600147591167428760253178073760979289032190206728587810217177375984090631478511527355825552046851250069185476827251851831738898670923543151131794868427154031664263972079609881863115099688237856032884285854525333041174976310828342409089872124044849473692499375120569352237919273402937630187395997330749946778075876614597168202071996601773902640758933971121418426476164725048410271111369368618441107774815365538757247411272612948411823210379858566935898091871224755288679481934814411087708925219441707730021003816778337154447219647292477508612946906837291908890165092051420237138058064596169033822971673842693511539350857993344686973795672395515666061533655002312924232412694975251184894878785824933953478748430164425860725883988681847085591277820030639083328921003463520091307952562620967537881394151796066437947907947093985290187451007819422683657574256033727075145480474337239280922240305837572196045254796519201539858623540551580981033084673560988048422825849060553670699054008142224308421430021816670775798794191965827270238051036945224690384918385955027183097708043467125715081634943458836803509662818432664515478975575492582755459497839490672932929190519096837340972880530754896852569589561613478299511990945625994250789630273296470843876823505097684799875036726522641118723608128837296934035433127203861511055987586129281966640294861141994195240370337864591617394561851102102592266248647393408518392099945426744541222157240655162657536485693237147121674126219343324610965392162878780240132891881981859702975396181033615235561313910731125479130054398442361865171251429812998724413865286346949033108427748047078642570522647658376445997982407982864059378448188955459526943092798508820562084403824067711603880989953259464597798228706578941192946044670628760308181601493684774792921374831949740043711025825246331919588430517961744552872920290434432828036769196691535973259089396188713377151528496149312192888534109935355387324892087835991962711807045575982671520466890321658533441290493746097310769616987430915532493231874300486378815290878239044007866964994580807036152671762760944373619115375746869084255881592744286648492173483421586757538937184586605790995019782562618748744210450317874472750442868069268742798486655781255826756184978319544422501352769790376189453448611304820114712943470746626809971797705767032350148017415284552136172086219360572070870099804852029661239571920834585085232283807115558024830170654303404281605704112222715317698788718539095631405910507841049942986361687121539320642843851284588203125484058599277010018241655447702702942259732041715786177246915923171817477796028862896255295580197967512363614731618967255539347613337272756850621729610654114458046174747591324333866045060967911388750442634002660697766911999443772709614606564427570998029277049744792168832485528304166320656636430922812379876068089198855934277182724506456112737271531193914774891321777033650329313414569543428437893522535652332534252988563129052880339744287290442630252641893702845916551966505369047539470613281372323125783874247185527751785853092397751142302013734043137610002273491982733469179316185449250438908043670491048300797546872824360335471848053489331411863725323242071531788471231702712526284199680666255839203919497896343131306139057624104727476219168507847328155145901263360058399472279034886893684724718651620080598699551094229382851315812959580479356233528683484768979407762747519630555701081078841022062574728604335225394868139276639306589803902727070958174786352404419497766882078699314101145917026478113480257240462901448075367362875442688558802748553754042522256283799048415417312771488822488912578365023445245866296782573114479280026294340488527454214346504813177109378084712832325216163788470050299470975201976038630051367143676611511223376282003717538905420746450697360080146494879413813660011820555288955161035021049821283957698028255336599315180184933049083511521127462502470023986250956859742247513482732782594999544568490410702640136524656279593073373838272906512959966346846370395320022975778281407603986427409888237261848216272732667340438891606258843275064839576036666458989120491980149933348390329110411894278771490356196893572168657517522618197236493317050906504055145996599369076569321672757215659524272043124687977620474884213292057609778866511448922243618804843544511280393000603184680679965281625875989679806214818499588962928208272897563323610118006539317278187331542668224006324522019419109236436151760507308873417074286487361806744256067751905450340928943144229539066720684540803340898503051737762289903668949581575696282634423582896677990094251756410269496376201795625074418857259776219728422029095183588999543659455065768802436046317285313708367515884800421899362786882339610540189724524445556471817830060672106114185949904321554009553933467474362127674746356803364428374777715839059434462163654646008658535298899398705789873412463490651117378352392878618395013440680120357105565753218159422157751724109066910064716557174491022102962109754349109057780648685706447207048988614604354558086274408552142459888477140557672035125446338004447096965568314215950121278963906707902846299450812459026360710729002575159537192678028631058524713434347147925257982793098103926183687335338436778501520207471657165027456514634237012979432963019214673972035006442580020706985804895859928983813731443771639728099842599890662868970287667572609469993521183487401364449449007330522285822936166956596724619397623962252716273410335135019808633380570096986695880155441176390545500098935688287908744999074168251055045535465489116254988521619438501016697725554180303829206368653252600512401992719616673865604877660296525794993616891280568266720645414935298738926839004148820639925677126600484271899179483274481408681321354672663433498027411446342061971004487648032642016794513445588868136658969510337641712216398201330784431505625470650154623276620513181084172552517395241179288132387121229999242714290919312590736503192458472852843792211566691965718337078580411878259660364818732371671043443606079633752254797468874137170687143530951885743303407763268765809230784461521612629842121635558330649404695535075103099255927326550281722358267002379625254054168588167863280718199710106114796409294347086461549074425173994143329275017178429596846233484854915571330380966373724455043126909114257489226386390277013906417786355845816897848369744568582700363263664660380591901317692585985997721390294655617032219814941996663176486869189046127136509092413426156886914190307698432396050310763690545869377374031603217875706528865625491373079700352551067144382324548010224721680617736029353687555720897067509684894807314987370454714106570888611437459758304414525769637926232763746338985349575969991098180181525567455333920482568314996732643593109534411043755241957675207912107323097467309076703275029888342428334131568858157141851974202402319223914384852446847109596211186735973860672412035966314935282349624854565898221329880338460475400028249319634948278871144637612484657495851714612548154875645176578147242352778903670287551467853731137661562495268137899756068539711344062408886425914862515259127040281158956342123628891740617794692453533202546034909644795690337773188698136194509484512216941819905432332458612989745482445540800802885576796007397933683569720743042872303504731760421718611315393224130174714291053447837507977315999682347996789922249141073763795212796720199716724741046594756444571174811450562739609295097136139033125851915412944956742191290201859378735120514206209055321154101104597797833854899044968087616381022180847459771924604057500056892413841932817932325297584990846254295994233093821904245678632224142031083887798584258101480344812788511524171350560228371032491730909355452163029906663491698167456258532003128723538115617903239490557359233673932158453653577628900328588671973480944023594392729990376045260900502606289713274211195775919584730911720550935892400986801419779917676155797964112717086216385677106568820545052262810257317997935470053671856346340424634002542071627636449818444012117093592962883025076441595640232003983750411781414440438535467816915514408910923817961857587945477913830393334785074858846675409912075160267743176869459806846604834368234159020012989111690634167952577962803545118658894626013073092903086482502780461907560937246067559591490365926448997810528616338322393242197474440319125157386038483331293699991099990469096818414686143623549391487078881395503661966110826032381376656600729157059447100751575545937222178028794436307475678971881435039470373621456690661380817488144126240629820520650114270751250975620903001957266708300344301405088728152302201025948394885514823707866357885760830064711456372226052525131994111534098593128378786215667947917527684304591348977140956134116372090718170986581831055287498184972754292728035930149557892128519325076172467431585322232886802600633106220876241159599318308758134193762941572297120472852209678618578299273168616164597530312386777374631867692869601783336031463346586822122083717079412719656490197479951063290916450954978344965808820207441569252624097377113558683981542859171174177589267127873138485574897934207677934325684651163113029343779376908792303489539763682765190888748848687240298932487353043965406578121587107067597322214863332834838652612097349825318395904309256275925466402672764828960476003355111387797347342254558833130746038443005637174969904678366034733665837979380040766157701184392302649141032690002256656398542464618467294789661076114117089160029072757023178356456564965374291485817930718714916468708236356872591049782879395722273283352606735185762032504251183201233497733580625087994046938768381483990418320356696310976165532273475645216934172257043406127935107216459620942185541764647625875106012029304873095931823578372509215173811216327214620121850537598478360129464727712187453475874545422404906635245487634564902607338998932469750097000897216979365001655976276206967037960496485580129458263214356366119988592824586701652462274071611993733291388101612415276347750116909157611545498746529080649989290612684563107856032789992690024377972135677410601323479860415855615588630550792619183886165907397422526885509640398608404788791532540575232600640216096634418836269728424522614594646094194843010119155787548743927368707399790928993255262601759215341721848177228618973048887553195282659180848463670082630066823094888743516077342547854035658868597618846021683645485135569823351853203199490828476705173134885785424523264211468028887859493572265676726559007294528271381450278812667283455420038777841585015545484664766241396825407097083372493074928531236803766616255311306377720046578262467587863435138168772453536967892232684832985491705467984395421252752603286957931220049433649582602890926988883065095388648926175732029797401838318116532218817933517100060995317679822001832195480180465714052305503549753701146863421291429413102354856920803152297455599987090594681795793005480873337373398157116777798506552838816159518395090101208483021930694090501942909425438790612746119348663181304435318888444442581855172337167889688120967695927087683502566583944419215131263794275863726119985492315440993610794829193322771436769824062632996906123673615260178884639491527028596065382823680720293818250380769978443286690966668334651322292108240096355914420672115402066287318282989059955798430686267502212765603723870387700554085921199730085616513249888982730242600896584592191715815349086691272497408660672926724348699380771614220951287855075831086363845452693949180124567633352438179984192661200290316914364196349543257049096053791149638915221885575210543712130030298073541663199410697295776093888712135775371596834742081609572697540096954601426657554911644416996843907275126919877387669211764854236311768909374652544232801940137928354328699553687197136841667377150497811697023765305920011424780532747179555862207046167822407494892179528333621279679902402302073486733395494831004363382283747717644102568651085856748640306017252564133236342263061648781252143204756384708438333262495300914705753614466204383765646155058755413387403550729399846310998652046062713643986125775605552644716798845471167275297664456429610219579184542960783956636650960854059272736731502248921602697662628247594822712446357602754487506908825183596097051118257654064151705659133719736818032491195764802568635860556954044224810434437649110334569552413472169003178608796082328257338995813786976728745942649062200554751680616284376492740414270386370501501065123761029618874227174084200643408197809831325714239425189775679113673226618755137710454989660084893098769401652117589975382817564252245131068594751146464207176829381968942092775814708484914169330053596965642249747580952675124355643601765755427535257146667502771388335337880584569662430232763378655345304387410171573590063229975363977189879457457031669006889665826181074263438993446230264486823940693238040980982728431632934397412133578293021798896649759979523081648928690317158500743951623465763638632479756349047577816927182993772441240377171621764591575121698520843700697515767998278784035211386294272602579979339721304504169682944861038739746263412749870556067073422770820495083301973162340156013963764778866035746887151540607757844563197439444000688465939908167825078068490038343797199583413860975617174544921858229658974310123286412423339294314756671629305892377794438675083148199979895977253366602706544825249726678399026357913524194171955256612718397696597797879307638357183314316461267263385928500552261645622741957449058075585849270164191837418795354829626876606844326316966239681119118620446722304809682247827654928809285434775756558761336776598145485169932943097039841533834089883628653369729316780633898303385867481358558500637631200957279470177725376488298307215957313274899763904338976880715718820958368307950258509029278353902841323229263706267076950185654378963355510211301516599008961199093773677567034582785956225305373566956345087484270694961912947074617430880781448563622406735576919294210335480909280920506528721273781593509527942810902552946897112102194909658287189861250346159764310660377541283713882291547485828653668551895023264156992716100467049383086547647164518058247587862814843790894389325740597693461123035290020883219633768356944683993142812489177158965261969945271934589565030324125364247183957333248283631916496792850409460513697522822469708693637643688289580180998254083946065781567100422139553397671963771924552709898117107800975534954607526261727420136887077657556295360407489605696228780882404167946806830825572282888266951660310168539355259135026719835180453048131197183537003863108558455188966119644502007949884263044606643655567614430290252300427935549824996852835899319934221245150980707316244311735248044653749586073955801595565899901834903716293929498242674467888781329876250234378571548333784481319375028372825607188524414186174735419650082103344933922797059717562332561758880891741226794757936457271841921680630673953269386938390691879417106107626766531691180401788822052396890562973965619139122298402950356522889247006397630932175156330638250167532669449286231712512167442270041670941096291085556326402542582636995620676012121134136056275130718451253411083823091294074889557715930695242766485913654019809047555597748190269513769557838482821747060462411305694038390832140589165084953187977258130476129878614062431821775976161976791947725722426658003401295775948904751118078390081802541418714971063043037762431620350015665280240174614252031287643650221332749304802218349655606006019924503924680193303206468546953646758854470486182536577905153711821297697581682070835561867427479205372386480606670685337718636056829174305252318453570887399253816344646263851524255175992014400769648338679813994726881417863082738819181354040518087194393973717641936835603418052164585720408714333267409942206850464295115242738738025330840072317347958446089582827324243679135906033035105191372467065635825693191277790432038588161808563243480540765892734865343082929631100129022007467099546129410584256306038251236296675162240781030342549874427282147583292505057801254930415989963469921740675030964774832652756432960267734670762471739720790543610021442225387179012712101495240612541438118030665361727904374449829043847794251477219311057048696513688484341979841515569447287270006722356441215838292712404633844143887998476020976110953633525443649891028483593793932283730272304798030877877466570106018493777954120123206267234621984684767782576052059845503304627879620405028233615442578352219601912630088558878475792025036242512002188198813970489218001743737107544736740026590763655835865376491816300354130573255914664185417400121124893572335735197408968613534656758645796736504130928972199763724801531945022766668973715724717386040691554767969216212233447917755278121852165455902761944790024336170209419518565732862417535273159959735811895348964268338456777194243023735050223389623866400679707387711193967174841503127162683991624916510069492503637687705012903053017810041955591168577828405620684923462456770634583232296321866190381647801466522424822653205911864179171928251294926619899115524242128002946577791882571047557520885512522468461086679773053827267384855431259508138468681792954397894958514272866412716421508465124024046904700192527241929721480742044593692019204581355098269894710576253809900688082004413251214315688196055269486827084253366260987081603184069072049414180842770452024470089474025054857002375747491460486538601459730888135352515680456256498821731918522171464341145177207286653086197650947621713454192654958226508855142376991578037259152226121913931171920742249721807857587311184739867098365383543444769646948738233870890856860723686235774239313412512859069959796278012263040413642894656560649545434331279177460442942228645849871088961294454760316028292186784424894669818860725787964999116019414578181010198897952176972809985320328367238036209198590051998480550988458991967320373224294047639592080607876072514043000427998623711077193984981896157133763851625688040710849737925422222415813611008560396848008704090421586541160027484160147008286210634273726150595657101845531137907629256060596957307329664564199858483952704195976156444038754166295503787209168728060874487208096763140799661948966009621224004920040987130756539425607324171082814083695561499862156666547753258066192141927391725638279285120285492085985711877920701285534840098222606057578074875558551475566917970841129585415983639259862713664509730987950975867510958661601003487193677792131879505518463650654739748605623546999594991700522045549402603785278027101145719263130039496733214166403551172279382743743591819109562395901990761253278803118372231632281849996991890101212745511986240742329810258808614631279854469383015704444898082462400189528951781489535283325243072553571977931496520648222291890578716774910819303989977017918046999814081399881430962256313433848391847994961350750629088333457754391487566572031654515480682459514010442926679932605597825900031604535619197057015464020835564143655698308681790186087883163527930492612299910601983600883170703586805607850098189493781972968910549016706356087378143447403518070447094595321574958301558775083976706371344621066434856893154264380827044156397689499327654645543814995549575377705072564645440894187792146721957345751088719293551287471007498448663490455528045603785541432754580288223091063593120831010930152281595932651946701599470970674891913776901435980402794955586561692078065836361525371672902265147225058930304127772459607709431664652769856989708777153354431827656200464093489313125574664394552639805017706574640894511578586337530403836470319627738381402194418898150832576400096314446943120160535614692159137429386525628785061157798077133552222019780692322193937041868325170062841723890727478873476551613463365738640848589247353428629371493395301980747149042367709258454896859826448675124126145884583803011107378367941719552971099326438254900816024166088666909473934201376853123844036970892661339808196778595945068763806654006113276071469807636581849303459627937867930622557948975428894548348169495020267529477354756983602411662895969371362944712280942617377370860178479921929817077758858107391710344363863138765803854067320774906754446921760373627553584453848609576716593358992558979320656900926330268220174024613687196118746943839239794844015426473630365142345518343258466276971930474025122856926372920053765934200763439719158416742043156227995107114602720085098147111698091445268012829442905640387808081724717741980075439783170753964129622151110471908800317380424922885164904858503604187518536039659953658268297579380873991886100239573344681141997099790373026432271371609168678993092438570969254691551349699616529373735821255245251471585083114972352862550177832694227463900679727379056052523760720270954452750425793368040679627865244674541711198512111351825974037428312283757880368392136982383107504413771531243115975249878362204968575436378145016760557903237600041593590372555289237087672728414757647955001984300093738432916173358123154494797193261946623343235393754492584713536201758993846660748091230406788327493211210393040369384038519993586219332087190902129192801653857779670574708902152451537250597163211761707080787595949647046089885007545830330949839507173565849170043250630745117590777441779864435995435762201121610857417171982499610980553026153185845495855035653245144949037808704846137535469656441840580659256003971628986179361766572741061737859075998468257373455514306590622127135524009458205537311570047350958337223500626511147624438322525481715917284465673754520678947617172087989816386296344338148028185782298795705745201745162043581311740120791159215500690336864395522271558471543452355492389643654350154036962720970412891845573075948113886448260047162412673938581566891816229409625361768293051517766007562455589067502488677464754284340457610028588829352681473407841599991394610868323206363048071615694008581992857972834110590885364811036584271381943748040313022461729451707775756482892651062882858164180398281304946822784723590712548386386375805999595151530556330103958878688210369340684469283363355365320172793699926105560359410671997029551420923628706696534597359842713939177278250842037206395526953538982471102872223476781879618477875949968379240015527571223812045287486702415300099359129544160395837270283320005407152245108397594889843750061362279894291602273680580580706694680832884432389679404010673876359405610680697772876329188243448836067170004668003641511141365040798388933259393214295956757844559712952463797212508349796996065539106725162574547754725071842638648766504413048308700253913885020299445089149742672097777352847598104560349115695445339366589059959238140673442238854873181467749191372198456902374331550418260741590768768265267268362010439720945774650579843202477797050107588930591503828303280547276433471814720535032652675169458357601962540166839566953490698461284884037999443681674520164553014562746896739337203236263460871985173972692213345575084247494223034531104469037329680465602679036235780421543508379065050378241606749850912022477116599002917760996330870525913254211600294638997060259272802249587305216173922473273979548218140260044032379135850753445314774032658888873721783707113105522849198356760260825201278572628189115633819145261560879347930979502065886775923015561118070040080892340066441350352018109327530403909667115047188423183132201425880079798509956937342941393557653001647218975396362872571371639963853167700093560666492853356666311394496260711759203555025729898076735200560691164873959359042100150537929654759211880949050928853444410485824169003085856932842951408788595566439714019591975477336076794843532940291860843013802846029185189172148637148262978850165148658573925335419547520474263278021064206072767598657400229839753398791644417921072212387776666946909672513856935036517795622832196132999316283693586095961517849927877301846113048936531295604737789632781824179382431903009239532059878536842834935194654747266049859982106241914567339364198672883377297087656587870082959724624088350822993353320855857859117882967211307608473600964740078102183197476472653675626555847114066646272533189213677809572097710067952213148662163439798909570486691546015607678535864083037309441517914114134042090365331787620116493233021221822339420944866344885278814114860822960583193433405390751870036008949339374043108015813938023750724157875245022574734177205512159427698970333300383673845180357079812333632319672133545719370660694760178809017229008544814074915710593796566454558096870634763004486320591627612407854601675693135203086277944116023132234595415790338626480707825477605918299345850868808768442881622403906376342846818239362532697543267202519388474283066768341260339007346431678655779074263847834613408211535052519632112569317293806785992905878242917880907227318095998567095192095539116551797146248501137326878156182523108343052206417802220944924736542892038333193904105401631022886186614697209638167015117458212797759285947398177034846882444329846529759606903118783069178703768123066589008438268999694450830016003388142624668355929044846499258609491879335553742291006863386935758470625210426043025034051041058926260690047868365707412090263673450880894697243658747445172059134960288053016978770329029650858777403691772582110122946784138094486321813177463228741063097347502076093471526466955311127519961488277810467702735358076076125883945129227369201095764832341594503452039151834539301532852739374117598700681848983792201093311223611100935441724424968501673314793922176025550300669930583190991822169149388111824093851828456668543161724350726213399093602957146311500990667195346817345526057321426497904062981599608617690012143261238910425575205119530259707781007860651515267397864611285943821662178449504621414087753834837950843834427281138057462801364420648082687126666630175084670532406066983484909980222365435497313336373149367445401288406667405810136933149037318552570391480815029140181595717505414497424615398153730833324888658041434889142246530693839741421790018466641666201804666792936113156821191328176804786341175344495918543488849025169744737127744755910749961074539282119850718394744910551857047926398212494264733648412389595510211197994684118212996330739278311604640656879296939246409866064858251789052020659544463162069180846320400279940920657621186722884747407103188205293671292691176777540600709346792306234243613574805051156043753591691624085860804524164130518484759379680822288495182667411962391895267388290899055392559159364183836446385632189673235758006094140894808400286331317433823420676990899164687833366666636267385315785553765973381316607223067656184702557222800605450272515833702367338344016289363120850363622914176727369028387894609550368525206491861404183928685663223726633034602954348621135504926375128050961974625223937660896431777570132975978082608649174736823031966591154991651437806820408302718929220361829642752336309985150422077879879194335971490624592794387454952446971744960239301997866958375115340113154154117400809317790529889020630778062478726796808637700171554554225194877689265556727293568306252378002919365567226458643994174761680943352783146712527395602249891153063457534479145256837411703030085626042962106452525160570877532883010276113285192252403676515197899267960662476692359912343446404098925690185186259594028653206534204233663323077972973628547536694970220782722738894555943482192667539953664178760096846644672339680094766837416091301432340173421697076100554244022106198381265573151486532027541028463070711163056579738632253279903405678224115492140386667768990203024001836145264041956252940730897155909589847707670410409983162059763913152361517452240389911810284265047895177247223991813271236353933729194174690398456230007964402663716795168074846078656158708309391840340778428482870378965265526765048866404314198823994663406292599878789777235298362700048250744677085484095021477046466945882840106768506427453929957236030689169634337937121669374774063867433774634389500614519047920087053549718815679505281185096826735126639071334278617111601317486696343566642137832661972173667444455341756158358453314959857118723135464165862950921135157662701501938153068619652512762598945556171403521093149596492469094859404467671164784991314891747974605631784649179724003811206227318967772742076817692937779981943199725566845867038623736431887366999757818560959635215300861426396632403375812190117607318943850488989372781370368397750268117574676450559411413418222115498299665260497006174906067438025176897295897334833044334346989361268460013650336792213361757131728045891065231333594736983578871055644955143024212333615488993692963799942131400658549975842975356361840850854101981352854102914245980589564514372307803671293028804056516845749665916825757230096076929038395374960216038076199695633539765838028400792338682676557845784375603902978482492696091044538710751098035387774861880690241509967479648807491970893803944555029707983014964131172149798837173515041373163157596535745452301716414736753908597704903647387872503183403963549552433235211430708901986191896990960244482412138601398183584508789065196012733458178036409064460698808434011808186838923384132174336747367374968890416749022579450743336679624342344054546762313211273236484475315667651434592067510921326864772769325602298022199190783468996684646833008167302244979690672866826750267707490581256218847926362938038425831271589327938086932416018116629446729874857090915879405931545190803962986336578436020469110770692417966066932915728314556818374153489270153883524458291306506415315147225171638594708569448294017770507631676621793326594824989237744232245961868594123544785803221796916474550049599650135346749866900070768283452091358851743245343362679448987841372789245906239257338865619762033110612434802726650843042675480120384024211345463725867502118692923192351777655502486171848544241066816307782552494259492028053040391252240360866311809296568120463122290316667205518733745136813520126136358866726178837393328227472594671272543522062469985111325892449366764175946156357755778605105684503084359728459128312086424166473291805260602850805243171505348289935535074427894291786281499558486949333127097990686876733154697225034993053590002975650042054868230432769763546564961134718022556420401524581148605428323820243837546554931079515867250696074159127359054384129662444055734515962103221732064721868329853842419387842855523853081965577062906145724423902666224777375862758482949270949580503926228012595413283324181382113255511435242019077615114178069861412421788930898621833731159649146600723553532315290495149293619248541419480081465986554897352927461475192531535618684005416699307557993079863258892719019239236381591242611656990902299201600812962887741816628145239744081015397954821674428600950439060625969191012211500969850339200015219199968545871326337656009866252483792127076753504885869059880349729785701038217022455470931178523138934019026553229164365223084169090922037178965513151763403976220972646056203732174831921993382899509531162592659317016913541605229267237218618469526361115141136124324432381305146866815341023598164691219514494260568704472493130808998983584052743430906045990479146468373084405048794147657130114009139268184744992232853173011667893756586154344373331416736793247383400962630621044981489045808907410294393285490204176095647599135457854031471688230629564191838782440797157298668365262708021541964148515253099539047916592563345763170597926237294130986184063783681792167251165859075705070788207841177562536709899067725843362537310679917954709101569770914304420779243403811946435432234676268680818159304695722938066653371095922719822324991391023189333183068850124310178326076169360434648880447461153507509327053690958602135627432851177030296453306892098704802360070226128273024128175135624253351240232367623445195089012948240477911023530400842595789551348169999570607193876686648738401439874678065370613999606292160345250565609429032968503620132437239513368210631744105032149642288366012429706027788060143608286941026093707065957620652546088589578328903275368267371850585415770266396327154002560441284890303003964550464113674090430937082369117919607234672143885908847377857241044570582120192313538437704201912164936426299813809834971384310150870295551571169342117966402158273545592594316051352444087254433045971050423692653059456926804086082920514823022702052374702327695902838009616671832881465157863017570597795917557137053016653607412667009338713144451617481484307204381557551757563586042337226159057988794081458495500589455075711141314971256761025027746149392813744554824530998382389783843790328565960676345478398440466100169685039472742338670978708901823386330405988599402407554454725131511135045424492182849238378697138943802148907327312477219354945146952587961172296995119928202436891707232946482472858360361558690254927824253525004254918739382610487886867054447153394666562558726126021430545949599889398746111935418212608179447097201824232878964627153194625793009688933691789940861520352395386135310384289266424153275248742205263767586689087816627988152844229634661220399154488180626630337629287607001042870053860520179603109901421318914117249515995604105736092723010711721313374866205141904804363489863734674473057132293455274113815390699930084914179000206517768570665977232472504775035420981104983242973435761317425597778983032640644691081418608329538973053351555664288495632163783827148077319068307847894864796839223578789940445557037332740300363656803914710170725126654748879094808095214506598389568777458933710252880625035464423865198311045934198009548329122943788410117193987792191502433806271418189366201985589111567338250742709211973674868190651056457235447701741793611619546763894611952516637163361297608068220542277783527423242488133668599950161065782316180581453902285689833236798239866288004037790476303129844563897797429201660022772157624000290140727428380963335128247257880955396499774039226666339524670478297611438624981406016326416026151362471330412759784787099507627263436214504685364201857069757595370400066354069620493672353498336792129415903317615259658457399532121636587091738492694640537060393626166286570990050695060815531605857290690116499069249882495508890662665378860993941278385000404697647081850862812964524159561532364306987384642331822389558306435623389039750643817647462251209107831387865102136846595344334448856462979992662632012944070018742058740646388423732510497563291397868640925411505218043688134712008895716588220378359455513259485150835403685081956833250091892670797573246231579657453877349111323351454767921391473673835143880033289700857993121955147890215363164021009087136494498090246647487406943509413975896957453331155243430453902525185355977836021784404652995797712386305865680193234958139371060515745024390747290921673772757021634698786900648420418210309685994528693664307833049663645606917007041813956453379564929873674451240732736558605043075987698547155961053870997938383581319456754120353517566329412901783644895952883018121367113972987239038808084021399949526211601548564512244730396661933367119685675320155279294784306072160356161996406674133485668258815089213364549088857618587320281556075321512554144625664707446912503783155947020094562644282107658367737688547932368870017209637943461875089577320825980045697304174119846692211163306265993720124897398458532155807690754807196176612696450542720478166986870802394989032771939856590886363543321510915356249834210230372475925221271488677503879351143917681209853534387571178001615847505405692832718393425329633353415101996136605046157539393958816016273864592028570590381278200235712037377205744304803144887618343652181163673384446829160332218834499222445879902864234235462147378515476300427265437756226796994862010311618779411139146367461764573221145679541702396881030517456706035758068309426972783882427346197638450182144556589981842614714405592109670020967998929521449508754383480208461604991471433507466109874429218564085277829295950339605219476695738017052688906749115486538771429793629208958236637248943220719694599969081196891189446633476138998561084325694261158011985273642945049893263242637843438177758980275503834844715089453760080989621205424400303763570106116515160243799871170008081793115692466046131077750321428047703311684864682841773156824169044817061522138604776965006164696970675542221665531566265417222913314760004363062312795376774509243506606757502690961477258089348067720977388983211975973641476305951562728219517051882389515502183653236836725588567072702096012758593515243070807433856445451569837453077190550832791334860504582375060332048185853461197724526130034067624415423677590348348412067418510514107458130592861999093156037817253916686651293285219882880817636952147905891992089411850735855704143636846550758483946531841081777529242709358030278946357068604588283771006881947022882281286289999149346187033664246988024204394974830485659434338991390372539965509837290388683153400335456505077250665956351431702685473830953805785736594270811575141053770647935396700066899683507292511016966408909675556885305924791691959333370124489067793270019391398803514246942467422725295800086495994131463092651802048876127602445518644209829549858747049996709955378381934813237822454270397785512716649054708975492579859087317651196930591664389618140077710613602405394151027750844988466732150967342507155034526000137058339840047379127622461526399623327280198907698288242037762739164476995913081849894368877630261870897661472699325221637828789427968640826358173052698025813847235488058265761688504661823316876742811509727934986660637927297804912482679438455011039451247648765059656492764579998708746304781571317876219637594871050557990179392364883517683948168340727140413397759165336066298495254215140999099211568590414111302298472066705635008846654434097614257999676084084974050692947270813491996433039752504054629242813611074451310532720106216153096506794085210547475942722120307416630719065758894813882513732830757497057770030356606051831610237654488341240279152488914166378791052751956431135216678302132748203959459474586368153124932656109806384779567750827157824678088527197263699180457014974751002380086125070674113525340661106768855552071170358382304788793438333340266749693059083741724372223111281953446924918018898563932972073183385993213580290443935816894752561090245395343571894508828244846614639555992526689525941810386057968491399146250764469838219129343478343692562940969151358015025007749463682939447776294833534956799230327580594174891710375143125413414595893273199583958011181757053731536291581466469737190348282391974309585963039434489344965812636941270512914332587923818368286468340414564311001803764308422403668479782967153152073628653081271704039816666814720187163692674036064184932339575794109692355194231923739838403661182261065599410631221269391423762986148339921564323309966079134279131074090601949091887436951203725497173559736203546406108667998798129222531582234786294180831073898155156152258033556252862874102523950669673332568022248847162367363022788279716691901060557796519129411664331287026359049446006168637454977178248464836976377871630553643241574505999166540724969675369988617708596288145180153204743901287423316971015991671889299588077114262747295466690195398532269877651235423414855029652533176108939829173174878349431015948477386478663898042575489186586392329881270595711166149797234652569258128362949993441985709364143352011429125449813486212661994707748412109107900838216423140061936717188190950881235744716592819068812698636566851361244911606791074165041932781201588871198712835258955115123259919203326072859482725008009609346073020332840653614205712395443174357748528427827121992976443775491812411299730369531906254801229662579682154857423218712983508254208187296298071419527594345257197876982181503221567719408140414033898941331389759368962198416605651492600635311709077297143678272391879704105279231078821221468530596510082945160314205376861604227370965310199864802456153229935123225960456438367501671856279125434850753338657636549024606302251803116917900072760788419429442942479606117920885487192680704897927926521648179757379577353751116480890883397606395504031277240481200453464317700368289975304031640971336552949866702410076839712677871938952569746176645189719698974551799429227400212678072685421472650075594935971346157234629969444096171186278639685760110850847639818607573159333708363159513125590288570794457777918752974059098198800763981967556266635785080919423972322717965665131731039352856345383257572689468625181591025756481790146410675154598275590741753670032640105697203647777798121929925479173906237433054688010710532378736342767265208209372813553004588115382574354461323938410148307502757463645307434312717508538229861455724117410532599266212103635478886911120190727199929547651636085573061296256970287956241314674227415596090258744144537055124797084612747083817535433129832258028296973762863432760212704804838093597534365054737029606542859589691074509425952231906950546613464599195829170627863845825640155004513712400990106785360202493229901296376217691892679493285796454563917450729956813724196030450219200242558024580367823530924858453563975408717058053994754848036001018339871610876123863180457480576662081830089068393615908550158968838956336212613345173543284269403076827942234572335985914927691857941902889840422922083162754498706136612279536448338674257802835446496845786931094261438491908840895667826894337712055985020891892555074591144129629283243383613512229678752773410921408432734506297686369859841142933051472484829785149374754765130360645206735925393167356354826104665801184200005757310031182404501772355749398709589741571931389474596101941811293694423601034134921868892901030215434339878238779893233178745966655271040411181784049935105190283390321841420917821433494360624994049837144461545673913101504153839406776100996668812426125881704132115064775738262747280117216944563831179059279004755385144986324814167390869312863226227383291845385943091222921890096067124707188818752190247966346515789351875781875495065749404192230985193200319566197676591474135215225471982379484096984217911788894822787512623171585608614573130051526562446981587777698694794494398835612168971624491338846145235008979796983997859134691395594444742125136197161589210557899349271786692663462503866645378756318147060697095169898947559022387018000676926554320288957357837872922244179931216220656783160664207193148930758634316710708598404989323299550743494363285727522512038844734906611307824433844215066062800985365827160889068338941333322435539906998470990098151370127962714347239244530279264441441295780963736442210185777048859141951279325199979049365484004318443601662669240934012946237245718428225259570525060190644940710415379995478177413759934701863675119308024283880597688133450279810299303487110729988678901231237876030535304919978191812300060113828213926530135831318441301879399413504660665880045367671031145325392653625353086003937054230682897121688606398874284349269252602344332865063381411332238773978288880949460073795938566604030663265067131119974558905748890074317735364278269946670683790865488895527785883670797760815950896318303916151851225437591232114353076531402046600067052817227248635476024768629880373228699744206484987807682975365422726968378906132741757541849034558678760606396229904861015688194465564727771258558011086576787526950082310611477019326153492210498771114263865534625923724260860533656039706019581201290312376881580473570859069006227578595463137164510783132382145954463579827330815527125278900693888054825984062109523257527857373759451906884750935320393566814470028215140762430838689245474713167307671125971801574186890280516280143852009715458468800829768082736159069139812383717080670483426772449984405468367777734212826355196863181147658659186470664048365863976009063372492743194519127967754918613077694473419277254473979092177682186451300497214532600490106126311474714668678868623317760236021065626659933503717107867273793389501936447577496149018881236478625178128078083124273688506869975952640527216610579107357775917419397505375082500092680526107131146031058181153737207956338477084142378933809161749228530005221797061853834012345933757234548933446654418816152776549218310236210116082163376544931956152939650675176843645866782142298007718172992173022468944778567557388883335985010954763777674768649769083802557836675903202965169829401348344678551055248166558301846473955136342511816077287777299529149823428111723666675346085517813497598536589620123296661573639946367934396335975317357943902124975501753071891036759097300373718888201160731391756604952755460965212715415076431878709879963058619203229754193560386113845509318530039529811190955400390331090547401886105759458967277984012901199392924019023815488518742416528411034870053277928957301072520543305952562261271351081626360876508925356489962423541387294454223857092069253301068198278692739058643917161803739343533078501422113365994008680318388377957625523043857205647098739584816130831328364721484855665043520214213875709049132776216461969294268667805962838878510029584660352518340156311683396967972691699527943110932348403309061461834744939540903885354704838347758460619527684517225587526183820668309367285132220337377843954433461545000244466649549404076837073714046405012035250872323646358821486251907290718643748289167529485403478478218472454650369314229025325126114366747866362847920412306120054114437456035794146334687322150498873452662793148336790071532900063862122873747283262074516695684734417847047858070012002089650415177724676949614324978927742058109749938282836877687327184186499314146485893434731408724461568645451840122864070875039950444886007217770458326153136170697782375973069866178182075566624676012085830384700966030853223532932009367229270209449219873880604556730962430587801096074573668088933789848787066020675559199080779268041479391397796310419468978833011407454288434762665526156684147611464587387119208501515612041582079527690452043720756971193845158687201069315063195468291094481960579318402591543970353422595402425964111539703869098063049350626932911897341921402716879675429203366540821081725894520692010780998854108081975902940023512848149450473813366896962738819789583236250003333491910906625711558270519072394095981938628418345435704363906301944313678884684700093872242230561596899382736787564520536841801590552421152532440682249016205578893424836681199477220580185218773361707597100047407861550100955375450806922593330924133079975701221391387196999024860840738422898704958258102619638560126888586005820380448541992236012203678207876314564765886385873802268606788377339054140385653564581299880465680190969335632330521693098704904089049161128156585862825573752412907756259814046424289225763936055627304196242436193368834540520320065038972061084624729428780112167843639598393650952433474252472094936264496888644817368853946034651055218836819317629863684452004807034316107023870015673809656473878941111629686652718778563176953829523564318844376418699781950622645496873570990819380368599208450333794018362145215129321876268205360004914566915890622270868418781320572865553453211044313104002533004107586824870346140888621434513619308474711169304058866386568271351203495786060813483087264348061937276182270559241649123492843247001696290974446014658831022884480208251184838976761710074138731140230580737069589134748494686079412699019900425636333127991820488028823890705821940676369389783723096241530268804678295883751909827333047459025884014640589271971005334809936292206130115556264440675410503704613723428637045905401715589989972632449041911566544339349450807653922666125592491644071654271973556766484824050480727656067639264672887262643825212659921839879986865603855191167782488676526510166755410278566135079859606548648034605241413414608641186331541068694588760384142983936987987466362042233925632435196303453606185938616251868511243039448661142683786332420823178247018952351512061398645689401062724784242091849592905676056735527483774091811633749008866980639915023067346300076162188112917112237067096559530262912702592834038508211588904431161650413198918575506096277621225347539789475550759640561534330150175228062444092287595937749585901326193392366011112839933568311592481849215650681988577180518701963369274187148547192185550350289691127335570330220855461896724439216541123767240024975164588331249430363898176013237440683950892450130198194150643796300780662684015997122786203466631573918692277960625313268423454749000907921873277617002864151548384142993461894632126146415031612197425818587322587975209495200582671861879628179207125814929049323828224227457906616255381971583328308333476921720756711586091014862757903755372945124592299818692933771984431316398216942532678685806163922761975055567481322036426858571202709013044033215554131881378092132324129245499437103355203454225976219556902047074745233054411955286542186830028480729341440478769155933758231658331699825461629074698496216188203595566557700481024571023301706544534260539744104809063093214290989868129578705441610742578683859023272099061689914544371656129793249381383963478169994064939952078635488682850863610884482501072337075431155771897799939461660029458333033064794627691977767708208186574022567703230165113427350185048455498072889207062874071734215714977045757201604596852035913080366334422941939811376471846318845471004440309614403563711931502197971468624329104658975196262496328729029863169673355342440503924998637950923689325291108782224890514413744249065495286983160764541089286682561930809049581631308588112664916031683308969386625786626282261798953466396114149930573544405582067938224800227571471411916552748976504519803896073152614364330586632281392638341624460975146778823238456709270527411180456017077815376693553131724894587149255777136154172997584273992851497315834527817967762368133370205696601560279160267078398284313259620996962653161499345986992253692689846855589319297508907621249898289102640119484058270931974908680552629486766562527173025183758043093386461656259747293499060277267396555452139856169038107298633737395066491950871326381582674602584641643581865121871872044139179631027778278801466552853032549367160791127382121679213672808982690306695893053273744924401648125403975078043285941258857629972388380234795185315949067860423598710558347109324578759203726363980974847057303860865678651560184305596198244573834801974863879438937804460606847667237139680484455133016389372142087693780391087116142966138216201254426974556630193489395752112149585775518682763587553007277252468563653248174639675900585726066052187678110730554062175226398387687095991561005927018444372470911246808835996176086049143887322814432833926930742427308885887118919219978251323455524914662687343413031428880382110262388710241775867365571750947372660255530013608406578893509405557196491544532568411941246202753868920653993844962791172322098469377262743701889305466460587218960890342992107172500013426034141572461352284149021959958802424886694979944887461388516035269568630145340362288901398025797512783806760796995850199608400901114656581005266853314808201722341739019518327362693969688239599217555912244561867652797292241612087462065339338319828361759699692425726538514347090813612543258758638179773643042446477044514772421730307861485276342787004295996599858509899004582800571405961609791147727987687588345849529405138446061162476958620807799491156164821397685830082239284257494908237275934535459662948030026025876900203955817286322317972717250045130281680659471263953482986099958061899582772975449274483740171321034406868805259633784748784450402832400181582553579213522038840385953611842395294479404875120973511989166404400083718128945767125664721506915936737957618356292788215891299223549931090164683146069986110661515730768157732983179994913251479607943240936504953888198532523059792942396159365443727711222018869682836004643053436133032682913650509900163771864559645368062342332014772581465749613510967941629276881532338058623888136236117914687091084320845934165154394982478048370553282072768237031198763259721651639312942265797221751026671882497138514237999406255095033727713890521857448429002679415171606599076226653506709537061655332745804442999298623292866033713369332875951445333321370071567829729960141654407502642657220398288816462480582939706363296411710382973428897028727752121089846416028380069610191882235744907664198242818639335453559567812196903563897563063376518786142642445053697595544407202585270090376853589212316870734813256070632662394168660359096684385903733876903813680509240479684518610944351108604312129762404556704760897650772027105215401111560355528980949170076152080036324293988901466646745138140499386123092333560802996717580160804442788315535364846622665399139136450660343820856910022255186755084821416289430315500888934870798175712613882312648410360548416396568174753776903359016964188975314697635698425219711699061380085031255119401225826989768237005807316340039975774392696326070383567659352315276120782759524908928538124841228130627310490255747944149797777107632561422027112858822550547354319587148601053173489696028889196485016370431849828371589914832873118577064401594381366827418312697266077023015492004721062651776099148874981287939497990855055233686414151992166392773610181170053915209294056891130787585442537373286647941291333779594623370847329141061596185452467882104501915056533011396990452746618460202725156069206915744629162472413693550152668737087455949665406003654654928678380861657991078728326080991415927787575120513971314896137897689634840259075085628966236276510782773395415663655403110354633737064801115630749659944405377913199020372432439232637176193229175175726894623092884429384746901317328257741624163428624260813739557834216635983234990273652773403947459866013963956428183297231383096506963140209292937834811886400964582736590084839372447412093738689087883285531982628134991960648772608418641714684630485206674783485724666592012260190588853330359951655584491521042973790758629127021214378220024895962666117857491029320433102309764269728398734168841156781534992369809470063896258085911854251813373351393910789325531060762669095709628518816398554750198612032570848901408467083952579011848128798887371958806535269688791015000300005345951768968115944405598684266830731469616775410998608648146529518038323344366497087384195492839029673336589788349486410817874575581828919419953183435277277136927780008558456164362325750041180126340437478506210651826152951839555612717481305337164263394540375583555013551496991047776126811720251225983525218755915069442205142468507941282473199710977621194106629812105413339722002647375295913223726759730297036594433491677696272600314567816877696730000403747798466432654092667088991728354439643111217977525041307954087616497692951978958845573299132526376278893820408376345577259553275915205466801867415736387627622181971317550753087852001622611435835309773699738645273461115633097396413645162164865137952037947892726587496179019360429905077070847162056075622729281304776064892968959988618213590421262737419943673573683663941730521358487747628986756040134403180812533104054956630008416112218536692786498034357535822599358623632578355386651634420301560894784161882768579691290581709659720444026001572056612943994034796190823181393662699857727519217807421261655049604954038255022393048586416527735784029118458571574956946020152660348973006692388527135905905241540092591413595541960962911023286008945397552740569729696816336100257838619931462747093405524967104956218477474295682520457268307416961901206460691401632819899848994517178576348399886976269751106015008357943706003514548833716028243003660812978338829354461740165514456601198836766839166920222555084212167775676806468972598774982022615722602994308842725684413598067102859341034352661462328993322534551295837664903864031747433412072441846308264865652474107523565893322928070112554849696420699530486564277499536171302227734791685813509535433797161968325234527080972734481202764313212761795605973082909193314733787040162892892291951614869332177092865786646033302600432790132159791572302149699361907512807493539151717373004343698139495541661345870806187979020731395456636619771914081472733616198424626856643467074213122702288767632832424784694066350246061543114988895596411545003724888327512551755633761433887611402555153527568779777471968863192414604703264019592625505405360703723300548250221367523885007128334742785225040856304877809276630754325644895618052953175884818574103073117778954353885161991084975632485937286108307187748952900970210074199888801096476573326536243087095312490159617915429938968528684058082497854823981062505652920631755772005183398684393222419113436095864896763518031769843610467717905774417466861194474106906093158131030982240562265670487549460266156786810992161781726073076459423500010245093608246085086767281380208779615853135004052838007916603444350334810716562565462931480064886137384921705040008874010190374832238697919558060343255260169777952051283911920015098633345110333645765430493081134281644296951004111416446266840665454574517735711783091070078719372445680258276384426917081739995337791500602201757221742821427570005389909143720814104117670524079325044838220902605539813306127950557192394431136974872431590470964106121746082456646451948731705062779233216180415246830070172329430971592801425758055767453061683965564842298097235891855726425108946683628430614621516176963824569436774343311259054394318697802329037240265155003907392021398681235165240470525221948869493502078074611092326006710410192229182449488222546856776809107279324761308416777741702549263421869556837164376590754086906215218668501261697514450859898908533976687553966256107980529785775424095224632679502178751032588295995897752882598731167738346913569250880206938444428759293961851358692016181899812519478991604523731384413557824726299672091969530564287181171860252753894730175969911961406931150221998688092000015664962340848032137545451898274769218269966551715593618139957605619700984276386774933994121073807477524559201160081615102431221047007373223655862099093170579316841751987590952312923409824809606021359826463971012002963427419315852924917977423619937132976907030999595309854304106266888075466250792092283976274674523332564629367788419260106741359845200428389251785215661787223890975489119724826432945536367333716870441262910828606830042819979101103876430709250031118344194033965363295641735189011415848482217778008602013927914689362318314583248249427082413256397848208008103542343322791857933160908179824559218332286057907897175624694005405818944065978763667028882497196527409489411305229207110071898297900112999861024465538137389499044422650828065459569607241002223301706305015637251779955791053813676114106373775352613744373711971097635514097337688877207791374753382830181508673841683551146068627589724876869838230414544777271002220597096331542582197720990349454561650456021440200413250125106030127907324682733459727350426646141679777128118651993426520060109305838287054939531843591664160907029289231263297740931283756609380671335455408266734153271957952802885464423460110994885673933185743731257607474371607823473798844487477976036447797046230834710906300622112219535763543636185845332998916505788986844029997609858469692677506145751630646077353601179792605683339591279183933089188848571188165005544193185305578873484737760697976633599176510248996035909025749380621843088252061166321728603451831930072101181820242012607012326493108150503708958936614871279324921745949677308724265827063555659972491751257284327039083572337483426266927061435059612167012437771511202240125972920817545831956035642802831997216262398689926196651374769234922098540660927277854224621210042115489259405944375492319211997291373818733899618987111249850596687586947820346714855497627941141461249733287211651778378207743844748821562547091310237271156373391794136147299310681080515024159969202287298235487589606223900673785378539933909347614366912026893324485379755974775214993960174270610625381560342879265019649071445946088691882106204473447275941109847659877475587190441763020233043731844603743824009886086573886710688164893523031498397287003660230615423906976824869322336552223055288393394708306126362479872336421576382864691446749560425926538751909382414482642371912583122353972855004659373254143406476736555878978530248829791626164282140059796015416202343378434833989912892870573073473363763557104617769393051269030049771648542281061263701466158608109160642208325812247080574791630690270533677534594059526423510993123685113034221686868605555947496762428380060988532386289865967716067894889039352402129734109471058871526893137445865319088264203353753513370647183625700887243667881464108260976313648028142989650085124519448394090822061608219083083073251261290772693326180679198558744733491054969428888507320742993322210484696525498221397123183956167043522084194536718518180942938592452617748234517349939985055736914918350946587935536542603029010577408208166081266238399195067733685708742796474245355674935268817359896463696615726791180579285389827882887594825748990968497847876738987959440296514607878484812483134972211424368575083773554075962600612007436776464997006819232282796160539952965171260756565154648067522752141771337841229349660393786263563191884580247222892093219134307570566714977734013986676031511238056855086364573013828527960926536107199804798808712282227965954272129676119872341214761605836387168282158420648797587636747981593989095049212021366859953823593000883755674286163425919638262516496055388855998119900180833439513228784820267179766917305275568488774824180351292169342752972420090739353214358410176200202094585576967748676826268189535339467677199591554607335075944557795781143902219102546801139582720136526796094747288744929641428924354124500920420278894671166832644143955379945582368254856560099694102114654053630226134620526196031463098035554455352752958595600459880730351049769497524149022573531115872489032886328767508920005790293766019620258508172883258861041096881760801152951319911361430464684200959264702307094652757782265330516974820470794299472665783675143850867624014388020162585384933367227324094068437556059409757866609961671907839091055807974408509581962538258146280930294484313996365602152943912860130873998812324168748346368847047393340956434464317415532016093473366950928033061089990610698946349472225866797261005689312564477814156159706260194750104381926952903071292100629875549057239665155029249071560235253450655881706869177681813566387666919049523529093242215778533091421545931458054981422035092149012120775311634454090689315998667401261469158590777075496158517249795398435612661841389617261435065040678008690802874455565029195329405944049723472797534662379636761796885112691800635218043498005792254415720342489482396396527309567725490399860340681370394654860977171483817927227649127913053977766635927036536536564144819017310032992167433194735272615355719708225267477193092792651474680354802850475690353765076951652570660143461956955072847570382674488230294429576082442512320742373264414485454465569199495682527112326484151101380910147474782697244147756817846878580358154232297433926290111317931126969598045150645998201117594851892078253628381329405858021146812890335145134301907759198408787554589294185679427431587847088637432960338640418078538319319026348396600081095195263104516316761540571528084458148685080673850310912817787038245639754902818585242548639509378015627078038025366868025068016001612633516151343607094979919626637900082989419389235788450252966265399198572392816186385640066274200894584884146900435394240023415705417392630492740776920107039905142740054969299757813449285358173395211782079334077467963725160690740333005552763468576903175698026782476951546601266927232236758846094387481866585220614236808575532226496008121659997159428433445164025716785021694842479312292589240993578616420061584634217187839617390536979254808204885145338501727988947792965023091176985354588096790039615496921855179647557567078841357831565372892089367608742835647182440766942126686941439155927335285135627119801066507349567113590871517304940764516631003192291289216811497081225137868611964588857278358447712987898594478888628913422539998809089949145671601826350882749110989761079274270990539048950756195096692740498847965760740149219715924719526790679252459623540714621723530355714472607982439598656189700270006981356094172011022933417478196651926656010942375376362128924421654025463433798870493487335728935955901122010795442871041438276969164021464107876363294622488959048348342888895793343422990748274238659278680930916586285814865366825826083326984069416878137632521699321782582761069305365263678871248445474426274989360629875375209700108766392121288558005912939865430292235295768127439172800187182508354141806034052964110807216653580764504675175752223347899752484585533217549881744299800153041815106104482941405279393646059212203013764722430094674835317910123938693368689577021894527993522581429320020248108216895990855115911807389880926548283276463532143876088422087804351945899649975408843289584561094187272810463020135942586893108907061673618656273122318502621217899859981816154521475363103047029218396519299595524929270958928795885100953774633072261059584358197228868349092670057792842950771798511248138123759072692437641068399329750053693441917107085707032176370341132229589372948104527277682716333879066027501322900754044694483375390865275399017495965321442513530980387819517867878313701878189140677260471302791638919094734119709677150048123359314287545642739159640444981694446072879143935743343092047715613473799930325838350463146025943588178887879087156528155046570196443836379516723745984413990049963326518234575162319619222792716000540509408095249750056293553091671720831758017739083121921571279480234659467455858930676906473361017972264087591908200793583355728969658252471652282733405212064879304265376618574711659852761953178832123720290030316507641609444710154231152341962840595724127097768514448106342681641254772309247430285639687057215167938917765153479271311299876002952104333922166622182348263866707139948289565610880242107870696398968373729045852775372751226852856548769583183234200555433864632217544543766011919922235295754749028894985080515843286191965054685850899048549420578595602116279174606220186667234946776722367931706380999124055583542014528812424779862150959616023171275195632151026023575069048093315429393784217636612705634796036636370880555764268675361399889951412789287863129380285437668036410718352340161334169960912902390884353762239075524694084831109276804107941565702536244155197698630537549455002693026051089568322340225515961254255856657623861653439666649548868525920621018573052231494822625350421522800497164759822511416711177330716974578271784163226513112622903589540844213545568037225673726175966583816588688653427722725025764406085593299187589447216509100726785968611068361106106019956815431769095960344045541621791265752903206358797353100881508943348364401873990776098130860540254642711180657735348771608948548945886859696871468114969611106850745022900476128913794635630448642226824677335336592373666987276826100783522578017342623900435587883657489164677610498633128231771380220769985806198417718842662006172645543586542561736643812784751841824889864278681036539793453719442248658848563191017427656995385931577323980177535754103871640248084819202690407547603330319606965339574322510689494314334894769706817238219066867841864430806334537576369782390712929943627051657229874954863080047328102291093230766734635737004221173954866076216145365118153896798233721999253812769976567037805985321396783947279224058585293199145417464674905740709946499033575019732078452811024203510415582348581386195995092974071750017541345562802827006237993968631029775164825518942098661050252896615081801606688401151554926864377326788696219450815393560565212766527884484140258138745972644131682280799590944279345503737189232511071226947351754447550213051980085329465140496718372050218917400448821029719481779362686800385201799518483392028308647439169008280870092970094953899170618176825477041266452839650168846115022867614879360144253567565742905831849906805330704639823265193041798260566987838892618012459832652281550229347246838177047549368859011348302450725847896577251963042564927155897811970484166608423748688089358744151790271976975144535824246704683722645107297671379681939780671061295074353107977686044589772422576006109887011421432195719455786956803071962762417996273673140685751247519087099273949764594970827481013245323444022933388586007211110578514351305550022991727855402701451173999618616159388793163529385992636067888236084026559185472491071296072647891222275592654016071298544774404182244568286617169634585926488690023065210497491372658950194831282985456589217968891799098000807393259109562892204527294561951954529425294474541762181742571599016727554441707963268692311852707853761295117318832030985625291474917911748418225692410577772375134463670608134078265929045022709023255887639227150570041732997578311909931918406698189882076559545967952663967999984512818468706802281733298225260332060655568024534046658936299679803476690575377148483736730077144756863696131486197649667835169581049613578903218626657471161591336674558406307138841779871118271984881663875942303001227989506902086475154661732278948552164179210370366457528404411267094791819430149930147787497679669660762452702829498380691523062675037794491685292040034010116391896871424204759509310702198631130469123420836821426156850828108664845881016098565757714270623624535749033719091466793901098318434370310882118239144495502538222454709078219452283227370690034432700479234148476179208410150605498049869787404486366416914990253324217091056294348381119088162264870091048959456146207844971852525285807666361896359037458311976996660326370053497036993368537125203024976471305492450794053485800360347592901644572288220762353511584712981837036137287306592789153488233920849177472359775534089510600439522360698565825786199751783102030811558990343750651262921367182292446766196258040104028899827720809586923394379451646080044325312719126428816794906416906287212182259935259054481298205710115164949083925001102707102521527354298352547613827963951754520827818570050017459396106440210223382536918523193731257687262536921372304395394634032559547970058168584885132904856188177413953458356960859149887924250071868148932176808835261279739050148041708289919928010041033966462386473823337863234925578272513982262218168596734103530278084979686474238259878132794804846648413485607986163416189461957360054646061512475279624683497703946169311191688969555253712693482054836658183060301306788081197624885763657026951334636711606396429935309838567161756226381630174879434841690767016141690900494917858934924825537079030502109747052462796053113829021040516738467949700882447405808244343207234054188614573807464551731890084779069095239224502790648655120508650123766751452023883641886436167605471232119158942043849936138910318575172089959088307378346262454574494884319863136243432877010022134761659114495902433986571167677190893432842982761444035908499261234674897202381089634440226249430816942463495553732952811366513259974314482957332631953079996228432612405914223478583948336484949430397163619607279454939098043117007452417967838945870086183078759677651687689536504670986942850705996118246336539505754528347984200590603225299785042709393155413891959987267416000196578410243415320758553535021163593837198921453312584895968863895285029918641216063011637415774385307144802538218041744334550023480653999416407787002224049204962775848840817891436187152025925683126817630380964039173206177353946074365351230799256246553481511891305763828718491282086094201854866312255396671128974659208828676654286880729396751554135297001885085245282020520191497818282120089974561028881882882143002851573996149597535776011965400243309450980103040497725404060561693207895998149146492594913219286802247792279037751389455553630495953418174342272196777323296484108888969397049430436912960523487660224832180598155587479245770042278923814345344119808358828516087621557895555727117610490984443415539919636872335544664428097186233189728873643851070376476292194299141625840032915128802340838278989035334055922124350448228584322799220711387125277631576765482062937641762267394831353901238142080467825632053458761540037287462766807730108717937155100209467915477537020812412839596011362774200638487105337876732245662108740578744178357025318680077987359233625797279541835061006172705290299547937174969485997964345459622368136878582064654995000966730907517799671861750474787329854913062962516396889332979114664690999271489046241921924303551334410946435733728583270167975777510181552685144839947913303272122110052881380107107684165154466462314800286961793944971089278451280368795786151488712367779900281550003259673109926997560393744486053060165198538941910783883651974850873815716684101092125246932458211132198638200597479611039689522693006612715670007642516262343077620969542317912510450148673275400247543669068029987959829290257590376551557678097557149173054774149375328852507636631262572141693974583074075200722098726118170994948668858701324124745573889333887777657514077539089223504510676835531849662579340811597168937853599057147527906141328013096485277658121790250627082253073932695015302290344542546736463800289869524828639582136985596750956456325894653219555547618336345885566296654599012123296815172435921235742418463156868158622872771721926056930778641147065027453970227876166066167456113828037021965268976845823011607674230545757458205195830187067370392769819239448567256545566954463091379328237622140918287492162106020845761620172128307230259450142145025725497422118392198532823914619440987452047476258599745560454825899040639417990005388535466255557376311676871599317975567708864148567509428835855093331924692144434713698624440803967901039092868092912480605448125822129334405490934265303935450536466569536605762261749445684705220537942127231287398623059183944011413013370402185862449735277261567772985498167359603860569032863149654534476685499551108541072360257268846402455639002859427921650644256883987857024148869134124064074250918400266923865754824293575190903152232497384592353836445737446885582050725888298395811911309170926733280880071803064145358539046495235718252365305322924996690317513521482419453176723944102399476231581228678925578818405341410379806597120697824031311247627384258634976676585863333645111886203362541085715837196808107037555875361314732682972969549526903421352153106072040338094606352806197900973940097728315567564646103721653558383971476389385360863092704453753814849210355297145067809077473963048009530234563425005267687508973509341882391491717459976589092289132267626788678838809036305412217135454219568767380933633236015056323204342343744565433410270562250211054083767910452842103307208794904075423902617090784756585995011109667744163526317755451629390021171586452792852242305618091536569622569811509726971821134666754471841155892083687933691111580231378983936047675900653549221507854949135077453942857411005700225129092023663897777643538808684365772494725566042878510516493807948262562182203725851649494957339576946503040065873010701453232331824248890220925820605123264717719984723620603696845943664251134710655394321367640203891061304080426657510275351256390443144543329358227574234327721731834455435883577597991697694099576064984359647712933191922230449661163536552439727435573041142314061101624263110844407434509350600277802479817605299486740925915002540270502657974781702705849043619592539649801887862239690844878433097690569249598492736650590527246228401494159042177394835743908124763093119705155829777142957798033725819613183049097617856330373521751659741743280310647959567504430065713134992783357716865041569706379044503190419619680276809043387121152749439733577118406600700759526153632100177929074524213875315605019499007930963722772837289460422461363846378113700101086390746748011404505681664715140778594630521505588028061222156710830722097481715342045329800304649089473720121637211602650300312846215145059351305437854046333675934327029131167268736412784606582278086915201193998752320468563892749670829336185838737655893942340148257852887620175396889534500529190773772536169435748730883142999686740330632328775895831346610651476725095692262129012543541150714359240371006226588264450548757438944319999357731675109390709940109367526272304183890925447536040148751004722588135143517150553613316544766847881761671320153480446228105032253943136986282826707935346029073972533295302424474595262000719344220942556686974300373346872715398302642409283859654669376564122665475865837092464617794201624130389409607457625435197743958225222947594274022527152119361865700566153796617836787557664611133882489679123298634237022739770121385080622990333064925474307948091041376399800270839386407085682495892677288780373570154610176319156093854844874430668100969518930586836683705815871592729477827176389635769326931862391792684910549570695536979471697037203256838105723562042637563081180491451748671026349184895539012936194706360261311124062206324836047838482704660696569061622155025648281072991405256869018439966395508711754976971986486630148645971363952068504857549228902002804136558799945016221709257641157752655734740225283094186198342402274383923728075696972003094218428108498147880529087181458927034235058112614554043318050798251075954052208601628752711019013263985085551403633985118574364787255519345756919986542825711065688523392292703306515929044965613920008068576815550048349154122202085200989048940051669048469590203233406949820960786096751176352107923757095220399061510814195552412618738474567679096363940618251497661504245380439814149704628738468066839618681653268334707181279956621673247724190806536236926214678987720379733090796837484830687438211641206850897858198146743869641363942352418015496267064704176720993578424545450679645305982348421154011382417767229278927869118573636071064344625746481777415413336553362858461966127505982993013307949334838385314723704573324489927844979148039899389643224570839965546962188537899108238171765762771096156542749588307153870306753161249475507613371359848134252411985910600419536161223948828450253838999744083176617905092191955396107609774060992730241132026838403560889461114216381494894892030454416270293411326320919022063517136760266704726373229649528981225692461899049039093339295161342300886750855546694148532293638977667359591743562496644179614434406766727001196759722702226936486651192550237580843094335129833391916090895537679740056273330703790683392193531745399581865372966116318176185862625862342335663613831438391229173997513617934936166100967827058579271405791108595231135373611589408432561447273963313771447459075530241367228920592362599081867435128121708912668295083174196810404385540544507414287773899192353721757333760838037748541617241954928499031213825139347132249851248887031948392084695650708529434794205506613789043075088952352682475151027458899006379905489156066867577142521535908658961754752829254668390051743298606749788040699696532384118882105926247432163021878955499287878296205121586963051560302597877769639791072163498874190231921185072050449633299457906895048951376923307401463962316922305181792652526872978580921972651334246881131045764910467179722403204628168392764981198676651926726650769901105899915973459677943119715581026119228059378147231215434187411650198556351540403159947435003114411294146632291114526346224380341847959826348172440722807708421140175521536370576406523106033268594580237421885109808409519359870505181576533144116309879184437152500129358016186003964377916449619657694164989106054834901509822745347257847674563778416843225953526070785354926480051716399347108517955241590672945935173274663115461278523488014392032264322447997611971010890112601340491509796986587217682328851932874706145231147654709709012268448902539044230113903184944073665911636713364107636616081187356630378915420117332788173400298029215354367898874474439384652475659110114789356670014154236038547262746587511899179004471715502793270561500734168851337966279538312486256200033022814691435961148340416581406304732230233620390316027142521074413027673641897347641772315359654248744337811421300681128533389196432288084209097097033657254494334071764537170700173604543552193183676160457988990826350894707702803729669537584716772549493779192517220774145330619795937096651838954325779632070013923957328303966878209838489412420755338119949544758028766470180158344359518717815365173735519457021847504993706329689897550954105726672834636390020734344195056253866669150767063123688692361947881209993166697793925151538026685219167099264046506294309678215438399802301566535914599539107582085804114046490840193842442777480169861243371085318038236131175858126733084544837353596001894988199275999663524079806667925285390121418982383473468540550679154030564330016304681473139831062659993105700557460122323699944831551602243675529610425619026778114508075671327972323865695182790799465472436321811958330139776119302330987116095314432162338956249880781210937516708851835421712409902493236266450021322625582445910482857261759642830838112671202885573905773907936543193440391925251191962003514880581427718373036781993797207107640431648911767412841507359896993660698286377461136646113481509197237669163563135387882370486099413001559582780921901112823784757921691983671448749423629714825493032076434139659887724961125255104220697804484833577263985555169436720466172785092032176434266784978731605801475464253379338338394387830188728066049018602332867089320018451211726736456577479888488544821179093369103650249831282075197081057963542064216280533095107770733334858504500588432275653347439853962068937371136216764588516327142905350583923064546819169200663040797875458351776217184447483108580563161025235120165161970522650148148245977712673410854530062906087995944957058348550955646401530452038376238901252353719847342760059122513473739023008052902571356819501304064396651946754261603748619825911398013889521653534374400205669734244352454128079769089626887100865495599204972955871115653176303582716972826083023743376859019187907728359085984808019393155559763430992267412280800670270137884451079597057879404416550111988420202021892002743620562584789905064009372767291229261051515801460455769507066673662731148873069594247529961752319970731312072478588032835836702249897270572041612481587384218996659449639377365656976003649985503602660761457834917833614453339218229783652100539393875364304082353574683151742649281260524506248108029661031476207519498430438470053585479891595836135809786254704266158234613332143728747253548792620675258923497465329757364537165049465666581705109617814162722799570368030687825123026849146549297454840998384288895900392116508789870952082789517184675569619455946185185260368580204684908731320131696868584238906654021198744597864614952008658121105004404457684067918131899061966507933985401942017264209954784408939676168796161250043833099243032567455340169997099857135254154430672550123011947094486424816020904842999083096391279967246131415747906028104308036240073306038677419684748327959206196017947233857921694713105299278833510608623812691990368394719026301696917950267281191816223675509340574923589603197933982811087618623850630994188353371703836535226920992439541754772843582822372961055052297375154674332023940431005472595999752883657235277316389448403050843300807250533889768690347293777099596777154101383786659621361142840798572575253650952615609103874965371757771898655871651357071134429875019582633345161235260065137074283613611739987073520724605289634368083440930897927607171033944169239447975286516752675931773246944074403631036571414115502201179738600731830950782336856184165658929751882167862683377127607276220677431832374387239734623479199954870056364604484008078389829897428700904664716171286766750304219780267075045311991963140549491124787050218511769950333875159245664291073012942464087487161837409470791186564012561617620515211636116233967888516206536003902401629906668427454144178423849412269159402592364138134796101776318602142529302429335904470922153881870385103961819164996545320139965793019498794991622026507242061856350605532952277454251791488811205045652761407108891029942923979175614993614994563276023952932950454300328578603912846962099109227885259465320861497102418546855855613801248090430827212905909139650266555187341714998262306696662381109566226828294176601908376127157520908438584278197820780981454937696947315405632298819457041208590337871860759027039434473028004462155163328708077560444461948579252754462829063529163817258682926371635021463676003326361290073961379619095889417500650228546848713640004513835933538779298196369587097927544406505045832008293775778226407862920056846172622534352824176700304882221172521580999465849614695584081039900658720817627441887154570496767478636140964840889550129796332733283678889848379875898824904164432354183275658560818725026683267595670759121931851626569061135419385237148702637315051584270066556640081625616697141215978589939090403114787146008981773949390868287982370236433642652265070499979757632253471290105659833841147225251326874254209699364401524406738376875875000711510338529078265605141118721655262442489458676051711545872019461997496468613636932036434478839870191390427257802784315552054903133358130013139361402967010361426660491819885587128920914658569047009147880440417065884166927307924498848021822535280981031728448131179594857358806243265136334770062065066181716926279256459350267885109552479502540771872913890000851053146120975045282241960353775406723677352031600502611957549172640175847417099678590642511608493075453653713550941606813978177301202864543079747931767161599289372024435117988838283361638893029946194627384739217626662319367429032935338063872926416721912022247076852087822531373879211112747039440639575876437493662741659760316339368626267009960686664147040132161391767963613582936518664835138517625621439675043341706654893397921320439918651335358119221458948019586846608244571204684887714894546370633970708202720323009070301063564197287014317101732013420893046220420208886010629592834966219540366677017262593639452391018997586689441826977946022258178002599339808984498128550437068470825499616976325815086777355712397599695312488953860204884835867177521052105320495563102263869534412010320441166983665644005580228440254885292036616426073930303942779486283916874163200358551505409713192419127999575542828441221762761180555090045654431581317689029196472758319710796391470042614751346622720104506078267398237064905741820439008116628645457009598762700509122173276759575429269267969171014731946857547987915979297496179997359254166103749559373859764406273646241546322869394384409076233203500169319676729384324085266328535470681760452323656785760160668789048606039332863524456606879615894792716470909225827340582374985336637168457131431446259244609368414964896490413521721250774474536721682757744541057793136632345268651213487642112273539302324561551935170548701504904689652337983077077401813558142546653203338505594939188620765538450555448522227706950899105607067355928555068013960396741972277172937689279537400884340622177212060559207192301719430829787674215690812639102221602391866699696597901584588430408326035671719892015437917342681930126000202281060106024831917354961851144955569841821137388768736716206207520504155123787610782682639534629600732409076277221172771804453248755518052654433973632256437648627869789037048591790058919450391295786284582856411907864105085492333621094995751201685679654902208332979509633247662225744560119495342858724146135833442038938121866926084742889932322147934144263919658112279433202474775659243062070878434814389493686381679295193430961181542169361453976055593248973926477159524010487817699831858382046116479790901174945715702727264283661481145190116856229192550927843311580679669400453007121066917304536333215784790331023485558508080005779567508673954904751686719666059903264586058825399806432963380008233464693558814304025753121350491031001459498857556666778435886109026504817440134452309062920799647340993073298577537349181015952248511240353786740364173160626464594015137735763933704409973517187068355496179876224432139364561143377232733451949066015580159458377422734322294597186162972151457466739784925284901810918404859849062118483155114424864621521964727916892667194934037798924643685613736065091823117694339601391579566254389869145058239969186190797827300113646338612476356068663929425002009451881019887066626671698623268995141662676189645601602768229565649540919965502654634374061974990738633341978380941357003008448490584033076855198853156630688034472031208200493970143206018389761887568667952932315099406436612441287078664079699287871141338788322176081209478825155575822110053556673083406119181500759213562570051516556697989192795919130600966761256715618586551349037112254662587804241314303625334894645115771753646438897559391835523605517280521189812608309041139186279173506702175514372242091567840785211073124010078288509412869362893414142497487055158743973008332269201624569970809254227923776303228418528988109900361422258814653495691403503309887190996457948995441857099776540909412000928752156046952631602106357220183090199339006159105706822513649246233644224764642913178402667865569270863499389393994794378860506896711257485855832155620427318858540048001566432825070214200042669478304036042735771746441400074349349408889975531771068547015602766978230254350280882054869979940591617673590077222144293132669728201163921442231938670702194611973384996630845768121929378199468205947609129985876881785826560097063686242693603162515746642728827507519067993366666748426207998194796664730402677727944269208065720480036007243727771938785557632256983211813420055860409291559887005793924614529229437236961436294126151390334890679345593192863708178332238866506770088192882991977476794331974003528890579543374252424740450203046905622169135961518940541516864480968710630835900117032192933112511190186273254132577634573932906556322646731459689887468393844755401038315993401492814471192796775889215543455721423152205952067901648698517385564139875611724667174566790743261119296465937977517604118084751119826621021945157275631836417857905889189988828843720527366460950033801632066223880930281103099007507875113477517105720913728476527241153698998724665989442598379781392091773752827574828819498889725848318742829616340400774749654129497019250543097205759571697624873940228311298853418305985275902456085870382513739102607599872573187416071680239348752832512175465168985863241170995700606351724074741281707997561893569232477273674440140079207601338247387895945084223120346473525527141845752411089005768423824029495717510207512853715645342974543412939608313222880481402383100748867487002019442743155542250948334984380265124432351982347151910791170327438581745266219079838715232482640462551501913898411583794787099772742021807678292048051252482555652482124251132227600453354452945040363532576553507890239025624158766910885402641748361789934760353641833405844879044208635886949961633385281346113205336803266835358092108505987063567320238833513448156440683804336575051111376298942374375417334968153849507781832717042787214540292124256373863750514266810317709469275800925228670070585381603544047309195558331447960072110992671963051017970734025457204023092661620761683457922861701899097125584371631940538405790663115860647229300617255076847187535602147058961399991559469551196660801881012783947654697688822951083055185152365542855709990889013289915715398352370861353459179625552585296791750553983807201719783502332250469325488506035179999085677721946381339526757883659486269707225218505995646588877213118132857699258290192084773032160223256442168568352402953412711454011193313780430483932735785380455430749044046380310978986238062354547935438610031906430980019587583341380625087272605379315071089976940185657264818794677419107342374571392370501988362751946514657736042332336057446400362355426157326234779298884282861679370442345622249275237948575292507346709628375901710931264806488543775300790470577269900042462025761443811633571517319870130567417138107416054422944500101010196377727375128368871363188693204008737322604510397958875764071926050645268546890331104066311886937548403385737383211187056013781999039053482052406381253734804518597527326718648165083943891087390323510441023548051092931679578250084057483748554195121050158685273633560627820922678327459047993948360677439656092359437705631889714349378260285332179405100438620039078348887465538153364618154859675385677313363850401097686166636896901345636602157918113303482668837037068392138634464067280875609505207473203344061883839703960288636958363474474918911624483366651421135988100553792381012210024170836541335172424765526327584603944107741506234660185611551076436603317747360799008616007825751674556432891092135675265474922155819306595264994930398979238849592993923160111380746335402388667518810801434465759061008968061590193349964863639349757311152858433302140223807277013765200739140708370566832904725459177850092916543321509648257442833706837977097981264719356431815338335620857169597736121190093674557284145713591589924061053813104003241663560836981333305893832239451632228892845607987744062960543562812057328049957802485383561726273229809751702671622171922812688611608100787809617976568699868162916832161596254262376751798109205533408829143563480901519480575000742270543850947312574860717091081866287352416139920981995112414383278745669083898928409083079536955760977378217790973454921646057763693039759606349768029057215867040387368444581614333789427610226029946311357857848530107557555741664787040344836405772183607554686752569643215471576071465558180000749668639918888837477310868598398210779391765190028956125073937117801597061092996267366691921919419680956454060884241465366554951043394477700870266325738784150133443848367869564739571241570823748815603448840458329773818682415404171467863920470018327225586240297153628081453542551517337383964120325639748721993320276119135376262940808485323575646687149387213472434911122656753318619258911335513609508900942220590894724686013059411765104349738012768161701575277935504612549683690924596075313621712397749519398591473643863126509686469577148352223200949989102209541397024110075499549983771282220652328350735877155227043864997609954568582360911931457080343094244002202953882859168749402203852905471356479528928243634179130075206216919448691184440627162653345061154171446349410073725678427827900227920280662554192959515908287817211125790162834163659029681065054101619864226890858197013758319460658106044141050087832707367959349278415447952739067338545071885096336386704808490850024716316918670315467483927659426526846767880469837115048396898516013634988831077378834701090963675660329994128893260223939832941526779518604171844940756535568582669722655528077086907362953349134255391082131410734952798266424592744079014913890773191063705244418717558221511186972767283834807414348119479835412831157245472907660355358478503992994493484839278475243634385950903263832418966379278521810805636744812785138528455267309899091469702715177279305963920372613131961509457098012568373765697368287264254424851933942858970526740522971516779335545229894517492235223083494536389632993622207229756901905333948959741305530606143148151672371574298373754089729384814578832132341924789680169467026450834368287627402233343672560761142761391796209671817511530231634200280153217278190514447485665502483274610071828748528843675437631052967103385575084100330039378144753481076546430835842300013414629724159899212197418815601606549752856983759093912603392774916178160205709608098865372743474182205643479629356934209495804756582560408458798935766758840777534825033584749209355178912419295601156118420948661006971358502194592802389407820581988381773162952577890999117406158460696394249366761583261564713599461485625429862596290662782795445029583397030502039328625018752841831775329851253678388036946947495657672426559924210570589722139243657899621931530797812030752900997595043461128196719155504462320621890864839720547912190583768282233794750165120318660466207332680375848798715687183763556189308934026642015315918393348711455616401382886173854308710253850102133328514431556326585218189563280679208614050222711739699333244625612214061030052135450458138134063750051236811010671236177253793975137765939271837498487295307050195043694371434733373175328817746370028900209101023828434413589856023875401322629081274435030712797754393717970675850283424221817158886960900658666331414281643811064094407319133045987229770374606787481014866687185445568585940471935571726745508685929864844867867318874863634318506592705713997872465631554952777691737134890414652736388469234138597688989619137507358306718435961247762954523212475151768458155396891905196498434037300409655564503608834385492029910258430875213059818441417934922925042541407846689923592143048405053029009154970036181712353221081198010806231870996847904059051565523607514557498623205819512930631515981696149925041887883077370670508323923757036599389327839473789424395057549009999943035109679208309064080801802974503127424994013000917575238908184434603549764230454932428786984549499026420317959344770097369905535034330704147436533097600941188478288828803192715608155625620164321704831561379922384310555714862693870097569088829427731503387497811207556782493315043941880339569693356912980608234007095682177339513661645341733202023594948090831166433092330835851587319367206315647119984209430884796777675964744798325547482389285062342521221725558401612398024045970895195462258678284825078035952870652561297641634865052917437279185356238481736026847044535296003129501252676025078554074331186162523905481036360226328590014405100797535642601781319676086151163245746945091925260412833021293025591603655232072894963005886525186929659010373486196314343311657682271547032591310805507099110692759085873923984853104387660500205781655980570770954339313971268031023077810732540439194134548176464286940653992572867801596966715665593749141467524093245411708294027104061316938345438201957414714528146064082178049012555921709856625098106602179698886416734008209457708222371024770405712114796413777282668428531058096254555955381190381544372406886838007847199865362596741442627913291051275951295169191990549316192498952301064984405626850598461644075862583173532759349609936638203985856990387135828284574365644500168751472697205405470321912142534980679140559115784844032807043144488551100172850950177354808889891355174884247513576571668100117462776412129973912006281368268321339180287108714210832975124150980218561459917729623467442289925676183850195473349139795464019337600063280028768633671908307628284015763241731504033548876376964624287324489338485011240995041255484052695677407130170325433988718285088926166717995644817310712993190150452185853659845386163254303461773609728495094200520178967592684994497187495395325842376395541248471582712185706003066099169231622581475257859499584477476273574775739749897139759688813037865132272130543409192048935938814394192815871234706315680192681819674548315684871221787709300003744015265349704314245375743890752468968516337770285057193516493811192583737514098871800094050443606437241147949692838279785061844013354804787301880789468244922864172032517003723629018985985133905563451552544117794870974309409206952796917935724686572687216416236215648515399112448266957112118825904990956552857208189464880153433444527035207288928054740096128188790868420126919350215159046611501121785498766728881503915045148900133166583089680703266380868755634776953873798517540504499279861291223704815896220308617364888467357227401700165842060097703065792642203110421225382703961465854061272824043949717341446507424800543512604308846640552514151617824669849177188328439578992112335325006706880266688410395676015535953420307275438842160795567538971623014298152247183268485659257169180676843127416903766447385270124610071597337164885392346681154946025703936300289689396533032840883308586111980273579070130873578692029608659145538229670177007364908959620323904700817026144872785694489544582913319695994549512437938105272407018537396869218565983043769953728940152665728643971488825969052933468427901267420493003675234066641938659921907991760206136794640203373230336689190740640334679039008700297342619805773750341612557603349491165598432791497548668764982000871007083168285472287583484793346631748959090724130158536078165672090699915112477675503445912221655777516610506561493121188021863986533179047342713179403951483572334946728794119515317562227232019649072841004041578971648075686682551321549386352586123619627307047465396248332795712942707826065815464425255467066224622614675303858365204898404883327169917509073373155301964613313540806331911681665786314198835809220580488450386204210540518282391020431393196472998862204332477174726495319227977275945773231022971128830676990715355184074994449843266905585062948474026899494777244334513755826851964431674696187427164253045869509143859958023175355535516496041226773564783520792692717606588880158191992438998067113093870968743797592847967959087849745780816419181526933337792271055040113912610719668091088590530855111944644646060503996806230753809889574469575314286579572677442580808366281559719710711818008837016901575721602346855396467890957245508313804265502107896348617682943108943536291810397054185413660045271473295523464097377587233564157975724131238687089571611981074704679865344598678759722000827519458133801856273334347892493153217854100220984915848133503277735130665952285080197897524344969166253176084201992672433797224064031076710596883752848612998139765422413453693020256664378600597953843717091419320025694689811202453680214903605927965114702878531143586094006614462449879512751666249765653074028283957574674799448233978736787640188228552004401300063144104514083966677062127465613791376516873417611260247120297074331704927364375997863094688925990230960668312944845104036545904032251468116385536414339455664281931198218085628562027624985026130648369774047052374941193115412175275388116084709331676691007020442926986703630477693732316142465744129005137510088681901487260086294726161901949561562104225097766517426205822563565108385357444882229784269449211659605319663233854422012270659771034717439891943485267821196613968593199538382576614654798016005681629311798886216539938771121025857002657761359193455979549405488486648400830358368460811949116257592516994118137775679770398927738412537304753321149315966085193636876279424852474293278847688562256394855287622873895036659350504249507055727075169163308040346500195905214156268883550883043928149134008691034567903654107180003287483817224661481519741770690370054126325034807250529433825582930498743454742946437956621511931702757701750642939091397827007216955767857754966829624992293385975837433357915728421712583209443040669166979711661590358479204047246945837262739993844081212614704807125547490684408754257162478363209303774346286649116240366698055916194481022522522240851788918698919740660241671730616048906072971792185971684567965666082730802541912159495741348670428791843332275790413750586152789132923874518933248086483956384847353411564725552104746452948958344416128775942334994000952280130831527069287644842003097787146184473548344361620897829350205220995294207871820669919423780852990327690886697517876964237341115357633035400782016376792140476617235053839775562622742041955642432486243893438604556417680061035282045471620386330775725978216732177342363032345493218703690426382080993249973824171586257178150967035164901870041351886007646322001385637910144720804319564853912045702163964325283558484877767849985805827288075281228946045711496122488365105501656036148992670657693656275011752210789288797630619117806936280027129750654310674497318814202208163195428230293013554828340066961584302013153961162348068865507502104532316061024146429743786549792824325912847484136545126909867126805139378010662666431586363359039439573860874646090617980759815681801806441436536092443222054639006823707114693890909271353782486290516495922132299575854529557375538812444852893363449221167357225430855653860057229396731139605669838218046636267556551118758603981460161148615665880218741385225542245314875513834677667818938198408079188039535351007637567021040484822465696118435337916348872991810509006339714898054111556835975484000638674328038263775785814757400916982956808394860536376078018576283599332483024229226089871887510761029805568699789470532834727190256713939393903589122753056433452944723409392080245777718592429162785466793425566552410428061590031702238528369849019183905567477933199884521188136556384928337012123571781705484439805285191615132319304500650915041319187518710046527389997384821784874896628725363391621597050212773296424344131951326337054719772822311247694833819761848332519342442088870517627436101943489313855393341971160286482439950553205649187928022490459547340473535562445929377332141162471150252945541944340792460998018524118030178538729801851679163364420697225336379382116844192932459227287287421610527945950359150618860926241610571964842241222313324616386802125397684085287869286843164120079502255117947751124873193030767263686757494554002054148497606860153390506185077813977319624633569956579501495277229731975860676613893616520090217598634685107691272991072461794977586341783193510073696072720409239748154420260257826990875166520351796797851120660340929916266074236668206099451912842786038913707626116386939737963900252777779233971454046867359753568521800976987218254799219341674504900276247111530137391057330893550521367668421072919178011911951296405398815914101906066842010644312463797866833616702243169113249163687608112577041515978017095251123104836110712101721892945614317318405351941544646974014100909848881130333158909500945185795840979856440632539420918935684452508768092120275034010559102380930023717814748708090554138307934949635213192045863723997099096640099372990110350910914173998394736715846035657896211079775961496748321823900576604119052882623639309510567477407856125630746687166383293231903182717980133516355349781024867491824923761577550656491649174751874343728764248791936359738302313351405763152014967708439322230616902811993622924699011725923793779681310924999081894531510457631051588268157222532722549946497765080169590665183783556700115476303151934274761261279459479207717249101514764756891604391623186868997881451794268880772720030787543693538313101768438401744565757971444395584247624217932742201502636461500635337369649124377659296521937724193672355027252182677754907337899864942477894202857288466514048795425056858915443162942068081265902583611758795829356967124679274276386775386581927541209603770957439960792539937174149955309033633798082711665469390023519537432763967079465423202945689938553468489932065317429289339034514478084697105935415207108243898797822992244099716523090398843589776712072611163825893531881260166109422999691253113642883087546704149536975402702971263506322778236418374693804586998131349787995771990071039197933237864918126035917039794245181601606788915606246087256890423042422148854427242884565960768327869806760461365579432810968490362196674767301449937536026965592343940501927553128275669834655091984077164183527003481115169533542348557722075226823808667529427239966870021506482717706370511268253541586327394553999074998156866938993705425091225620511232389102181400554650713031883798488709049357750734643287555403974709273736461872065222010872282644098291539534176178526579618723607363676738765393787062312449382368524352016302078632495040214814488656822638803773310471422026780108338627218438961147113450900719998761143220712341878336542315789408761126465949634715468355461976213395721148090044889034223310835935770333849199972999695053866293211770537315032309138004057775906270504351783667254721257839865837381591287064856362642737001762298400845574204123841020334905459459883532462520228806186694353327909988352209541589120731816739225744486650670965522873018725011592470842395360812835861063783549462974210358571555992258211779547947487865948079923120130219982325806421024928142408403037488737547718249974185617135054360460679634953126240059129562865743877855067258580407076199400595323973821792964966453568281491490429337195684170047768267337452618359324331124913769497620473501016113143033139822834512054098203200335233959168008388112994400943225869249429137471319623050209141585568887484969161390687131767792886505065796288967640083202115845194761191625133516543038049780642167202509247244513598156658572731264025216267439598455115467698825776389788217574396156563946196247885341916659949224832097204327110123115589193163827335707289109491514513490758333694117312424168899255995771701169203724680833648699560645691532272052505714537622690213445887016813921993844419713132963070890958292587955070859896020181064097536790069969415727779123789277913286461866447839394924561494596453791008413876559465332535569513598745806166082813206807369619652144380108028126022325733405348925128809780543019022316475510860572541195431635834457980424700238671124922405525255671541201604355688034135071719784563040626197331443629596855269326375544089144256862969094431789500586993401888307456543745315982219041399976449086331256436606599736294869690310787222616068352816393282670692486561874791842310417871897411688636137217190956577443671554065156795268347713951533810261963206804219312165651258931501497750605375124164976196522067683876627441043644936175379656762018697246593405910230411289678885857587130969418452532059054773696968660784787411594090588854554496635713016737690550997870321417126034518471425347495832865837322334745476617927559357915592773273356801329204985794258802581762321162566524617788627524100545890981142781538373037823929408916134176518658753652002360151928858277372032906634814824471054890862007798259945552120728089937873246872280937186269222091870891829235647836949384385708046433607785870496358594102229017195043881166122271478533352324980802495752936013678620571559401344754204915643606259664361287588386172642056106925075216996854671274817663413074954856910269713855432999739909044076521807694273673256523244064367016226521018638911016436324590602107867146092282604531043949133786182151980548626051603746515108841112736906846052049073202549573125098866591009803595689521791413766200235697491331240760745267615099320486393138774774297302314875463334861033339921282938277282774626965561461113833229537435949429802805467300309293542335207328178120015901696846794675867409276560280538859696451179381688076786512699092172286564413722294783250892988630353835710154228549475802063504976364792339661957738564360811074085175507246324573351339189472953579922873352446124402253456839459474418125205639003931416263542413790574155462320257564385626486596219943455675454082378033446237854190856631390178476757042963112160553430658896869408033481439321775899467189522400074794591191822608682740377251963670321165151536023370657135667155467204821847207711465181831077046877328018931249097078469159181163988207779774890165927419032869808822393876128105789034458115860656806784037961974346195050850602009086705483449053016505236301289072529739095014802832867004146960286040763445219413660578859186779006971876649359262782886260941100961571805000972003769911391351580365043601298755493375651747436091673671970529646099968713123712464704302919587546361470596579671070863518350300625879432166013656800509728350720342623995148947475033224125691854132965677000540447295987127643426270940118167483603456732456509795993951416140743266884862524318208109013824415564401840045736149206180819165448379147520441913652700941681843799928199844864901049530682322222589956910104207439244196556080970221651278165422728297607639057994226223611968435709725005302897541469352058112573947847662366344185335326876171225044209508610860577181105952370407513500248404145664642829226731065643704811688037195602228023078651790421065852987729564249263050004782060980200910414150296161204023135566587059405390781503072037772220415739678180996113579092912565191706253653337973884349327489751946239718020096476258686428583157745121067179265069873567455713375583233117398004003336209232783040282446343895573111585109481383710173852871837951069043990590473332324774068903015403980111161545543146523485337030188672303767577506645274727428719392391877016644217320979085528505539239156469979656231107114692555705525233175309415795853572255948114286904805014069204295931895402061948137343887483425178497364655489668521501646223509824974926385888918220037581643616923274508895388580625271894911030231160520997747018606419554070136989509565111406644915141390068089090739535834493238320622017316936154929362647445175306107046795145193403543912293307329537118983184263254780504511852948689455687357166400205483349032998004188802599162304771063547310882405695937271570097691156777365798680081017965782542018068880295008110099099529859625597067326175603267313011994892991085684667082778309566514054402930461158201935919381235437416285503300598590408983256758089172197847249833910756632114357489446864713984306536961757228394460322573232853175536000686354095451107055684421418438372507472187902199864515866771860452487862936827832106384324769102822917958874725960029167785538159662689367774841044768564363755153820271572451054956324045378154276988895167167750161220954582748123416770592159904641780390472468189274843063779525130431887384909221958334245021269204401182618602343447626466213785395974839387878025318656239684960373166963867997974061544816431838794587267936902229674925845325991340873624755470250628713780120900535200198215525222121130853216845597955290316480161741040993651646049826412977676199697855644722373488414329842436753933071485198292012539891944956139641595312273561780178540868941803328725811141470725437945583727579042258508346273240288536415974146434784250091386748825033949916893747926297336654248510744012341499829954361640620067585887110584538477619761055907574518177373514492184178688345904071708253463284768433960773262838221411696107191123249549613317797162808763174636694996285408463480484853088159922044639325994717716449568908520107258047922138528879239202890848777070507913938897475333520135228248480989158043927087024622388333402944414176523742104536380833662496296220033063540411943272963152880893311800087590531928548335980673909927963038829839179165446382935590697848122848402269489221608985242174889442916744882052618943129877524362533330936661876657539735712412668070086625610070636723917016870424189345365843942906343794371249946478943860077797711755347824648225919010293129018931790846321020373269684995403168511298278365002161899370740707554428542879830559811956668610560562128699307806422202515682665593282203288079601725509491926759216777555770208352895431383025381237812984325542300285542655811935878509931562349080926216245760753370235497350872049399089266846109251063892837534207600209075021704937546977352915236781291809348080240064523301189902439254339986903178606948567087948214946248538127748096308410543263113486403074189679260662283915006126414925152803853231074178256594344048067005051724335065838293423458585436646520414849990510201669551655489930878566110090626032176855666003550006833942463425633994811583070615059983626342943416184247876855615631240883044338800295462228364463524874783393379687234684841521560307702740599050632027594486571756937734066228989148745303127913042819469781592322781684559048325909317157760924693168896817839757021073456217960001409694813856327324102647288092045667631121997695009553382603490011443695694165755083105394686414512448086880550007712192335012180841399354519695323962363105325299143402264311654672980800758805918639189491750258368734485900325515712927975950688895810848921978044359073151439538164261325507329601980664270145467681348614015652939813163581736181203881913662779772091739247979778504513012769924239289117482669904364462218240813723801221279118919463469791027715114853142755089115773056670429310255299103100337041217673379016329162428590376560133521238247171313509745204697840906252434096611536991892329149598941441297966249327933866906877855919675299886773432471532779280965052942414410275824699182179434775536564926839344825958745201840726018015778601818502279735345591073445032820494746983339570512786278389772509004848427583750599462736661365248478958390092230933223414061811807454260855624917717263768469318149638495468863168672638224253350615822560365615584809314775062765659570291260927734170768550122727211521912426959566026438031714865732202752175684149024906292520509193593817695901128710781024616689631848160662278504488222183948012362215910706597268431830050602849257280106079134140809409058867314432700281992164970628609176573492076850431660691791471475985517745014311508404873969497955604430277161538134501118358612715789712809721989820679373506962513670389335839490292157568847042546392718293039361615308140936670849046334920032518236265961020468428028352229848582710832359384443891197247444758420894694971629906380663140475782105106186256841637771400632915864157018517123055987357516631147062275517275894267884601950119918498273456495323621087247399193470070904990968901002978291822348402528962654887244683936153900670530590278193943291754397880544121324191804710733183773702332882649727053525207278285248859945598784602139095534231922967732647723136052864714265562911799917596510982980848807417173941703812425063091928218819702157091173899372952266105889952113013398245029562929858066074669610622393526248321555164624635531561319505938144012893485693130799554296461193249700935360302917366232046069431260676752781303845817630243766993820006850896627953797311384111265706612884263899628950937707944222600320792952547503220241085068298901390001819446096978336342777821700019839113791929642912252955491610226673844867526352403071569127454623891088622755820826954567443359513551852942978032892227949482174442545427873099846953206439743858525571095209495365963076829251692047491686891289581762690384275076009598966263030267871064698825637477772713715697602529881755408510296459682607276836416304932315902565791887679603405291696546249231061556031473799189505521200710669507264841643158155133880002633114247564463613602816566345890536740748747548139648971083525101787015405439680451535950654696376527761753714556546065108239670511311865586757828246376725991078577398521468385777751375991972189862914708116920001193218738945669461192154298338707421040687621056154529020640853454539804509459689461770587466933850298481299270941607184825327871136576186110853669761650462585809313834709443087412453918651197276108818393267259494468260423613843845404045719343092209635956337932438634144078370464239825276874807208705073859507639250759282211214490900626065094640873185703453345392766514185864268860460632022780202649503584598355770251959256238405671342267383263780589004835331109159488290163813148751799678844134292383447149798626917129869795324016521237679022539350094075435427824616938986837716171501857826292133157122159631743770968682513504289654628194261552582523844258661794933662755174486588889383262063863334861678360935686643800755908701384968557124117552975147329487353193041645712804944366077297021258525224704622758683330017643346095445840586411340489600818502115821535700598113705430698311940113056814177571490670676533755223041473249605514283282988138617707186406050961066572572594880779640764260793235567089634921988397546431175786700337873458387533224354712272559615728978341515099750194988972982896883372795005782380419557566917514038321627796535496692574142183405243177897789985377038814259332212446246194172641971771360200424511271900470451098269907671619680123692301776343307483799508073827897482559436959679377999330592392498813029832119473976792656994292030654436010966450483765861770407468662315594732842637586894994320469833031520786100553837726781242974271616292138088283989623851146375889539929688869811638146558452278216035443079250341960553237317811365483755854763962325404399001044865334143568952240413295676600445477015600395744335661458713954356651399670928876863611996147672784642401402169788715804478174118993093290445473492574393128832821400863238303114827548570975190722366507533230383949247469678647111459996928771242330049620735137560866823680246005290681343915823029664914785275476441998916668782684708007771869854847144563556792757274351078549020434109524340031333072198659632283588507392248858301146890251729693823776018808481708593290930812896290959058407659842555439812395980496974143775424460095442185371176640157359392531194981430115868670791085292691053490899195716004356174068033817686341507985772701061329473919637947831046208810984675482669737412432239110348926290419398957448503351548976543887277959197898999234705292101851060875650366735662949777323368778329094695581372891880286457190574246152820487814587830575504133475378329101036111215834371217570940320423916696562282009037191769772686314987468750140507614999301595617597286600477216877043215958006728904428834575582685296477531079790388848480981153683468763679721458366534535304636638522755230432302478042419495639896591193452546403599568431349940259942222745171744256261875263792844238375443031760909865174667374213564066134516841879599353082444362351663971857241306236103771376469762776804442492786149677089857077839965358635542819718239758040935489760635823394300417269535296084389721174767853377570544287773500103457895705347765606923758422078731260844154658427777095868789565052298032989789409111129548857931068234250345697082185024412147599693053303872927087047015076076695584463052421861458651496892389899869240960420643764960369617442005929786466353874780612938806470835057094497610695440960920284425907434716007953535405991832339800126644606190538249494204261970510301611218954526496211397924767185770127910631164720290458602815124127135479239141512598946399801492825147427414304864063015074460178912046985575307210033697074301506363579040507805445605146632264899688052693284867844873913569127294052102248780764541857235102159401752164779995529939725979091739525453136506386717521888850596970476826422940916519991235240984583055455266304357064585088668867833455761943816041225467687807649511531652510794261966058547652584440865067364584204166621716279051888328276101470633244146023762306785226107512401227117549490630052750389180691853370299902705490691838243914804973828219480613106359045672732945219440467945075249612588110890210572131938296825245475881267881374993659809891659771559485263468073605679245108318161042422938646634076511801132196573754009250034015727993367181368431932179645337562932550230507338974798042193085933657586796017200751847215226306677555499249295466934358852651569731946640893311228181257971042729772283109169835049460672720587670173925978580368018251803754935312416177315138803939320933586446977072963129617604807655975472951672999991908211476322235732853694512565381511809823845031022050881122000671874893584056681483458737401580127165731861699607251660378533033386254915718277493150840766150035014250303680896080026654786192156359697258683226437569286132580562144616392842579278202994605516187003685735911547997205568448080745432191401288218620926298018923277986894423524793200513331457646865189857051163372223836923338412623560273518992196661002731533674656959753360145791076879562011087385319431421707859648748921875494732688344265770060638047677819609272905124183242676561031875972114077673012800679874442442029566454962879277296329348298376504064783970150161191008719626148741283694741720159147347302281572887150705206632470154372985844244834548580868073526587592710258303315616506291443850822790280309639398460065019086290363154940812199925899382748408665110417104644417033810824473825696244888791959528689574357937954844744998578812136573758013649676902164274535205662444962620806578418093920144060634083364443968714157590917579530166926620079864668035741777552678806765764020182905820010492797814890525019689224844363161252617285055161298334571445844192328132997414529564075196890770151129507254210539111011945726872071430797854298677573309928165068727225710518317100612444549353843230707819438530375663121583631204519517892502086968705566989367868044161162149371675836010849144785703185817476112955024752449865389241728496219437810793505804005045396307172242944859765821082030522946212310882809538228384194318234426183807204539464453084846046957200229160597796573620187581292604139171240048294431763513674496368898726907202557548614136363095366908006377492732819189202292641591353956249765189705341495792125352172138944230537157451169168041145083063633540521181545770920068090737587059281041869520359917571010333110000179365384646735550916629025277042684165859879668962761928904704341278884823828840124594279047354655394001507733316152535283307935759091286652141932524323390061928711864225861388111799787121362615046727084014858176960701940608625191036677617924087257228590233524210202345113326809996308092223281655934516721894537678452261589749533843659729623713216873276207811330605160192623184468720626754302521705143481941801893124695393758762672153805855524971038424205218519873276916841721730205603390102560013917688361785938902227044427513156592475068404503268201652884031225991192177975114477709647695325651486547611737111550691424023758462060286543220749692289305125669320051503676526737476765480909316143787303101377861196734121420110137708973929727709234387022592922235214203185467025270709453997581110186472757139686802543982194323708857415655183251072148112175941339986616621832069112252035402873095146412481218180948439687404789300832561816582921789845830780759904248845177188002869489615623682170789382192706186221710591636508615983318896499267855549326880282434118245893346242630656261163339441991031017685082709138834334925595308392362763975648063027665811618696867955268623499187550338069731453118183105775089960312130702032268577785438461707983379975143506225132581801686298104160805133935404075871970564075723074663444794207735784671736177029308877512656338185362924846807364514541038680325996495689044513863748392781854738768210259598962215891711981358310273493242672763593862561817390284743710846085418360353709756295787642501688244999509161429453206373043166971527004188559770172107411410009117848712427013009467580257495483562046355509041098100908632742913532484530666972035014998630425754479906039413970331706795315115308356317073248724181537699163393512829822753111384263045561558603302587435100533470640277387740005239621942679779568943546020773022453625750955963395087106155034567187828414343756386121773760196864510837279828908484431271094151458253138611762582598992794048509367890154590423852836439476181924981403368503846499015040373841650085273565899692681035007812155119631415960676676983518939301635329465490609891407786305151027463656860330745502034949716968127089919475537247310470422160215778577231979349002755661885524602516610545417349189131067059669040207198872881915123352261644496894145058465697784368995624330547404737129441423936300087061719440092816600347980379354627264931619897231862063329326742594212267264168470615086496757772506509046249032224244643450126045119491944356415099543158933837545733784526309621499954398210118303215862813014639401839791596454392840590136338135893723323162458592800013364192019842891112639585717688898616169116405142181061461295364708445919536888104067122843225653407204086575955803039759277626255813860750917166658390283050946812779453856948469748071269122604593669221260100660486712294196716218396038631514036009994820556237605012230456287226124180734885034386152644722622505769814675742327654944434963051114181553759207682707713958828283832544827849542604344453782691197680095925202857035384631209922042999865833598423293863464096045107705001142199163003994767622219377236903682965988456688254410275792668349055139156046207596995125774687509439009420746082182984219677550549427095908537653093116320247062019859478402437202977620476482726453168354235560039132446304674592788551730204288160711667144732783956405496951277717274438575409282516566146236903464530530740601206869301643496033472656209000222655398248844621228427051251805984337670387435977707394917519677998646762402966581948781846195373088979118749789820860073636681615101421423479418044318289702342695741286152341624953302012380748537097947276677850138859733112989087655730308204884940316848660721159855954554035985342486240830657000004644018943230249796005831037769506637948996781400442506891294567369034780608169324192359613274649564053598352335946356677806795581516954682847196747518935430623232326304351971408120792439359836521810693223629397788917749283905290083864604719769271900660944771420514793136177416124901364773895372240568845485622881292850990141814385543406568130314510140617653374158412535371862440253936238776486722573541286279558988255939274045587858991190639830886850297632434477976291344961955996448821565618115908109815828244984389496849781891881346242517651065801220011590401679587697183183454509695726520030427088036360109851863729786584696074088163614444453155117290275982112316914136965466573358714829167821153683947842331035909371945400414078109718501796626176485951706882706336733827354949689078305575516965810506707726169149708438534808262035451800969736247989350523988746566924935174582595055734719659676108821545668954761152324473542135396466775333600062857447489557982410534945429764057346032265640739491158668821702838939807175641341861277497699527389586374923546973033993096022931792451983085672175308140605521504246867622240321234242207858516370671808765767110844812250437373806775976105179830963257121992995833861404503532285276441183136818270174265429204526150504917513687749168337791068659669928466530012898562186845026279684269452290896339373476920002377355644755609936573820637642531386914277707779609434030310587830493905488656958925706793801012842449461479925010979731014579738069203680003141790430678136158391629218605557946449067937304873735537502434987527714674605800117618157861307900484554933311323878729403854283569621497569689705144739043523074599940848612210336743526320156421116202352916491650940369898561628906141377421225048914093865899744954059379743010601944381153145709542940704246857739859972021276965029836008207007472777034671110669041060871390224750032238249243079078758107065609051884281335197742672794015166383443135467941287408511423723832636926294965093316520472529943329063852381730830479654729902694155337279836205580803404540108461959435145089978799743399238985000968583898661590505394121491114524056524554067138938134270959174868905306176710901632292697346359399644045153871740532313705514699317191139131325017818416197580645856973909900074449621203304696383221634511037551770280005120548747947899394949346260245545778602616561074104765324524582555476824107982145211077639961020754996836152714789014552884668324726358424975366953349533357419018982438429430223388814343911797892197796149357293231772121990284204840344776784895096551306098464265460278672756217810452208415388038957627780486856607015644990598380114751546136307339413004685211599616412266027638802192175284157834145473815467986069609013375068613140721357086343785020801115260749534233421715947035963844843008009085901123657953466045911091881363575246146929872061565973251947615457731595826347953883519071987286296208830328150573507222185125991597324291402385684992767084425161992118329126042876734818501337058740220097454007721134717661587904339010701472656261962476989949758834863641089650019854951676036689546010908705746100260387027446483387521893828593275952424449274973845589082664757003505434024492293692912770409224642365697799591371082445509209510379878165250962829775836584831654364646576178484735070656732792180566898354095806568679057362352656903292793614517711634610655861640188814739516623902574668428475775553398831752672456833596659134227504132846941451323105107048536252071315973426145614385514873538972429778895970306182945551628902621959289706422414760847460567412690968280783019388517119205325062260646253437925599093194683805660379848644006149419207361671495123357424505189394264346196657412932390922023095266546758513588534349710363692567527625076827352701743814362827108203458566754514773106339274153825994449931615752225335074004422287919192527383397490180943597613950180607028555962774573771204989047643051882518729852445315590219258003368001643232843279859527207731064860318961355822656018350086163644853411997172107648786134253147059964160540770601670473195470323493420735659021267300302606731147958406277005221290897101419765696956589101231145260835036589259374545483688518245812400195659622070982119932492691912383774352279721494834317707649988719930027708055407066153669751952257337267194500024320438570924213221946067859123937834436779892079428584503808275493884220140820069548734130053827294938206238241164097177031723488246144989987960141483864050103226849383210268135527163234503704341902185248179446005086621718983878323510448219730249079269789637484265275180464629437209234607395363475778500547780294890601625619341022810559868953259056857082925915420935188473041484592314529154245414535899049462731104113253520972084238256523820979737241720658695010117398744438412369610931608509559273403768438241476507355124617089612241351184500668701520616744234239600853112418132456897723225493040767276528043905813888737570698830004045203404391828711275484127209502118751608223744667399424635429065715227448531971669479268351889763313510327997882713375091600847282486983226579947095083331119427908885520641010031641638942593906406265065419436471445229553939703387524832992564068503420720784565555839051548926139997915897798741130752602773850443936677319790204612946139516755936523976978961104601177982120689626076676341464246373717682716774419277425397130856083096563887565606794873939521650486091412331905136927215641884828704208751134276600683608831288594836510594578434744346329824626119322089539281669758203589708420748034302056576018741165331192874774784993695852969890112765313922222692899054434702672740356054709610009468651252980330880860874713566210483223283930003107073837038280674706867050054655008090499617638689494615063836784542420196441124376997580250193034252015847705549206074561237694234852323242912624849247931499215882550468441688287714783630807518957078621895551339876701529275993322070476450258672260471457604568540460736760665573022817915152358801660759096410483287752113431667154566467339521959427050120719317297942284289535449254579817924755622518881008631241885516419486119221740324793189209850057710522905644041241781935887660276817257646360494820850169687335962531525351538710749852057459311711367936621867380978903779784646920722877221663214185940613246614123118928533176132209336433507818500902337731094585326432475097822747870169843775287466848024736762761062137772489008681480465606936595865263007771923563617748704277865480095841996627691281457624586933407393065241453439556898069652766337285617397339980993063718170004559138553050730965261301465697882917592566077432414961672103228026315032338426161989416501062213804277101921263610727255446213382689318643519651496727868478823607042086068338763615582816511013093187730222923990768086322044119657475891574093458790370019107380269096656930243509915758051521687673756449947116315812835609495900817336580489970939900802657234161883557612981489023800338944630764727384478417834062847253767347673451768249398649896661383410769731956511607733384352895132400186351274020531064075343156361133345493440295416464190801930159779012438561003344485586169380422037719738767877892525632062679747646496568650439023290367558122635108704731478944707356480902033633517684315197647019418630281133385146471371283768427789043709952166987299923091431219328282954734239229152105559954890735445598296214626573870092806121436544919032976135161640474416413299582511365115856216450132886918637599516817100541293781886354796344948393841108826948409072514612337551652151287061844999854360137265783678121024609919784803026056201238449333982088135990580339793711389257791607012786738246640375665608154096350950880997338863753363425042011309858686799238957842147434657866921542176500242657757046414364904710772212284479198944805449994874724235163047290088137282914259142645015317175825256281309290467337846867169646721410560939572425706838639330885985929518951844881845541705399049959835911131738052692485398149058563215483658832783756794318437904966521492161562747537663639601396126388906929149969083250010132532136869083264609776855568004173825817511748206672649961526825260134887023784299252571431548441824601485792057961181888647683307991541181031985680369655424789530892127121567324779414796046489033258762117506721482077330108819132715836888251511319900349980873858141809088348924234929736920233273574427323060500345700409769686065207963721173182039498506688729887452889179125436420228141684461508217459687764592279950517243783915747200097444777989500789635178366052945956695890617125371853835714515595209999947811595740294656275499981631719482242351924698827905773807325950542810092741407167341309640241491805337195899748993973244199268919513003484843386119335213150385188180976364723934874733674953495028505209071079967518915430308782365360138019553209764917952542925825253342089274465103358682005545497552346322668874764498697456691737726340089930061798346164804349691159797800948170867225694722016384893299489915794277133739804276573106821289432017810694079971965755904934305097686867727594913735041639728528088850008708604869813413400583640181552011191619805236968794785288613895657607843455080871366273512380109720868061766410307098083336999656289280201245446024066938343344988866969211345926959585363190169040226526898959781877802938728846385189374523366636316322703022750519292688392736019877961036961468874291261828094431957411071336885718118751440455057103342597936689351676697531948535729865364535520684540152810232275066407622961313839885739709738910504948061465722323021604433298818541978574794176814406911656926528853570355942080315932314916242991976471347318214974500980050615896879420120715626867104068047910425702125388635726356552218040795067139344246835669876490956572935457950157238404733848024224468487310689433271410918144524523696609969039689335089101255893233169099447388634288123854453612099727482973195820642956338488817588229050152568841474708102121723494091235974798801411679172289078135363721676043454325234445684731834747178135133892291042811765395509737009490411922294447012975917532763571707934546629119028309541490988709958750854099320210857086732117067319594292922953903852180107031805576219458788536233183119537967784353105429378860494776033199094181983277937118353866506046457812224594999211602656911063438939777057733252782680024255857918935703434943649812636058070553350074690328674799764247439412211609834731186006372072841358913468791512382358069059199098539105166895094858638480211168064647570734875310032641645914019961800962020742513760073717246597365282956380199490098666014334914563217270974681617936948420687682734435923358486532256443695322574969155627281174527227911130777657173705463075647826432931961210289272058934627006102481192065599823789445962334762772672104976801180057728286657585628356227777804590156970133536485201484908816190491550243710728894575841914090143277215851053398294585808349651150870914142800279427280612346340810589701425720258342732067751201246095254730535313833194042020686711885646657397743910598938009830108169488605375306130257219099535630465283963918665462383715854941580248450485622602466574050570533627508624754469808847854008785795767434352439557887932563097802214450762289734496988845560875741972400554387379882765722392975005316790155482187885859982523305824304688081846717718446633990774855868932888467636708887306246676086295912287131588921203175076885128145743966872278097409702471038645317107617254406053840618180753954710609487812683647495288433136657055037135610063008725084352745238149290485649892857631859701386067441261829000915057963592839961591035830996850341173069403139226504275063690289738799404308415270137336854283670514670021222900622914409976554090959659124513998720352106765508185522749530406477812956183607766097861001687686818565370260477658995623708894182226371198413551273045612514188400397360407881372382147053538506141891756175526260944433702031457601217135778288606754841168233756825621222452188459399359713782755775884346718708413601722881493309314643368572534340775081701081293061770135092719238303346646039857339457677644286989692851511140603052441721354203377922791548386463179840161492565020894369743681831823357319403863935618057124733284130578813437402008713539617396920847740795713274333155885497568941031593994082280662383201613463099041585198694391236092277177863484426282768713684893168861442049733910561841692471680258685742977593715446497284871697264439220552522577961034417554115949210768594300533575677572862759231281740189042648912741539624111548314164161850660736051653802663468449652119359879323288469489003034887509054491002254325897488645103433304542815888632905762680494079737890788951056099603708467784879091203336762676018360127606620859138512166194096021345185505412100885258823491304416687929030389548970670371959077368522129075405677571291586983490393038497930392115406920856346329733747347653722732116306429437726647778778169327177560334380027233080095960504572848632462258715527301735767286739978501806133733664407112027415213610668164129893862378159538127379280519327524100040046922331561058888770333644049768053638976888510906135845247913517313389188421101047697228062998792152436029263247060267347576256066510820683486585978308077358004550684661937449480336983229638740308589490410019859779437763522211454432207727468943145950202982453166517246081185209824540435024454964794251533582113292157792360882396170505619189791768510975337989109704671846220267075969664813441551336795959499599956886328698818770613519138864005644665147023700223202477651155339004592446120707689910208777607271030514736401084409946810751782549803421050559419326565187342296000009954920906945427968886906436493014871096920321339315309142379678760511555741538535545839665946404890731907956737307857101615628858382800842456005965940836451666282279757341096726244650846661582426320401291784996954881619100518696074818505614824743703118277344470071757495057206782307079084492604739860859510186039943601754575294754913305596174941508032632791217472541761478189189847024529646602383024031752380404031808112683017517918811406352441323655909013217268999759380088624544784222649979492763295539953804966816879438083326220075442159534121766512301061542328522266479464992631756293500990065916198036342803052644436287599879444290908754058934187127185163965830100748824348529760485353259423631896069418483932586567499121427817000276985332431278076356636687655179444808886790104094439450781473225119668389046719616597573989174117210104585002249056071030669516634908975575296979585257390744190904842585353319656114853739373783142030566532632286105283532921233708017242028600385510777564813494632156002209761690711710094538378414201884750453590985099085366244567104915543454189589539744992464909054173581555688083794477053057773352888373293772517839866846043935964899836589544295095428216362803380828972897812976056228820899240629294898402882729007254805708459338281410403641888222719818601634794410909145269389131205787988429992971895535024245859076404444128799876465930572883579512192282176864373541935435867298940767769801264880319461562868280583286631816725688530380212328574528445835093567092262877283027407324973700717593486131058493532087559636699798082467899983733152610070369720291229917801813488065048527950698542202176320026504073658424255647729708801685693414006633409904037606303052108489897428910419893756133228769883386265500978680416397659377512022312100765328933884548147705162752117898443146869197321198944720771848191922551641230707507492866677236789663814768717865876818737350306284464569545104396576854434122116927999193901685949271530634439821407359956654751647516060803969850802416108462464152461826863265868280704276769657115015980005463070829527677428851925299692595729903481395059891282629259722582117614300475227718317392262890168869439028874818743417112313710520364688412723744062751143260273868995741662806200556199456732692985250265569596706147736390797021154382473578922081014846356146241500414720054159046716060667149195251067217629120376127130533452825592310167427387382118830622535201120626497517834833262681552657898460950389715287974404699568096582976883790398283995572496888088237911434838678308714760240837013648174034491431068227306002148185403271117108928369262783876478804800987830402164123017136483494308899538653140139748301888728731006870217666998672512824321862671951837090875869820254767040315603382329144870036005924402988368135646296070074561474904361737534497975628503333048212947808864849526543352155421146032784062640010526105227058287869954885730304615594389897280119390993054058538280051011211072872417012951427473733990462558820791882107323599709251954557932116928754511963321309172055120866939167594993862905889304699864310732930524174263666324074566444347048977105277310961153716618015805686212843962205446164575830904154991274292978095273081454668860894675319393113232212316709488151595726207638479866597502031146173496019641473138571356983003058404827911572652098914718140352951509793005703780078514427823616935327306322170985078525567531580946386659518378687004771826111315897827041089912837838866022310522244853528617890719962783114519244529145043967756811565048797004741291516361355475298825417167820331874087322401087209072296062690307946264142639497815764751755156113950689774695934813477200666886773388020819674873523400203241926277374186895370796456979723778563708981642231563998472543860381489682184853981147673966467164553929859047278514157178354786618557392924361647977957450558257483885419819206985396289246992139274105922997926674726466304787739748841244838342686611524283760416501358528592655305964112821912836085658302696872015413323618421468539822324663594019864332212739674576805361713391561973277808205123845852481587813284634505596128284079184656246782904290250847431922283777939919355797854756905662610866118430756583470183978990555999744170285609062267067791435717254511936176825603225738957825824629270565398258547544764437800635974198742598408595370501284556642038887832892444341827171596895966899901422647059426468627689686870953194469623568056812972341858982996809946472162751428290597193842214713678802753613085078694732532013833098499830909488466420158241737516954612754939395547192579808144259286430801618584136248273228852375680684340643239243012137684164965567169060815947025429210589997530587702732840448253456758722995669752520702164728812203271820077381233868185846650560906658002468755802096795560414236224757430055401094594693342036522222838966447223450626249813735218436057010190266345267828388194224738547762263005953481514474625299224074830907841382578817934236410453601728603725514429940739187851517654130241204409794032181966978623897042910125813602989218048035198343703112512158281593950139768441175118794923613021736984070831495925588047327936302956053426424684239242925856599844178270580796121704460516485930412080029998932225230280604638050475465746423426355135779323587288561399274821301393861713499920021086538946572703498184248198820961888253112658216791955973586127834124361080884897988040816297182107339282415151057976842120638722288270637402530084390014882134644545241778663423186920996842972836009688052191264274959130919552233842629774815082996004724122176618726225080919000940884342954216310751439858643751724048157953401092747469051574701637896957862662499371890181515284030546635853306047716232270309746920174408600536360603156415256855821472563134435996753262601089015433951790244649966405921951896736980426006201384438080715459021863649640418105058385670674790658437149640627486509564552389329768747940495342737391091618820585417471930704612156988151420251429097836823146742971258730754365158726665937500128892185210723502528794077557019094730286340042642193006649948011005349235357882775554062556058670911972211639250931964319815040296674116509835353865006124250432160142930030825071118168725614950934586380507287909220650481630695027296788002977244644480995056704276739079221174174776045797636802345809381218392500028220092393053754735861272929569294916409148105618889305885095686305944175771535755384242325161359706204790552123226717271945844539271767447902497511316528790881171186550928541799997007725440567646036670760775712450811421883211926289393489484993467965575649768595987075158709703006200273381469398692440095443552122055540685881722168594467648339354559339763759613095716285768004410140773130414628146586388373003563653809517494676700732028611760635464213826425104323060835211992514774615321604231563654869456455985414681818628386872434845483731640123287823546692803160367299807551374291405692042366602746273456862029447424511797696923679813965352682488600839244562008314624452254581092012300834328981394923292930800412689296250311940602003181674110871434333558612146956930215163699139099610081386053592480820224786498243326189182291558570126624800186856881731810674163132375212491170191530322420127861360251714760305012161654314965519160018753848066526463887691849000149760143821670597297754258862229585659226307671501919064513104205259879674564546071232844288577455055562721656217414435487289244656372450531096943911580365084190273098566590227909150276330547919492485216311878611987323263903264791725814689890914790687173954939220090020071507464693318827719248870837568328354928744840664194339471071478768069118611828967996493569964054092927948632482845266330258281761315913450747949918952483914980999833733443737158951720159329672860548224542536791724471040389711024218902369583447454329972233292151268263557148088227216638570056987035794590334799965928618104854918588398472443508750183995543012295369800214112049653014102400508422122773471956318993454452394185864324952119134149975017638839085862224334772062397797348260635827881537670916424427561946267976254228506427936162518461181294133246203574614807000990338915105326353533297530425333972898296134908394409227820751940377011304577892221755538758544337647239680349116423194321016379287870121965871370783131390927355159182667850899592073932981153560717301216476842816370632881326663774895414316660469235981472312899028356073226926945415776340270858532541561592237329360654673747425176387188824281739170045642519294698707069648229738122801768463298571262047290740109246960635268489515973518191031918396265554026557523524047716755197533891770443408901307611566870221822251465396206892606714008525275549194037010609780881622713343456463923415230397443370692387432677647349911106689952874133252112345617500499061755595405031618795571921087885753603960643607487586750800712425448294723413832245047963296276984170119461701894610753515072207771446935107245011726227224728877178438849873743819787114618009024951672830524590374152612847461039320522930163642593254521464383720226974896121368144556961305423059971673444008540389944370513054979948455130394526753995885535258734410327993624092479052641182993958779582798865860648058246477265927038053855660526184209392677092846181239046080665095632313076898899310377205471649854080798997766001999370871876276066571504782561341078288407726892321671924782226503142820205752417038016664032041346332352655340030756745780982588009370647265720153473456713626122731769407841198863148196489736941231813556149026518136682111842450502347027811479533014440544654877891732751153403909447760729545953685203052165935136487003922600349638209258174865127728394169375137502784643479262881220749135674822551296762788694552545330030744697493803344557547070892628482817612343243323620195422397864854090444375781275955332725831760193165550379085410305643197394328155633389877741869800482340597056941765728978995956202746783475496913866141109212976266945971475695111467378125815747723251028536362312383706921901473917033971118947086765694326457582105764573192917017892283324667875064227570223119381216094490544653394947371911947317213807258689007758568086426574695270045323984981438742246181260391672465457006834956533425464899420861326487987151239003224174815781227133613438073960469345285717073985232606901701600039456562576227571390319603200881454803643735513596411848458608053484283813290205280639922891802138521238800875749172135317805229538469113001377180653558703447017264230753457494962485699434944430502708905143572472895249581777258290234613506441531474596934548006725658523458363670245911237725680511644188553575285399283326714878329500068734957978492662367737921493930658993042286099872402198299390830640754054320407471083025169907947327988074641417887450698437136751695867555636796860019272302582690659645219266991933442577563556272962937614864939072572606386336285411144971314753700123115681116757779913609788169130011678087273972544779981337666429297603328783663510454653178040904855843075357098829821127011756966426287211571102607780010565724768076691935834734682471232423265947266636004372875697574917249313807304845326895058903321524925192742488933715487315528474968052151578487786905956343714213116199166889767956778840691599855559398408472843638788459381788264670263556228141324334448839191675144396300469038307832748004974008478779809178165254830304534132553342199481880805212920146461377812896533952486148110152752257425424660380426506936905385353695557048035293513682135082558013511578341039105725371195836887065144397065134657692289744910842629816089500547211860183005329501773403034089800334928401472588214646758387003122266015094753726765017757269155881539673930055477290948228064866864631514338145341731187445284274023379346989774658656726078024236404885332707953496254893343801700764521535678040392068961510827102065596825017140336011076845693226222711978493531470895971666006426436591616713119483890758564359936313808488175424056591707204792471802370079922386471786276379188623681439076633492025796908674821012411580046235540846260704507175168484760259036176080833703956127843496015625401228451256788370194670601336077452390431645877256746496093837516510424930810883753790053614442126186425098964086500627550477306251184487070646785703167399421899193974559915204398296663601472044207338047248820747255957327977775355689462818523006018299463321119919169308274017129252739634541465606691741230366540364746522303398063745575857024063158917130963038396849930571023268393187887031242310697613821786540068039566549892205041463545923838805680825369101386371780374100464558368474403659141889570292057720033555674711219470956313479626874832920579547638358639264595975146600387679614887120537931346621919416743785768499666317687512937567072123988639361625554583011416204161988466889858257517786814629930822392900640795546469232316974840839970776013030484208190618314754547862010365203572881159402259559004409159436957405417732402283815901273168022353694865141522992226816036942752784930327017488204141186715018137221267732330566821755324087572795313745442185592221603124717867270899878629923352130119393634942081791200896531567486719719539131929449596532420232272982842031662034158210017995959001257836684140747329387144606278341188079442734820818577551735149466546613281441298613933171430802870252587658183004461474400502429534484829708181687768749148325780374234493199511645166541354582345918859897758135566041215197821420882437936209539320719462592610976776601622701368240817091451947858190792125028986638250190816283957830909975982632139562495801474085470110021967332293333614628780931444270785639293236348506720673217886838074485427520752467232462878670601359485739714859034836361073999440544915069395883806544242742891230418647163627248079787587462106585780518614245973709726355223463224913217051896122093333469981350305944892326702913653424402715118868185914329940354307374670379783584934957967718652707709463924346102334615209339035649958693194010622954119568952771125749110065247922076307598060192133314461043554259998706674240674235489401180033741481984142965463497497336090762796396035077382411559769604114720446808013061144290747784952121069464558979834925773767296478268765840407471804559014049999920559192274370927441252026237842202501164903846020361027739464001091685070795859872520592798151120723868279699286450325373380748384965077014284749948813902194647714534380037455706112097979742844753108052791227998826066097051996736488258004157358309389554480946632312092294659141185351180359562805905341745483442101508297588374810006061184130638250158905439673474233833029804554052842268502634372194233440078749962024133082580919782915408443079530857069553226031260090279142014103325423355488562316737012232581552597072658736208937011007329132726083902970925718281654448788090776828143791131321893685167918871691639329664672523900348177597965641090375459298601591997984164252697177109204618011445219147695295933738623233327513655879358180515718310728397228951640697239052122278119736851172366945155007844383829047001557641148720768934075142716738168294788305066135559886899435846725157883075547846307844485535064325104458678030248348222297393388674093183810074869379784323389099124591058843463532647404545965946469956512928678517749024276104542381536259771325605098228067040097872253641845036951900535249171451841088295181457012035462836573815123208767492769075981036427671960293515006327099204428084287651968658130235828702139452977745639181324319660867162408468792511055950255964979961901486830723840353232953604139168654131734894972239451327273556619054333605174020652715901288954742255099917429548059661138057915185632438783953535788668271753870408175444655969594506166521616133457999333140560845810354208552875408226179103208096920176299460480818597921657000503341598459005584841853080708534115461820771967575003232350149671627321909890852600841717247315778428217823922882409162043134952421144152193031749738887358064715971230161186678441701424180796449329924495191264715347746449631582777042258360060936915595903129195348882835116093527136342872547466722651330235048656951866739690854932273322209452134464722680876702357667170333592429052495550653996632417366854703539821713375561498714494401362379664106064442519172479771032847453880325955415392807924169122677399792558249196222999958117676164359401610467692950893913357614204631482633102764096763733977800630989117588561979160499348489102629320463215208871968609154584751395622201945624447312358836596747834244400868884017669921135688417350221165784628427458178554457640188062018046429683396540892445599048439507703012903231884775157310914144618595144845827754957488969487438677192796301305723980296427025426068197262597403190018786425881487553056612364872915994819112390077428106801008301309992298731617336379409643310104092667766998853917481650677176648833682988865816940233909635499553275583969244562874131356288471116458269389012905217652026639011968582304049671915461891044223554147406475740672008046731450775279187103459803833982319890267373532212894070205215335220552823626383641958325950540118579788971352614779995900185470346904789237108248772244531637167688135086018095139769283157063637870412641644925208618855882717208911216631949364603938753562500381695700162071809775384830972532641662830073193444063116384012883673597409802025845362199433344178915428220108199715188914278881609410216572636542291066633160347448801212123625002031202947699753769963345478726619187683544031735795400688799099755067875061909105122897433114475437765423352753362659596256565811271915314702674508709084267446467484290748729755323504154860299543009446417491281291728449872043058802547998681868983530288973928243708197623542518170629269569387157655921346147330100402045192964078914599647731983937301749893152580774133966128733521909300129408462376566664131431888303226640751373384398971892336952721917732323456432441906638287615481695928425368136015894916348579246876689776428938466580795249880380480134891309859127179891315914331553667251275569136672058207108517637598336991259969996165750247705637335636426131554571502671329938683026906723397175413980346570257826320974325555495213207862335574341233530348472954769814326910950671425363094957248255293369465950284669944090329418359438757341684406421063154352278340799182173265539604346829577516747272001456714980127672439973514063246452988863657373710998986033255040464059940932783215153149500337434886060409963522227936812648986157659666966042476807128009333931927254326095513969738325344503296525235475576456554107471113007764837163225014865019851093949605181889183535758200770707139742094342284980843969852822142602007486501263950891547127222537257467481945000482316247298113913279919525363640327139249942270167601335615817517591133416255521819695739441294905803097895962461885767746652611798748013906995331707913626141157725733481004808347828046083943747806451381920006719892253248894721000181894457503037598286844676522086270465516092408542913239627491132742983498415752887819044360971731753952391895691146174348736977597688836292258704777413365012319113483181155493780518824968735444155094236643635399774693749501361696595377499292805808551417051390818761682379333806802352996931469222008854017769595266369842475292753276674775343255194383200720699493793635766092639151413923033928543057193892301488348926375827519287376759145174641266685469497982781684241004145177202113564827843896560876128916338444487209776577232882253921466314911154009011808378574993453444694068373317093260590136727112078360209698131987868821448396605677925866592427682330653408082555114283381644657718671761958099029631773104539530490391028655473310457992184047646269404537286152498101380334505166886792665190686531458982678519300890440088762181123555345697019883483166502404902541498117300768818085241887979809719107130294412414542538958559269750541979912712762507052223837904476492020053871750634931263073230660031164692061321158224261194810721935487951226313025315580366569395860246130244439013392641867075569740408510024529060507417914025024020509455398262950169853038064100563567109108217331506994465129372083444012385065377283601855573375740501084500150127028007921930503227529319994547385691204252288506540221633342475542671824487105419425966301556970612912808394886377399316707323247251310479341476595821401938605156909025568692158462828938952647611339599994462032946624496112382842658595192981031695943810122611526798782284707906106664888607367185481585880140750286039058944728174440924190355090987361235953653891966903850289484228076596544263354889537834244542568987103289806215898685020993325255156931098051537084743739570950234266228893095676234021351908334403407084078748159676465556664072795506735471546547177504895038964793519515863478510847255390564362055482436083208556169495984367353308464113915748158570716281315014182834134150361392904964917035428377382078489672910915300160960163430508595788678835403973997676947531656545113902564006084776031934189002989433743179068279924734659805256572078569645707007909909052755050270290021296693576867589279446960648262464311579345301149017365926928216628604237714379064490250898232692367457311072133838495022147746613392997920641658418982690110623506511636354576293305812808004658000983862222430482673893265204687511396765287654976248962603051169212195799825361794444955611325129906000576906536956332145612836967395936279342760653076471438942599765126617421439457734304854733110915512210848838840116987370268511327922152960315498061289831136059315487503568821915756742464767703643374386658836189797632426072759000196548066323131087970307595022789219985418657736853487685197427581969531879080079746654740141716647934357512121727266178547100079180604465951053259206195290862942862557559503436158144321148609430860904132129848366424006250568284824897242884821797767743526306180717846544700427966964558511278847046639594140576749274139177821305503882884626484677340237712612038840166226560146687613684908898586036209587149790197587918901868990710399428173260455991820456115109303259700613366594555494624348567414887261395778012532711058754838671264034144130903688657966490848620279183728050895212301229586460256587687282876865841998291738204932910915997266897569068132958778503946520463900428184608177429171950885461346331573385609074748936435767920057838216773741937088662923997069287229298263388679468539995185677529953799327168319949946623301822212380553956683850826751990637719309673082878293637321033089155047851117613641084431414143170673265595213221450620672278967766116355715803260281218877447463771505844054252908625655570281418531204389936294883077739339832191785013493753117041398644485287633283954298522273437710617904030961408122589546893865460053975029069405952235470830766032615890388197282511988215208737696598620578705140080803966171138207689862757336615925267391403530418277876780407139456102045944776259154844776289113593202796793650943091169894551698007758582910327241381557898081668490978611933584341967953582655804336652929060739625321624346875875839310480980399481906851654556541635786426261876102145057702261497026524542539217803114047053227968194527348336686083485583545041313220252407129748082851152786872223906228678370589492430265158136900410427855257887709408697205775142156738623481655329742742613325094851912332685344290538208787143802025679186318720860028423539125680855402788426746844447916777274679258857110291508629883993496993974803243053116034018635405237580888578557254869208686978482937266243368956982789195641496502072115536038195033935263172717960738848418904295395503125916340776390655171714788824293399796545693460557079700739832078211109883074371940596482928904448363228982838099181291162457306434506827004571533649251343705909490446855935550713059831607385722313604325211460755646100212370999684623435806072156025731166560874858757449891543368083237168971512049572248548535972087864204254292107563127992437395291527602988947496121892462172876494289449351062714301939829108067816438588865926605252444292837172102685099226726204675160231401207628478983631634448747939299052323079495907628980224067682816117543610776986357941306690263973131367787936456127707282344445304989257055879742389028258383411575831221585239579015531830861954531031318128500390396254021403938518630077770105562231136980695709517114544873665258831955392883893449729235972026600078587295944834166075790479102469735673255024714549580263454066354561219635216741174024045258680195180880839504683018934868821645558943669327757082401980994828485299055398218639532036135532102543323470184999092024297471840931507708713487415637884736088613951268737014729267339500555266618891482454534439585424844477633015322263943526163204979644163279892311140060824298356808186727105311035570105862665623904559747376028076936413246095967011038797296138476752456971683968820220110754790087779331396110412865082643735775225726708272749877209085419373455432948280172284185354296824045081778137389789039118075332468736912844485840052938187479833387870664585936177662639234951947476906255302386592655740332201288348378210819091677289586076806403209134274978323816467808244580495953839495948993940121717691685036819021238911580142279606124501495567869446668312547816041093272100148468785634950975364823396996731737582141718483441240437783227278722836297562350401539932985981491936119137590443458017594806017377669648539906148861820019057913023768470752218719005121513470849698824171856456584878502474552286860357055658166125821929728176111253496940092299289096876109388761619202123485396720551374628677927028262311392901427182572144059690353956989438843124857860634950630737471707294441536046838231729077278437684638635675840679961304081427816550331530809855363829514226010521574191868026405432773370529530557327570268119509070303578420516593176684018550200819694253952485317127252039048894911903931555920491057381343145370983514150249799725542552612195367695418654677195600223070702053340605470850122001942828885066736465900921026787022300916934280028350452099334034591190344344012698884318062276753178322267376964644640654927102835308566721997916330361783037368920148293298339284284924997543081672776895969319629405129291256274816202453876297563651655325894452968290617607711286593243752186630757655047674508135330637308187811568315709330094276784653487048545185695642119852746461543718870715539295769739316627213916042462165300860701526742905493635911618920489064248355319695011544329573168718593368618514908692836822136818601377049247999471774039314536915228702702747406658134250421894399278149297214994219227959161628857416391602921805385617255115813001435179208466091311958486466085011266043043721858374258930984879093934500235044147586433639705038944474610624072718750512101684007820438929276539372364184721192765349216619046347970877364175257927311888667542783208814173470575106974120322888900268753727904729135001817369826972436726421203317125655448505247911599675145590312714121798636661217188307499421290734965567744037167276741096231521692816304497046531717834814988018844692791298918255020700764379963310949898934382199874398856278178353257633443356861617255588721524369014495181054696161540394928029244512426979077099657840028014181737191795505586680119156663517302254945664384911616661937977866476928455714788002655052372355511242882938351645025611409939396334251284395992413897257861976181546374201853266467644783907610924908281708733382579453166106356790015597080005289064332575019342061504318271006778655079365127561776729715319656842706456375079605406141832263739222451226596774447484361019010180835104353947304085645259629045462394213202505970887629188818062676709706076646323060659272011677586875842946930292762093092914591248527395603990994126659424803725182998317065292910406298045571420608000093232970596466983937585995565909433178403325502288114781744511580635486118436112839178657960799594914183706842493310624017416496090515713194487728913272979338365359092393199004639039499471738514978431078408434691710228524395314761070911035858554142436716692076155388238298821943294353446039453347507587820470176857504595978341394014428856389158809780658744156956324868039596178613289819117636381207610760382610838444714706636950751820714863336637251052136820618286026858731466760404659702803960331335136628241188319501791459173537332375369741100271472923681031596645335205411382066540250363567013289827330067083063431258550401785869208381250253844758389358822094971137572557704961474522356415956244117219365344055055335428254430353719433666730675821720050898257885604075112260682584978698691137267961129013513392897957393410170803475945525120148227521249168332741876958454651099230175299112947096153160753342847327084289578604831172609200342166037911971371880220763776062338606927346944062821857343467892077110646145299819163839984694582033061606519361933175630714599128041910655823235294520780401725117577859459976873943680939676977664245548292700827724913245905713667855678302183309099132172994819365622403987382945118386706829914744596745643776127426388082353942843297019338490267102090598904538064114132402590029302628934107443314046810898236042829120427361452387162550856833573661992821506584740868999486791431358429104922696899135527795370252951985065898652701540181478386549157441950526898826790402677726550290885955403245343722072227515392425792344813329144123559661589807921369503351898248027916598447814986117529884285597490840800513013145676206141154569538944843206952767568635211019989737240255821362164456576411443047202921351896171053585744756658001679568152502362842179129102741203297175388569469234555713998561620298006886333142050457945411275528884811318929141699099926782453968264062220737497678446794581395632940310394548019272970104887319791328972236896043445260563179812216105465717036107096546457742074244113458637829549265609250243966997168015605992897911506705837188718211345413984720558939317578295542683368877398863169249268924552002763313404570802697881539922241588532599896960421318596067896799868790323424723082367663897277577661502340043841729086158981348034089343146821713264135402265372527472790924565759773590365409790914681827914405975293131482808905337420132169157440640228526186727969756751703740890713904591169829909514810061107003687064428627806126647883982327757229979703890828111694972319868393674434461185047598606408317190142422110868609941948746390893298576942869633453599167347904509621671434675940170967712648469108042409840070552543746244525204916290673477153658410840558519615382081811285585435094418997874325165255805281330171735481040756041020838934443101762117451915539331387132260670407190798992752031461530722954665002093115860547773881393039854551283885798650261661398381256769254155045356566430034173772046744950474510071088655871882400546213442409254059827832848179389503650137957814150311855307381273137966271020053339491251486834589965559894787454014351173466349668054452924228312020573670300633254722720465597451272255062085632325090362715875796995238490250129596336579789669283172830481123082505339822683509344535915171194786613732191934264798352673329209617752018301007267492408397904441084775227462627839879467228136728360698171997524296374425771565771203949650156289189487809612033355585772729950444981289738369588012911610078161762967943011792488276394823241399274054951822490052588601154175665942507226464896951498350044188561205111179762521350552493279885942970484300819706089646672466764843435349942702471120247062070960379735931658790769151585891161665872596790731574675912535483821333448887582182051109203126109926844456518266652469202646603130009507009741918330861581404794276831262079972981499491392660914519093468237605569294158772671624673430484967262553640937644193369915999582158074654771866283614919269438576019008944700800241183580525159225649377595383625348773687167353773925588150232558168258637370771297930801842128132841237744009276699543679351797774975703070154898427675722053484025639599710643676211429370230316304663028596701741158017355599359569160621401338939709615446606876770436055840322529694984282453320982689161909125200803068735356882908667826911574675754145902851783198994879421824682030106995070792207140171448789577908608930400323901633289475724161318387361274678207595284109840237847836882371383882077233032853914861955760637719889286873629904427691917568847029222581215330760475371388706650997004374190855225225314683083431785876914512428996133235576869175829240315021533265731175536839083959377683493595694027679410088943659043727390534886880948477696352268423306936159073641136190318270579874298133554954116967912825769713267699043069323969079618802617152221754492584976510287181730814630555817956914581478620484549301539112971062298700159643018875227684346409034749964643994876721744261814129999634753760574837016540668865418113464991661081917877620039152812076039906251012162203373816374754047544150253416298192163923484752167325920957072451533933272060766995461471212479297199405261806339143245611819231534642973108868491089611150228319557065101703454935814845806411415969775652482682165186891626088826884791075913779943282968231655779203853534816544549334322330208119339842836600571747135605763465729574733835243934763155490741802460460398514141003464746751854503342374851533978882861794273726839811489259425008407500616685716074553077297729773095225102057672779390293331601060331511172930908012666119398046368219414078982923280083614436698725311753559140051230295608958529130731564134674791320524185967039525352234687965919957391969151698414697354002584814100221829338551479085905101782484104779777271231856558809964049099332124264482339269660018333199775155805159063827076205882413098636262442505508971958370418280808078066814805850121812653119098311707074614064456009049584759433404923319154964737502635329044596361675236634074435219961212280748517178522071854256906124652069538918800960298567149859019510049244488276090650546544710937988409507402805366481987849925704283723344823608133592629373688438824212448982330299704850209082643645384089983282623132236966959112569102138213488069976941150459807479787818775937738494772170299597283838835969475332523337906256803179901507299241022200854906353974053475859285211949174551808518578284661458713711212844318645878380400488193876921707225171308552625135702209315215377354260509212736039419216179179763316916239030722853423331270514605448204263770523104887900067208761839212481767635912655936918658921483947112717003448934718247034485284333099939023113723216570540363222193392387328631584214709951377263298074253391530216880386395954556964554242475662425863557419902463082942955229558519784367372034822321046556481980381012752406505970810828989595432218425820329576989494389939604384379067490700258234606842067065822342445164394393049514464168494705917984554420169142767844537651375766773889210967916993435444674466415932689240622979973177329267739269705782637252450098988721905267900206912177711011908588510124668636773947871880422754392011411442613532433060544177829736448174381291011657490399160422531891562698579602014740518946419007535796321892502168499454645679864108805338984848236483091910385632463517136013495948076692395176263914870892607944712673763124725246573554125095210871967816246587274655406118198051586354713457994257577508298971436180043861726559811223447407639348036410566803271012190471401658098467884466874815090313923927903939948935876667672289239589846244950953456787236032747373239344475331559895882128664907633678033000431599529291964160802602368814801999995527994333680236558450464274333710776556680653088995698773057865834853098139793837553996409335736365241038489162368657503214750467280475005002421834321469928311936479484941417200222712867720144403670437222734395693701074035968910684508560433766834979422099165039597609018114466480343309380579812205797887967262358493341466010578197918950483933491037965561491706500196821399175518905293338370286268947685765512251048184043658288272832656453363500260206691484942140524469086964980001609971764795797556964384104012084608063914157792928468678272310910401791257002229199693656406879833621494291155877013783865787963710869318743689012338190164889037762831986917980605148556461478723675183789772966391566910990598365547978748810831327108629557578258503803703067272564932530653115578194568804866090052939523287571854401813504137017618913457529710024877181080645817117392032366003288702904918850134691903242117434542409210275302237437313685434285599523328490181979071343541244184003384978961838051479265032968695903130544962104390692530967256250345135332772236007764536378032941901739439390740238135336702413769014957052361046644406675522638252693023517051120589723263486147269122303846367993972018854316989175261663763563826139854462034167275076787922530846302922775189949507363921474226209286499249998959894672050889214736044199548639717987032653826863753226206822927505605488455679355493885468453719260102390149149726049659152093295992099252569868112034528594690463286073158823392418057896320347226021847872949298871320208330577566738780712620889670264988361865182929538673867785089393183668749182301728747539909768270605277710086119046819688999241766798881282088192029861615669513332238519941945504309447031298626847407144738855421241006539120587110695575633819908987703007117377228324352156354353838317030829045329718819959793941891220935474027102370361992312179115799061199258128912501949193386451391528740281458723427469659096970177878568653918158695004989495786927373942350711720995091916940954499103738140429795504805226864442721418384016371474940953008839983657730433890341557862197839846758624906293293704366282732079748211170984794447409571613416574053832627926477386887860371575644342533694673313803571170884172229346052467052230482015090654485861138683120048807963626358607693031615650933710828616633271547179712689170136686504767916451202606341266728198863279756593915239896804204080747940516205449770118409402566438418026246565192798549938339578838346822846078517113444274638340857664921391369043763364574289088265910416558656423351340001022775132001873256540088333366841213590365580774858807796155362845705157563654522641015689448132727358136305958534210882295403073934231209038088601340137154652448911651198392102849546632414125180124489905094801641496149425693691929338269960848530490203544971004462112349516291759363961078162142801981512896489790039831702297577307157458001318704166692073512253264633398585086104439490692835092943232065042041692339510070992653804420133329239366297565961932377717537414893831535603796728451126160575449300419049733855286290292146644139217924551909646457219963589446359595412187660488000374307232824660293322163338403810770162696153181415392914770100520709129730192228846540141224836386131986275765186233820974153439420666576361601861769704971962328260071251277800915614004750007645258319972570214017325616210853162538745567616568137012604346846535964426284506408862891885341188737457520412666875595652676835123049935578982063669735164328869342637897426322645552419315472685693809830901069160000229412596089176350136452388930249867440582446740310091718007339541820980882808261646392865656954862782678708602913703188948126431327614428898281257449439023663534509075839975690186418969356735878339870405577815719528343304277097220235588622337937026183709113908293515961193048632723175486660320296311248198269945509367029406221433135271709209195145467601590848598795123706314833057720847438884090840839250094325026743487343555023876180503719136380950547940488325713561806831013799969274695605771020194988332057599628264889117753937194293592064132630216890818426805391527905395229964612920049140711506445782572096207123400829717603742192709181666342481850802208880392698792980992859927835369100907647239569981093629722374333260428143274708950734041459026358095084352887031730070837113213954402679970820428444696458994998479399911438080176549742378482489416685986260241444544417395105083398786208538269792600923819917740068992866285930518468219759008244876869598938062023551493924610022395495247714680809495607584077368946306751095982844782623237512256645420149878590793003155317762055909413503650932703965638797404675801276433401774523466891531331206615979123422113178711754380618996582653328503728990643112435371273454131252953422576511996323630608401017362990888098005336472786092366801941399442610319971100718995994891667001342328978761914603418147545897705771713661389808517628924098471507331647692530457238989203565679372065682876941415839943457753448357897809471449020548384171281214649200233665521166710332549811278701887525979235578406334330268298884522126750334568620347490005729098102439229169339024553262464712672270255587357635111814895756690166716595600386442373771634153690017604685912024965460120816689655127954685072291105847774930430978166119616050661597409643037947369250950537487172312465097557709798110918482558439436796320688445290579027148154219631307440819429573639979118549294600646885170038764199640935284631067244126232860765433168050860055869951112350008277126995949660673750488501809200120277055792022744065983509612563510151662673329411082649559234849784145565444030782847151877373394090010360004518347466300642452145391073702723790113705618687862540144631878697810672713796929056362049197434166716535951795507774824008377493455695408550567639921226780442434770007803698940011371559552364152026085003402416301980158719017639650631465478836573014655476278433902694350702043007934844695844531466668680051254335331042931053151008367693748580265504478583423752165240410991766835876676961860391771019768726256022704170974664443802784352655243289701839185026676631712985106909172812867769716810369834593675707954627660971530064697323001497414235486071758006183682827334905807407468333426002991280703339963702716167115085942637515579256602560943990248159437223543293592934087958233625583896757307329062881633805315560679247399326315206001113630720377465673229189248825757134474116050361637758240532210739059424313413993229794610585303627505206586844320281381769562541113609213355659452120192762348210530195070863782517088715567610657317504268057615558139150325266006255250901815308365972086985175096702224464095225054607929556525194931078362252752756791417394686874066509899990471094865121026860318532338267760482212905685714090389417234750159236064270433582496362508284434144767506754367901713651077562665661666742445169108405943286981157650147988392327797064588024683897486047624663282833244867555547263626406941120375336027230884559269913658038731664060749215581301457008268587441382959790727774824574357711456175633937695707216611159702852139556420069873902225006663294769902576437785064969754696434562598337267999142362686406822856229009855967393344033985700199147245603705987726519482396233356440393439933811243729274849467451783848282939153141262242933074658410882208769264958726939205244169452088100529784140293038678568163240182623429231163668043370237400629090068012651041857110956374960460429254263121601444156111561933860747148595625809114277123333549085617898405096261187248557966451525303118920382920305351270852162556386675424902918551891086222577009993125205109663582714190131459271596247674276362388797440725924466493556731343612732647216148320351553128726407978342017885046458530508508512026014623134465380266255320537613162378817844388580016249009461216567549994311931815888751864910792302254876872167208905383934245787641694051450797544502771539216917481730825739728584450682345479544625347825650644312017933450506801079633641236486083537415749581899608037185701112313799265712016499763001204198147503425827893983976211543013583851627225515750927243759195100578428558976141365998134833920436610078713096330016391068383785998461947661267315403378475335977412278915156675594368793843648859251387835093073308555271973750850058652757826610448071688219905873839564837291667878634832395316631142006001851173228515718218442801277107205519304024844597334953533616149055636088700718992891425344581781611253627487813345886269141571442899100510499658259469778180130717376291862843051051607304398939526449395802419027762830442036200203028575829815298712442206693522748860531612201114156071101743751553964412672342854468704527937005164855509251031876151458333126656848813114004693055396288494062041466560881796584377174896109487542549538178542590319265746530103984013249564384985640424294102226734929667829770219212990028304224920435491254544597583690523247475737513795437839169860970108234106616652493208351846813012411377504485314410948650835330506447176005788116793331905070176233868882053730830275172876487086231087843372340288585971937111322712815008277104533895571783511559053620575953074799276394724680759187243634058863454452089332927869801769316595193200730327859360069564711962884059053862722832116558907481018406860576221038343094829282794205955892964172867188989093956999412916119714319555729525124486514933968359043048304423341843849834046564541190023121425614342505212816476208602679269553049113298138789514175112481268591053001247414529240495752782341867641391678580743531121192726785674672773933539666355685553609166636928970524244859107536172959918369650284928453572897796489071007338616951867109648538071083995472436184507065193821984933484227300750097844825665410154513412788858626825561050954696179018680930522667859421645143543837229861639057362024747617371621532303356029409573636467340732707666495770684247929783476245105651850829295633843182236087856980291151314187999257863138589160037736843959206931217427027445769881734197311436099806636373651099325149182711773162744664484754492852842314963998720892432114778448734687732376880465476905228525619687115250149754585200448745569855054194644326641791628388680940840530700525399119951481558847659647500238922851034549447199493194729529362377162405103291971495271377618401873277103631255523737178375931401576646228612223783254018459194670376046093192099071387652984812563497062063293517189478277041625075468442027570406910085436109102753627024978584770863350124527644375701924132914973573347254834685731127356487733798746516677103672415812631403411941344484577749215759790315887727970517031110326838293536295767353530029477633274257552780629949134481741882831875508491532355298435269120260827714722992690287030908556271697024529708364167562118150284259169856365814561111382641630905295325046024041348367271515758598903923639537454636871238472460333837099121351543243997470504864705934314384829901203727484691326284241990746776040610905406851172297527737339663908633788790134205095786490684859477037277590093021889495124316025580849639557699619522126056192471643579358025527161049246361215970546917649981863832692929594319005505776216811483680994750345595181344454554274435590498396503003772985196112010068410537260563069012462200099946292783807887009811722568062080419481931246084326086584937616138434344361684558647207857121214619788825327097902925512820595561431474622715204328278134487390705202952070707984673038228367389295770551262205390687092796090852790451788585107404269920540965209408655467335534606832799977361341080926786157496251510989703463582830732969570236035098932989544290953945015594543582825617621457119142711681290060329910389428138732537339646544871994415051608559644435291578708965092140901504698229713326053056643354368625968426842728890071586108310931228808872312531746656261433083766331811074417592797128646151859488603454884641170044259463881042573184815046105978851644498026553704616560570905721792592439645523797470259700680459617290989784610249753789222379351952079208105016527506969302937738616641444680138977694654765335159010525659637315923960473546239628173126546828819364230855468835735141173704717128161134080252444896013813896157977156347150157051012850359178320720663281531807860909575033028667817974290703222493355498089406712537979611443237762741097227672245792937341554945111706137059160270138869714557408185557006972090014781724250272524436054805805221751698619916971891109775195228139882160138426633533318366553180107882690867405543619149077533355513569331117213758861005344912535703573310393215515403190628678263094402866506247339034071835810038943645192506088400778283023035217862144031873876500133294888448130950060592210768325290811568145241805450750718577791000787360814813269116180481396466729480045399986058608421729421992099002395468744575287526795721407517393288174144122415380173280363030827123270064697030362641458773125041120288330602744879214348647478378194362358359210890491961525902855671894642144046445310145422378803636898085164446862876643704747249603310904540509186564627704158854102673235325946431034055586737551951288335542635446010896745122848631591174322431641359613545647465143320592745339052537415265693969804340338110571151244597018657267108877789539464473956519843463387493756801921499269564631797423474466512145077400970023033502368217991429506502350592301085354656564210482463768072752230970879692205271057631465514128756402243673043505150865645619756234544598177679180672342716694668797268739124208254487789579879510678974158629153004441354710783795332396949263430673129406604633987346369436393235174264126194581906239526117321383364701962377618710588763024064677314040123316807338958477335378723556361855903990503054235325935588456887978290792688791028426714739533331659063327004167469133249476076297246594321512740398722802256953380069339837247329710298210528529576174848336052805449630161490847163844158365405325337333936330350426625833715380176576436622036264155899887411310061466198668638111165880335500608298964831607233969668534816461183765847351859179815982410771874027059370435610381141919566461561732284701714022398459343613777460296572666156744475917744651545931898610685687935831803776820534321836005893569381490185374649457766120740191039032565617981432861303981591957062065399945904874008203184009005419011988682193521770014757022190818742320338949769943940025656684407009389580292673126445720235838031087024845043680771560296928917436074942636554813901428238223487707073311047687541015960561561634987945015554652268019812420202644143624254749798399429413800585754982151220023342255656040149201882508706766327482823301644630747724332425949567579029857292498699136506836556145685809924409659626223989961159818391280087778685931222247842058257941893360754503950703285681767443141975529913048434213166545252658562062858623811608715251308923490604614991312761912056564768102751473847500698678987518958817037658422132076304910158899171378452625046793284241195456172978570724215311373710921761458366496128001613691716182296740907858999345007061626692319013813977621460228509790599996567505485262381335463501977497725220079360202953358672462665526568286569822819463251978637435131223151831898614638526264689591083287846628987058687266164372575096245174127999847208960946920554822630919169232552817115398203989939653974742669847702402233700144971483828668719141046394342583559765153978011692427904228589813018306940347055929433041115485758695001520407581696658738014676100667000201393476993940600477905534083017663787506086216297236721079802341991611552147710717699148726498083900253158382590078915276379441012411800314318445320957097281357029349258197935121547428860690871937938234844494513655546504868334211013925922142747032117279511064074072441614762096438457609273971702189871102983964469210381591916966056700000848882705626026527122219115504333731813975608582516790427202091315380891534211013518014114259353474304173379644235695468616067200732057112131747433643692655424749976461144624373887177167739089804444140341809484531081781520910345126185738491654399467985013805931820477030888200189810236695318089833535626458413497812734339830900866141973113015949511316437698062216517448238132357251181692696648735647918210903171420801086247306420912648667856541509950561103264866079768561300574109844026903301363743506571289229271499264409586044440171934691025024747852115337374840633709768904307281696167638708801989198843294537648597887746272541624722635339762474469790143755104527907964968448428494116787255275129593491396490692960226641664030328988231287057796229888665550566687448367534025320371196244941151845875475849892363421952026607775737960852748497909233819117435446567699654718109893899457415940740579469189022522885829545843117622460569436159867954350244471389464389312594032394314749110995036251896836463028759246839921661070501629458770711232610963368843456201687267819109738297236588498939766306913451566673845821590264325975468216466121656411873362646471586209703062050714434227910588054299529906949186364440185488064138267863249203708391530475851231460253615654434898742928670214693964104099780467426415664437571037470021412194875820845628627300605191979267492459856425290974660009949046377752391510247493867517624714809491348295296819171392037280543102025170895670146791373105453433011489373478406673304389478531750051856884441013751753888892854097674421298868194193988023405619959006344906346657813187699704395029508658412631983179293846775336041655971554916599432520668765109419153145677830493600898356047616870932884083115009689213019270039001663518572139857285713017033729937587198705864819456983712398182281848540929223612449709705788578717838915142520481195041785604002473123033259435678860683032223678986865147222736129869479605812494143947040067347902112785974684293084869171712188837913299516343571648409916008742240139852790097953666947439674423248221099376915905873823739836948481595848391592273405385037321286484848261941743367215212801277929090387073371353766893832437433733193159666012099750506868639595962523076967392731710840889825187521065931541641402909225674981403157647226389499333256753749044178768619134690826774673965838085737132142167994193277395050770439254111029131357694505778141451876714890613167311714880602500051138027708409633325825336415824385684396958614951826728412901181556710630337804197481563177742892268201269190126203219852610660295966776259742852583793468636795467955473089098477690494773822032916562894990515773215867271267694982656979965960400408471872793175387819931867878024746553581835319655504010834090572961394058329550844835142856415852713192053420411113098162999858267857378859016163595932428007730293949219891025064469214636346430405449312620945125036689298637194678554750363251688683342609592669855042354931499225790967950108894704979052302952545899126766329593781419556131794767495296180867731815264713920590985721801175603392631794333116069324485693969324197989024786946427558403712859507600578907599589970365439380046098055299698364409625947004637851612895630868465779434475028587409027145876779635704634838667425282188688164168471414250820045422017377293675455680816449761594251052902066102177341780511084079621300854093951927035636991142537199810733982122122981809402466353162144875928696702780015556145495793141406982259058247870986121116503073926280275237414923189633796923134740429351928264603453713066388315143316534637019146738772531698314605571387643018628038652970050200182645434523872915511925645186867027369292414978365529244464207071115714676056692139661616337448303507045755513246337376242270039708931682007465458316986198486423321524649099947121700708427133489648689036292810770411044974929799559263750849138365388554531997563645070358179967226507651525606569845015762846727333269406511614101278822175523944594766593090649724236160869756974202766554849100143242733799460190548776731871069310938475467816439380743131427142985090188432258232134482720270884562055692561445540197244565788287889389711978143320375087007623970338253909535067079351170430279347769027764310931745118607485733921012052951583624990250857170185577595763206676421250150158960441056464417429379782208321429000754210846831844522164098619543093018234014882200892261240008816391898878015414821834086084680808406608138827122155315841560212632384854424937473611174669088514480994618898636934216489528193163532533693095525759525815590837268875579580358755737430116071606763315974605428089460517865940172763693827930609666669402162006871333760956198190818845401673776619338615074343105598582437420426363445424196821127392770736330113250112242664293751642030211989755418900537720220961536403147947690257123761691440577769234942405173898706692498635774674951112999990656759659992536279830483330505852648223148764173641631906170334582101063034330231537630631902516235384489096324156589476647536015443075822226801149790701365202882646135425511162732959258728544949667430176063710642029932187576204780842723113457548724540771284030569737866065623500505154567044639195767548031778505518887837665713591549201525051185746892497557096198033224137256728074159979364547316313964841291607449392405230769625669722957637656222597919001059730882827836111778413089365665834675938944128923551815951658327594456008200711780722701202682807739022483381680643430873837438860605982458563071664706977128183096853474909526218128240373185342770727301074627013478833465016908993481391382880379999442428464369465346071461293473933451279466903534400522421532846289434904894383173825926097041789214757617495407738348506973295905466618910368562868609965482777158502977317217826650059646775290378940304449909916901910702030270508451583723135261995602171696994882233250776975159977862592957075713210040630863833847166206757460799244574616817247276630731868793408262537096501174059208273052176313191089105128851605436005689578743488236819536475798636765201558753819052452200747704761509442786691649343437977279807908001763861710145520164942413063654883538421864286504273225023814894292999822897333271860390274041704070431521981419723994407896473697501582135081864644774092751784610618139247786662635313649440422959510014031273881121699573223325645638427279179567487087284701003876110898058852330586536363445314765153036205201364855658775202770094410535916553784481516555350789126852299790476645078757797202419221175588353077453202558559291916977030595718931331981413559024620396360025156090595270012115482175035575854450312455931548712846304115230923467685739503624485362304725572514734103193642121962235416543886592622502078734572791157270608057728986803531624915867822957600524976728068802798966712319034473022258024785213542702256502720805360081696206067623838742528725205721212480099949041132813720535881814047437464986304713691127181754387624703260518256322409035919823273250647921274178938493556799624637240844112976583751951269171686346815464624458766765782837906933526845706730278933191990751678106027086797587394560955027632834243155360844577676440512831874956098095292221459706196264194327790373502244169671015166356741267666682736001767308249511744454276080003988103734765363531530929020804645358885712702101352223110584868498480624834716222388433789052862431020341207039093298088171632180029577963721378209481661729382992527673760606461699864577569735926445400801002481937194693156068579434947608954219820712278404139627221093726428893970332353710365435627415436888391375316209595364177408642810174872181194701566052787928211371366990588127757881057977241980263449892211030491548449777749874729286141174247677638417531851267705580068287597984414876315123037243517682463133056959095878322044115000949353687614302768153893009830736794436673683251812100021059287293061620362539301437523181000542484423897639801708354057675693022247828568671150846285675428659875600416104415045161608455683197196948863404230682862003644979089842737932939527955106659545045168695893223814201639798810080521090599097545396129926413734906837499167925515165291407001954529351229022463054184254244407409197505363840120568389093046346243784431424113266536543834428932947435671256919633564631296308769665689533366125412720051785163658461834624467008322207748457687052361515472893505361659734365424356115781256707974279073816852448434402927691902511633684072966027537993602438534405297469385496677842401524851816285580655700802353592139826071645721495373773558162286970299743529806668651868571668837007733776093766720985108709567793845921112626650657571914128467754143027685225696579324642604228273051756500462414539421028199060611139443503892955314805018250769698932379083199794773415208159374366967450442029461807895911303944799535993624221819671242970674865447912511727798302374376449405495210152504469475840712675854707304738991790696220778938405993060998303147127624125722491705880237955682503435117768408418224162107302993399659634769638925688264578155300566717396647664461698145931354692227004061270284654453808034869713138818429004392942239497504840417381738477453863797456902035397304212801262743113251269795387159305167580750480430078912331705705873507151331718145342665335531760172528562998817205612972042008853595046582285703829794151669659756161099930996265438422808414606325972942553579390648779574158507669290296355705042063708110197155385566973958394851209061762408416385609126558406349657942814021255673604830328693914750000695571936159441983666811384531593410042846424842874326974511255130575601182380783597169521237814827233508946800067025007988789638714711329914080959566908111845076711569315302268456512633645294098139066462577949511537819059607687060638682468906213912147137268581517778663238801269490229404620815457390211536907499886376340297134598563769350984225259561287625189791111423424020565412146078773852039398851615449777720742360520646017809629620592734875759916390015234153715833779378680591600720359782301548185408366070386386548891874241862040348758449491192635803614456909661650813173381518062826322393267625408000676423910599918426160877682703805328670502096658471153939710723386552392975892300579617927217434159268540182836447007008482747424567552163326389540581038731177988139161176437869760380200127851475918280032740439693243063459396527228236496794155708797577067940863989162713753143771523997328502962211568797985536555283506746042064512172006119061677888211236030248198268391046976477388786072187814576402906135267110113625944869623523584803391634354579443278068913104337539796334423358923801183070142153521727809192675681711559015083866548082791467116229450137314823885865127989209095140868749404686504888431179106785634415074521077795899631467800531148675791187538656226567474737460248807855104865072091243299944495618884107517387222109491504042361751250527210800782630572142117100737058688817358238306150236061702268605667939800029370395802487085570129937312829033122967448695805115282651518249678930332344729218251028645273022565602135127741815069014836201527050959068293644332486000802533636476494487637738456173500744922871007266569029763282313790849180079431409474639286746222870669847231620575742392838131226267438669688693463489775560636271088596609384589176967489539757116834340943132873529260433242549540536761268886268577770794108593954461533601277518469104918465749579483964570660670493185870264626565383655936717401991865781030257093356840486278661359194623822103908562587748895959421282694144137243639805300954428731660062672038620115307780693402208448441743176632556344577792408173150402575644068658442257232999603720308436089241776964726384773413661938765848000255839493701769351776383440814911727172637711197127535471786655213303885081349149669925021351377584449067292024036456523595140485958945707155032118788513794331517227770049696536511801696333505305043921492186555264282883204911396714196998408327053091779420565934124968135594759838946529310609956907774428628695589241370389602322047178118840493988353565846039733347695576818774096218543104724332100707401408875581402248989301937802643270000447262488927917377355667234494541465615266389609598683019480162186368341988756685055883776444941993622767603768747368440963604830288395962497529672369779469535739438620980590909298802412966082354879808268664045856612774082182105674170668230021612148162197490462575000367604906218272981536778226917820748116698887323851989004756000615924808653257493833488470099386765098497921396591183334581475713963899440678549409721311636128396238492382878322104625686329684974304491139965785869089654558232409271681030481278083501150306165953391420588725435045398069800634787015134582771043586836605767753508574225572195574536817108155394602420826388583863005603103180741695793328425725231694499169572668274398961814644275061208780351456759062713512127464680337738036252925193332025862414510289750875218038306927672102755967526593845367157433326962194028604107474641106610782701734585166431078710155488580098016346257068165576688504343107625327309027572467532023702898285826681523377894800613935397212136939490185600733465838943348742087520691724320453248909465998760639166910414977485251665997311627029822627181181737400192772437982471918432496633754139881396437643865914842939043619102424140706426630105510548524728132416263815913707067455349424848548577588601879417024606853514969537172466269386955975182082964806641965945701021844594592070896962533567580318392063440582391353024293114425417446534738659356175516343674280646239882521916969971900491737747011092093515566016126735015840118262578619369029894721347800231595936252079891519200273843915237879436340982024920758593766709615012954534232205250462875769863444655515006997285912743574907708456602206518603170634170585150379085519653828778464617269363507257341573750125616949995554291756984988970645622487688398085502466053516608030884849857011764402377888516078179987444844432632069297125371668731897202486498193277869951392083634470075109090175817939489578410071469690140427293052114270056980437279942913360169185062268018428784753827948881771563308245903869210381733606244761446379894391048946965177355222612944620361842334740560621147225663015467453015286076813541734685901408807636521842823672452272631265580483362420754479941292596722153531755400632463756941543705668405674104786220258808369932736202825682474381373434467205319822255407539460304733199473105057098076749390842876662517755723758658659796769019546029014315720069416791913051200367667222137282357089585798291556091375430397970413693020713189947831089934743669096512487794038130856540122761348239423685722077500458197276512019818296693403788545533732786874804683241683137888380528692274606792186601462199855985143482278893159056299657979068331082926224310577367187201682432377514374142213993685961343870698724372855985193424741596941036316670905242753440843355497444556899704194467501115417197010581919981762989954463236186183446258616489416339687087518807914831255032365182901305315543637688195900755768171877235346528468920954537840009622994665995560596882537270552639749493767030185833120534315008218837859359625901309939058566125354829571936870363337844565536813492555563587482875651594294425387819605699530389029600504358081393539643307418515837509748788835066183258615051809224962087590831152148147355921849615264507744919031034771562143308088896827685789817483633343290345989880578363187488032730726626271916447876805041365982479122186067033149312489039725577946011785142445932127897675755286237450772291709712405833388872945220291980834571974124906972411481014200866295629496935033047677261448853175409705379377114327570948409850175740159897702890417638982301747563919807688661902156583300542198144434145240728832003637071013613941473954861685897933025921471616183462666488830739271594756136566957534731823214450738890478871229051971017154463010415066690947986394015551718654166237534389189959683108060157737368348286638277928484761804518569568723951350136081171452224655427111840804598784871051147500020996323848306595353093211339264820231768555835327765351182570469697154303898117903269560558999548011509809922517124317807456955334717568085569797609548485148357559001934518499466938858136567047398664350510475909755871300955055270090033703598919154691679780135918359165105308197061616843738292288253088133242554649411586755249872655757450579842324353739854077443062523941245342251863652446566406466059712845462248424681471811251968243179490147917081292139373881561071307240522131071725745068007452855815966439134657195516626505458266009822441527992931742954760322782863259649427098175060760603348001148186142796412316226091699376353391557444969574359339992446943524686234442410330298468528644563548994849507943692371830035626162554670998808863677022170190076988779356889440593373433750856204337136686050797103782196473543836616851604222132963751483638865381287244269445942258066502374265897184408428074578274878107152947810344920358042353323113353781917626768815688388583886088746226675184692864566925848965081397932570674349216628393411555914318404011933289672861334921549242227877742700144483392246005426891797268910039069767658032770135284377568889655023104328724899243744353872276551325565016209462165500526864850036017167285875685751462277064425217355316088001335962986137657756232914466936202258283297969823183467061320558381564191107517127779623329689913541678482492030133645173652077964750368496422280154168838770338339135339250842164774253342171986431351399590801239795450133885760527117882584990413599640333366908572931045431753019679729242239960901376676601884413668021402818234507755689289228867027323283750818523679439092835780372066007730407578662108091631108554856023128192333467120463657724668355594474075673264692795865721343536313930545231798260433287754032442475969076147816797452413610405287385540468429547536970068811500374965533325539107627832576078221042840590525246953548018731111635218168631837698089761639831830928498781321935845942598352130498297186275609151965313291560915542105822571567269036190428370365746565860994693076409406184089376104073586227378356237629562293857834911238396685260164740848855822987600633688558750248399564555924334052285364182667223177132903393779166464182200573466976440708071777277567186775694108045768193257033134646872876079361559040073425815487549940952284540689409668783843487084347100418954376370044586861356635285917034059806655256434235635385438281177846172076236159678936855898246731708546151909288347562650769359623660938769037727972063825122111821947205695186113421590735421703823243462361243005047195351628008542548946094209306153174546072353819248171635926832050987285933496660042080311242675264588217610475852775179889232106644751117757740389778332114639491403775670984494261768375008695970914378722018237334844255299714948130470425350114885573142885611032349690812677667947630463843278688710576464068762239884269809818512358097525013957620043179345751321042285022809903109455313468931386891204425970753745598809809468605625592606396246087737636862125533606739127332693094032775958473156612813423573997986867898787415294492862099382447813434860994180439976611599435816288597811108015889451784194734890983563335366364663062274719625661851249118939142594775948067345583184124783220958178226375553072655135839843185138209287569503452071977018404326689918538001948995912521365648003589205664548535340162301429871039867677800158772673432248866725529453650903169155167916352328134364376555090181615071628362757487490893263668516696690476322515295851146899634484635418613372031272331849787055981660515299407772231286623696320987061853087195320321980805249338167200397413866621707631903431220932477675054004874839796616579962630772898991621409166024420862283156493310566481638019523656449699837195144133810794047740369104945693359628492854459592707923516634889394528008818724916982804614451493771130515104005541963078906732722172534453323082499753363252478528800536122204239925086644380267870347452031255554499272184408109488495046148891197475365283742809785200157286765354413937304578230006497960771645184060210811118004656182119298886054847184640466784369576916354606753439637790228297278395682089628646806617571182538550414705741465321821121655695255789935478521508265023330116954975871797728455305423422643076789133401297552750984362739977580508889030820729501396398839575713464750893485544490555905013504741590682074292755465115460402492307434185247933158448121137277271379721424111745309557978700657358896831519273601278577230275386924707251281129351529626842375595629118182770075044739618872024991043872330979623653684819610939808398452155473587528986480722998604637502178352741764362915392331813312843207594886836860845732617504308188131939396347187921088293201210360251010723322601668554822794365433630256424284130916277471025126404526625258545318282312045997330815766395908788617527909546370927941690162385147537071970242850794819610220573079647109926595390480278928635939443573899008331432241572445047168319781439171890613094533612533528289173263971135044050889747578261528980601743729191644083862854211002333539097318275668267607251676865104750896535152223947231336974840032996917404198229610482381220925296671620557002611548925390989117523314229110078940520415084125251871442873104717914067942859291047890685283717146788763922652154221933818055612791213297121991965319656233859618440592017805337431427673771085310352239583569741132532595714611569348097556035822266459453936440275554973464611913622710913071951902346559991727463079671914827764320986068853711249441455262228364391946135129881949141977059040921599996600759023631738615344103601958900411295403820215427466519333327633521259674103692844856639454987452250736388473619005150786387811853829718651388714395064704763093299267962313201499047344899175949069551327670701656238313076958697558731019095183726189431758286909166624590140010523442182503120234926262330597343206278044500731205412326156055967342348914835365555191005901990863506567102159656432098164308274735369874764561180796908971668941427637808586248456623933522439341229783589624495288741425257719390344929733522102034712745477939897451623946421034515606291790405958836599578056785882877877510543943813713884991797387209231787182844296156368868409793692762829253650212485309286376926136586642912512946867220794995065181919065382106285722561399494415510799729817497247720910907497134239530103129052494090146624596014041418666634408215881240891630004473516219901795172676836571429517769114291934859455079797727276077246996845647608554196586393965001477709664985598500877640677054658114602879516110945066043606520339639443880774941978253355645167635698384195371525118577451392507043493342348218454178260091014951240486116951193264354600891813660301392486447209748335087532551876909258449417184589456424786014627101797053980174366520295831894347115996990617652283065186763245699119723083221149953356218660859141318282011787342249930674946228603983375002553720601737119366487505912475196270800027177443201133680415057182496038918686637257775015294432709956592551779786220191270820231455864782179462132779910996509246577554754379399023415950037271799166412748508978160652940297177006966458689674648947887883088180001078694875494918476161186616202769814467236466417315342255215653310133578870896107404419155631209469479170244688245327509529839442875964388593784055164715671177503961550286321080357820366329864972740453395114317830899078371521840001691584293953770760976310585094251191792084008551561837175669428890053501150620778822383563473679181473019874294366783471694794235953937692745691791605497861572462288611926590866339300500028835316368060811322311358829973610652428609130518970151713124910409948443105465726133823197146002938350169993336142470098951204892483336009379095751027419443028928614059490751709324368846393530169983125031836924335188984069810888622936332912399130379020789315072962126328439007923447417019796075025044590945615742694280740177123865323537476215178111717075923963621300929575529843154861204189637218304686938343576881835463169976333165801981739962094044372046233763351258111524622651997921860179360356440827059275515458556627460985165567701414013328607172040140875333338525942967858211518737534372224217129959158928890976762048281368970077302249047570202181362105041498050562748237504672652812727340023941342975601245552645005955900683198231271677225344544358257017409384246556502675964419879420915487708920718957968221972970031901498382169938098430108921246232673948762951361297577798240410392861924935180031138294908550284429350261439843989833097311780437443742715307370444690446071877313380404877858233185612041951584177578619490137602262970833030569414847802767490983241198051927555902051048706431292847552627323736543705762634918710566355956214189236854742299260529887268778245333089250059326023921648388982137638620460461038442053304236061634649864267421763542967646130337382766065431724047206416168932700347035691250977993519867871070464289692763479083363416181231250429297884474684297230761114689882808975353555034146965608229234918158553173396535396659932534921947143286211601995071752831470346919223002184588947710661702145127488820833676652753506222130857214495743847256806649384558819629408345135019974578972902125241686523819115214293971212325198913169518849084365499817167296990159905379477732103837921410627631308616156626676800618259153209164575060601974143468529331748527911832034578414298231806319272485282109727266532679601774726094550126190886276050413688408578818483569521528458627989182697967562240775912959466775800696743854300406690761869813496204782233000416106809978976740707074988384431993842613596021023083682069091749551654890449168835046071130158110822060008415051824699513762135394150407971703230173471583218579323406634751731582473073688672460414417400155438764256526942405916943507139484344475673337125227541831020950115963381887821564989567179931086288785157307943592659583773499021228250068044396141885196732479647461560180478026928460788019586064652781211306371813202148291628896682901205694836287797184971485891228926683523209164552989168252720456451323836376692559252773986812491945048890305188193835948009318278057637967591897008087954330479981073347201461670435561676578885423016027763088533311084738446953076958503930818886539966330786106050690819335496600696205579181882184112995085713373013929668610921218878285653220727293024394984726908744797134471719081955143071757312882463158603970500473670853679986133569858993474487287872015686746563646294181694879427710564389912376138264848515980617521668926540298633395975512691780175186599462331640982791648796700078174202827771440658772935812311423167770244672926178719521119161629236600894621667663113823174304125485577552416329482106132349647479065230148584892335490270038933873617605948060368750951626449278228914706806429083475099091445484943814333424051910397449618902663393098459811244780509982593369231980221572971504295677924489989451347204140659230007991243701124308229014964292614883270053981943600496771667998414899755664555797079536481293671676435563729022699232614503744251930117131704604781279636716971146399529889458955226745896558346825045656743574777599111073658400423686485519282308787493914695380380267394041477477795408131958156164620155713891482603135755814571227618822097858223455686962967814265236132173929514881990477855362740050558359187828466966517273887797868137806192240898247583018535408819868901346769272287710370300458125807467721923659215532356627830159182386470738819634037020110539059517160138325422655057372187176083197369666893516444109632107181776707505457760023613683832119452823058170221922079211288762679363982350944184371997893338719703204393130803889873413953761870112665341642446831205248406667503444845634077962146686261847430461458398142563463812369957566567739317808899535730284389821567611894801092653700953641763740359831498087491243275506735887831082240665689502148108419823377268021666120401309437020473192191701158905033787320706461121440512275333826860155419221150298712306475661932433166045404148621307848174905334197647124404307894625440135654785847758698122165016474512985337223570246151278441968918560463795309488627827983199670156400910587789107671907692566801717250137235554466844802654569610054078557636189450847173804639003381315963956051505109451178873457110201889619691543367739082393126020676120797979131208560517303993896016315363065187348616073050077899979232020713495257140323348336066565880826292644031800599472501843172784071774745802337535913997951448662853108103021560053920924500119773157940772515098321878349680785100342237979728362253730838332063756821190510504351192641568882175075616081212306702605534497093601396571066771492557143097637399610234615863657263091122172288288837986240644542659752130088974986347207386986081422540288854014925763783746306073922279097818739094920031380799646836915595476796139844834054435919505588868279322659478562112989548053743916211398462953252371518711080323664968838576526542531832047644787587625399635484124541932413417665685531074031493200035150443330899552135628277812124118521357427042049067340137465159671325533569606058047142041012717392557800290282036411162624458075173350147320589026382545933376214199843749346969945611852538332232189906681693102415574599436442352049234147481410252116091737282743969466586049635180460852400173349177105091772168259866836142685975950657665924166026262948214427173170339505065233561199938564995175702592712983156893000028736668051465563528659703037782626644320755616915307814570270722808833716012372935772943838557386577083148458726906283590581231423456819199279749920365790582011463328434093683394906958482141910456916826426710037670467045478984371930293817822706337946877517462825183404572018430199825563787828642455605479432573395652992484507530303686178163775154359126201223609759580671960153229662327519285642734301016420989749731289439312341600782707303496052204091690414744817962009248830522660563992204370696615626585248533438115080196896037684467160648504451335196317128372834177421656608380312019637579807595917593663558358127088639533375234077814395489355840502203856182351189855184376313215758966497078515524877367858620034125604191911185862399447519994818026990619883377538230439641719185321529434813955843332603163689053469396379981458872396964295891810501447315761254627876969506914510553283016761332272723212726721737293558024799758172697956549076947322449650400317260378194534255570796306217973309837914259829606210817624257273021187186080990910509291973758246552160118953598552406385905828618550742007293514445762769897612178472626739389699564638858917360667698356667307986184465578994211067678756974344720546428953950002819643073814104818055639901377217820365298555868631702752024226478307992794605104107617104046847641778811947528512535750534612611011744001725175961775828253370890006650821192000108907510913279243291755320172882898959247963417465975127448455828215712318025708176242293718620687501915659445278704926071817254959960263142950639546119161860199174956453396836941440603892375120657286287742316617578505810814503627718848151288262570077311304704718197039156553411824396553732448756428295393855879081569954098149339464071129519460636216428985358073146091495697789652372051446293072334883803546323062178575656563721875251158471310686936969645756549873844359170784420392926301756480746519460879274631765658837394218059975624608268217278905593213103848132357607938334955619551505726800292231747338394158605106515799341131076086683254910463632204296991921259026945625879878477239985839682740892826637303723390895875203235108050108641280378333664556497023668907341136742325297059607999680570639668309773699297106493197252210376375674586546076524310516399744420417924605682443740648835672681431185418914703904338914002732873987251410009603400988040204092043932810937102482662796215982866913456352109007357893392920277991157739296127313983330751146384552879769668283667147590759437266507300823552150055385352704038108972660941962624249829050108341966538296797296412833185943504493767850278938023373190518290693837693628589959092533778158168250872342023450839089331091860515862711751470448873871369086050685518962303607685250605724864018812111709025509291104835856952593825866957258533509869414358234710835303790925596304152275679412851261060352826397991692032995117805506001886487551304090391195315903829038554268307904275253322814435048869297044386823190236762982008465194172534256153938918381656655406427822504619973723428272752338012289638121404888223031733719349488664780758509803842174614935724678707372584639725476685957059845556310270665799964934162280949254706184605492856164510836938831551397072540526562861543061809947925335399217776509495453717257855744595326210714676376962564219112399733867746996649187521713295056403245070974716422564470299347035266425034929344697462519399989110314792998011895877115515415292365996192816711087722124296549503934490713415692556439617872235828019690561107293613745791887520973388982951700404867411908839110357545173212941559534077663792698757895586517489013769049185524862817060544287294359475359772275127502354515535209926283604068948887466689124904207400385192122123086312788640107376861436787901491077570886899065300962742235421467638556489284415821424856725891671739086740498898825134610668338027053042470547773489424553013024512023989872200155854938121741357045792387676683176156481700650666531521730997761017384287532278591909944135320877214314001275816826861826950032542282652084568043610760553965761052666314221578748704931384628095497980827278618431993503759240351482370633505896509593614090715468520095150945417301510694132054372038337428301911844942242248552486178038289688131422754979701668092611786622031710774807910617166993345985297672519646647494006040339920329989585612757533160295790163706789893732459891076589722524447391807887389964290673550412935567316474713421367311652537152562307633281341583463485688535883613597111030429390649346480338842340503415599561195981712969503768862801414564287615475322577937090738755427488886381953071236340798566400069925679006657666377485981045294968814153884004482523863036429285223889972269257387222644995485607909017871117230579049048403595152744913935585254732432732023689569355179839108799150331100849950075754810763430424522477993625447623714902110348526453140757054734627880025124117412282118996916102324395021304193183443608981097851985958746259024139402731237222206503318796877583656425763630130419726552484294556750928713784043125064562802286898209677765699950073543203839606326903131345126724151593409208392977064078495949544856397501300150180157639719367803774228682740506973150155513917699987678733271236955721848981534062079585473842062166080093276762773136933755527624137899814188873578970294929574635829849842512667689181624209429306441038726272978191991082282935247634665563431737486811603520022891866217398930835249113103997911689420790171626912399036889240600089283023323601023407787000938292494628578648682615461743398879240214816214752820859912511369007152760172245967271081444427593044582490762421698128839678211406586451175308225051499598429224853913550540344314760542349975263521260709442121277490731178270009575474813424978292086676873075221744382893276167251048220063673620556746810160382803324523937227401285842952227813099019404139973685425652861728692814361141464063891077585280104068923129268604346651747053902217451599454332803826481976389282932196747404089479861536315726151058411451043785101945798613486980118858384591704896704566553236628328750709609585881761103199177554610104360396675284347876939573415205457575566020769273555826332967943451956862581751314615176784899480791974995429573954072493084413805727304919208774690761773358777886898116910245565602031687406329089497145814409971020272518448329717777067794652355185358705733395867934608733025406520695616508532735359788662306199185028869649558445505881152497639789384281732523497028486715227777885875950190292938860372788056105321542497757317217736872965501090476696635198724595897207795155236687800732583927272280270403725783137716804537001329631382834725585076458651612044771714675007374828517177409398024272865574864112881861943213937269966430146613590788025385710060582076874736274527264020663273992843504925812207364000719149327713177410927618346819835140435802435971277599683165462044531082913997927794243503601322252133710090026491427103609196832185410448176149866912867745564767371763515421060879378652135738041347457597400671225272660265555532989919481030856631201787596349600341199952769934049549510957181215541390170240139983461219094384940517940490900923679528514275491803220629438650492900623433989862612055348780055910767603436224364701128269561081583227941751063613719492655936450411697053766162222361761414032854109353265731081818508307088953878697833681703329902442584061232687001748224669907186366387121063615558851785390573523973225444093867472520590204482707236630602984731145542432738608478882599148999092986013463175241331652508950170414484265930212866368358978624485762492929540667918254472443975114736387469610754273585696787329852134383062968727875043670280791769923843695125277286901867318345540769413097614072833440602536153877238519834331398322490083786457561221656818081981394025778062776414530721109362843755217179077079636317748097277704981541969157480826510775056187864924090969979842365295960676115626944225338421863328439723315224624375245482954738761283031612326925969758842752184231413188400767105632365378737856644293423506621735524993538285105799139530608484131834539480532261966618819202550592276193804318244701460854028828635513296308195802892920043306753863298091137338521316911225587195563362608131185669654482077305894559555778037666461439722551557773011819047128429366360261560052191551498104578487102479765986004813683296487019044824661132230290000247578161793110615542699322145041853419468406498976847011607468724356012193402262541345182092402062154894335308615342903112922176540285704589582203179199390029382615369594888927579787021570170925983920771465605912775423868278514539956742836220217342182754202469693333351391127517395423574366558963193867344957529991464278730240439650448887220409580194897242465954910633756096104539294329695599039238902725370568566664543816273981782235697186692464789647623806271270518695754273735083852201845458157500472194179149286211081081311557685037833255959582935458178765632460998093148321315552798311324159872117713643194932541110949289060664136007872226973336972898807662676792564644069801118789449331604717940041389841762569640199464950837580703521479397715075312005487837138130555599776804026103043279765342388385523281959280955381577966891374814117318188550172166799887512056084693285634710184649789192146409608433823320730425747953269690825874751559275882107431120911103342459170891689384619283476570946085545348794947353522670545687089102622340881605451535062148183402921051513053353290123030952801127835970373373898381862637721324732060405494333860256303809019598512867041076512787718584481830387909647943969952336335088148062384526165504078150742950742443786678634317201554087451037473662506283313612923378342973750079125106259002678160296621157928677992533008272037034771094420931874044921796674409751312721307658255699708146874093237573084423388832298734433046204844982003873734315753536922897264125024282646503711491656124361367603572701398029711238854237544130173223000528215299969444627019946445596662546318798737203305647679825427901934808473824766187914213865464300083817689208010163531526035640350483629290683067748369181510366501021129586191013723871371903054501244783589112052389861363971144029243539282975109507361326321541975023588678233897450520654948460727660976274486522425252896973320790127282441115386654006275322850258554745222556089539472801062974429480665548889312276805229187478704509763741945423978523725088121878667847454971571367305225694560876368498865400379487037263758241143889379333478630984540610757713550192750889648545769453391352221106030855495308596193031481019048145784708635181781131986293970586864737014681232589463050686060200433943621678582563231661210211899292089159199196326664117373980780915322317974678602396004636869394534568866718622141691929621204855316975885220632277577385694011596565518962093413124680787917777970445232753401771856931454660872769051175801771906444349162724051470281547460409298094733718720216468986585122106459625462443870751200429891941580482950602644592882350370374728709489977261597928737325264023145512536916359419195653707126713971047163104550573515494158430921365273090221336378507970732878547208074265432252287872620882640209770760233983314300001975245189821122886454616532448720959965300681784167737726757116710260351356570268996534852287631374502642203283824777209578248472264660251051993531258588795761388207916436449547974962248353335342582708895416136463676290553219996725460483902994650933761328138641273969813632828132924391586379848585057266145418741125391583233222992095484857810613490528671983088779216628711213784200436909099013808201105992924138055993213176641653685237831666728141210098741797236476121898790349410237967467630844326509084343324261732692273433485971910284633073613547964275597816119158031815369075529159784181075368890690310978699572261288383237961946328631525309262451583735801065019142929578396332497630232871224461840386791502165203941493461359927829395610646189280353127465644159187868950147518203142722779906793251576671567066731645669587174394106065806314573731719244306378478852834904079403614230923704802628960362084621479532022698715263209456631031609575578480974680937687271436680028674425025146456811471280122659282716039455041916262268045271604989467978030186574576632178633584248658408558213630119653019673842856887995221743864511296348754917660314935193294328608295179294130349465382880258685131396629538598847625873511800254491561348647574079649485066072888235222455680094688975503345445304102937094011265612290188444912802376606422477889226624406466938613577766542063704728628148203545522835359543654001136440110661314790568118831500440175572269315653830166210576853478587999926068188988872031858606817965143380288224267838742210368779862729734744051187159042115904907862059378723456763486410095342130625302109793176538692033444812555252827886732626380588518699365137556429543563862195143340111937127073792457351252135913426590720322832836740442327241352585868280066346205960685086639301847962764201028454424072024376190387361048256852008172319639578623134786445144727166335461328350617346773934958644895833110651080886636938430703519536155693347931770542643270837317672049284993430656254367125147401140992296539153535006106582041090578544863564906888650023535963694303645814449553459767181517855001878781101926658478045261915871408671679675361134922725055761893421529225303549367019603169590850509844390268584089801772064367390796281192883044718438631451415578489456027155782302983029022210098403155288708755266775765164168666934034138138734031279959486283030857486542513152727727337291612972663486002451807558352144700743859580490588071705643661135552172756165324914583193874036689559044229277088513184035756763108794070102598674394105399697347122664548466182873667504141541359651488838110912161178390400238239495164954704915343771209634235675969602984819068663283257079635609047751124293844385247488538091658396757579865029455079116930320585483746920647740518727041192954907108117630767046122270912391736464866431827817159537756557982880827237075924386915476635610601603771451020146475366028559336593580401762885064913468836573327214470384625362185858431853732516825850677267451363792815009809336824227196567803612567902808974217348410481870904630902522460898399766676400401595232539821324080892296240428901093656531309388942646342840600813275041789108648308844698427231772145136756233692092125092535890222175189316906940536880159239036405500970818269161811411718677435001939591773517411518783617687633992038195989103921831796610003617746712111162310911702034932526888914708564358502713459098359655636110169712696309713105668352753281276153423117470709300651239976252317138258664557285181117217460993976516451425376095195746604811227359205034609002577286952398659796599512862911053457772053699941657702979153723564626401984143471277708884487906114398899211407911681996271109026600774917736186165466647723354729704816696587354831458428920341229052860621174548945744772762361545762904443439676255356311310560383383738155855714373381049266860407529432558275436142438832625424542983855892065446610359278824585717954837239474468527311434613281238775319916632287193098219723044523427799659432233936305593918427008796689454042821437883118378513185160497705078786135530859722273720997975720274736817776886643275528815263996728902420167824015558828454560687633229786401061344736409802449099929342815663768827798590179181938318055861067112846055079967410398425669538895372060419610376061345072976196173736213389603630647489757700427397895567126691991985600103536956550859339794744933989423760187778345331015148090862709939686279431197105333988691422726658134287375901051633880959926576815067033280862896386312677866967319799044698467067732544058319200047126469314950874079401327164499968072563109415395676801133450891878648247737831366141687442319891714135666615987612665984924071784925195094809473311539052234906850227648644148519051408291931477952191490019018679135240899834120859489528538412923965811855452871647745638043975131173548881155811063792951684813092961661304158405002254267378705304067695607762901174704439173907357982167331412415035486026371002821321445274961159214620364890820336412570654083922850990233607048994701603605564365189240331159218534235060257120135617026983048138658171756148007226970843406055126612375566332312568228602034102831147486602175272637444196920745204276178177234578951528241394066901524397563198314523627263276730865956346168981573187777025058180943393803167151164523093129150175973192793593637437586921452938906422032847107542750671938856692404999928179248112663545951081388064422149520725789650382869422273006081599076681936542788725240918625901499371679689223400015934272077292391926848686892042199386268488101274472300064269449023631473319634189030725774411761500493109796393452178190269799548019069060338813267754307398106735462702260408396961418963282485707753910510066303939253054992497080394623037330060311215537299366137769740763125483278267101433411285883042422866668865173781692923954477176148235863848660302799920602084501859661551549644264804300415296421445786496403627559945820877793586697636264533361835046287267909565043784315310246616430176440972545394017182250972126167314835135880294570445448029469114967509473857576419076776825953193590531106115428101391243652171751932090660163197441279716901290250659833835084599676948321358722916126944719963350195351135976412284168345073699813113233769150624823369521499209449800873880549606812355547946708578524932084728533347826958742040760733958836862130686893189138857104822784655635283162099818145381352928149370115820936858328949797057325380753721040198377598096369873788573328807058008917488346264226803693835482606025575310657296783842542763080504516350974089407937094546611662459493573942440525529832620422681694594537734783517878614256009248439588582735988483082997954293167127769094963340035774200029239475208286383822572490167990059715170061304993972990021840273423047286033137679418235561470740370730944413126104920531829327937799066974670865764895631874550894165897538801501687678992670239877363697611491530742514316657921623697928212018475164805288924138578508996650310384865217468959382642926014620492004621087700768653429050168036233452597534661668718615800941835357769697222431578487061542193735337168902760337488483563792600625410038151195195994680895753429247860540964612444761670476084829012884465209915725035714679825891618308648306001277434982307489943142790531787509100018917445919462430409577222144771602701404083773545113079307780590476185480362772570566693830185817838363415140087208416314383578936868042165395726823376198468407484616445806718973299387699260563817313695959878000058226957177789225480758611170674077310757237259931428518284964826018278502916812621669355671904014899742581738527394660093806954197153979589623950179044660260522343188371477439233771287867418979411621385716270661363154892887070322413564369000511765479988381379714877125641035186441910271121558131277600733068775006380266252473642857381337523384323530421336840597061479054348542496586852776243189104292356523949885027659660889891584329243289877193644138853524488833585566491325820764412331923549560511280764407992344406763139377590162556406652626092295301755869084815800795801838961704482667137742175505847501256830211469275521454443224761990115637267291534084468303903221180437260985530570311229650104596625528301080092333173050916327102442427544088504924243825398356338724932208327021958514697925118529802316673022355963682170971936918538967387783746217068458151775914767900875331803950230860245754740407845924970194239985383273786841801337413855839953240159836322222434070834421374681722602199942287197026652699530534192365327572143925742346219236751173649192169867897386359160838802838347010924211459594557832349471411680301932301670568398326070994641286036964068987898441102780826385251646586711648699071110107932057376758383373158387426000967202189666649352618180721238509264009554116246821640579127161169882529444479972418219790398320122974988834929988551555672558105621303557869541603793625355495364732359037056075802893131906795273434106931248790465578786520244186603550367931304176359769400315989545651625133724321600100719593670118321999700968853728610221426391890381198489461268082492612828430413908043340367728225002149468386917795125778090707887330756604777569478981624171189876240423173525230906549484416383533507585931334038375124008667708061927680723927603851351168829542214798607135106390563113474578180356640782064634207103677846693629348158715751742938134056701785893626692638315648071436605343411988050432261258876194274597794510755063278276895459852098845491530133472830745540769904573235959986918147385115311002082107781367481091612931646000299932840038468160680670668618957933346116270737562611940394024953081672869863368588448060298744740657978711649752975052279608098638559284816550773806355555983890507633168949265358423557972071869772671694733103597860352324163407899866605011039369236107765476850395452814115046357477336997119850163393048960558884631875933890283849105143255443240635080390058862297733200360721477875438644592627476715476693439632112837645706325809840070896228044966425088561171479087748585804828564871216032887636841132797250343944144721720715983076407226904030711694912572826473358623028423986701911063836573453841372059331744142405677252426534116586433362833337264625570887407814031536929896156481020273125268934537984429300589607393532583782888547373014786192673185811315701776297467563627397195348655608955913453052506192431359330543973099363004298864228229059953322466708311203609062044777192794512005738513689517673400967102096244837445978429603631529680565654761779522293317520177281081046751101829123300080020083113174648369358985184533309398021489001750705816984834185624185957588519193358075114653175546074463387117490299442415580911854634128395103181071589093531525302410016055646729747713109747825225810722756164568628523996831617801654925741944509320596110656729386420744747843732732265346660102741251283466454842104579723631005524180271120401950294093983782426473366937632024177410121130205895900129665787998189690278234298043597610452195830575422856386327268225658075875524697297890891221613905285842680175911389699792490915449206197719077010696421822889841289708085646718402857248260884681992410725828837322923394277601700362384770687504877578541828301421808005368545560013358855463854917299883110818896365268687977836441603976237181006945783516593782773852989277092155517387570288048642003712627403068956001715977839969283373573043304175294698986010539949747573577441153558288287190531748529313208310769755837844123302756501308829848397819122043996893103392999366978429321258837619497131781671645157813159120578247745543004964839312265634566372250378986548663790726167425040999215920836032084746881674087081145604029283809307623574085934535153383404490128223620554652664914277546832211520393813247898693537645257025662371123128535922182856250036643036147629915764345801584433161702504024496837403627348985832911740496707577478746023174842460990777596156909277425019866973033334359693216114373673626772101634127188226984242409494495100797470116873258231446468665082297380453841732480116447657889295971313531198336473127797436482661246451137970868453635601598583585807564716691540800314404345438129869867531120512363966807622491023207308778035738321469258067561774895551964281912762155707845781132445921525778630610413054253008134865595840690129534219086795682243439024200109681134247208261657905920101016478218353445381275110394941269852846358790338533979226022639175076083668680454183753449048748451686625684297423639032526788365334380913575289352868001149641983366206646089073775184931086322264963882805708026130594185368294810653955043494196651772344714782052316462922780245929529435504809430304648331831218089421934271088385212433508695244644811696673332250338825943207401225772390992708017706459460267964687190729606886265737158510693991411187802001619962129135046913436885514809484942712079630871586824046163982748654978117710347381265364077908603263169709762524674489329810152026622342305918856255484629753074855365954751827549894590031601470939921499097383431292471134190369801592553011130897930730499534349260956811516928800540428119544443113746957620324593050791985913337810770119775760076591885424494186496338606295422642553509203282868472390318193029519738365649641025624130624449832817862422281236695280356195325485332336647673107485518862782655917649017595209463136183469783367551761873992338598757640893260252296826265311955477970631816878194549455587009932549174706922607070746980578956910962589597959371734399627253267081723545955684816536574923607133382300368449001880487141085068922990270137045061816037970733968156200242169152062609808823498237595943089027237115314891667463991180757250534518696235181666897386166980739196509153846443237658632330224947002932359621938201268141693868890951965477170656215552462756683557763207367177229891504846323387153083801775927296920946686519985462469630035812732357701428563714880099627646635732246020259346854910791859311251579885766219621555436198924676767148737963383570336335637561715528129137200805089084809774122625254674672111746541477283209289679652981904885958477874083502992262516757010382916041293769758136807461325544563148500487690113151398996262244378459230797469591452277408536335927133026530359756807763239489628397203772964661538225287765286516075671291431605832332949277148377727370048778222842561794493988714834055906255080422622823448868397941245055784350693792782814914840819088289979343216298328138206670933349091257332042877083938384051313630478210972089741667885089674993181902600122390163836025411971085994312205412152260032826540588408361426383088084368361222755699389238696224558180127350505232883994995739108056420609549923291810326092045924518326440719089531689775581391527447275504469744195217769232920454017348688667239687150346897243561554008487414496956863172457357065915221475912621711951472258319978355908104502355249573016673956392790533493928008677145036277056194312632468187579025318667345444203899991851472525521254666724611413271342236953734023416857190802538269138572206490899757238382487323969156253294091655636514756044909287861428988703226425871337398378248186329703893881386033433375804161239440195272908137572652425102297566409118432107442520571409191596522665354968448715141687742353552734649318064642485468580180077659942983856821094100701458664454051932184220659026577360183897371051935630496333016144935920309101018518650895388609121565971362067945982262461989097099188870359337303001360427708002771488843904584480038593941710745202128028330400063665176332108586274090923001850530478384616209388432651498781587858397711744355093593253835611494007206897463721569302980646146739574801141470995007600422767599505476057952369305484065430587381272559865146250357440203563562332040028425415571623093553110048288505608183410937757589226851857833773637843616612300635240073333386175415267976514357911070262167433348819765594895627364677453927991425190543190933841269814059254719711992574343437465242792927607415282989154174280475689809575874913192030987600168688464752380400247156929420791436392560381260138557340522118071342104140521767058381798300417754274847302839325495053937031288301100531165990361450701693983534002223463992958588304711630431376971765811524996820875693285872068589391147160437054526546594561878624285868158185286399044111155667852967000224757506339534001583852498382609946729472022968220780759967149106292428576224753298973284079871481338388905359938034478184849158162256887135631729338149416897150958099310513883531290950346454511517347757792908116551132697643596381135526381169326761657989252841299823570742946968085502629437240258278069552089844728486892619081546407237071611597402308034139016964179304673249402413740982967860041865729723969724941772568111908156881034206158214635977131117732330879528052005009268393613110821400186989798315914589598981119718868045646423982560974234852363951251505317425007601261382721838939684004672800027566370340068757571788396874030708875742376205071939584480021399747388041650665333046963188753935694860548576973873237951596622643785208276418088986356070927937282316347545525496931346326671678240772623692320536102339319523897523629725847626301290442346712908793609775225512221767476144129630426939399069784532794879550339436537239225397882994779569250445127456856788458153739010606650919413714288419970850555332571829290323431609569283759334420995213091833416697418530594591540518220933210294733556123862734524816208648821849001425501575084387226088319086359604331567402657790472461868062646443780308300577016323438635636584333296132454149935549944459246748261494098691843338256541032703098650179985550530297408648039895401182916319009137107612544303069576505005553587004559929758045101888916846499055208450089844458176140361100601690335417732562115324405436161064545215398139139115204528443177538573448706455456666363250036266951875692840842925396566430097251156336934769470663954324875640894626700919885819585218098678083689576336568502017381163185125995390161029119281083606369177531056203629346491707317875921339972161847661698406092715782646286291013282023877683803381241578200907530093161579292224815208501764904610219086148289821605245960180044946917240274844573766908856385468473102208405404841612526058737883069126306210374309808757620209003759810847029562775532935918034387426512268782402663490074404256456021310378307347188554585973582445248127980048344224466750712956152648127866334715432621619995158853160945688704471209266211998517359243268802151327322929440821583664216640600527737599056156130732994947501465720457998883567131761918576799580218335818520080377444278687132280750077458194725402824201685708915679057503195269203587156062683922564436188654217492858527726165351291480874549270039819826276335601828243020871263096094275948772360210150497540483021515326315768209372316941817100953276765150528747679661828427948790124892111250391850039307966661825504697138134613910619134544467147577136582507248776980170933663069162333251421725990255843343790134872914271551761388862799802928914796209913142087973801789190531712667927497877266644010031317533841574158748952567536343115859983820530425949343296752781244599428542869478863144796113853614839667717457409969338001226848200593570429748098938155411198951853157841846439637527694254933993269028549731751736623136230185202792664702235556288254980501425402956122776695373310045734522372829015018474802365514314966091109542832192630410743620661051823418266167139937006624382578690335514630590003660612622423643088647368720182717775229808238963322656580150290258955951782842134158751046185736109099034850289082255886568663806421779544746558511029932629619769004705855628321571460256532465797886554351156603090489782863470785991685034488603686737563370308943364217169494084351612983139265317794806699679816791416893717536851432406817546911658679024662699182809701581068816439394960550697720225070901758201460785889108374724097629589900975878602456107867289281406700218001407054813531313646281171293335544744607157475504083815068896652393851325324436989527694690696653755528655380854622097354647917269212949344191851923546072244104844890101074135733261099321285110198588721383462534323921907889698309096936537161904929007406208596156642322785554192820272664457398100775782861789106861254142572585620686826607892690265550402509377226287250276789858423696898204685055357901308369265682598341971235782616635767193229932471865620130867045097004608015993284781276303568298513394538573176989268932643143221126705951673448402428101463466333327816928895374007317668756137179752072097215473479640422954349930448417893784866474732390201062056530898539339692674836905110689676552571067764764187938825197724074320652146760025706493895025426360568967462015100079931310149381476370120437450837160291081404986168857985813759341904602889649932950348869978889294370398248400928919276704321218381669158124324182450987695155692087997459781809517048341091549832257255140819337075847190448802341085320225280622369684681429448147590774798429745021782307688279371215324490259001109364027179802771325092698171134085070665263389237066193725751655505824391959636082900413979897423771840371449239412713044605568727410323304894277848162511087929307842101861718931972124453649184975759689886725716846341837355709127410578939137763889897468487678424183456810016632796967893874651200829616027382871898358062603620914901554717386274593440402075048623258020143942717194605778206871242372015689119288773566921455609028962943366926805780042636910542861708519708908215296897364770675063375595331527532544760978466723202891503881095985324425204421019101411874577478149590111112905029655927909710099618979241425194964334988245436523577371643423444121968186285546767899366669394085155220296359217653803207443257418469472404780996602980382872104872943902693023624804781359439687448739974068989975745546813324359122247614387395687843133785821628725255809788091436883586406372055006749221026175270070499149435882386716603347369499063273301638804389298455460451242995388718009821369069722678588274500949996109848506878804252717980644565433839030903430025988896022224159116307888301732735901794148055759455557541247644665938013529537937206103411145808489626207080789519694711376975174223280040746093070522534460631397001997365633929707809565479084680623720527624518462713900074353876742249433468142487782851351284796222314151175928345160090068190686481851939879996267833628434282438221049698167965848184649739449174247326048882501404920043977449262602374581556889490906881847485684741150858853924502874479149829006773825497459625935145906084131040729807214919745576973391749024018064171567928096686932617033322027887850866919377557528559867635502507431896422645843208734738904238714921081875893402253699371756503474091614896047509472672419255752623925860142069735359605054422506529109153175217940463274131014652220942806281853677643626907928663582267325352270022039087751496434236752404897262055360143431910090339991235147843261204481177316290636528177483747331167181185757161773206643909193570561558160978059200407398724008751923627049774431445590546569181988189247312396101493208500677228776102099060955972625584793144908215187372559443031287706294999952957385309040505463109269350688048154822530314933985762650992699801600792453398256022958287272877313349130717192114840093438482935703963164408276537470223828242305399612549392731492974369791523802436151561215170783310387473630819722287091615172085131100805467048725417953702308331297869968230496733029773447323131695216581551043203174836056228879572477296652967961727601017295077060450167780336608901799617872850501271109915748574274430511060374097227492791173035217240472326455067761452746622974181636244613621022036046530171582559622674086664897674272114623802710623216563869028755401921619133452758134446964222193797609781759284924329524391983874604099816280707126119185006126474194830148764964912515367505216939135567477758204004050758131751903280120146744173119855438889377906593559110666994901921022002600121831953272289071541670769786101079251279046993527372048607907450180673768922332191709473824693292607241490794405036889902748027898330644648946701039169651179905654266743096079836294672267548943864150240812539636977069561286151979694670305659612390147049578387769754031573264781265095718097022072201160172878335968439514371767481856503209750007767309098231907339191618127686198414263204877074401449027783842733981342554344470377062265922352813978368862533657677632677121020062757288734005212145569589847244809381786095609741664488776364408742010241650045853443573405658930026137152688199265773256916475262812174900048125638122404705437970795389281990684846267827372042289578493127410314066735356826523561273286091903882013206061749734100177266734410260228369339869982596223725013457963174039715870983371038262471674177237175808401308944511005825709931315859431381113420104117801916834883217882571772407516646972139086167687344839012922073648671266965129207676995035806559453487253445044730577193077298496285183098903280593872755293109270315898192247852819445942064497917609360442490569722046943397325933790099972354699838432482911216643290259341985123853199163292456423436464496274910014656899008233336143429685403852277811128458396208881306132047119942006635547399448539341001386467035075255128566152023557058900298800248604376289116395493150884483236978502555167227873316235319605274227387432970676836121149220266118192316705467746462761029321294577784988741612124378454880168204769725374990790219967391057563891619255204791875617416829454738236075968402184912600324933835034866595847127695600801412982170297045522149825143496742574061228408008285199731281041707656733795827241646548022475352993787028737046087026169854277467701464083789444285244615223465225900635096789664074168933452537724971053069265640857668613768693577323568323123626931745507317544297921702891802140830467974621553503030263563752617365788296771418764806118285812008904512747359651457121509313370146141406315838522511156933512933795259588285646729652338347505947613625586441155673405841984892985881259536636335545617748265679101633200566698724759437707043268452881139631530080545470715506199491898229142972158649435115699014268608906339541097290080340514272123448677422730169506073592991368195273202917863593599146753726237840006436799184516135861839671614921967782813899311753403833606454303700839683402030277760887213067355136672935878445909452414430164025728958789929015118334375688543085830584066530382063018036565919643767266722756733214795113208359333008111538183719257512324597377117891708016502851780231682000702539927724255637091021738492379840371826758437271823484025470846232953800017380532279345681672696976774132084481262568969981940842307629863108435267800615693392202026167079260856991266860090209757572879967284039602588225574202583264206291987958796749730908561660634685919107579360146980711620662017169335031979753949920301178527627390533890556978883881181682543617084719548827667297079874052159658594864867502653783167795153393118160038479532639456933195138061857508334369979821828764282169538154989046208676332519049124806695728469700744516068777154986984132805585469814897548116310696283338607568037809548640907117706770295331344258808455687449552530246238282783659147368563775425810410160144581526775640264257687528131352108503875875707494880377106029153269909183873789959734528614795326113588601788018215077354443706404320371911235315374745334257718726352735116276616856043307516765611771985586201469201161510506535079027694021484000646923561300800652003075312999934926553784734313894285132014913813940107169775921016318463398499037406457630974716246913296705266741114360375571220685337245237889616734644318850731289133015460459854434135103795225128371813359919305769249973987846807709633204646629659017856189190553956164401652979704264939548480663394026497998075139309340686826627046419592196892052062588421460386827130926731332209028067005753642112734759438187325481690936192670226876631356197074961574855325955704181092444498490027189663170983866052383778888481784771287892187264994315794876853169052226127291772639276193026668302783457891230724863671013329514513530555235323563561074889486755304309093527395244563302871088634255023846433578111280755770401931927694058394727790519835585006740152205245952038049523627341185683252325625189430494691957858130893834779383469531938190867831018342442655864007366757709572342471449193485647679358758702697922437393983864859450241148518289413457382210872161967663608402970388181578261867407267380728088992879655027168423248233922463766873809466023409617173188283333210001907336908953214340168479179302276224844951949501487609894816165243790675289615838294398679659216584158594381317850513841310889044007169132637671820167753360122215198950606370667268135602246510939813740872388794036204345339749365078879526693225080428127714480489269030473548767229193201608567757389578110167649610980962664917391478198763554202002534013236719601568149242521777585978272543088126424771396572937009561067693170046030761420096720593606288521137731407544262359412613889458979441142027787213323287272465901050342202379404587136897779628976086760048912949916927123280927905778937182767385465366611469122580105479668512124301177777534670283169928966437088287951481677842944193959459469100211909753231389805890986865808172546256135727324660496515320350571988135922632949971541298671469532137847525427799974111849325833307045664752273202666863678514374873136487126981387947335233661710121703111045901722316061897081607080832752615331701476869274438752999218525151032454216288526092522593382664832511273192927844336440285100991506680432548174616762489576036899502345143350345673019084634084624931900585289820590957447521480297429303817816657958829167402487357020853959274095694498152066493261910905118139613646050574842281718000950503550427096949536931580486595816247605108297688855071138643506570196455070611348977821290964675919775391303822530945194802314787070592859130178319294552856918889920727054390352260505630628035876787657923568142439069420181997996251460659775926302698141701150652827229972427282144108866001737775364943803401012945153504982203290462687513642086856370088403147283955198618702295723524728239552157579157768156040538247238528058510717704065306740085989798340900989892407389680502423423733590377484284647823569859148298473229347754202941687025116531302166434638321000663726074883246074975389205326006479502938132004305936762493434626109859555464338965736569698250531010838899477007630651452207881174717894533021345639319065110142362057199895479933479051804865641304631780985861057338864923121347425535543026821764581491075559127234706106679265978468402281990662533531819471441468153373043349421547750675643555417654864759869356778853102094149862269816741963064726568253312388879657198921126237482730163883279367172523790225844161287265291759959197095726445701789143159866523982449905191245660288631357606108099475171486394712923352065803141185440577822332536651926905838133807889068233205167264931931537940674945748816295588329254325085103919373595187044439862038778122901774571815164206463878775180248756521468957479652721316369848207333548761697672018784278806433416879078270866494680968146656063826401843195878814298639431099247196418663759048362638545607470985005706900927122237123297769860155601809977516882121970672984653073948640735918618434739003795665957698522920667729499313890308710644401467499138875484815943232275071243289074687245891308856375936078932570735752385862167170278102133704366274404921150299681638415112476040116693585782930906783666969549379918076114638336291710863769509841790028045566168471743989019125045264928585965123605459067788612505392277759072478091913251503244170682545230129455448956794107567198626640600575186407057686700085964233972797353615450648258774194121185015888830059937454814697922369006407775702770153223117181417677478227179726483815937127701802347975775855708713877781065441195455189618909559160585818801146841904985455167702977643656202524090620578715664522324486972828451671700263536707674673771964516028909335896301696493302737993051150064254716810951403204537176803012835032520328220874044010642712781780030695354618778749451225251183892821397828928328747170790139066707676823676752953385610755088282208396374979901178716260705161346340304245057307159791381298573464441599881840764103909083469048720802500074056255366448685436201394348216711659563741726642984426241752507099430919067896161012304408047320762912074454008321218082280700560309368024548917100947804852331835110959169849232287965778917820442308188132114327407379048131064460596204772652483822213227217002718813256416393475637859199249330853394135745557341685215421006991389606443725966985397611864368689647740823315433432041409181962967326400026550025926164104353566428009362227010686159047174781262992890623173854788906208340070842948423042904408673817727392170745194154571311168881228075735620287312830142551534748146477658304496430029856891556384495149832547565330236756617555345587257657931903816773778905916162055950580505661330796675530642212697940957669549396160425501926684817157871125328110214951850606242276337711973389366466655313144845149896862323933710577022373906762724650294593715076519454385780886766034061258113247245242468780725080220919403364641881143382341724662706609938846803503007829981122689284180702453877554016305293180084902783189990460552038655453375174846210969823663297371224931359054168334191785249773776121088405143264998891703419052072919903430167980542026267535596355265553284576725640262812323359061908809882228727390101536855561462682137634883779582148112750950325107406552480715502631982273802910412678230038660487572242271726590472082126558883161244177021022801652209257873280984799296929797534781564629556545938518806998148809577942336730589258716940638784799769069181380821792704779052181043460100780888152130357096884247333813926233098209453491911832684669149078295483451598607843394002228113083654756639975673716008683312365516917441815535479120031270798496240680146978617806639888400330690159733404250644924255445107387754690799271687130402772739364041752595850375521936931171058422231374366897186326965855663660936303627431488012670958961290603444647411797202518038594087444968151112529132872247561753914178998116668131160336006796771489476833829827374455311283176789490722618608204753022791180818777974736299774880215604368532179441350345120631028684576932647359729501177048217832559473020963178410305138147587673187534089420626968808449458755518069463690905625480856850769624107875428236445606866926436446104358870141257212545302934542189878336010668765950226236650677200749973411952359285637578486648125854406773887093266826056545832160442814143427072671945252331567137027111690950563276919976360633945461397224258562694555803505931087795832798466948480693185727955790270750876456760731894941200808435413721819413582372835349278807860331791316012164334658827702360896575277354867932647208200279476748614734769909742126104230846165045122066864398845905116930188028156584871758007693305033268721802317874549731686610003715229632559442825068906125881127176331156414205267303738337442606349428052418491580423319190437649797829409194679270336430775085938429128640670383463026805873912514049639027138350721871015734496018098010913734500807443375744444063922946636598390304503245115786190627097005907069212700973934857040459331882282584102654773748582131236417589391657896592824365923673663572857595897058880997391870935636976558134270869035091023809569045155574527119072156407804455182484132568131173972715652063226794323690345904857206288300877831268258760141206492571841019833063566119476465882336667889028217298541895888212322374762516170377522450935022962614877923710682819089763237744402766157239933877433981521959653476254381621893537584974587834360763430202493170271026007213717321106254446106162201498566496237223053236360090415621060324097817026799760629700189116735062595530485604638922763677583411369232465727602193774871082074959721795107415346238019934681088768959999394154962224223678621002639197823909694140760014541804174947773342318778594362610550003648063825342857289826324324364984187885420652994785541667854782152299291682335822204408650140606109382150278670789702979867010483761908210970135125172235303061196119102776068262367423327490371766664804630078818144188678880852582524189931443975759452355123394867054898344117655307286215366848495063072067682293428000299092472877709737592378077310280310631262767590174794235765238542741444887858263884708423972721852214922409563491624556068164759897832458014062291519844615757736551737409571036687125923566614612194300990919616804444383098215542363337386206970191013809892953335584520272035869609416064599718651238461760587852071698782622868828082180826977654918612241193584335637831994633933631737073524647075722687560290046728789204801073231975324334109725818400999589851815464761607998554855514518137315456322799647395042074933263716132500805056436014403975045697413950448459464712640341171602138103946324734979544653965608709734969714051506171291095711421901591876819431301901398543187965704444264042285920957501135390976656762430234411781198920767265965095841353207089825873624115713598079033301988486645183301969079449874348750531577195144417603557362214737433693052435098493824775730238310770909034899681851841337886502453035977427528683113039539266254645489289223329821035838842594250375913111525880297533700574069856975356175510908216673195774432600441288241694859452072807325718331513445491318899325927144566094895464171365744353522056733092107786491590467601250978758577537004763163535806790748997808018051498687213405542623675255578279278366232994606103364763960799960181105822489309139942285692648119810564883911629485420486507730976230000656903487760975266140693719187793672807182456964323626254859470713990889926620850541826603728784092999188365524246056595159578701432292409287658968287824007800218871063202500491226299615563852918286217199422778117811135154495919751668387136872023779711040446512306813792321348435895296107808273922707618573788450445289967608229830640102637601880454001502370430074775242981906255049479746026457955704880856868797246081186691358457611307299776570087933520898797899905913650801177193690263193057627136486604618999913137188308271573703694400439172967953505864531803407179472976730102589407438279302347894278179089612080344339313884586958910750215601186386771294321680824519427373224678849990547172441995004721137323282527052644676139331349404939307303052058322787207156049064912009839311826486126573770537682125532308767134805776927819587349074387129696356729197216063022348535990194731863261699467453571988638438393004850236768411745308440076660209438398324833852145091261536598420367225897149784813686935871261749046240472214264570304471499867211046665579722588524919901697300592014800180238353979009725827086427795467236977009412408060642712771973714019890041733818035664657441158611721226518465562337598424697199305954307330165415429669683597766464785922279077369456455108247723983663376962102613009578186008746832665616447792692952386152420557683879431359899587375029873479708515815967852097527476110661746765274637601739654707625162560298732235173891349061828336671972902607141438318094924172197510665595976460862992579359394536982397527578397690623420852402171192695589462901907094827117837289814897714334068500420755873973519287962067189617491799986203922067544157406321759497002592206420471943709081681247104697067802730765473080156851936446305576116707087411544253369536970678202248766187496497701273986558195593991525641977198506580501847773739184713053396180933260040997971659077575705508513316861853805098716687788573209592253115059885231977982109527702767165755771678157192740652075016625459161419229566985445348511757004249969435059336856716090336240720578708325297512612365387080460110878531953445138533061766555236133775461933298406924685411869929661013545520050527493909937164000126674697371044224204684119096815605320065094106518724602220600927766664188937872376616049493280086509355201152783385564077107289136261201019239465660677437034326154869600769275670337926849433520638456873345121608848374212554403896616003014947537991551375722924719210934576951345644022021862883361466932456186996825494801857996150819853996685835783181591526231910128865985353445657745126050154603694323445058642732490866008518193618684390737744474789835603741664914601592992883453309110378794190412550542238030304684326592403070751087516977524138450953118301573038793829852070089260347750303414507474125377154097619060815922175389129954902588405665585209242770281081283997468636569001413257573550761938704960891291490965537574795136684196468598193862955452035811771165944929045059789898890288582674170168367691775402032827933119639767751687434748267792655188341308040639870349541577348600361185644910962370149823287268098560395194127128375244868484965544423342254002127630230903396992990581036587073851551661935228780972675734759714291483018535880613987930627746186099456697505294684988215614240259055301203976100239401382370984485490481402335219770477849827286690425318307632952873025624931914872608050476402381935292200541350563817906735105514269552402857332880517769569966433498547942680509946884164872948421865711594040701196658931824033666809014225431619724328729288567957906394742322172519363956499607199629867855755830121125975926858078226693901199574397450693203643674675256076192686455949052685851143586638627001110708628576901216775715843944287035883533217411265135138996394384965832820932114716764432624976249932114023181377793773476769884882303498672260441686943097134466816032351859925666958561301074451464813113591352025500003966803824215820237312621913486170976693828964928065820438278338306463590680615263238254975559350190626373752466349083312325881182039761072711140940631671222943134967583558223533993783062516517858727717768233137707387315990805016179107857383477982787263078631896668834283335108588819269482534621456943928234980911426137974165571835832034369980444764518996852046564536075717225671149666888197900973788636030466366968078942270552040930016076585514131951193081355144918176487370957991940671665842517902650846460882459351167454176144827349986510856604206689090036909570348763492557854203847534244874938849043948735117747308725648341894033930933947441862553967290120078574390928138509436281928937505279600980598099027261437476438204532131182080031034386808136573835296142585332008947993242738159706007165305432041727687550384154515620309458417574647801083426772639327029256006480084604815013485211645320403871622306913240717082736432711722123737581839978155144950578999063688579906855885492334817003495007450154369350784286013566566632991625227717244404036178730743043406875528590988721821982908014327865928257005495249061839018091263779201251817803284578867507538346578065104823961850104260106469712028597170974427987952699105837825874537040368968745503553293166846324749396607458076435143244749761317337492854399263135088975280944841309123555258392570905812562011672813319367840845812000684183492371265585169110814848803339534802273632059674425437114908691628331430769505847991877988568586817241274012733543046473044636282011136214460529904442071830577925548985775720806634357501107193502197474403139848136300352102177787088222386426537532154579889365896631588790886591533667404741391862052353899780480666690513821103002393949706288450885918020450877622892899406476382906299124719764290289340082527555093965276565474892450602945682350987382707932854718082889130489931007409097612815641085817604474744374702633636037347388422851510062487432614315430450468879584369182777480698859192274814123862504109708636762357152384725689875091301080273840361509082698642404476476459217251338414515590033767457574833124989307996769576647006256122841664738044189500195605015556471582207702504514131473157700967435303590711929318881576698925122528757272640585316965638469596162789368830170326248734830423076617287763012846598020588432636702050990274203831907036283850225506378343388646987127758496070177405308179110835055050164104739976400227658874380981581110459909451375789675328535581212389544317006583228835835811421332502008649225503695480287876154470877391487448381061076558252389837755876451608794500125061853824040510915628017900315712011215232883229193832925131562664965609039682077533911944424681782090556705547965213489462429484337401192540036906714770740891003289117792074193190066491980977229898792011722701178337674514392186115831925414545335345363648127982866628939903354438047231803553900056959282959073905091901982514525770480904553993117461691055924719683035209156580597140157705502280180797283780831678753016306261847158535128091917985516826272034452369607269085757328093467253605798374169486932150930430706028223727969640858553494572124982781369730257039086376830853546167476739601351177760021399919642937498715949377117241792953998864560630393406714031300643313302086423114333027245326776194815987338340264129313346907420230262008826838915111649927831707013866451878024089261843889071072956533114583034864239041049480675872149372831339361156211501563119578611746396178712951173084089797538279346000920930939031604598057716551298197011850652159314575642647452425049978182625762467199458921710640308324124184848019543938119217395916037326669486254642279090350099962762288096305992591317045551965479996703134618327176203895632440789964780030060515233850906014990312127097673943237739666497408188097698074098591463712714499043003487824408027367836088208319119302793908871031560741597696408968775529171120641697892938023565781117708686303406176012514104456684553619573993350568423353388873649662785248805861696723603363580712951595340178791710568401616654769631052534283540877560392041898536237238480867687875395220223779028772263590938267581642100897599400214636822712460499826418459499459178086255533674995744497053593887561460150726670080235956853206534995994591479219222517281358979373434117784114213759977866650867415225403988770980262826296442354164882471993315347716638803499840763916982735447640379414354793224611257095158221881033054695053225910151103328540238939356188668923133066281312722784618478016674302184134482473217364711172544331081952399751179539286105753848522772581004530566865491836923542576340161039813878911115993157600881470144222146102765474255699729805646495951931495227517218724306201323012353417636998438063459473117833627618576492566086619247600845884139863336005593862888682450824421424128269260186562165158994266438064370594446236059097792493580450862753509421702824404510301161249986583448353075163694045548855431781575058051638629765587674888000012488854208641952136370240457699981434410128726880033964684175592753358686733825610421229891166670130971755467218999943231182677591649033224280692807063553916635498883954980297623372553274421452539398233419957834122465885075412029577980729423025311045558545850638619035746033324254610607593185275189290351986734024166667544254592904194534170943287512844963763282797049730118869607905335440097129646112934659354028428558592116256573674658612601865210426446214698465794463921802243890585625208876966666379063650205042281318357704756745418803877385031231244641214525369298523750167550452806995116569542464498302146218185160094433570910541244479080974764215104554931389965591740666517978769842096905775237513816014465552926622200291832694583019783154149339117983904847433043220646122761968262571421223550267808505753961814852485482422803007424359053566714007494090038902292421814184405728504899941379925853418961652183815414626713647993434035261159641559680492733591017008479523180362443330131513457269358696062421298604834983324255942939238068157113719742508084001863835352275003990844967492427870075401686481363438482696819524881957575301629737991074247047510587229120754686091299540116471937903393300038959977706331687233592384236275539199708987551414724340858830985533823058232172483628301279769760195275200523946701264214260206875775899235547673366242114601611715046330930707604271457140944677419817196042036420189945562217869781204114329361131579583223799708746606642538674533909161322995231678223530926300541382109597960829793123397658999166302349425511096094754978098757690465969190540442984989958743625533056282989380412168855301061783999375348438176171258740582587333230182284549282909959839918986092879421973501466474859772937479408949051594299887551741284114630035055419185402436016836125631029786043701902752875093057473796857970382745270331941942252236118099724922958407412954610828643226550023096291085705388579837358928531249939470146382883666469719962301115540098011564980420892170047863611139879083252820353377490349739609109122677214361366316845293232814448501321121912739181893493608097511803679534169572360821555537248966901363065597051290795587237377941400169479025469974616540647977339870486068524414411117423575061245489048579469914735402822816111124083019304970770788242499862475577641519385872281825355896127086995148440170322849364094996684097899056990568716320432547167433734691616354389402784564167728975662025814969662183021814233934132569711487881166984396973984133765458420791527084480906116633332924971974945536314105465845302244073739055499192622464407495251636796809267863840216588834352762634387447651779392592400112611180158010380128153964816455396998814597618580610799632671161919613027079323596173132696445969076667030817463501314052264116478489305585970124023677451313282898115168503716961337886218692645446260319634047402405401596679961269642921714239535568659930955369713860198451833979373150529514687608869254751456024036595228387646536781858947814475085867180897894051307324153958455740827530793069118249374979134744869063835278202765333159248558234721080756594649344876528747816466207881177799797978311360355424773389801430722393230907257732906546840274596084536857090808403128233715934048731258554591291512848300956219884784182993226101954555916785059517661454343159798196294078184766507887326628480025709768786641144649662089138232327146439323596141003720402160372522043118877529919358237437303321005208850503642730166574145172592745073674917185765327454007828652154984298846596241077347074238190607739327558723525529874796217832700207229024336748072174924166838227856847004634947234837788985668262759627659300371271972956561628935554231465301184938148170040702792145083178081017899117877880840539714526949273056074406068659264586744716757491297321801180425851830490200072218907998835372731963539599694943113646193649042609588483354735788121018149464579720016157276642613244932390771475427392992067687597912477281504162985261629082174085816236080566118100373341535756532788411227027061959845139423872880239536240018848768437368079054976132006304101196667252172946765292761738716611493791393385966941684575051831598306952325737216187513627709566516678167360683627222780603294196838747501783265260779826212951051365375187071795427862979799876305775950886313253398700345837283409222537457157860773889398215432428389225202117475907422451051802995934598262928941087006560932809517953871066738280138092049674006420797311406932901636111066275813206393545642450263671907528436544932856060461761625735165927357211022087500804450824244588215090989469562132491232405056004449514551114941993531907353232315514929389821637687950497449836511256633343817773187451979303113778454932648343320021297342426866277235679582866399974230415724819644261975091597092474128445712215982693707685796622174193099745987415290713681520090888276562715959848585283152030874475657941915254066738158381594803515595883776834713464768513708762382166676859467348449379479428296790170448140490204721909440103195071218178018206574594072359431189900472778321613922460990789911692755369751405241401263826337094970413000137964304031112326560278424366220407159686046123423635008510928327186022634336317993647113010626167881859504594758426379464423099680179231845011194474803904025747054980749630747811063234120386252203239584046088146826725895624361957513379580839480459883039455107249323250391019133751047036807930532386066683285271159302903439770840791238253561961007443161244990361268036941316699573538857436214111492930013687877165784824725385757445658592472331312598703114126814313856621184638821897199919736539157423893618559179269909429642136500950086932289272616755083720071952304220934494607936376275877888412597702641109941538611248416465478912306161214608463651890165376410563288383370327616938916299844555127564415179120469581974505838096821113899764670321909105012655433474718947632117608509133928251725249273670435168478770097444974967665406844387042568970088873765585300351978431820607745236738482643501037406784495724018925933348179188098729427138542988137997532552672747952833926670537204751598047889630664222843700093595802013913727007782219109333414080425799055787954807643578108018137882221130403555773581313018938888907097247363032444107283499969451125034744089335220019580499627164677232161911087164350303805729481703202988268027975523421302153176971094292548670759963761139335642180484097738649850583217961428396073364817025530584785476104341029567478987011367045145364726645146527526185322895127770779316187201789314568274183446598601674714052741865375031003959571681598880753063407003996275028737158301287915776259071288955916541142932327063038325508637638323749364601081337311010889445296439880500542773437739143918284095635439279242843513866912369153857929533463384672158819216070791865049810749400146702258734234824657926794763802872483088456081495147867213798683329039209091525077204523444803575043869020145007536178393424185035408789248082727422803524770533169205538828249509649796922096824530539629900382891042422199159729383820199723216051800223067619851283968480580880139059699277059510604397684050613011657563871675745681228706696678345047336390813226487253070513015962695662926713833825230952298440322169575079374579718571936088303875729487186847937609771377603353880608126490036623682261732813820926346095500871883347037509481014920264914713563928451169650302674780735362009426551928157599351915026065269106906270264709841775717925490878508890178245608773536700276933532995243496157087880681918054313414926067411562557471416000050614155584882108670475949919560083808505358969067103273333687407201181506962271690808483142642283447098892652780657038558611691058661898123775851093700902393626330442334081578278550082155226888454028187710497023985281925407455014509589480612860745213162485889283863899187723614101274430486092085547214905352339420789947866206557273014969084947488184992297373776878784036637020953176802030862699396322359238825761390664400208851691859994278577210605163948547187588456826349761571908547837887812141189205633841803834477051776171402910767204897362570695267645039198088863799473768493247048635095979024937105281699016261443355103872287013935184127683333762239162529916425556380618603611091181797010802228710769767117191225405451084432748705493912859399820396998665745463140581094483497723053048595021693324044449647788572923514841492603937074991125498102904719920039759538942843746549906592166764645433587296734601336768927315363245775768242151918705227873472910602763802152703414502778903219293586342866269209936914467445958577336250152538495543127579595389973122667319703627085798134689370939016238641282633211333150678204965702957168277165170580891339281575509443488018096916737721258416275929633868733823781113304160463390035834331357712595943768569684503755246516543974751026161561824313008368862082417877933239918408654567480621189235556967679032898650724378813651313260463921900712280755314152119076995398365850980747357616368156760809991545379178399616336949120207339687281193697682429331825571337267347275963759044492278234099303076035673490970359409444990316122326185331490465119621356613103790344984271662071581408947096174933582688844270874383333082695250516802566909086210899710999455685458463922065154853821837253077576282165974917181098761544189168868647626138773816996558907280501801382908655759840447626074875895086524905559463893657620860964936013611018298084953757392216281225385684231220125351920844731205198580035103856953539570061111609990108569278201491774746900839453135678574703919287813700377391858689390901721338373729594991332218872538864443885581871836897240570864422728678257587168561762521728834207543635346754141063306100151291058887345515321561877536193759498562402790055694206272856243356813694400377921786500038849112642190928016819042217486253415200289286104584766857071552929683061061887106194961839168134855108624891795516991064726147054271940749666428847006703510416448289792675437904635501065632505217802341972526787737480677023928815173241904457381967553477830976836754311181705207446683601202043591956672763599812790465036013219190795263306947563801286980932607285081661708588643348555919234954041152225121804534669195597202072804295757745166713429242498831425225919345830756328582141847283123203717950784125158183563610141884651747123360160810156392503282438239099706394902838284313174636288434172255896394737251092922449132487291025201491213275455238632174934747487042014652425238659649229943921704627659985876671744303683810344057447010527866228158196581064833212512525025985956149964740598850560040153669832261933176233557392522139252291827029982029585842423520705598906118224823362829826816307414439479021620921407654228528164191902126813509381903610010088344312886775183956060913212133432949472649125295855847589858714166662779795755299982213044385695408839164398067469563248505135225084730413619815006693811219448450632130420502668631121369862068865814676162649242971448241915696686827994042717974895180795261469848292596857712917968785742905117473725748904311129514956649093739028958983028273723420047499791415201843599080748120173922343367699834859796993408328106174913052327801731026338617982390664687554105329008421514926604512852843379938435755117666093278621450145930988325122242663601471456908354728190815234092417706794467724969871833014762163015542995032137623446256791659267729842153497120441935315594775788028548803688178666013210666972444849423731708729402082881227802454631036815596328266655138993582692477379426803271340028950902948480252037006658347786639175257745143849834960952002521728775696002303683680051727016574023491766616696559391415006718159168788671484102134524847105335869798510153209684692703285505555605607450045767479759684931384573373263575440067061858785836919218328251546746001724441780092874764326544688047534973206422539197108264328908766140560029181879670254361816654870372358308483311389191857159562580592506774480710221436257648554360757058041265915671360045589343451508631619814909824973141064582709252988301479663361004406448243473570224719985941029314801729371783479823734761666622582831034411957333059613061909780640782432271128672201664001643059911060777506842892800762329044243455033560745740547866849890292670031362601971009781512610449264813308715487425379329328530819830061416803892108754059839003038145572159755822950813288542163032341640940041990414730598326042506143913829755767515389089174076592673638158990871702364420492700790028683203266616564337644195608547951173059961689670574376166845732435815930574285312258575921226833416616663030118159110752375575176459141405306606544390159299398703415406980601631010416562636966623957869168746145130119989087116675524647348588513446697828009806985352796301253798372663734443184926982743779605413478947460045737733028623448412947656299426289979679279949768347143717758487793073817008876504358233990059709193415688037597134688876943741744253969769435490112668991387631298625381512355452147538453607774627585043713519886060167952426979174841117970400030989764120022475104943338659160075292719194444093823802984427375584938646813429445739107068466253858051902772287379993569491662575094559797446579186404854874276391140269373498078143536085089781401556519466050763609193310207128329861625172756649934279932899971665677043948087638208537895075504799689708698399840860508861470954496086931918328758317619190017105130029136566406561571106715318340855966341368719734220680418391691062142378530142454101106080535783799710636177363854249207785861345072437325806934514156239254176639761498594458047341010425862636889350552322123844708219065609773258566917644618976499645338961045762418262563769400080777354808985822181322252582813316659447764241206523296641491322094323999969921642039078320390672308966898397561318051776470359341229013046484448602889991597223721685829476787266182764532517846165331899684446128851226710196794285701681076579915722789047514816338190310693321898724431204119976813583980840705656513292266859401330722791559779656342166682399730142238517920335362750772903273493835443235953703856011424790337976728714373543451844228387664586270089688430114653399286023125306774409393455042705220229165000888409694753559945585320915966022090456027367852900948583708055983890612603849953881171058177606291989589512681457364190353056855131169567599343856944387285924721862717630235546575892630382892897393295761800484050298816777930808585719174275846765343803897249633062645279725646973557244031124113434245198469893421455970257154530963758737779491516920685587361201646253270403384337396583847212488976379879751806319439859841406863104559897483218358868761123100493994173573343831405758740036710654696674657322779355553529837523419459787377232392175933358656932972821395767789357030206738023547765534512801230067447978752153443260958863054663322190968583681189230357836223865905385988169834173628337567587426424681662760200479922249714575713231753507770902066700265631200773917060306345886994075789448921565525750976599631304871922655574028708729299143767055509816408767543184412084538603417547942182815670833003192364407903626131162529372737584758260359152849370922823987597449390177751423211125500699982652414907732193239299319897489842552236335854995083167125384295605754291438863533524303965195927123654570259421182430296340103482866868693320416711341595317445424982411780833053164936902651530764055302207242645475140209315152646071763118117694044179587117295542209310384063978333210401012416531946173509899959114668899450815256906070174377089279145554441970790637068059375870450752292012653522145312460646901541465619950055738637721512902806711512404555572010796934484585394859774440787568283428381571632819980092161609824852583892170588467901174943777488734728154453443538493611521450877044315717737607955697470284757956089224106709931953602198961977202989058929432960130674006354791131988518770605782848205087911041499085594242605779466682042494913884239176443486948626175720551949037030736410703449159988916458880806708883557244750246171782315991993445751729326850114351346507429755988701557330695466907060065598591769524227866034098590353700068187660359954641931999879498072763737540069928054071383083580956007176149049391767075273692452556255228422306806378207600497521539484298369727033368226399315696366138725650118201721462249240740431843954306916928117168717862097768918038151761161168215366700928843371421518829668899709053419872734512083941868493109497587442969406511990184044806184658680663977811576448403614053979208251284554766813310794231408663264045227942572440236156204084279756635192069973823682184811565945228302570970927650699972223988396388599113353219416916634194158888632772058262424038965594213701457115091340928268678661362367963283583215819869746802031081215316689787926977429534577008904039316489340971967707173222367599349915064319499896106228739080016525927944198530133451325085077035660835522557268269140638171148601158684961966215191614203717833407496920238109853872164824391604275708518149912298708702203754010221427017119994380511801621282583557443110556600535547107059931147796336900384713795608255616691871597397793283510949751860128917078664421342541562532760228163206263250022856145710888638384408547263515895832805004939253069868724420606802099883044116551864792874202668779398213198086432991275445653313669953495619386320467181191174978962310243185455811812178092164409348931010797767242487315889791397547865955197457412844448053930304909547648157372365497117358285951297331556477534102415190709013636155346830751595041312397394926978690587165301408944275666042872099031836185777696697285506168919189256410127284989472428202072962321315870031977837052135461143097634168841616556651005760259035936808965018161391569627182106027252039007558239509582877688517529001047048518858370189001719904132946519072324149537480258734305229512811353785829950389460373585498639879867121835074146150023397513140816320592324086465535887898099768340491565601535731365588628182520059425630758221049759144244306153518165539164299053912077335213513866255740533335222477817922817849305142815355568482056493191796070547998466069163633681778985767330822075419351240186320345740148476652130141081124188851220066606067890880584503673363667913797341137051954415833483687168557105426729656669116159731390539664032060981572920286175709496485565615794687833626347174164950304298105792222621643816901241792390009874628024069840404992879273023915862551301332790457215087888525713581615367292998729643896502883792079819700520975658303876799441252224364289342199616361018570135021294628504239374325950878763601683601603501032495055962203836478943362673714396577888987341504962388500998871218556838306330098499219561937827748463928434661546632150665310817422059345178036327602559026359043361695222588577911064308064935701918799250211258713841423097631352408218742693937601223900821173138684618188008630865614409234541613284023290227740983833966634479480556054141628102182491787475789203521630474190795474386035402076291335239091925975310265072566371630101574919526427327995848215998179510316446667492400949283344219135979756867657868282023499250909361029685870442474146887377618861016730138101723395176382370032312832682814555142261026975778863301579244439980073399528824637622339003928390865893567587242024144597479842384227179862435107276647139368335105350602095657450573760088082542540529411136634688972848655941292201481723368808345583795192497171367607336908003354693175353955240424590427627262136531612609449293294606131492694823927207440836085816662937507550535416859870589507771594805033940890046070380467768227270375151259336166718326704746050584948029124795323512299513955971169769942948056952700634094808280792838305701637936700633297838904793848183035714431763434809869567744908201558230772154725012095022869697221615938344344947931941788486946976886430475989438346658188162311974546354494108378100384487343790713230803747750205547534397529150557770592652358888138864715705908800847120816033716359307039948743992773886464717544421360652959760542097527425520707388455294141543603063861330863833160656413778954260216371479433828870854182050843029022108601579308531425249068839558305019324237710935361299811457677266465130540473856565468499609940500802395437727371519282128008947008426302927780603776537410638802885420152452077792914445002843053516531643190564652220963189800058273625974978940480414741930332119432658298212691012756525113218083722830051894463025143406155032111719694381015366178552529228249382138059977760566449395875665650860328954097837344762882976449672409733664766474514624305804746810845904732830089857140759862086959760770224001768063640828086424675055499295076174438316700464260582510551826353973257676591846548542117105756883275343606719200917996770664545687422939958182742188490207534941739982787821861486764853954775475516960907091698812956878767240572897595233416479531203063582924310974419273481627697778985704975906316613635121855618077811248417197574887646384910767377830473472632478720877165766550845737617189071872139719921790049986985272558161320089584931232348783714845781667904458694554389959635306048205599774829830380136336149566268318026273964266748756471548007752755178145756197223705044747075776293338170377940837977870658671703087943948912742238662119033432810539807021854955076429992854220440826995357752360057639817320479597720898491413193497603372380807264120311212147664737244534212373273111357286777728735304658005595135488462832664727949184676620721962080148984663293502748019925827237697784820445626069946913653708449953396760901389987227978743017511891146559298063401443322259420200297666009954270663015888447867156398725110638550816892802846270436646207958448717091567984269444597207785488333175881758798210595326207143265172833875955780791126455470756545471492205909045522171143924030745967058341292583756414735498646323154619339992966997674906756713141189893178835037329017322915717221271571100642106353365576592541781656471225909013708248449376384143478623118757276173617955958730271555104631812109055350286048294819853864927450856592153290362325848641524346347647135218713219171923145182302676159858594710912154421761285150787134394178871588476963544172415614401930641390625307860134912404357545491224960569545656312532386829500958718513102739982872073334594345117099667497945963204483624408473929462160730428379097815427634795369095118750750123419075587102523295062633997120033155995248800193705261456191125087715331733599352048051612716979484854983194428169308314834491801721591442616641649369451943050209844649756041034460394463271622417213580520640442488845465221772586197028090359537028426217331208861736664566216265116830333041165572150789323383628717275184796636570098960435772829390485442275493183281711134057214699614938517420146953427613376639789129540522819740187437637902622848444869853452919114670437445193377912433953096251857282644122627486276029108148234033688860815267536277876467136374916303761441235065389622457185543262348849827319785177811254133003922728521056722152978214589476754416365377802654912398776402976505111033194800021076960377524948077499041638130873608738184692288162821722803362220602771289567420879063330056522766877561046902108950662525300857729192520339417519989116513145507026908622535802584500120919479777725180220043282795192773260752298966877180231625100664394613574857528867500586898864112583114920024457011699378055575811615890606939029687672750881613055376899054451465527691233050389266735891366192047064402603666201249429749036409495010895190638444645489240606103715158215186399304634228782993548579073432181368166530865050881246420463863807906377511671969417150209206751220684944565244003298921894109220121004047176606898906676772644271598645195154012919888055333300723657062799899977080779127322521029634258955751882847317116430893315489900642472462765381234664740054865400898196564343167889758197508244560573225315536464230038879268049743325388879661369322571024087000033415134448732153502249910625686121743468442184736572912495797507310970942661587207557345309706680532207238821483841954353560334745362077401979266254348607747121226941005476827415148035780076504176525153294331537400798640633708353367494374084615522440702065967066049376720819399661860057107419024488084507576393256594508524220840246005452348709154460450411920682775666048703330157767444141750212916531723235928888279195539289981267540040038941694249480482408374429856144104722012506337059806389069234770833846565712132712981535886431416080240600637166611594914141685437319473411164789080138561126609912362998337671195664953595546504002590144260891786384383734754256146616090267806192700835672955654441879094155932498462477053982960849654561560837112139234180964562953247158247185112564147292276470918192455022002778372269860048316350887201665527085998149010769033968940597937328313496505609023168480753943003562877940776710591487510852551120081045872164240834955699586893601384394264204175314228958538079385868671350306096735398995249289339445902911533591064964114264601629360333720059360364598107723733602123315634129761902484029828575580244624509811111659609756786525205628122940694173309376837590641317603703358945516958463476297355549780348268738165274148924584984302101329376331827971061331515616182739261790016955361601024340093190347845155027430087705086226752036700933868739632844643917934348524549198449683427818962542407430027333118180426258460985012949893920673724925516363651412025522571961206143611886536113533233325305692579228153719484333747458176255055360662988081075115985978730000714641908706775129504274864426582407348130521952303578029830900505373298332044485778968275489492619845064464165846509945551990027470142572849073979507283955193725139988719491312561067314861659038862675067261134348792624885555552219461957347179661992672136462635875423234494452690244370246022698983499997764932125656116568118733867776465674787129196139817545834525154544936881444952374688153547866053263725688905453537512808080328036549642336008244271850544193345160675584590859231840077483421899296362914610558744713309399428582099569853052279474159968726372164051070103579015837641051466259912896217225717471956423790323716336947856405360452501969291120527391369361832956689850442239725591948549212329900051813164391972899218445441000110279533677512476715796306565003195901610450943755597633917103768668643884336635808338618442051548563325704801116667194069464603828787581852389103919492792598047706317165403210395544656278426648906985318558005018535534484893633082775234358191714935465895964623685169626285983111246394876025194985217107915837937358516184064940978346516707152811298361874544540402709784659318569782972295698136554071644675171209962884491636915713053519546736396824791410732840869368177268665382226275162172603203665615661582472713391666292566246195044154542409204593922559124566454270004552309678092953089543634033166931135723735703521389316451211594056934939516321133514877444944411651928481106183959078985995234109106490545159610830860856815001455333976550193253977799920935408009127924694648986478378117626486392262483609330797590308041890665592891558156121150684491231611173841779104630281939329229155850170242340162688908960529595236303456597934640028339042923524266794793929616035130290603456426871763462830436545935967914134887652676719884702079776181923536349006831822469514846435328005589038894910550258461970928118726609616853944243041604536276308882860978648004202992090133830083848503945897818561639592296162463257272148858084415335764711113502978087770417397808696316627878370335719005240088477919122580868817843348198476896346249208357590801642424685612291587072394406724552439793209543621563074804745182742507505775827950697921697990357566538568132881515670278930582870041193851264366821763992568415694832441776620640000512629986921551602059582776802744387773855902000658228356377616602254832634960012446086054209750562379251756262212934859715165012125343815030134044973842870906695062709688587845165489687389038061560957811282885378436335288676452554573255934947622312544334899764887581037563993264646305672253683986301435895207014438392734180934586222519431081600515390337334225739393070041296492684662787730422417998104497239502647000908641340854358558122785872665111130647236866795103339058614126030709101818911605679246598424282326282982248640997319180638844274725076713157874494573770999072221059941240692059590810907032532479528248646396059384260655878800366311595655175040121493616412041242536460730752343708043167877589661370790792339605031137157750692262586491332812916647522950125724465795969085443790766082042576487502998827255035817105796296776032854151251030962786932958699223370941330357750408771762018246427107210460614977314810300711709063517944442977953643226480165620749571485844501950848488990729558859124763960780454683923472632489888447883390162508051071389622596227484432983346984875533650563193194709339715565420944051332757520372485885844807961716540713868564186355800818351935594832557085123344065804929149029923732393669878565257539141132615698721110354124295343544959136131374600269352587115169044070377929681305420649654368629052850095336217859239619843649287008563321023395642202799168507176397064545116516090899267666409259673119506836651446013671723293571669816004549698390791458832799909568350741695345048486232510009850719367634480204121970905374680160546510712257483833875891846955633129357849569829959239442002158257122899140117418085636078330950883432211917824240286149822932026188984669711329410845287131687753449931657050325745077112063647076701584384425038559807094637684101646998766254884601916303466348873574517620074963817718527653068988787451730164914766154921188243988703971819582141033322823125516558755952406651316391946461745943808389555117515265477177898231711870088476237034981027670566374625809427400280560952749212503962768589892965323861316335083253531077949193407119661554192432912577165446358045018501444311393621364401194084157979680292364874862829129149291230343729111663129102345649243963927073556354130702280404636873205109118808844513487762547678395499056372831788040982337920312169828844190186036655180930326539041115026746076107136453618556967330619925521292575594107523642824682170074559502597505624026258052080587388881383687351136658536129505108691436622450739865739418284673792128459509562036767293220728890628173450278152329578845165173408706930553786633542731860449132334667852418764179834993282581941969718739734288535212723491656241494046402522709745536175993126961962096348351103525082757241288420487908931457787627189036134639710867777590814707787691712521555903989395026341427244364736190111846959692633119483477714912725381797219608101625645277412233146514102157736657543575686547490783903676375839634989164104449192142578209840588352993156457370443934569990438119045064091824875713142780768744777976488959691383656977329093899460434838706944258205081205985731095472149348262063194551371265518418662739982761806273101890246439052495689663441623227007443494272665347494793395636242503767216657011350234138722702261883606066092477791089581496553805178996045551955649867093791945690715643777882184305428435296800812178734667735250225542091379720223518669988223452785269996980590979911662937116108651637681053595615108441715859952033510981760359888391494908091771318399150346256579667251249606565736283630362782372722784951971019967779695463684042623814655006943398037522235385336637483982689147638330031619287002816413183336660081529757773125772943682125126953693652513966780044361938156096933412180518143321586694299912876622725914386696121413274396785058385163993222944020799364890448466976315319064491547437663074302626565780566713479683423492373795316388195182459727488465470729323284708453166926462016556861850673696235807733794172179556553615176488233569960553084715370916365216247514744046739379256729253689169244297866826636074294883025625081923087397014444741137046283813977068278826303415997971554531383798248978584327716711386125371539203944970531576562818696079022698360912412164422671678586362529460731084583330566465515993202893235711168874708132925741654720126425383903163593998443152673118136761997550583635679151609572633426146272304039608026464106090952721882072305525921742036913748159238088142630679173255401112522306561692178298828183243058072248880667634360949805416981874964560123812035164282239830867477687208723417773911090871529472308267636749384839638284024702253717574341847521450759215708693322886276892969406235910873135399949046177053494054411432932419910486928579147159628304477705517263063772014553778283863523214744281255456936712390170317629633295906111581866175205004660360191446369408692967031571642875946000757376100345542087653781879383001049391818142804771048979688634960576567249488919996600955326050059303851651463598827591104593212017666569976165245804687252165747475981043976732492447049938247479234745579854508611846002597100617567573127783852413494569942515889971844512265977188528271075417134670243107169065053018041970551524240974776856065311107690102244060719684559753661692269318123083175468129526033400726982760287394183809903882832043145815300548821094846051214013568147930177738630064549358773874180287070065182824403528120089256570701901467061752317262504860231343343527223618878481792965650135220332734820435253730919327678441844768068401481559721638772230966426083927179657982920217876210064325839560749531795219113093147701156339568856475168059095087113864476025323132755713021265870033311636721215165420865046580674027777254360182219009777393943364661888286876020722907140419046608787548501624146094384126915867104607738993767487356746901881792896868602319279058614714416128731322254877808764930692670965875574581717767889503074462404876141307294583877952484825736721607292006152401966024722558896335632180760101100006056579526669495701683905385717472720822864916310998540254836197475498326176977721599209330163568800882683717562916973153945650432531063010931287335259486016669956477006369260838602927100774750066847236089987898807475681976464876846266210303114575323649864573568485587581109096404753893368088415836679773304333946321715136710102528738134314790247693722084645579937700365866839087814661394971650599385299393214901910932201355789021336793523257050876887220710575821290460687935575201878260402327376156287382397925473687037884182199963674491868049613352997545914793731748146678357795491402818505697933806547539943488720272476790559332230166157571673486792045825233433017144373807560084701969851790771508528407158573852511931038307433211809591125059847888083558450504423624692841309972178144378038890368136374244659750871761589784431968500489057895509700842410466558128806179377242525801134091247922378416862363607749785411909448873415775772212673862209572102792590232489800810263415315162986750676241521812998543798187433535744561588037833036277239704192245397078130319407533668745533435182755361999775480331403308263992117328136054362657292690237393311623978948492002540276906355134915537274948296777705693092747361850125527012022708693055516162485402956781545504012001076614977817986110558742185207156688886878287251564540474282048942038351293615010965699662480118169090801699259347029938361901474431135267441588914865764652126677988103539677283466166764119366667628196098876393177111822823123217014127876090853995879999057492797893165728284135882859276189199467560157646068355737256258976098822918847152358187484407952860417576214950350180484923869738099907792524639916561265586196763689483783581445758029071162372295343762367294863290663815847580218471164272822263424666828684131636789319905264022487678852252100216998753594923518552319064452537929916178375868511715354272601929054628659608371327180269302647291710760656473339721436843743180334260424595419928061443067590539527249536034904335307840172099915276754424016808808652254111177537436122782789856813570134932073707148847454038809668424916107609355764250614376350481607178194937891654867380948702331045143841192737770732618991629264923275805217566321875748015698958794866268071297008858298183757148279674048104019227521698455880131440580298509094159122328845392106287787222519370961188338026237572386798993434468110610530863085139609123230790102628838239968717203356573569195147887367846969385827843681704683265353452971306368744417455439968144700308529258674658425105454560721065398699271794161306679942837781099370225156602403555113680165182615578486360476895848019274079202857037760704114520659919166161689619376053692193087250946773636412375733966910999183118015004070516388094986147026280864569239328463900150996009097385934893092998006354368137443799467461077401201038948090853157083050040872856530697395501272047290981806915816575974248379172280481206168054929762316740868912686580952452110533478006159674625296481008287083336353079580598764489110739521805402757279325891349444657698905566909663030119941711875507173297750353754634948095358614169046231850587859523650049421321320214412075387659876053177343228505496753241238427846870050190615343900440449551374375302706048575140274581190346485707977677847029841058559135728033301389940702381710796172975824784084260674572810253791828554280144495433457771551277856314231985047004194719970587644464925975972668982159259625933222038262519100780686009050437865359668783295253100758319129036384677923622969943411592255070036407992465087746183446131150309415990752305268091880810349460682249969329285453571909063825664893658529580964484428711423450461698273302166851563733945531484868691869011669795026371697980612046936689754816536602546454275616981711362708259856926975209600796004701183339996968703946433369515082556646721032029022870886321318257875783071232198552639811064303030024447210637663453841289713297065382462997894850428594956548841117476010093951384413644895543542480673490438688826668244710408325901217451663175840540537217808780632971851984662969821567832534695116651019659943672801536288448225061801197149880407907089600253478131722129144868111869667664448232249426661238467698352311787601122484186116961108656946913300002633794277813757441569962416737850934238275036082706587618839605078023669116116229852205136065222125323816887764787219354202325310388514147865191294464762100316357461092235613115440320128256636561791039786922268007131914297414734408421330445438415729907846072908554374823143845660432448625289751133392828212725946848695996327765842278336948098724107896759789236610452902925056865577320033423445078867390073014143261722806958031445473302542180898314581080745116950874628990219995646337512531419756348086781055066079954046252367435964316880604023034780419150980803532873591547361702182675691642116943324114298917596913951201184187561814374186384549035223356595435612647923620084689196528046611041340701779605267100512196602927050249384803190106425559858914839249814959339954899987405854482618562602323336043742878863018595189364508691465199809990803409752275012661639391053612832295916199658005433970514194530303926740745385985414493600846485753821260592573369778379420077408973864720895089630195014090803293448243727663740035023215270424572935993921547363362971868286914311188082079860979352200797033214610841576785701658289302840141063646703676824322146854135195003772561197530534373224211730606951039168691480499083053467175403999503564197821117063480179488098718491508774596250875099567253351534525285301824686195463271427159706317399249067615942303308358390606994170720710640951588949470078346707218896526101727482725565247366582575200290588457599300408728930164405947970458532483572737623728623390009549924334276821698329911764528230840928933740628091726133734824651178309896818585012315018884158716649673649435610133941274254759047409197042932204463875986865800687288430555446423285114267486498240871637173744846709038257090393087217379226082776702410436826594683968297882418548781143040183864971393713510438111851664901213691442938918504579690809584810716593974866438716499025464656557289584660664301467230096780589447290788712200470465286831775290466064566618566216615095091489724366600377918692163113268788972572110428467165937029405312572405044163494913588498892025824705269395899977242290512052537821302823038761331369248460075195708894063691527611502829939588216619134303007200494666992853348889290500704589494886927208205367552268332329230000914578753186500680822358459893695058291574714383364240178479558950822465291441668170031851486683126197005794729130148005777234668523075797245031931544571426168484832799860697988969259808794664195781325281964938045833179240282730169878525949942226266888188950573661718915988083836702922085527664475652783660781635421058471321960866981337823347278825624444364571776066820129038061657695251775030215345155713192113646086005840277004571802192704570353111406477304302503116204344383099306542048525482860846936013237177691725655232798492864773299832173232917837820307046775834374460615078475126127414484022788036950309911939972634627824504642455634644932308418149338064390236745814150264280484714608411419344882195628316619671879629409849945952588865640065670412620464955286075669915712430717272258145996655256651241623479555296055464112126445436328001206238801148409797982005486358069344197542704310863307861518483449663889845641268430587068370602219166493405492539604647780146635219722843450567553799605650476478785726534389085578864131416217909136100877647443518044857741343212994027475698759189340261185851011456708744832492921923782692969325167790320675493288331730355899386180903920817044609806192353331885065654983146385576908438324021512749570378507265199501748545712530874099441908539361694609504265232800805080099293853981545217164851206238209554800244934117751236025175392689013310664868435735955806597089836103685857129641859688372323970128041771419654292932448010149070355608067914240611260778332955540961883791677884947238397631836021618000387801786881983890620877738213202809953428151882699899726510122891531210744789729752743600429953779900191874796951802269197401803762665939285776361361795465994423313481916013022959915656923944782115008998352236249606749428327023101816323349368657599955496236729942258389239553339947180492495543622873310287386215421502888523451084881112252251248286592382398100541562755451469043737805428556750135559912275134835462086796044323915100532922012406791941778465092751570035440154970402550764504915207017476955539428561400460092352414185852636441414401906959571148627704911361510010474743743302425383228049289315135370517134164912606587697765092026419268064865626495422279390211405941130800326972029964031580680312945535167680254825372948324175460451059397637868067929077526332650035733362101334863525388719847835823074193841637718766020105620956902881415615638653352970991394631592511488754737794357114351695012796470856890022658943353964164909072199167670695530535625562229784643447301564422470400180868744395422483832249813332566947737053540637146084788095603881239054491999112973356910565487261420198651048740293325485401877180631577539370756287879333883478302541929722773981619195389861882991841862392580458170599046871374912848144849477604209350467346885795524613267138269577403269227977204020917180100277862569522502408366988988891147704813269971776096742469929967142781477147366637705755326435725928922971057348390113678398244713981319986444643224556037749847939638617374439462438045847673253433838853880661224435888240055797019667357239592405003620268257147359663492090295993511592539759555691334413664018222309739464675299377004390410583457346912925913339341010176431506802439856249886702746008579171798008359709318336989792060070363813497318625055077621604669958459475773272750222753052163133058644872517525508285421536356375800548098243040424713357083802662532584237010695625964717281936206617599687430908474084841891844111080341698061779078595542282141738868048050416766723479957373605013451678003574266196469499054155519643649472905359329834278531306455027939451041844351453107473232836797001487979544279219557954045921473929380717333184224867512083483992031333811878445687323227441996385761151129301154371325767497335587824249332753679699608304305311150528929331837806615889702934482355920673574885904723274156869812549224414871764288354093235023657553834366887089508554270329317403891334033544437511850854296035489646609366067593133438656583243555091353433969302319728812216456955069689383161727523501166860013808824314851420038127311336428229942866531668634185888840530960920691787218673304597778576282720140198811869687934252201316552475632235608172418603644950915172636936097764565688375976189576472424055229816093247530455673868693867622418481968201814764790876653108564797818141922869158411571599904812918122389097941042540222173240267198047811581915383076418359021778361177671484810646943375729802051908633653013962097835458281204103978696542521814253535766554654105751110837250599376186786925387608267223088357663341787986984954303620140729925212913290278334678285696254364083098776308392171132178727289290750693536496094066205908052832917392880804865757378041414569593632762982635489828736590560101876831666423303915218937480819980070602716529192841145457897737038831778108099073436019504643816353505603486417699310401227533951705516067016070160887011365665271782272873933040663014976566465840858334619434804595310495973906530655767512488653493981291777493447138729026823343851758673573477710140006460185271534735182133655342024719099862794833927535126639241307861350891934330273845550243054946817560324345587154449795503125404354426774855833779611530520656632092482990828548284613509548356186927382262419529711811230567335229829303599862585462010578265859452244555233138807386003163438551076070778399980991351638933191053607649104593730278904185411364852511776874439309608668563511238089093278494445527713800603016533313844911572285456623528193416373953284002247237153017665691980969329996628368422327795873319148402319300797431902862726814968987659112769242913239414366723527483278226875316061731069124604145291483793251526403666514203119441958564206402394358520372801691642394559471901567103712074246395533250005049530715375200766855265217781465882019147591911940183579113419414420444662601699773543331862599112270332905017035853731964382913856724685201236326180693357452189054831026098842863246454621990043763024355009434488277621051263383665323818249980383585307048825169857671096119513458621134315403946823734232720484614881928020546528153586110602932586750630995704197101568841553997627309434043932651227918190271748305628470229897256711469044152020779317787726852627374942562035602044276082535505793958080857479224383621672515901429867619452629825758858810298836805545030927874636515951154479723890820107831345124222693290015606127392879340482535935737834228773263244420565603883221319153468259034420812944638000746824814365056423272091232554825851246059041859624334419685913189877280975448788001510106955618885775629153176851027999505446570443060034852791547465325579585644696851670613747756395580220123050640039281660832541142998233176488300348481720212938201065242825321615383239358721215257432774423978488367682839588003644551469527764339757834934120570965211746039686236100632697125541007717972126003444457730880817408751816335596460859174570229929929093309779900115882206217757819120463068815950273066133328472852213353572955415652444703057324823467010305412807363664628143532973816333724829109172157055874251422473086036345076239856360753154932862542033306582535577643027155177912474747631408308735578577556906585600414040483037314463278153582032493742386204644516510186399240178099965540435680018165137291774267699232396997141532093263010289968303549786420586224402602143809730942283345770465064140109744334528460034901412463495900831885175739761063148752202160268125327107255510948538704554103229219202702885615385623454732742477627246726222552589638500670656167856250444403154494241555082029107312893348963054481532639369566570748247722391020648266322951003372142477620924064395695519783544086208163767552940874411272309182771834446809022494037160268402781215361608305388077013686104806019800725716088116961513167954152708663263092199289185864221830603842202718279544751330919717672150341696947106595850918614721141471680974166809293724989966305639701427915345313477863156916037412633682883521281991592099936979016002671644247974594253005823516520130174772503778059381438526426389845713521901481005875967783919163918995656625427220401407479505600063813604498549519616215545026349814597263992453307836788619547701683845019841438121985157398352332458803521755113453452263876336648618435198562913566449984947054410353353556756997843834481973089605331461199327911455028273507920100424898882950688064138270489280027220889599042621712386107862271850238520368606416547150999227777368660826252828852878787102725599933337890445169672904348298509956505671253225382009334239658557103788037229000049012142445168762854719487178756728518141914541759612956679273205225583851701589544631492209843427499678580123195849392230645769760968826631483509664592027018509188500265302172844794576866245683195347486175527208490678909963412335489507555486680500905697797146515827646332024627296996145834735247555812855715189211308698023568148167659988702945637498615833119803973976704961493653319914145088313170854200677710962076439593486112772726909083358841161635467496428536271636865795856727503550826801315104240055294242119198051699577211498391648689989282576930871531031299487384146579815910142658165303875553624654222045667484270900509440615598603940749710803051307662978050536553872898595553395624092091859272708136901524326085945244186967801783357716717705527768804514948078450811487369567731572668368926504875275338518449659439183447119290205036663429613060715830518229210445455496155176597131838785444264679586554985740762253070703177382314013758888541385270860107620186375202956122487073509225143986912157004733698039832706522732279082686682915319258176601904300918099702016444128569280183269503546022211029796781073489107352325799733788149675957842927549451238347865905271584552909865799262884290638767519619022341227275090085148832903935027058890363276654090272348199830572242983255376588130734432398228914293296642162508506081517418256555020737759328985245792561714541579962955376137146461241151277926084149165070794073425945182164903787379215942583477035342742485197570558819759814021567353866604871425116241695219120824357194417399562370691318066499741262278114747881013974573753397883430480106569294204938044273176320664563290469773734672984035302625974496967927022296110376008755231145614579380657341782004911524336063455983247312704124077857775829962990762620226586539335975529045516119548217120027082949198089225248037496331065000722342170224936767765097511913109202055760438750067907150569209149731292002911243691597378586688222708896360426461607075437104473803068921662542150795137702706055926340835011576307419552304018220169845413890808716761508637658418832142633856435709811863721199563054895083795059027345006472796912453945244448316635844471398897413076309203651881453536078643289350300313888513153152953929842223546357330215244441710645925264956466217593250186180819242534843611884962359440929775846160130828850365624695345276729509608735623681707083583146146109868805718498706615618554173410605264662918987454042295143902858365679529850390974221831663339776126461108195232238165396515988086698386334577605541769010760819257287823992790469538390327424645274303127329499633649136870720277500031410235975547350629028233011178944588071495558824294416907035683639915183639407445294966323261237241263486538742225091746424832401409038963584460111777257619531407707991813147355522401105985297840567020581266741345221548485421290822858376943168065320685269645154525080932961596702529801380963587338173237964623086635981108074947337027222443790218294920923625728441444202230902444825764075584088304203759209750895865959912394932013223644234758151086701845687084942891721366680005976287750840695870362567526953962142829745996516680117844104206811002628926261377649716661683939128547230442807959523488616091414586253365988531567503461125884772611167669420484356229443713969731664478019226065575440187315629572388580396712884470275949068793033119715593951587210424132933683910577957473710203151517151030881465053358601813361526365396792529278784573612314002247329165206896663742184093271686491115401167150552595161023132707278644466982057870907999416456609223566345902655394297007280741775741739831687548388910074485184422126832807637790557551224904958081533904111166494357681012926935415115419319863879896862726787197330982681923895816774203122685825005705292800074942132882571100410542053067628127001291328971889475108174853812379674539111837261200971133462514099402840231169023762006680157548289221766537463255332275944183763572109200738954911732104152082481813377858569097259227318559754801311738632620856163184413289340725275831384779873962886214668724411552245159608709828448703361646694051553833286267893070456399475240762323571996240310403794488011000851568082190462972267316993620095026079982098793018089187473811813638720631710267509786388998265303216685733595810091604594432823108530785289497578276075490135436449240876229199383645821556769009866310803838672476177555475379437471866232175545490785589503420779523003750411996339269085378000401701513270294242250115971111209643271461768079949434834143409826181815129666704187700595218574841046996908929163291663572664058221232393729169815109179959371064511185828211923344136778692549065416659525073753004759532661776583284912476918403625475404663504076820836711666300307517960483586759073870790778789268088779706939341118808989185994317984275475367106682927463889331991600722976113041810290925815185874770597071943340669397949210636191561243846662618556030304574674669763125051386506147599052559326784789568500851125989070011702458129497419312195622934766514706722896784445468006778893674008106675564262180403272388712685898426026958263979332566444588250384812724025152233926462284847922032361267374002037870399065841521770829023350358930750143480004017969411540092244526292586087515877006447868868543926161250096918910342159968170592841878888356976975365203266530316042100012558682480969888478563010409290884200893114434144613279604492485939309398395233405810513449767049913223655908259320735593822667422829630137296825026573478870163017496852339282615953296810351123426262827080716185639579089231607545910554598518113627312883257941690061308121795824260216624798720435804923769401399411677654788082406244450736214106629720326566363285700431473318384766593057536357814215594003624803782661357037212372001296261750708973711701489121796826127078204967955507691129105624718960280139052383585565550950201121691168998136490822919634963697818957405739480773117096923141101264080579104259913905857069256630511707052226898970198257636895720819398968080718923030634786731777125130700778962697348906588612201631708082620524396979173906283192114075888093586428092169978930997057704692808404654929330711016322346926612066697372668341426505155747240871166563607841312940643987155948303008908433663484187010694689736931140709017401488665408809058305854132624444459304510415426950967831159924401091216619267847324963598220500067238648067611493901219043421173823172688559978801501351987371336210326089406329402307148617923271202468458310440102244667231773007479597174648111431920053199567594685941056419166796468742724329148473615642831332082993942593523271723335125124166233843410699004411114990691538784774085471789838193790649649910303052548411537481993047917635892185701258094391300176950462415223705184436264621184569326470429793921442703778614854278002360054071459007770401577704660220225072054077916820064382017903048958441630388251317832786595467040864065159747684142420839684041572268741809497857699661239288632573868655917791407780624982834269299986041523539564005984302386933765883786585173210384574997565566104555745464290619478792203553751508975934097213921862419326338535255429987347410645126587824960135679513549283540795949586149746518488933633901673619991258947413423070225392175094455549484886907766872136390752445334794800689639329338976481315142890478164584230923448376501394706019077488272844237513483094072958700703426600473656385338598715495748671316236513188362165989345060712447589970521418958899527854434142264072223451628031322622712954244105862362853699604653411308713737599090899178703192015331205856676420428600909049633070620898068701689255843267166324395326969775390166188639556526151243732342735526827189104003763084526159031780763759290932739655836556220243706432685282056907008354716394232475319224756353092942763955151336674985572382519853602021585996266562276359306833196208209204934731387721602991616782204289091611423121067113320314489295642817224056104021863452761566641746550044431856631446831298300770963574570149084082666353350064630554353390873024147806627962483584345028428428520913525969574217942131784257131902321362251245564421749649193640147101344541334553255730367538074292084280575245457747557170593779812958394090257027277685949001870750532157037857627984889998173635553112886041657511746843261872989008573788514842494265167669876962784615481960344313725238364377915020768934323347769958873366368193197957386570281303342686989927087678731969836879628704953401357298803311287917310291177036736089295537025422353694994029186459091596203904617988679096612277881117720897365713528892622394311995305959180896938791131043692595908398735515573470715491084730998823029950808326076817468857228495979802958523985859532957828255717677331042942842696816135325325816266357232312830786469136797491129881013025970649276331855345415517791760762613661986316451208150883995788395092178466586689075172389191358929697134137027597759132887493337545874906759779208396199255218352830507424292466357973540309071587148337691735436849700602495421719122104598970792758067957811307188392775356389145592362814225139883376914167269735898464002548800201974892559241681451904868110173308836321221232190202471871307960931381452631627641735768056502025535796122909372393207475197848713780617912548694232935685463089110803988859319886015849905805896946907394527519624970225759680054650161572062767386843778518718952680942676290665982912834180894310176305299559137005037434975433121738088197001819840214249884628853847714427692393818549975954862496574040299308847468303931122995587303954747288064991024228054557393815412335969397920490622419104700535706533103253337471651395141242923358014178552068148548231842568562910073191597670091104067026375984776872970084704233853090704791324572925543219310081267804908923624464465683271962804642500255944438428895574541128109976599127419948691695588931994435378638948970698647443434490894252589331041662608402699037945845551247804286931273394681236363259420959811898226649028661318278622478876234269032785681141151358313896461235859338171750642801285122067917797475955611244981059454641002435102627786252847337885411503585956936195177722738958241534418216937143288184296302794665366753127730751806395737793790689272783470138134573500835344329890745305429263424079134571590671574322061477940372873733294991450931599451149769151868463261252505597538585546420717884477399629799367861756834731979323203183694381228759140130173972729654052030435620652961725831677961510210576616632500547644407743854740212718819513956700206747402235714234473091810894436324644211286095599032070165788843442880591805819115325044895721876975365292368582370298915327246422021530303895942198453251545130866866239632267113967963664058579341229531625302706495116672414396215635075968641248861576050247623170663505973179940402311334743383094944468656433946367490773611762090189808611284956550455117117349466022121095592625632903116081387608695723506982896263178691111706641826589179177647560820927882345131099760532719276610476712994363234296515876757700437890635121990715346408715576048998892147527326408546923446800157694749956134346867166418400386212104072311556725713417574773228987880470712424849166002883276704375753964958093701122172399604040953348556793884537171295337112121207233097727371134875501636621358691862001864985223462418316342381647124939146498827356306477443872919463337362458434725349804234607145441960174256722977617138292737207876044911246177389636687029693006749038097813391122348352281250702963801011492663497058877156297365688541103061095689139573461673140380606384602324750687720598754185583618884940838801309993849115264838987892221909305030262929844410892066729616266798265548816300481637771376391565073084584758612390149473443491761306597486196094076239869590270545990930028521426704496396485865298655102393572356029979823731885275620082308166880916689410987348932121597277423001708391764633887349317294657951109797794700881800576986128420771281362102097056397602128255664908151347013267023096624701355842864310146357890279627435805414689628916874677583028197466743086934728125600692919004046886624352839465130868209253887750511459863584987123957805373143333991412308671743678515264679257265552705363518490741152790824379083588568391502634282600859608225492847215432028788574250710480502798547590783039523258694388982567035030636281751038878687524362761571622051345891056300485469243411035969228517060851129588918266008139166567165587686943044379009564379212250914315160330171456419834201584428639947799592984642636489123248419994168582521924551475434914098823962916700936255226612418221901533034375278019279479458910622755649635933393893499134419471437295145358875649417582111666242012111348062789941443179158417618235997745504953484029067695289126052821548052706221074212370027137059853264189053293752970976094063007310810254490506630884803774219187242365240568914892057726128330915350417944568067083684091221835372173060882954146958511143724164285400255671783695008206020748776392117301998945197097230634888946593515835614284820159532126272342306110126611620349147277924170272525133027625353091502588984401836954981910858560892247289533379977036907132586744547794790280578896952863595582408821345663512339154195154134278337370189650270369873480013651178519676188423684118250359573532937282919510025017379693826729690517988173573723307230336234319049456601651324036945875480161988489573189702718471268019332065277577416436447817276769236772677437235822585693800697108352596735241741852501134757040322280672945701955962402197766207062413110545152748309618534750135330266908099824658494282198690649075838548381089034653626036556277455854747960221304487076266952988405147626744100207940633235252116250432139733871346939249833242143943070399455874678420709584146751249246938212185466918403151442468282784023724901270141370518667599266128911751712946784521491695789060819451837044666070276015235099542081210159425021977701107154372511160412713435645950496197792531033444423300474002734570616497070205204002906326878888391182670285987603541570754819355021864533160695419927281737146958392844148002987802145483772957343547788591061831113151110670820798572698249920196724415455058385540189264782368818598928303508363997724942578793551193931390942726046224521824042203239581672967013825868445749455558765629866583941026075786668653983832884485628554852644842239468339836307113446240796929771686370039877888915457964673901340895859618261788986517090940634027847075797455631143237726078156057725682745708196258301224113307273895743813573060777455676373815386838236021265457225807703626954559531563989065069950205673861916062873677666301917086701113588766880011168520269310422102932670272898084364260437107218958301438251013113224509956104971630501239900901460188294668834827651459860569226783827536235277691351193568019475192657607837960975215365597206043016674679557852261110323892293206944722751463888296212323899413848723313915337594542185218986226367461166961987183631309692494505054381773692986415062543085520492028970006754971130242192268812165496953242905012796681998780246443104797310601325406028814227115101021743009882612736090055313204666677504376220842590026122726872473929967540840913918048361420602333378521105056819483241650888169246871111279901222151927743623145982430176304449432966362926415603074419955485086470820631676337177996998218040816430090204226582329891847163039082283283601339813324927949059276653417481700179690053970318606949851752068648419405489851073524000233324697728550848345659337899043201575354457879436769027992026774803387434004212808383478085038741615015299607637505970600657597977191605539533059170623351481814682471795305098522987153519128997966515395458159787720926125734953451874971106069544441535601491437096753751253626416676863423543674933542589016132500356835145774397267713721128737663095482296299317756780810472620264918477535865005165823693685924212880944607454928200547111217865880897376942462834014186553182540850251066344100939623180735766367696320391492433621883087759630295105185308212699668948921241474878258770966887092278654207450510352302255997569021354587846786350483216425856601472488332406354698495426833656612061563172022755978072939132162198246216822052698278447262555300182069386338465135518379661902038406041931068230251680362527883403134759077171472866972996683565814269702787860335401802249550865032918372038569768141865521349845364412174629553633612485520161838478337787826257447541724356178787965650417203346338737286476530007986459437600023526871952164622951358750010671192062402249607061067675208349554478513065162198344155564583224498307529402318127134665105173773755904574638456561596187156981161482176589990694533252886899902328001377921605972508372135475521546750431480334923939237552576530336995388550096362344306902892627322135833019944675535410487647778018157069737136131599184510106891474273159950723765719135262373996295837259913352034161115724720189241820564355415026064793378995225822259599374177019890175812293801118642624279463619138644282492865354128512773198189211519627113770265354537096966656441132029005040588652509570203623544577117249893595323460238755145689200852308790764373779333942127306655629207370127069234920250067272263138430905192132103779844550737476278177674814612708495020986459373295241732814707682444809987261756954646321317511959212994196594958993767626566064792955795939939464334439537114143032427175852426054006173820571638199351435122559530644304969369220116471440951940894798250068219060004907296688348511707437987806806735147639106794250288978153648463792555446977607535993442697512624233461188938467978867067691329321410942924292873897104137620006608907799886539690127515906272999344571935895588251461900102307945661908956741147631479652827837767782106973310814781274289691688286385876101630233671236914993086950684715775855477077337026141184139583708614270051215661752596795211121732575599195235522401463732254133274816021642327516198688272027821707487899481393558506205659758257654324901823615701433779215650305797042139403463495177485638420127093189491433817794715166114004635249823272822599666750629671470118087715689044495771740211602213937881231305782821086551919603292860577776641374687316492310355752072013507354784295171866843513936978185160774968823783981310140882893970292400186177970220000475065420263454592049130512345053743129713820572529395692910780171354845400827777424704249512860525183220243314335385340974418601473275390436648906101540715882357042112517075666868969112507241795405092911735583240056917973184745704925704754775860591354671890151790425614875803141266704836787186704144773854632729771177260685876141045912005671885937059926347395777284989985874887313130556973271424482974749909296660732896877368962262460821164156456668969688599328237453682892422410839922892562142413636476244773726683453301864641030320104114326752540808533080348025211150201034077513480256680323359576815448110795752978230254158904634130038632000324995040633850111992156928497080873357735904251763076602409048475251283735500946304603050933227635664970546187026301955288586046752506916530639131875775355746897079793505623322013944952153229608497899435638278926977826325429426311321235170132497508707188225250951168544167566513400854298443455869253637874439024169697109831741593576555578008955427724796661030389479285552949197701002398182895308712630945753653112192730692542493312305319327100504515110110559529735612733723631144034962879896668467606319426522532826139331029573218686796612782709942730394742021798910506840560310395006055178492676407743421839864423331075836580446825355889867553751407133762644991175299881022008273295464293119729865785881696159701969057424318196553064230694491092864100859969590826083443683157568915649050318639058764837824871153998621531177327648501719717691097543028027046960831245254302355700280511331432135195563194467702002044120544576921340283917188415601466091378862013387864838012979189518453133700703003612834245875092630841781134082983968661621926220198282497489201459473250479975767262465738866012565798737078870153929176807159714405701157641617711477558776029655947637595970879991857527716682130148317423936614659982762927831189117579125062440539094467366901820257461813431647093477989121377192418294965270873694275365054064335509070682634882994920619555963283632741479319447703897318547922358661528915233873564947739140345745034540042229848903926093825947949414287573763076048773511872232641785581683154747446787471306831016268323664560799644642655647236811733060585203263147347847918995633982221983784968728963948770855513842096366416180678446094144019317631913645850683592402344799321196647272458926827858613433153409266862970467151060910893773875664455818459113195898775764360300405987124078327018210296097423513007959734303724089047668170976130983651442593657549556187406209729148591562455495929354532504137799236656963417729664948024644976233812382842202528674138885559371938784750032102873768528643154109452404123415618357955443798095601552947663430305430786854241478908238540021642376999015701722688752744665128799189575817298962258082478133839696511201484004081156637264764759034359975113068374503779162822253587199590186963102985396016697475376216838333644454269150059143408781853921862304868972980098233193761438121953762603641067770817025611922008571343932777995078525171548414084035846054861776386035745688989729419561795615866407879171218864657555968730306758155381734902819618077220521059444726061438134615410486689712154684910017220488499897339214336229786955066650677899960292569141259960726948378959409373624557578691242777072420931353238559782270253599944237457399676182552703756802967085805452843273998884699901751465023582907969233934688366051058274916873764209579701718581576302382051371211672189358346698073646667817241207092925539274077173128185910964290202423063897743711563200181314035987685576516012225761796557481189659988845876228442209971899162296156665188429483357976172492962163944579942285027342556044924389683574174880444622038564635809898924694968326834877162957416542973613742606476806351777205687798368012820661654529841218145542323151685169457999002003371477454875604693481468990461534785224759033440459876907094218181802553693999151482738171007852986178494486564132663514872330245944762632516665744048165802390990596076370199930052814959039270728835016613387915080573253112792221179886848285436642864582316648881248118582531180895180121266765857329126385593148309974111894011963957994027190497481926990475742132801214274862421286471592891995342789622863649449042354134764963811456285384681670415338883670641168490833330234645025397248188174234051207972404521345251114405438434320048666362149484077316292985084652094064915434957655111122890035893141334474829795246039441501315261898757343532776440516217705116438153158259989193432718475264209176540885510222804451657960693939850564569838006577423551280913333409955768608181236194646619609662828750465686247642911912265958569662014066374586175424343820186704672641289663214220289331478097122094618743018491061368950060837841491922703506857259063479083390606266623531186193766773273642911127817682452704957121597393775778721386404957435450545724265989272923507265376279816642805451928010117241928753416003296933705290205748608047472363836166560790711333168334812741399701493100719913587862878880758501638467168238855454219185489168057902699400710994867713818890378176673830740999356674518242151277533129396907452742004651348521761158977521345425129361885807411285215327602887635267670911926216795905095352170839967358619977879476676280628171605592758880029307958623716269146425849180026049330864969082425674464628696261753265039593830192431783692240955931745661149581744388288590338442722254058542181117540264621745016553606780623265006189403240753953487089744052055809732795508780407347314122173335449648890080077131757035801393831715303883081404183198906493888031426112223047817808510206249643784329819322417357959247067999721357835339761417688533881867959952554428177136855625001540025679954595820951211649034435294888311811771998268030174306345732459772993710321473510106878368962020799233212863032525036148618718088249997936507544198031882820671212055551047691093461020717957056607108962876394062924414464929177747141161665826382951759280944037379368937028451122659891047301148911583900368137052153356250812689077682580172270112856292049753955768937036751902156007394622554684041282254795208516662043329263537433270994835953889206352769983113370519763052017328163072749661508470129223469201521177181936606918021918299491736293442871718249535630537567098025309455214832501555531832855363429103211105099929896447517167174779282318229329752422580172053640972190380716090222230393612678635640413006713796291366751244450197441649309996712030440631680407387205573964563647029313717290310288388522153586819344523572599630727094703822398152228253408371901450286713343432746282526973475383687679508158834707581203513062698469152222741328471509762338065687163965975418155830926814683720888559533685016393550037104644898018171443874333141079552522421037329742484035347057145239775798704075989153968826137418269710430770366867966656825416267458287059741056707426802993409144664341131771136949526492421775830736793097089008576172584985226496370036871084890950223345389209697044527590203796571901506957095702393936399600458437407375181900475874422050086826160344036053749455624872376200721859775424437406371054289110993536723960679816774413659068049966782899932329477974673261743304914358938904497896985588464474012603087148968251110449724863824831568507926799633823923688279482214097596710821551676676613358976900643967953931489127388945078420964338803521538897813590840332645833339818330340078934654635779091771982836912566289764817543780640464743439733296487905775680482037929045160035123763039342090706149876893664098209380629937973883316562109220815964493632589836094581220937061707733019787812569806310445200625324868846789943275832637383254437186182668530274835723279157614117698691503610230612281075923151963022700414586279074982643315656974173738787165735437595212962364338331056345329319608590533220359283972759999754259324193139257922153080847471676084408170833495636589733118364822831626182510339537037589111833057727804496828572423766329312462367796634231673649456821141805566085994403846370946532519752232877053557871602643069987430517834270404982202356918379969111562809212864728438819055859171853444916311384227346488446722692286862095578836643653207041477245123550421819615966451372915578782685920244797670505890317882282846189954390910736315601591402181923781180854809558481152334013973554769889973120284232470560122732349132908294318921691456009279361664029917707290825935905001511791447499732992048768680149201445345354111353734101045519146134440266172421099066241876178055763190595654971555204203822317859820053089796047532979338433213752421806758006608685498856291356706697148581158450011971876207317316583929430651346982324643000217696759938234569171114571079559263682228905841537240953122213086385071754089078121923414254172748257737314150309268113488671814085533711580627726273895942420277074947732147177798110368192873467597515524282714569000961800194142551850994400518094213541815895146223911363286732996642319223139580176580032623315845984383591577211970325839212162005338850893630021037566724466046593457974786020399050304266418194966099120167907594610626191374865527085528431405777012108423757746065018470405614643840679505489840311857066000616240014106668404567852090604116735802481078449008564458272875682455689970444850098088504198798276235075864733688913936699454998191819047589807901289263778127870703393458210291859083324612515250503431040283269852901705193829478887530571831272826163126512803781629834318814528726259568663589009684412106240576870340225525858769651158510859089638885310027030161567063778207082075728117177044354017196136071274179364022304127997301375532413037187416128853551066573968072763752758283925529514997593543557299380817474088179230175451062381879439427265086402102427599500059486440275209775172541642751958457579518692945948758733914908615901593264225670348960439241145029319855486400740157814129116033974995622777168506106885407520473706429461676285573706727791541254391567152089688926822499785620531016805465267786244641318301931607808497363927797842439786646870592559309624128040951285510679714842992610939518704662995724819467520437781745099238697467242959207345782131466873090403510257905668809089311448414630125486658235916872710883410151741313146790100395513048919559710224960882958511411268207535946983907893007375786505339778591074018189989086615075146235624066291753761544837144805922942411943961089382839307451921145070471535234055725815657081449734255409824926829766195346500947447134572054501924667321588158336702299754087874005730153710161204806353840980125386727835388889492597789130679951690884702629993787944542584996899118183681681020160845531733596038308314198146770995047084240637121486125829417368281522163386400634854640615525266744315151700956546298606555058219687237426463647161725843723591109769253430574801101800241480165091302069280828526998302702869755352971781904968771061424752907683837367555962576509005985006431776685104706898664799925725544699303583395810216590228434880995343314707772714344185794954030849680982417041970340443308799672530943344250616857079731106316633968884497279513641358135287129922265534290909018364416641783614001779210603266276370681319900569062471198105273852207066795387902796471393704330408615960126172838846794654316451520586328337157555120033545884949389919046966628319384487757986998429514879188616433240337679998020862089093522421243509491040269546227899734789986615646374614381556415113312940963266709493222648206518569047754265050577780399171168695127317283034302265135632606957749590846633624354239378181212155049886424326446941287020523596787186423338974821507383367127810399131038015838678185790325518515823803654687157436894097509773926996499041321273369816497067201974363892706610385821324696788583487129799389982341710245192237582711092220075775950861485625639138707059440646317135751809860143035169800752252718085787696522490344339098373335864243124852689221799553184207133355962546805996274105514320272860131599836796523266169524765295789020562938872026085752801988837780844484912867211695577177633827725357288045178222899600001522918081709286587404956299027875806652016061021678095377674512023537964221930788176960721282550721810653095263584264198249103325094684903974330499315672553222155636955457722545011354066780040240811705886203452551849008321140253538663557289089387868506981856825226868372581219227690074326033620927058694254420037102470353267369454668964337136458535936350222067243535909363636567991963174715395792573982170367421845438185969838132546454507708226043621520483357097696377168657080517147660746216335007770857732197078556656153106579854248566286585971104524803573753613591015917308134793137580378054030139789403223826762050376937640495210809724317566802639330859750651088603666536227576018159497633483443968277769912867594281082822181328485532749626405147458988968464674929799063393017215657311152824952676389160016091510743703050000853220645480818132965038383423570637244687745758515988907978009704621626939912060635759538844172483764456681475515205486289469476879938158843900295973871312630436984502847144013717437300507401122017558450527068438742502632787210834226817116877422895018524673403041566406231552649933731168738598796612849373779704930992939075094890846210923369195761186183174779036742472217965636645230326195941930111199694627418565217343991071105579410540178439127193060360294647733788595467710717380629808240128327744226031336507116711429697622325195458337087302300773116551436764812729870192018323808228747038558535064431606726792667103697426517300597925018592063128472354928870003223338106147823629550354670836507465676508744137461628982661388696113015887593212329173661565172011368114391029887951091712489361012669200433249443568833693140927057796147801659102197883618559336935703087002338011022118934035775113432800411753533156985479145077984882672196193490257843130869315969074407206869089778999850818527316938518586829308572163787414089529362877031277127558264402971303330218279075812995763961508578284925916909756729314905861610513803277491808231668260890483215734549631419373754695416700308161923359133569911311324377760145492520328809811125018133760947839689579511169931226746812646109271300026867071925228781352777690375005174161812563041114660318166899707218736991573895603378788729862799927746129195007228365653398046982218636324840707743899228132313666905068759285023170206526328186567530247202235392239036170201008733935839159349663862552986680053436922458714852344970382686612638849268807774869069510531146537928242055249961376387122292798531894172276948005712223631325360485264128673235979174525576690575066091006473656376206432040134271106956762311802742956271166123578245557145775744150550454001242722878291603161849413003518382711660539781826556087161947631334572208058174586739706946447224161712613068180136977952564546214189416790987843433606711632876561299105765404675877700529031774001823033079666531481029323286232857397269797578664234398025526704171764978340845879722132254782830789633684673925194097614146923731576986158404221346677339465537534933397945995357180939634228582561643886146963946005683140706801877937514752861518864823913926967396969796052492806357402841960908392237027759665239511103136826466526093737969205931521715135038163305146661861107930687081998069634661912876659867812808394402515375199149717095686674954606391496145629305446069144459930607530426470923805257677065322705125748005332350320691958197544209460337291090024809360982234165246343642565617797556557148353272444255128874992090512607618576288432148589144534361695008584709159855025205287349516031015307474835487573600615144763014137065837433294936576297593424231145814620549682130082721870887424051806909144275262077378782013614380946624411307270925669354505787748565869660983595576246349230715578875979752584696625228494164029648580580538641863216778781832036150904319889982320371321395594282223170769620874682436414627724202485629033915170585394488677324325976893179027175302012901036008193730256898865982603304581241150911351024483543255617441519038297327986856822318159643140260333750791120786710981547164388395371087286909447320509061411451556792394688441173364952609970840867983114548713859555915636059333574642874079742319625156854490345219983563051191305128627047980311990978089515378820915080921435063802774019033955402945622687992213935867052478849374853218022121119461360145978766224434907291951356848630163934391920924496160194041417760352543518687429245252264003340155949488365913245391177202349811762123986419122421147481714175281852680177934665142898668140317765538475294344474868869375519496425494944925062782313491494215305403176724516949985866777746078316646444870653553514386014499000868512966916039851252593416112697452816083992635319944089702740960498524574671828628211639578545557191942080260602697990290987346887625783286103677273376452511261559100573953512678188998183690965654520077767451559818227848763051026834753771087025035631350961652324243428668327676549451573526616058293982059796035656975154107368831394924476981377573272520517829851685961327356729398270809637965487864222808354530332271907512486919126004692712789168080905362887115311272556615970159060159549989886757032596317161770985831327745099946191853601426012648352239734206007167411146576028294100548346282404666269732225968616793979899250708214279724886077612215475635461740531892504693175381411635356221376121595517971532839810385834061239562248657881203566387649113845154160394636680978595112644448092996385696354854951243939804454027726464144652059357521108019674304405118673029960384630733429284048023911381326873574246544587362867159237393114513235984455870691760967521452696276611233992778815646802504277549032129914712392103580141968085060459024751140791356341527855565112823543994523976412716865644168890051535761421054416854805090044466510084917015353322735095434559871031552766632211042780220091080154939484259324716920826592016142726996035677886447903795465273299521299738847111951578050174807937015848616187500501319992248022576620248505501787646905515963936187544033888302599068961469721347992541082563101189056386316333868448624970739072510998400162093905015194851179040268538800281783644467822164587644409795509898204290703620367805254140688985238126959620576820135050156989384598639933104363877140726120917120731724032307927968176489886978030140479877788897662177185101427375860064968158781869628925248228019007190003180305507072427487418245251245689016800314513370662740302531553683843644871736972770460947687705709203211200911366582734435244496108223025781097368301466687873362066264737874028449866148077253916556712329856588955108433717804389603210710404428860111541596636299574975524502083343893455884466647144221735076692230328121967945908815002739495721135409872987697156510843805624172589120019539620345737610578069757992899597468897069567686121237184204619729052784964022005100441516063584969830944412237763161746291730431706631013580727731707967251461684778198088774543600835455814287927559202657707093193117271658171361993082159907389848416234877904755249213816564086481496566264164976270098735712693279688314865690418996298073468497452752110343226411044327486569186327887366913763840652864395830714952769601406052655120402898762051136308702635647495128066454736366256306566026902067232060464061716786751753677872896565364417457913946484571157368187103286161499160628110065404788108715680614768663349953937650814087683251257555590996033842826248023767330497205417200205293424560191546644420985762029699194123670579603619510161895728852440350828571331823779446480597121004932798677297528687834502532103970873446109133823707604207047934277796755670893887874407220488423126126436015920297997353218294734380830873323417165689574016753953977748014970542183397009577471005384434187550106763527665110861239330595080800245305468876763267682477322620259353666890777112040182042730317125279770611859630917400794156476917564057773944422722350097663892323194657288202157549257989558561324704731835163088608838597018703743878911569343949769011394979203761632396200203823392534498370172535618634581465054248984545383473900469386182398429329070637783791069832873268107124046996192955670720355655137030485248613280829407989317670756861304145204037377234826708645772178917791446253144982638254145049911274424182313474579461776385874278764964662478362235357879397844943963027699412955585801410697686595293662019108907541687603025569167183353695594478845891150570327171186396139302702532670481600814757564480509948429543961255739295913080145348838151976915077883552073147351503968478062599695984310297846194263372248864977129459753191184960802948459981995146912024939046170774773592016183853518997988814885749000307195266023058441654582093224905810359117454130150825657719213823980184422294391946050556236413029449802011475614188810425913866814815513701366069076500091735271277114934099645509722088245770617947209693680452663885436468721383084168797670866956992046645577036961872820537970736776212542194933939926727836020644443265653415719576055262268475619285081361747371828601732503404770972888422265809208502034223177574715916286720819673997472760623612736790393960513669408360715964615568770216625127418473733276640093265483423529999638525254640803737628221975603600921128056812704952048117851318918595218055932935748220974396634868039031758113365190259580071592628469631500879697618942554492682195509345246477235561767809857188786545758420673734727313336067194642648899484711830478397130521696046671003635956261262182423921106439281718633293843406253698251841881586164975588647132096502190787223343144962327843761679779438454461365640425558685620992119932573049999337369539786592357427790087412820104825857777076366003157434495397270935489836871493187983542008116400019501785756257865343569658361007072163610206545805760557790365102791128535417290497214751723574367724757861293381311707006414200229432272310798372622118212239380442122151231303099117673809684857464873654029112801618786008371959458957326592309719701187193283466096739523150284419355611367136817624076401632475226526268061766285340905188923150982673497315122591479634261895074232420792430810094138091442714432910121499581454549619599448515030003529681370642651038506138301009693233176817476076186174289568843032542010945667311960554233678801469690853712428516166772525974505667389313160606355588939631304528692479303292121313232992245010479267184126925310798787773082627897670327855430153999147474866129739777122223067730242219799137076305215948772233415343660464374938200645280587968889219094652267829053417209989026913944777154121685564666496455880835391473115293971805998154919693615450711349620251378614947476376099110901931649845183984211808128102290360185753581888395404862585937046774617058892877934226284784690793772840778759107309536631084031821673751356644048860559018140650658589987654587511505836316274709182687078250552892372298069535797631111071369026874994687080891141771734902228805233409943813458488350102919610587775483755332017476674777133524126248355648931432745880017298900832007413903439244049199007684737649715133316135563045658164397082338003715715982054022051178761087245963355283231520662915949872695170709724407321685374821349654159217488283794482559053725231037416521843440162508323432126986861769910151355176691841386016487960472671467790319111791849912928729554843565048312038375474692226220995053134503911601156479693581774905376850879132275777207448468481735983268883277109819930902639464795630518150939520872018693549894090959841926181499051378542235172435884209221415607425122603103532170496141371447569517538068587651281640841414096041603056710131102671358324229235374968823543273842486574367126768167866441178266035660564331559150730641693759373265776412606272609132866503135480256906139400597110674827065782989743070636033185607984799604273388996404023138796596961918816997193749540969541511362888240800744669804919068767245955813684292376871732681945413191743889093957086943905013789227564130884616648587485451522305271715696647620943856190746976055939543010216440517813646817708036801533616792021951748317747316508637243574765116329907500550800309893390484595117019038129272795302603648466772456464997500926972134788436051328746561794388243536338112635226964209137709435435031035561436062041901904950657817729802652241860492902866431800358740443756966043714714195772594011091372319239589082943899001283123554127358413280233845889947155287525440329636543769321134259517120857139801671272355048281604637930301864038485767532907264423399448761732640231946497288921123972775400432002773676952415832767426153541565118464608883847265581414142871514067630943976056256446213363506546999711964014774939909500112497655741224928142958160529250064235604520494028881607350908552102066291680808719725113366760147157957757362316139070537572348955548377548130750353373859071413026516126307365820251004949248090137407892239231867101660547728068984758901282795560955847285556301549426864964452117478432841308901313272087518405467734822303403696292629727340932631810756490944742700965498407062102949526120656036559439878503666574172821215037435289276088802537818564779821291292947916450169654733584248253312965500734136601443663804444125076002469315652508792009087871970759518120116940928651597127403679292775235411320006107143962068137284187444430749715721973329548977814415339610869505251194685543512610033240714166906916650262376316368292603216091255525647104366609481652478711616656708720032435600648960218703383908245770769226251399549885934027244690266233677016139165637985158006009045024867042576415626095621989144600930516709858682955158010455242808816894060155475344075464073272729007497250258889424528995205289801859966850347040111790875700526144602417964042971884256679439344138853574768278706090379665367402942279683526601417898329319112474558173180921658778825625573358737785666785245080506557597442962918789229642008110613174194210052991281752739294907484885816361371811446565659146521352831780093632168102819768372820869867866556783738583689428437912801912455172926807707792612627410642650254765931120683139576399862277653700545090310184551686479898024030924606685350533360979230468413584835782893950404203352614260962310072768548363516104502911665036810377474948942221933534661445317090573600354523810523995090156905152087992289717784697105208701479568484689568888582776304279763966527479936373881639183498484221745525666116948064342124407334961207878400643165382027155635027497771899421259174255230914490386573797225757464108428914612758720145528600863502848422806999175687415823926122893871587870901330605697493074096383183427870291002495011842873881211273564049449454002983652287893953630705126652443551638090441728231332645871752111506989850342820180634787625541877692841006608865332605784739338949170777754253648586112827928039374341441848887914954938553243815624559882045538027195228634536485758893192491201746455846703262321399815115119352834968769008542760181954044718579178749510982823066602312054154719200847066075748542060482577639111554283368859596833259383998491665223873789083676336104162734235024424076675982268669166475672070606310556199321257624104696213031621168460283890896514595010505035172593479390773108383587977535359147419848823019182291157088937320298250952489189499616531641806229937562126653292156373969763734257958704854011058978565480535864107258976629080959233011263692117318408635038824878732970622638354324884445610138601689233634017591380347609567154369684557144403114828118980171314728802348375810034442631225607606859185049535493658968459831433595217225230614584578368502536814895173228050576168340806926048263010869726577958692934679289035460744563594118004669781803812805608988009953224499386009799198292601356537931963813561672207256782071096856714694392398571882213705070944870408351558737818754722814584021004045522598185826640416398473709389380943983355088161398370462971545604281922896335197467326352641780827711577342212167148456240291869206153622784504164311610556953981748787753004804903528178023227415382719314385543709415479963642994289731640074949545817244728800163573243673477300888790734810819103653887823418619534079997703062528329884476900103934907863599762340684508102420541003421310577217864539149890842131040319365921989384427868118956860134170069894683274215333722690788125206220781195778484944505368240083795721472648641631325451722736860675504180046217611560268452467006553736207869821364607459010260066814580990352290971256984342096546662164484478477823722650888573677593347157687862776493402105471560550300110738424472863973808164146924561029749915646531880814359947716057140209181902926346008556170996653564919400338297661774145842517018456931174828890428768539274084028420617580656825629498887245804524358872431420870439039108200870509067804616027339932489599306051959442391216648493175656340401212454480673074803564194754955100336162477834035555883657942007039712650416291892340252661415405853258074447944653248665399354995016617678424669357464491603614666461223079938657176879381850973003850802392720074293102476633051319805752940536938521152030882066993627845532121776710080259797530364229885767792461219032098354971976787543113261587641360671412447655547302994390243421393934579748265230743874818688646971222080240933210557984346812462769265198825397011034246173971200785791844915074864130399366443065819517456409273648718918334492261704851348026767079715018073436980680147890704793353655975534427345185361072697212766436459438440462801249810756998205599782618820645667575088796692371395553175394552009895899610389805330722568602939062644076798111430533550688207283559377537629825860509979262872846853473153961839027867364797906932960675420687509821022662110141241749085174064420641272683387660670817032559810042541551243763348800564510624147124786344505032111308709838125416520585409036781959606932030503990894067186798255506585107146523676204899835892627761450283383878934374104180847663624646440941421818079632178799681059675382379033414231312570114197493744966520606867134029484827095699105987214592599645932187433548374050617039579823372768838049657676433571917603205288111440473595609175412204516529620666899110215272231913286009646241299456718405245081318569321805543962380976669723240285349796758452839750333212999831077268355719029847564395891706299135269227623701501555927652079929695352142087449423868171032523057073711775330017655640004049247650282431921665758573334513239085290034584850695342577285917200417914114710805024359842539253749377930812706074828127015699777425512562308017891490964477360666579843192080397214985738362820272219053150409221584659162547475951065863854785291965018870971261323685468625485628442956351506969113532308713642706046467959589698238897321484533259112699034869885077531709857764554983574476525577723589104583749021041443382876643123540333359238154744982442963550523332344178421565867776109950048753030663025097015978796806197766451946845551678812716761668799350794381103968844225694883116887240836523004414777592096484340200908299652608702845429138552513301483466169245910407703875883511001809946077653697816874487203055608183349551389609983595908715443412466604105565901781236167131927385987236500390795213601010703855088239467904665932267261298211223163802010776030106039780649698639298461797554464871901845662558687163771097461645771155529185973072577112739114213133713764883397053706789065856617100894207800046374467654783431293185655337645487357800783803912191725163789792101969573682538891335893934640878950788921193399089483470731780914838596930043458607414249405804213902901528923671505146681241660543963196727237242318282172205904129947167721229335659162053916026732600165776268133484699452262594127805198990705807772640490288427178173222277470370142090825814225881602351043937811673772170972523631998053072136009814159127184005428349795290170148076722777986273019257507827219789836657086469303712396929441863682925340429142768102105523847486281560686866237817881756665370784549656325014117394384846247283679309349237812004933491750048394756806643964249338655101457891647908134655530139878540831384868588536768220285596749745427760865894900093620129000523186087288821068291861691207583189157473122065619893147178025127205712884254608619939942305979553935290632070720112665589505900907363176242033234827500017443059342976201163780049845597625764383602253733567262352975692572489595647069759297913293915044365097289793015696066857402739175668011873763173081645838511888088666826575630615814743062026260296396344064856912844711035537899134124368087509513391187558438934543501732363991150700625396864663435902471701863762038338307935703350405103651917453895215213660541867168304659122461721881847312700629342683234781407786586305949917199443724308435341779254001193424954243351311155368225489320554052880294201030014926825848235897421235051042851004370231943778935229901917082298016802310196878502428249286941918329609210666979717075805052075097804552034103312157073755352419458290191664732638408969184838681165382318942343480667403803266491998879951946372223493844078081558112888062223576618434391188997930825444703668200974111808817885727363997824068284700206430379197655183376510214384417984970150762590465946973801729238491032140478355796300010892216455443477103642780489262637451709258225937718190000821401169808525455350097362324021130949082106160554796164495125170394552739090882636204461308994426068054080628582820452157961107194136580813393277223475596902039280879579971618332872764994454951924886396701531457957264657231215990360011358506478159326033237859513431548797417663788079055267815169797555676306488336587974681090687040620338232803502035908486635530464160431700323610130349136624339536200095613764438007923285277929106119304595006704363742285461213615059297317910448267622956419169773968726041489625570442627461831168525307583734552287917487149052958445218354817731798803309923612521672794012749458681125920394791997478016249754990112560782385557061404151677333912740230492584817124384021014365359695378353657388507014008514217875135155219084694377428340942368587607710688476498910705037093064025870202570677828406005315474220996734462205201833975182345423316599544483175653697225790533438458077136575633647126537237563887226422805460286038481133453470011822863930101422423293230494365047705482688617169690968127463398570306267342779754838730604199245152678654336977543597874594142361844784529590608465721011022183969014633426545822547167519630944223068968157097641925106490017189890912460305802640360065852665640874430361295049837980770602993554857203895849578281001227488895719344658277988024438011006093669585074893693494765006827735707642762917571771542917464248027478738527311088826907406372217982799077240786147794936830586945189891534898225264862325877745858361828261333841621190365708538282557391703859379382651995073793937320572531923867804713206904976174599422745357934226320325268251671983966844614415332236773775329837523314323698443731109569281610126469556454758748410674617506110611298912824814100109496227654913519758930028822399246166267466077700499198378947222308979151468682178318686316181348754289093499374949409836913894458139910063971323333931208115359918237730595626220624643553418036219752665594887491931739568020800467302723063575163209165330523573277738299107063354441521275193034144979436032308249755221372826962642637528956984306179300978570604862835498674272765262494784648758010613601371069954376397732505191947996882093304957094541001845009624322149550111250963360284312156304981717375091364327685470667585305939711327702418066516521109385356878799022145871702375120722714241722256054472353196522531000836147073647498894561690381632315044593025974102925908026926222784194489302215344399747072790394286844991529579759306435171820248507359534550157702727565541154674181815860519137409257378446587847639489587489196278124284933977054362856472227889894740534949065864495862133851174262168476331820779452947928323160822939228284379685182099432277354390957418349720498165867234545544020113267482532746641295166732648611772979327286428949695030925252136729309982586228993734669276288280505974008840939878584115264386760489818845969558312713662217107674337231217572723042392421627537630732253711617509711511424423712687065414457235038545884420110455019224951787191553675264466654300698131636358682396477384924791904652698743379694296813884151185567592378282652096530957872950792291939472232793206133110361328523549729433417717143025168645746867050279468140421367852808237033115791453675188543406751212625114754663160575985976578863213556834613016753605949798074751271899038220033119101729423806285531683174338531616423815614840403563064455143208539804140057966829300013278313321234495977428771314899454716389958485587569933112690401261967809457424794960685793209752467466792781347129346828009466943877362556264271707834771262957565331454380740762556593830034184583603801370952872519334167623561721411919251173013385662684425282628404292952675244386880544011527643994772829761593886077917968863710763742292014249109981818710656603966746235068027733179951190451557969004890843095498405873238234019011251644847983944803294229461727802352744611466394398468725181233489151047326385168846010796669758880234708971252468537895071598501399188083948899834085134155013089235298830423903191675391373858885154154110140450990313203983455892905846580084267951471291900216493920191005982964121041321696232198033199010464836675857756568917383630960515865994909223723589588579025200916115264995278759567031651139356531354694670350562722220758243526867990304215023164905091642612953066430136607886099117494112706600059122666126075431952561941442475655275617366742330144261505426549364843362827794642791818421604291148906832550714301161448383567653418746266379234439499181586477982648605209135638162311808738240561307420034385144410555669288306344021586127136755024654541525457101274285738421090812636501686894253686091907005901622912868102747994056569539043077624112498755559127196652938980113538634968769469310901194770377963521081113382448309211256015576473650090187021886375646256213949448286077160087467964998563159478995281721724326849780035115078842512909005487456159177024583239387605279438330645079755174414421269181204034979212047609576249933344221160422848512827450563264525863692754741222411644565605914957298031887571670040562684851916032609912090981044868347526720344972927217222481629820275080134585908421854527091126327950637657124094864081193141829645558130783190683399315170804778166394007898001697588310351276087149239389467018231610133726994733729935927678979015366164368178058628901777384526136112943880909255951855249900611905994705357180141154514839486399095915553620605243506839642417958598403004718990376584751692194187464647152488132606236765447327457863071083997037687129379206562452251870603881823437845495081434439163146723874797607128359658818700859372850734968087204227083319806878200271532835828459892654399161709077944734346529348596532069032491336741938762899579910407837871105225101374769342707011858001256078465496101864030256295338752171786781256527929063923713039697004399992468646476635967239962905300563826805159972584234382134402425358077683479276897183953299105657898748857704860370479502406356915313556658459104157535508183054792523674400478487376064138822262387649008300863963297326342918945203451603284340017357748225688414759118169464104914580849218704449860299411811436097939455195748066964751067504301616941094770823230744337063887709360120800924344014932975587109924669788991286315093609048103519383596984420364128787816563570171734593179135726508258535561405508401229320540592771845872515275976060409443286411949575296166101979610610103549457169843151745078083700448527298992173557783284235899616716879016057313325058960086238194906947249941892554826682079521358954237550072887481744964586358334097231606335727787506205657018487914799483556097078964506287467845655442977418430001488944113485891220666722867139730207047488747228590067657727439979136195185471066334193104133204436289894012419743831705360300852410692980656990630767413639704899917647325207779701991874570476984044903779788338457231450488005618026625138248228714231811373512172049269178954789780371067222866881188171989601939002828125940481251304246651845082525162958157830390783205079562289463613483572264331518080640682662443284745443701603248238029765003862417844746227214525469651683503849078869888868814934949633805505565055168664163981371527455319552350069281043173733343840631321825499498134555793182752315367718555401622278197291833931935632648681929672161008925873484590049495774585396503296073017203220647422262315759580706556441646579337753372785473860029312657400999639883940362512926629580767779672598540025383262022724260371051496486656077296790778866149273651449394116374838245264771383456648052153983881425970363373119290078789489402879974883913612826204553333630515993852749731828676277650432874445896112793050899532502640285855133199480185871061637391632098175139693610066967374783180398448568409176910919331552969285226983319915608390137719552437312974828707012335989928376773629434915510845805393803550199264602412548276989666494350081638965109842015295865510053170260360681642638912480908230729329279681351900620384934128590453755219541860007518224718355777465740279258292095849131778176450150911078512728100069663915003073723745628697323050629440937344132220148802840228081485857147839972412542878688988797116067851885620882231047082984088736674650216075799320830288228253001899574063058301970951094240154358555267969840988223214555468488241219478785330068217715442656970670105083277423931298426586900472634143284347954897916189758088836465040232402704962931413794500014763216388746151344559554363587191871810412992154117363902555943508842308487896199051724801842475456862859800438553348448624084836975327996252330687251467702988854759288907404493848360449368149194399613903472029635180875942909120847319041676241167593989324542744957788188179719134229058825831557606195587712777522554358778585977255775897895542047269638430205756795270109048054129686051456339806634721887189830937545948591195449609362014819219635028470487915402942925748015003854848449966991302039326213560338319055582462552057056451501907789221821655296662049656886199058278535337539246872404544083586337459093326528694225405256603136030360124312110971218422450521088411540737145137060894709954274486091424181419507660886944431603405496212675513589743777856487667530696171200062563911856810955792648798118088417227304181062336924212621527502478350502085688213760465758777092806250272656758772800265712329183997097548430458951824026716016352180204102797197785912541309689873697760982178075937153533525025354759324234272484909278747450015163472629013737750475963391379502254680620811380722849159622129979702668565101374509289393050381410229170498037357416379136246510806836256268248052720962806018936042150265185851077049253172598549007659662820569186845645806907993554329845297534093908490612001680247699072712390138652959728874320823485056190647179995702854091051569139002751507566790374099409054976770034529498957190856710472274346729138628799345687470225362658660392017935607858848663131530418814893554074129003375479497032384648467947577541396725004672030404210379161790709663823457935320934513070197960339559077760044567123314267319203854892312666532957818663967055462908864518355543661938658750849242931832034992412810296505032784255487090245896854467414314151155243043308915388225486014380022920322912881467043276163543968411194426470566828477946762498744146397284228586611723645448183061261144951174107898341493411872810147398856695784713059873270084111418621400458190587331405338126672360234935523582895584676595385012229095641184390303214304470647284603645638632308460668361205237633396723162532710219763312050734900003332968541539972149504008023403511883631545133955770810961687830503245630334303137713746573123663888219557910718259148067211755021657755040013173615477822841481413404635184724964632353133088541042391171718422672508540017783015303651579945042784524491210761806404228169693387332897003188672828640292354544922071205383203986853246834256439436303199408946433975255344428579527961087935834749718838998737401434645658183409653668853274271948833935579276308431317094016032684535523347125703369515981701019964353871359633320944266903638827862098232002942849480453563507395797717658118272492815448258941633183112281177806810914094409119544162920546429006325570024215366664680310702811744154956444196220156162332089197312494364604697723672105841135281858384361793964673745053552476637001527215512155556884611898215986320800992113270111248284051025499748719061421111976107138285841367995389916437870110739485406170910505770472971991319397056849470053045471430399783014767184060899727005253917859284859569456036789742145300528516424521670119130002553507413767895138268288817228481942207286743587022906529780004045305467850750614561212568830888452952680314409974504027097388735886534698197402395991080356556287661541554598945484387300147100690616643958191773665392048159588282419827142768884648469783182808375979532529193298884690874360545476155089479771266389949890447653685686369783428367255632522280631607353455350798324514192302889103015059035520698582927258664219050307841762333951873640637107245132499126420402945772452230416229045755576445831388091656083153144849266988937523546169949633172307834548325125350524091297846941706066262237885318528120811921327164149106820240008108737984178761652650978481462071972118644054220915129196426595112978873237993200084017821567177200019713225416653575229981233105668263962004389988995888535803637009709216546929054102098818465072369816842626075576977284104156881909127304423546411386810645176188673230361447701170244183235727715936969628423778561934125068161746735286433319356561081336314866856327594488931528078704152542007742068373911703466197440936905072271969120308432863244971140135087374310500913349530439384944568765819702372517343207023265240715966319986745343184027383349400610048324149726345904656182920250329652758534727103200804307608068903188112266730626576651431558051210737297633421101239321879129212592356535673816316345745220288586384421661514953224292679707126019826778462975014733374249022611043119272862215412651546165502624002727930342859850360541615614865587671324781958701077424089251934080581489747632857028984189028387245987839631631726654594471691431227775790708832060559160063939143796534835295278586077846193512117050043687161575094932729242874468545835295534444149267568456950669536662445997590958267731675955821051901647002775128791901083778274585425290530833112952213324651315209863066289168131448693660192089157996198516147327026956652994708413166074331621809838495861447684495066353417732823581421198899882848811517745109444748100566308342871874155886639630230063384295866144683070517211871434468490039652798727486959606088906451442772176438593024735019180958215644661512118080607829135142813436466404055547781904710230069297061282391532102810857106126065784062742948220670049101807944024010373721041554192858165510004494370095718866766979676401550385540651237998148602845274274895828120926353228393814585765503834878981483618910346168586823720519730619085693204970895307936108198347855334392717160252322509132883344787976398855019438492636787035496165283322370366016543217834507754303661740157961063474677823024521640000492137078469424058717753901132511721007045828322710482180467882388241444419409858732683767541010253125298076349618489123918314184608393068132964038835304111943843857117755884313844214947865546328768582138025534818828510853116983670658309358875644579241967775056382980043359285313531991279276432198152580251689878084282218912015314004637477448047510115880039054727878453479684021632466067167316371000362453843811217101074466307232190818579178490802933104292925032506803955692957203199412855141779186525686329009110092332486438753603868056720574231734304289809150642673239319242426546379937154788748470463766787441618506330683816671843613155561112860748859751443381015813286509071723491709823893262344264461377714105868982760185973195729239654190217199965519894281541953355640929084803417444022086232986864894482766692667781969554584216554790197213249349751325186744000262425783660948005139401018164214503414525201798193552621556169440500975273795454342185817181061263292790884452506980018306675877712328219616438882829416773158784880824017763096427122423088490049752442393041027620752083940378931325633235751494717287367985228523012825877253274607871931461664021436926311388657315126202417906522923052128857983933256695881281056682741593971579674228911270470211267969021454227556753641518029639789218566927653041105506627236450182575572922039007628120944242171998454757534378691057370865774244544059265987249801352401321686865761319364023737776206656389707987330233519452179393880773937214191515577087479050618699364943917407195957901219901792832402549788123880976613183466851823108603031080964232581876453682726607041191546894196504968675935160599191342397744529506695121901845771055122984528899559488878294869171224735350490348800700190311380721255733403541607407013677953531406485231281799357629062905435667801811532509650531849654479045924752847238847649226289804497868811353161290093925390220476357787180403123909044793792610580915145907145475203969058380777597545450486656083894519167637182279015896564252186999031213061119062827907122005073009974212844500161990411241447529629706648968990021818953467563137649908998471306496232918426294789755205098460782124886148700879847786231376407557199728584492147591325148720160804291663071822057616441937226786012357332733211712313323872275023966070596050826650984705534996300136877549684375893153365201468196146079986920285730429992440221749114819282279997597462989405333309834753524839602173288095184665851263010300463678277755256995371743052967332369025461274539997835021294081775851354916185574440030247487369986801093881949909883830090178987274737591101891633315138819255054555771614383614140692681705144004454992614120716214614481531132286640092343696631652980130723023457731896989714657364616314518221473343265115500031052965527205077370152354247349839206348459004940344046442761258139532683636617031709594359385147471705543174934736862057122103720714197281818908993394775813382078438682357228710259823908861569060986594217386967997365234440004691117008205833485295491075087414604294896897838774277272895846938211165955334291520556374496872935930737021828594412056096057278865681485325336340054068192971495172619403559606448908475328642357466210873963882058211712744802530670001252151475370053756165223092641332612676493491107356904017930035556445834507511682584354515822311117095591138252519322890015321608754922117712269621455960515572305851139762387212272307815887884737291383636797089257339094685728990924364553883992702455112860303153839968001229540587343813459328385864988432590013099165094964618398604638433083241256814850893731581837795174027724896999352861603834492811530901221982782360412335502978827355311151312455824400100782558457706346832239775968604847015033491164045715541194051635989681684671717841625923718209420141110034258615797309372894655004656891199069921484790559083892360309938553194222608321833086330368996199097573749157050848418050815510980576925375008894739593035904871778282015210387106999256791854521928460134892515734607030956820840010932560056767773174552064090172450133085437138835755136738804733582198108230075811330358881232874689658072340958843170602726133095590252092520984722045069511177880044430360734375058931667878512340072393620065444647491677013094978726947542153532080646120284521879478542021624233290100995353139962300527585986002073566757057644041055644061797613130811122172812527421598230074746977045969678715001940729226697107379829973426273909771855264183706853209738911873187535490593263986533307715428619004121932666664384317401757164478409106775027411451579317747897066291853647348973155688941862458095412745405391682139165038011562680455276103664311018256474123038963023565804889021180232348495166220482926622364022596357232615040884058495351784134857460802741900206072774426250855312291214511944173583371254182351967450711791591753653243946432067839393707549639708582094076428542253802334085852910309771562873115026916913019721062492023461268372997494357441329096724197170035933361300007085859256350486177407997450827099671244959875260285929702467711876989971229756307606581816251727939528988983471213234754375697477575302766867542425735057598146112030590015794171594961454450310180638796181203752795951429563932752169210607257766175044700107680223851219388114050461319907828458360946491135531815111216357007308108989702167452736689558021014053835332278047380878617158031086246212631352750682541282058200366091424249746371325178687384409783553022013909583748639594212922809894491609960862867098653460085785574038547660985613411558868747381765646631470291210343283604832114039654971727217894083802878375253763718783523083977649247413269013514513302806119559224213529718229199087297480671741691581263676767544087861000614507012195048360176526568597525312517783379343068818920668268658642224060682359013610414302532800626169529309631647748782455174860280534143549736350675888677668012336462341816520583665095880706073034551563430863251336771972264635107106824468575455771599673972076278584819203129526298379881228877594682037553009095948773657299633924250753671358958940616719341993546178000873105876839702666085026620814964952693568110618064346341251736657195744676869957890942072078720235116441212964123088461606295339140536815518139403056190381714889113729694355402122765612548483881640239051177096759723877890019842282708609495418345967516267015208833914000210494220065234517565295203610102158093355695619023395561205223469141958480372236625321701319742422476733270752216772694265687421070784858938424202349757354700688201784236609942801292971996917070646097266177987484511771395641665746893642453370506396281294184710740735605229904802355413127251145512536611808672306205906675093641636563039364472607411600008898594463053859775474420551457922382783046027006693836859174627138313607034869795216486701666016254615708453199466902891647012840729994654278497687469656699201708206443385291511256586227269104705740136359831897122609388417244665652359023501927245186571662623002971538255687282193546920422245248737548779480596038466338121645780893244462347547522702111732579681666342784800213626570545539311225902131328686871422597546940739164926602275172465011784890298744619774773041790984939602861682216437677149940716379156896273201644706282388053189409109454036716728648294233816584865608299614264383289881845128491836671211383586221703162623217890008997220390166272213448754577489933227605251226208666829343712620703352797191640069422622984389978134047514156519181294215419518256083948612226385357904620082693838271792405645419426791004697414230433577818841333261300402171904226673455202198175154609621958902855482478428703498853755328715754561663209486468781617555690705468762162424287452610396524935511415063014864999857734108133891422413807066101149187374388686954940915645558192354798300322037748844508358313092202919834461606435257955123175596556005150940328581418639891122630690415404428935348532166356991916903125170018340530541534977583929425721028571886013853459115768411708464209001100127293421956727203526952589444234426334061993431314767684191660687556308388483371860531666479473802665570992023421884300363031334990546106757479676723935546065914971635158736722437693631019931778369616656189153132203264589196284287362060378239781434514848120788338352514926043387037031213905156576963618949854866858276139168091994956707918512603996457856396234759846905807220844996605584683855869554809229053812705995566359849032264226750850919175618427206716432558584837531404022661218515302815913073609625876894923904067300722577797188987015390846542073273561847930565350989062700436360019727474519333071671768973783238596351806174854314592321692154227743137649833378387106226977400285622398373966259007823499429222182112272169255233124467146036383411555894785121080810767703673926344837465488460004956835257737879036544303074711114053963993089962099928399255416368274429120480929210060816125123560871055493419546075490312139935030759674878303244656110120424415374966789842074391315152161454547805298867569531025088734492766662874312946278842884889302898430407918207343165907774321674054177996221308513664827135326557209186481657185901234955685251590436979334885163849659055252835161060946264590705431499809539812269922733907718923526135299622341750371703302620091847744797659020480297345858413578035355813591450170724501124801560764041656653975629138301572907441024756679531366054264273748231907465277882380417360357259566687538131669550077151202962067455849322410469926832865927431061435770629059734725406571614282516357750484479257057359882817796694697476222982850928689468732184960637731835090228487803917185650096336494499596002600116035089202998909773237462290961577491219712628196135436584024104844537317088059895334528460586600432117948806006869439395994572461468173997514775202647229257020701783087747736386263998627323998136783769326326587109110257127482573336173553773783728845720673946642383497292956558446627231331527057936967561150894391720577906765194791351027404477421527949356674721398734692905325227907978373416459828104789014155949700412460602280504401791558948732801019484402014551726613941471974065615261129110603266013195015924538524492034075332266613016713294462546687055825839280100036467506473782295369857232827107021381539154723225054874596956089945372870474969033019920917435761471745184764707243141160033342463391752186695294007620862071508845030509623562248710157543155542155655018913152645359349421473433374235900493712019738492449645794404441408788641066070606807144836126800792723481363591977338944100361215298066046555607259425429338474084122241646888267238428404680278976579971627152139446756373290475324004195894750950280987620088394664487580831353228813877679877643895620015724988704340848263590875664618386582048293815089118179908572834195936041148224461629792458080837730166209210807832121319684184460349902538622932232357944006431698476272442951666021916204800113135751849200497782925982664373035370357168512326945114817757230884276832629724365701747317805387449437539433062444720829884791553859079693937498778739114351186356412391719358815195241945811615688404534502340346538874574075093079168842976165965472800664182070216320482937146107966999621491377881025448527243376030209025001899287019495809194413990390252218456301064188193648488452216571194560572699868028932330892463968206744453308933715942947557876301979283947829096208271391335353383586111164537690249663325792048830725532077221405809565149333181669162573362392489767025827922160523036146462948068569170160036585596213764144408597260912156642339624656864346195206200032617197538826496720869048996246407574670608496694926081861224437670914064645865820294340536097392040305190446177246779358203706172967970907440678546620944620529928483583889854971099025105937854080444950610039917490765355965770484644136040281116633082087400919671716809559423957451579799271881307688658061764137709604475638111780344180564312263239173461179712865607218369450492650291666762627548711853745384150515688580711913009213827720280492383496550687482711953955000627957542735359080257718704340045350918825453612387739282790741371985882290229063410425424580533869927566159983452045660788710466538496330239945577014009382300093336646859500203595976305643741310866816527225255965865533658598309951255791233508866763008692757874201760650607748883859762404126173550178861879929709145124181114961191671241413053150420624396839600203168376278490559901396992225605949665611504246097448503059008250781011969211195840277558492507807342439735754450342254296751834093423875886816157470374583613868015228638462329291018701600352480730882008775627140958055978211441628112444313390753787874324262573052651696547815364837333327512364823051019969932992543986825527106038654719475023599655208386144743513656424034819142108702251392518367236588185484348935635144125325850511482533800681068753050870041521337661447839095319283041527825408249201575509734322313284796744721581053660440222234483514757606998865872664358239568098963357693547793855874907561008727483388886400886830024723599763955786566826668192736788402018101428352550368850499361575082487452248868384559175761306686337551860563986006481022941539515600585883114062385243222730014544328550428445495248406237045666927350921927899307108279840361200141010582341678497341205251840738102498346480585662052415506364654705464983658054372524423788734698977629653811019888178957235362639583340724729919895977294930804939092070267666538834514350073324177381609376116515051780778428540793460553622666189174828802412538441756229057506480813669001738597170213586974440283926519450112229560956086281834492494131755212119669978475407167062805826522912298969622306228102319280104972191616161054077402832936731406380082264855992322432289257788327371796891884603027343079232669653989602086112116860774717903517814624413171731732196546430147310537347803599801328694968243096766179283422835109250036998314679085247138299565019460755939500648946322203029634687629154703096324907353469162119854591374368939905718969894154850391000821497823892039726648421125462903296963414856932428348311802349509574383666563821145882506750741515162696146797855086739520949949743952686701490511727930361153161561034411687426106619184480628404828919218162807833594784726692205460224932952555407685750053505635664659107838057440363295490806279788283524045241986805544697764690239651787106002024863580223756014337119309210553668139324346984451705951801375908742085655511743357150795788922479408132540770783043203359574078212734212144771462202029465321555768583273642280304092238617978041191321569835108776655535023863009138855981278555342208691646271887115113063769669718198372129624110504812465653220513606837806080096847139041743827554465599670448993429094279384472616146890114151450231254284591139229740549061428562893204895346399600639689212090266539829050550672058182784853678136656039813613920465656231254175181558442730716404425551324641250230390073242734307356935130935049729772736208530034902715334744815762859959116896561990030128277792237091365583076838128975866217385910356722383897492723739894699637834686135548632896443908594776411525210702041390742658728688973260235413307164537945209592795523405967971475647837874580930554361988107099937352662723523291714861993006697411508671611497456959298805148732840290470726924310525038796753583871517342042313560288840596105563312145605891576978313572947782459586858560683111345631154936509223184117122527931275344860010240101678690831247110568626522285037631731666051489356802244539818345464455004264025664719025955267491086349340770145162210271784602582105383540246566416532686940010597626636268616263191174445310805842550973472781700353291549434303745904565261324433480665328562539711089088278323947971186761188009418340178948211593674230351804874668056744931851514431802756030228086704824114624831588869226564343758707004614123262746203201747572631077236091256915323810947816835089149203818188424115593630671471250341837752114615574049845423450869239628355964476130727381556430323776731527363203003029653204804456046360739928414347607133415551293265134554608440825712018454319828592150610222327296921605777307852854408176265932268209065613139931153686277343662789631168055643887845075275334925414514741083725607395932423767858424574378821075785476538393181887467637008744302009155546621516382209874528364059540349132464831572984927972464692164683440364381209289628034964920058242213593472510798293389853113662858552380702209767095926753727188105295619236393881163274115981852657293595298579831692123437678369728265854903973150749253622580985305298980840499059890613292456888854856039130068763992620112565177190581836532118277185207665318133585717184415344582244838822427171123091247679475715287191938389421185206431615643878566305284347189762113870244174373017056011021353527489570212301570462174808902379524104645874292478145286292399727757395180474829888729111020922183353279994592921860512866771651540165001715505080913703229505834905967351920185834044815179644646186307637663525263238737721333554303639428335224317996022486041197285410888780726785489987049369300237216366386805577250633608616624403230469425209229512059768720619928268018034245671922170522631927113412088754960043861966917121286366137355647652791647351321703511374330814499181517071929380318192287595143745037060713737995586000675360284699846927483483207408008712155216147377298238389581247765986344339457065168851439002907565520275164133370848423672736951602578752969166132655621222925878082418015719341147100989375008442627946795208099842648617386649635382017826410622175391034141599830864042025436141262258138581562740388026476893497111806675816047972942628823510753745156848296561221159234588770194661696460141881261961370056997704555400483729521920910301769025105799935753736741461563022549189628674714809771704295322774800850626971134131670067179680981275459306571110370063237102549064178812835685255266899964374423770616482681621403497439816985941975931352609788324213062638892774725842115393403856754989787512375607909584820267947969288001223802934784002331563906861060224400198781066115023123266498908619233992689877235393550697161183487868523124051756228758902345533807319051899049514928401638092560305074080104582645935711942302036706901540884381077499553243042636408163488114049230987479450101193476997105907651142113234583776932752951914911697727942265689607531217059124055182912955358759347379252671444583706023892268652163822351451584820843703801876679360985667243407775667498060550651763293050124282344170095152985813213035054210299242693590154489389461135587027282850343216555813087872510396182766154156835549601731356363254238175657159634204201117356206622674225322307505540353274099701385543927926871392803778695923421884338823210308135076045889285069604198901011543372297969361414453748433915019482995217049131914846744371227723315387580353531405051548501561145025176653462095729940294989386774671845565132348483603122724441921953176156050750998558627994714841651869432354064368319579823815471089725033165919787872085254872474967891162079134521335266067158392771406184612153497768293001085132314874755383234854404470249416637501384859902834154156122053816641781248979367508774926246925813805794848477789393092420742887576590280008335169493121743028846215391022539364773511175726045468760242409987797566723159093815393678054519563863341970038101980519950741273465619567131501572008922933440949777037658739040376502069531769148074263195811013272763258348103169267952731612439873760730787243164028138099790931472356500003400168131659350260079691758704612440928301163168866262477705972299791844110168852842512962349335463865211770668744348958445371961887012720766272301029950817827773117286251380688647609132302284269601145008796816106046919164353211809264520234625286826221987624726873761902450934332761058278690365443070232174784849483262687399580763221849862708035703558702746913792384063135866348759496627375223522218341919097092443415110729817131974986039954315104785287877135410207499369129927584505114157257619830753828521922379397624358608679292788253752342819465699504393950803718581854314022358288415416333321065101304017726476732181641688131576568435087080998256011714905641639468902281714909069643260768491613099474361263677755858636621953140663541118837771055627862724235137802356760712560533442867396377238987737454564128651314318867122224260333786744340809993625245128515666701430986083563503672806918693619536152587889285673969156721881521768201112686685690483572020160727022252908077994185634393297094841661246287328522560902126190318752320231085541993228247442865417635864814754876551614620669899808993808960459783343814335801782803758622433437651957588881372781925938108146360204390538150771485250246372329215384436752720219235426176045885609079914968536294115490902256664398159162846226029573223698312574126334283852555838373421610566414772187851964817610153862524887302378790834223446734532599196746140904102569532765568386766125603556697505676933920201656401271513173277397367188627101225060093675620799768042022827010596547917937776325256083934418253246760552614058600174983805525927867970404100531704281310424718806314281390938867029739304348218690446778461724503090098808326920193073599553911700292566306046155811939415780105287047213912252525546511979190303746103504039535419351093245599794498942707108284414391985611863669475741826629233114685906789787249870393801841576356255939073795660966957209966388039723732686791055300519766332837106046772949034624729547422813131578941910726314771462250782420015385957182362718532183530116277454175850103484269698577802326576237290767132324866423262323623774196990196398692865271519317599988247148770937494235750705055525504635205327956394717944562897578600039257249083469836259310970377540100494743699249799722197837802183752171251593491420721930157528290551200162694634631796963211210583027284098475428256791747084973040251943656005643534884846349731920408517551948981170673130537861221498650366719288611643910653401160724020303147822732381830678226109395502934435280738258073385192731178366935570127320218737969203236775454546321858110924306045719280983558995134950101615047624498105677725800147934112198164723434131567154764053073327973539274208953664840041210781926343777206447892928246694413281562890601576538182359764259307331739256536090826522033790013835051042424549805691314885156979839246337776765450274375599430624563213068374782611408988038558809599968279127255584376562805548791915978897558029462938824717304963705666337842164245535283640456641141663903584076191742693304582406905366262006654932264040283185511619296696932384725890768421714670528932818821211474233737397684959464484418010066822416833478491262241847606151325608464859940355604484479402150683720148302228366307372440727039076021906304026032097974813910288327692006157689419800571153811119827177916327070314224995879547913256991304530620209068959502652658147723661818029976431570898428113346762875102832688343519127851718135936854677695204247578366288541298039099832286967784455152682543960902461439224442239710656264506342461434483117274730649117362510635108923717235154754737143194418656106560609828774870386264907909896740623154818122092354073528871229937993507437833058635243483039964572639480720404650896966961324869015347989458129487534328529500483868950637174461595083000562276155144139234683494771224377256124298355787924486523807778555573264079002065556004660163181571462122545670428958829662823821905430428437616062158208960371952207295787365993307990665741912771233446221892830639131329108680448828204786356613471681552208973927962126220063353594427713009658803988091341748186056854340888311954724247219129516383186756897504042235090909271244773353515685154618170155854008184569890824599898649883532075587143107452248422339565680146254906799025847550616804408547066469725622263366046616543365943696535815944454604544040126743195076076207459283752441260615175632831288136576157985573055850745087853593007255274121768482515017883096370319820285942319207438898468953836454501230978792679800756684683754786142872217440202309128985648367417438578173580533747327234102882910801015360035931619054014808869281389847984160187836254667387626732965451643603679471576841592443823076338723191440139837694831415416077521270928124497157312800388899303655076506737055416469461296231562538163545902230041488947817110294439662291735427943529971617453384978840733226739419103578171974598305065897123374543775819257115448001517279668444736686176751018047744297955324138668893690763762214336188057767184799283010533428258386081441058331382313568745061850274943280586391662446847290044028513510971194065682102157334471288269884166457511118069376846961072129598627070781442115307616599221329689586180993180152236123276088761779439796074948652243180564226169194419974744699118299257275386307288395619256876085798535898501019884083132342313583800329469212285900103552109701492732398940768884355698898022374935190328851051361618486780121222981713841869480543725978841494983856772648981162090200220029013831212933505024533214784406061144897702484883948777411956785395598743968225216244141575903008392751143271100639735268808820148682727261792427723429788627192714858002763717790587787759700167947956406583270315112940471265393369413802076439240310075210034233291255216011189812814198202906915005785031802892867327119069176806805992941973700648097322210785352364754365161411244014100856564161123598272271610647740281077753619899015145641664189558161394369104901133087848694193814591145851542609169246443044257218664273511875037703918454201217047697199255962316570426672908930069803843309455044255019675867103832381514154216268751974170213111841050272630784944131040190954882754670331040526208787921993309390792195375627119646063283581280925835334682825763069042837744192319115949350345893012307947647592705037033575445863066048302305361791495554989542184991230996226471049574612659874995179823583905351042031660657121655700980002863422839715558475489581400693469920948173248950694634207992459855204190033020647654389152401412106827584517575582090733742695237969531168269660874749138567994268687131838363377441873843379285883208664114609888254062122071484303932571751140082861568118971487118887749090341029406555041509018155655582137558254833796763689436130185704121145408090470488862239203883130867363912856394649072168915212154791069482289380963931569374647219798337682961927400697163020164982637244969975822515525731022632566606079955928543470033080936772056846385151903388722575247230342007160279506659023684522261655703683235145776921920004702229284314819191728347661591367898547992111918829542102284366264410595621444960615833984407424715728811957140733681468435166264954392108980446685998466709124039623388598731710733958680542919423995686254122068122837987843739602237645108223272210484454202182176828205592882327925390939828428223333166699915619214373543244780711019428537007599169947962729217656766727874990367816991737788335104147162589106923963793204967636724976708230349557626634533809060487981490221379502566700103690944918778874935518412083697152578288008073275315067155811757220470058484836248513466765167997814175242097876651542358830637628229943613242568996219196249770275876547999402708459639591020036452894080887824984500294959046802889125354736777529219085533040051042712399942690132548722069647932007315624829376966378902204745199103453318112831684422228942888736494772949988144443635090497099533681467680765186685048229332846199869008515054774976098190256221036230739189405857523739943014797683940958365212036898254793273990389850459508146896168192123542526339262717213836774699676212925497631486843326812175452097463125839783908504461939194491494035520427924242867533157501359787030478577202590541173704682028677641147492933723927809349562330176807934066916538881765923189170369948605864158265537364318392478661868502548661410461077392977450600061183371471031332821466747124938243981353773347215840308419987618759832447789498238727472805990600268340408197654123336213313536434431078496103260005802650295216345929922173245581453398774116193471309867467244272058899824577341998449890816404461250335507860901834029897646834821486170204840627065374719498051084706588452999475845915161304688586311965937122094860487164949316273845606193924436334841198293830443127193334024383973702556091537631255745466653592698019196113168271302694411402642461149725967219199326357711710541358704669489666031139249789236664610607635837856442730196182980909767307430517463254922436368483450241230072160072707573055946134691635143345909969985082316086844135497718592882121769633432952211882286269683471296732155654877698501252205665480261712844152918600122252900191635349713122430734896401808391263612255121575158497420252710185148752583148782901138071113756659597326129668384282361018826366670209025618492929316858052867193972765593022486934612573975841112796580562571759423868218901644740188965771160947764854726713712878673795019560158367950616832121395388898473281565900408480841597946010661292365560727301624285451650747146483497953832657438324850603578371570504792123084891033467175691844248729786776192401464131718583296894416906453299546577238438972642992991735173431035368760864463513677551100105471217523102243123577920935829874556726196766125922260950110251074073150829650553333782606603885023934677294213838310309119503123839412179482699813855153903768204468466655004447585112887226907337827346156238529214446840999091272270958620494314500153517566820155863053855597988928581992957904867731808168026740222246859490753613363738634558744594969701491368585350945447462439348491587118939881874463630254027675822156501922768622016276051416253835687387293861032995321264989927445325589089931379200405812230422420081982486802968784564658442440408644143527501809903448757305708424619860633115437282392359503830440470828685770621418898172268639365475029855309219855040310557631094859827811467209914419675741971858754982457945657480963211428919827857656620015554056403228510318928633131089425409513174714534290989020411840558817123844366630300580668805343850439253357084693289161889613598586589675344055067552175388102038786531059624463528218108366029536105597744648027704910905971763523970354618444682416597385679386484475420432898040863713937828982531639720753796204808967798961306545632649692796190754710578706658535983405773273968110878183443713250684725164267720703946741629256227168693984028340501296660659287047833412855929838988226641355211051654823869041218553376884263672455539043933726880183659785237443169355795141314850588073142426622391536179909370515713904356591852998151858589973018788562373913263658084240801788056350187454942006554247755589523598799486816595435404206251826543685997307259498320146808042760639881973737145270729790741385648574916239117303747472222848063853024013986904919862894481125177447585262348365931965879779249107615093397030306000492955443259745759780191075338267141470323197905638794634294203601015077054716132695892013847306644984855899357485088278726569196033096341725383515377430074655860538742191274869061146894896298146924592700796332099418073226137390274425048622361364549947814079000913144448571750094940012407261537652862321990604783493273842845712237306134844792068444812139887276790248860994583610979447761426617941942298589836312384487416214768595432679124441796478025922840521345294693742578923788363418280581228394669761147644172334106081058376429622811873769256604056724965973282103797099637391630368112056517863145871207092114556122423875548058043388082631472815040319240194287947573847933429349524784211966284980369588274515704428189636894177175073739242264260569534270787954863552911787129431004550183409965235886527438099272410368104066227840355678555349969924305656799655055884557194988350635559583483174850132481710718095779373308043354885356612888948488733101991245018744618160997960893646693367401020615250345049163762046552765383754984563374913674850869836785325994823318205080583881591700748048210181074910102726719217153286193087944704694146329615419107286344979228489271209688221110277684509686423194968687697809580707483273447603312014641498605947572725470746218949115618318947886164655109343247516304599984158178439360742994186818513532262340069800746230559637885015826564683300199780021968287653604249990831063048648189111843010950243870815101686365821419527525141026552677207517175757087431211058426995500634383334148380812801310864376443445698412591573664013760381596154989738643824276215489711272652808756313467049797576681568492816411660357792934632772349327254850169324474682125277708504705295206253590325336521593964030244180910041779913983357244935267751844145104465021459681981299704181426584454342496693109244358359674168223236740005301124178299502553356606061434271049220809553663832927217021900643349109148349891218283388643283614582390850348853068831564028156289766155005478053082553760878619925925735655527703319427165035312311441227026886969364333270484854531420946377883904222439100438593451525292405301753740691865972793589341761629980110269067720401525641747869383224395890892783786745697347975041917378394489669894587246455114878398884154816027887878951409920456343093912848711565359893683944731698425725480972763183536402827710443931814709508524482381501382519476117469009191984911190621083902728666357950238922571411856134772793795677702138318875837393044318058788091619239116869854923922616589429373551608447045027040186508096709112930301701799882910362793917759777688790360247023582091747287648507950366756823016272920828116891765453871223978656668236897363578464508331219630174299656647288377371105345697305874425599316489603319592270873435803733931598618147355283681743652570287578930817941556670974844343254997689441687510383975018416321886194107549088628050653561151674077940564018667030674094764239301849524923503625338959024365901013057137444858522397967418674865284465031737358107310953868479708187609657501107549132884390311287471359154990496424443879704659860840163022477837226842018378209157083862308894159105948920878802718808748146383670373579081952688121420141185519451943618669161864895009325001876759991036131473784909083257752767757300289428467376912798654024333933987708733285358177958350835247828746684086804956981136698830662643130040649102181124020643759133718663690777367953258950413036036251670471515060267800577252865399600297562644149941082997697263414618472540739967895588420666077271916179133329877314036171409519453027011487621602729926107338220795193701090774064480848887997602782362982475869360813422796963917831542600963002640850399331822824138125275271565822563277922477612055606200075941877244758918349122341762352632127002970294955586086848031545211862544544908877835525273953894117759063814022594394915151809968349064550960832976460076565069334443227245729153979141891929357329339653365333553508621548867790900077201860043817029609003983702978514486211160958626912728902032788511136810459707568504832006203999942163656031944823796608553593107819594141881784484774661693133568747976531581261438629534540961233089415865148991193462534981004023137093510190019384092256801072404868742746942129195288717983084432881629513624530394353746556559799746060658472718872907269695854628560032685864257563969006709832984693242146259908916607281700038833504664463817571723464803560044699813257667826228599156808557007924365343912700148155963868988542391505226444886912168712276828572896500950905079659288481437315438572596452004779422746492468927072426020418847910932825789952290066029130455233902265653642714880445673670964540976720296900445125515741566755592104810763265364634760921168178478374216377864804953973520580297448810075552610671723386652642512680118801633683624306583282167547299048319104905830636934204039860164786564257471310950864447031233981947690152993682631203887149727545680534103874700065215024336375492194120444965030953282541473661615442321424948889876435019998713491755927851715419702981845838364625632539694417135593739928093360453892567358275215785579371962084453253271080619992200318297136759751700623224386617475670729079452074164589700802863729702657146434192339143080288186464409716411130143336249388479467981834602570353820165072185867651268725056422572821534700848512979729881022814555067223318538205478270433248868975389256458140660731843337978902829318496796238411740457049578945398597325345131086404690556579547368972337604074934770096470574595283989887588147164312932793131219571391446656923171935169892821217422763011446050889988260449075126983506851368066087303117423944411108776944502390871590736627033649401148311705510828536752984479666366857966551049331523072711444124762477074868754208293271684378711710806832996801022919828980782495222947094914685916655562607437221193895033917075111987278746847245526771763260447145288703959188624983585435240001183249610108839140869120970077769410798967525550021820916506142751799113523225956166121472652674939204723961900634672447216285556339193667000767576390097932581435264890858332483444071266755227328294733283672071935113575578086236919517852264331087230340129406429001687576514509852558589369233195584550382894249002221470485933804141096204058636364114725032881682153574953348582259307474061754500210600172479236392912572862710607329749562034899783223903073068494309493937832216848633848204427288706387492779913308311375264532885515652799860954240773055741453333119481698568749924446121514731199199329965751071753616501118122084225074897682476978324486818353513065142265306518867163612741589095772945690887392455796790360300529390951562962933111270999997029154251738866670556306414350761136469576732616080449674502586193797918594619706068431944320951461708374328449225099441146687665632972083156969790983160642627775771156975475594309455516115218269525295608480607242998788799995973536543680017648950148540556198355654363846827452214363370851339646702699059804938610359796665684317352150869627710028632104406219098728191376181809334821063275532215063463053333652857319287908237462858842269443797301141162035082080342357089309421950013071824924856635711762633933060262731544117648903704770042888691502771033210247180290542384066454934396987135030147107970985482870893339461183811552085735476672910658739727459172019167763820378011700468409192199378727750116139975419337447440504418500612498489893392675060713304293186309806887356917817557814350114894570037504085495674921242990110398383024343702419164608785637965963830634955984466880192453212931966941389649422332727227792418956641474391097628482270534564986474920204518187513278494797764654017274749349836569567457290049466884416178671679515208323424069653785565931002194192348124307564075008331315741331784490382091190996510530584522401910834895247348233125617157004492738996473872437786760523146812287207352971575827299869537837418637617554902431077340845925974749804207123971757602955999689761718349978889922570631971498307607903821581427453012889664029135998907968169158328559812278793038195871058129789987476512011695315359504988683904318062322338727903013458953853184538825032673209759336377084475596812557089380653229271470519533060346000601810396168030162145346567763891508827194956518788895761129105011309485304784609689048718284819260296678964328518867949235985972377016168788687078825442424005284732066094938475255857248419648523034857893388954518286877602444550448181745947102447964558801353215417019589047513592062734879747364294909505335937065429475513918583278038438643322021766826909739961367042912412873279786655259623140872124383935382509336084020586050569774358463642349923043706972116513111842194908480705676493195167706135264671914025893185487285182486349300571994610240133921002366063578046526662286944732527993044147678947621023299611259777810935926427999219988890612711921130416885587502591835973739000408234878905860848050790863204827718619398141885150522509724446646548806839968685419050128978798499056194329841698868168639251419940556583329666322526671665023653334271625312202957317696379843794100743202092461617969818845820224461717310154282545409704756474808329765410547356951587594924777081654734475903524756477001953219730127399514025058633043120900351888134849219617477284525803921165816694331651051494619128561617382171431638226797813718391931692184437287765692494258590699876102713584864053489027516712997797151398920314720451084254767768028572784944339893672700623396029442780310680413801716132541694015739172005614529015852012135860331102610120065365834863072961986012515645188679350694443208475410663954517577942621195366458125069120123526947055099294494478570726158851662419574693328954780268324022612882000123868340045375417901380870924572902160607044497282424582571205204596392396422229226190594947366177961659078763610164917206554997501478838652671278277900513958892615397831322468582882316055415175191058473097140469556377425265396143577093526873837760247092788417669002945674448042842094094160359131860429367257966519356286751867941709721007410411372795287812600396858532487616408859990209614136398134526600146828273662878825664968620519282710234899983767560659185876472070037861415916273280883186799897495180289168324835240484701377557883830942055587226654924510399916775600747261975236104903405070039316447375071235264234340497949802802997251223621628397910357552752449669775407371906457384245714033101847759062420090278307004299259646202055632212110051363054890712941213797242102428739410142021982322712480947436341695512299257356366040907915289384473023072249805664861772217003684862814105470023967273951553432401141092931580271578986089130702000107030108649612989941578150142243437027790360252253731368309826640091317217845847379297170968139335530775645965592250776611577801655055314589378602407856459599374504191661495483025226538526059362460453664833638914431545819465534474279234362661969590314635139829912740236957584338800623388624429106703153699761875934730114546815927761423227440130830286560611275279482767795906025901883489941162616429570486739045592072140388642687236646118317766207777288893834593044529042763444743841466013270030880665019528504015144210291048109402988764993953125957011185569246346289134869551856427087445527572613870296773015983709602054074137904036336892058335983644751097723437860813437087832100580271995568417498271363501038402883110700166043945094465765150031945740119580906115850639401548065594619314113673005887823062114506802686221726169638337551954268707396067640596347918835859931336197312199904525639682873444223710070072522519943900361556810785291678554072945719807977853882757128108127851284411457548156081264900300884583539187946831879150989475726500349131194218514880969264452159164770239663492128071516585977435015968193275464474694003425579879558716963289869105022759306972324685074894539501692710645582067367726978058950484578534562101728451947469448088087284765906158344828375313579903379440921902112697544224214587437822594012574138014873266457050053435487878073951274549645194150465233884252952619435903555007927255741791863192297486449532803821240715876456180307013199690821069783673110408135894731389054576719244851302670616455601755057392919526055698541280343494059386192453891063088363097193289571563026781212013093257160280588452579036587577342574822808173992694233448434712058142408519187443684382307039525233344412896759458372287962483447470149762268641323017436550227556106377898167111117104423450842678046357339160056952523264694629500585683107127924334530885720486762784534548750842478576929634474040882180260734495875957221260279410824021684822253580229326189599189117764434459975078224601078815789963425117171675971696628524847985471912518730581372518213054059731324292351955490153981868260407779913612907811948501846774083827081681848072669888028009170016237641299121633466031004377558907803863160526980597828985166867121149460606457616624303122308738086337228893325778543452095165379497549740268661330438099827579363300324579787193812841774933288069501238489071739104344220307583512483014984151486440368352380236316655359145757065807046971153686784307250037266924144853440239485505719884010451052221876736939552375322301040868111082471196171651658076284788017123944100888218285588786534554396328054238312304401568726507686148776332108604645438768081622029136962105829386331959679655962629166786050645136354699818341591535320726551830932433399853314985337291714743532962368481037610643253018098511767631501293043972297732112918982017474378186984193345073892225639488320083004941963411421536302564540153557963416573486862884755949528682186975101579731277483113499665383899832944329645494114421738241633814904356514816370917824463164893378883471119034688666979024487372992225965579695325229898398932180634833161951813440386279826601911407030330222716768502773300998793013605380695961748582041614824534621708552914251938749795432279654556777024905662200483075039293646500814035245058705858858733075837009242387521768102149974448549604720420428560752477935757741441158493968413232298826678987536647687384122294142599541103557511218616566675407454985545474213095719313610498216689673322078008405735795021969940510071578766295417708116119532855508762817651254319742664555778300843194193086736593953087011339096530554954683434414590500697077851653083883933170325272181950123506570107306109841108230688559412763855970774813115075922297434184390524553463015302117571558787725025005663324534600568640544292381405424921344169356479319761711622295507078992310974957250552227081411606916367586899786279120971928123300046604730325819150504661554812357341827108197280735275360905451177400492344114755907522908187898158567656789491122041548911405200324693596275702419948469430873132417630496977865748964838960183571703909106844799054799404535371505773797410494894153589409070847482525319934825566442064947486713670222106298294992932967252399094514832550360294681016615641297842681727894088904883398867801468445074639932171203761031850860454438099311239072157252298627161345649351251484602421625797698286779341863012520553405128238983606169276009725908775587412769740224035712025643374081557051292008865441334735954944396925053945530283715740327197076936235300114852961076141468963585242473381477095180839587654349469702897926083499363686591163684863564188647335252203885745200003237559196696286138182709076742719921158144629979970501408484865690372532352032920290393347186716020167273951040087978668116821330551831218852953032140833361681909643112429066204159655515530239592767609670689484722021820292239830639454122918657268547863156982012673271994896689239871301645872755657994788774314217080950604526606099358595042601333576457500309393794978474892433478904324120594098624785854960645770531088341737137322707863602080692030166942050609411563368224363792196843123800403829000734875704827731124888097154167562448311818350249027437426172235486828660448251069767868995490154831810206168741949010022812562906426472727204987524153773422574282558782830233995918276981014263694183812700056186112420545239641060763264203204047221015306664497994747779729045768599510678797519004138871812297435641858740760211361570894609378739342671291357828973490214979529612335480500730287135210216185443039164942524464109732247731047203605093031945267298567166111330158733393432655850463440585380958814741728643649786923559213696131952017179016277558744019287470859027662428341846276011314691931296098073287794077914457236122121766534707659062477966304125590940669018949567621604934971728082159644326824734302812926099368556413617173319999411425942932207126433095269506192808856393986204152173707919199390474926867151473889335159426109523154151567395132649344000883114512255746818710183907379590664610087341908317180795742033011239296289492172215847191223078988154357850559055214254068077070484351180232584490099023844049332282132063329115720828490471940822899637257595692445920861119810336177098942021666774796599420131312623726191948890815538378107642855060976919360531907723916496958460870258854407988311793851981234511041399766999942139152723195032546512651669574324510145095886624779798998266888253500038294557978975603511327257465946433563569762845350744539053472956712377035638674805842253940996801735260375194348261305858487924944556713902022349932518325737126203379620298196373199156270046447914907128212433556580197010744158998177079003150196115149950275247340644585319195642358988869558125915922407773389926067484981064075488906182675516572125440487320165632631466718734178441030005906429645392315234558688764068926809940476572078827389200936675296061162637344188459151609062535998749403635074099405857387144249126332551203625154164974567047803643433712157335296985935136555715329282987074435855291089940175030440956100896922604410336012895028561066345711496939551457787359329531735185019948275664464871763189230514355756169684940513652159861751267911999184984738381140698459457195746522544832877659807789408219191393473394624698159343773687753236337459465916693326914250027947175060795936585362807207057987064512927620293328171729620699770400128858510805677188309856175585265025379674468118378951363991261135759290194036365974618431346819152041234160112495207497290122674651022826179875903762228826382982116078782310400854637025695298350575901037883412651644055755376731287276307970990558980039537408025120019938312139595090435473222304533598725751173792090587988841519785157663367742677234695619612673348404272388611744666332800377134553507382055108919478474402608786244066823916714934332680941658716737866326684926532962140026244347817363205118554859464277559668523439984320412896777770626959769103891439479260086975731944410746924092037079858942867601230255858752258641269549854577672715783447280394643446714108121875007796940249921586220682570233720297398558139380370347216775506699933008626048464800759976068560049626147623961977208551704881584318996509521219540983692110203323594611482921347632910230755131326865513397654299646358831312783047548967187468895379664799218769552311680807443287382005940322561016929859194054428539159045103513466049750618729647782914756155692211485410220114417390175836869394138595907120733649758932754006768779791913906426549733725423156198202778632410969971927320801887263849572948013536823960891915573963553891104354028159957184318083883153235968266223951127201526661348303376441062500465091633448634564184611235627933223611711735248105861604939022623216589359853174251816056363224619495157932711388338912812816312807821359472843138557194035449744700029639425334472910165418965942221077092155895562153212949833849090425239309827932409267723108447386805763250982035497416899257889443847395412450394900592493405561008064460009404598414731535547133876353956736696451506100627850832035162842359242923359285744874845664540210420680867735910773722922496473777580534418777032652001856180772657831072849128545477004252114138369359024715884469565594727136292188690498338729047511337094354873242708605445231161806646927179913907438025664081396126373819931974583308141848036143261728457143528333539769631581208748273507903351843004515966057073832338335129477274563375903611578116016068922698848932339965006838916957566638715248627636580395262798335322994617097162138938909662848332949715159368042361263241454981142922928443645092339318527367905704645481628303417919117993969264376811576698701284776151889537443181924263145486162466107494772106786779067963698772309765792401661257955181585056123104655981296529885715446424079205473055241757314067324213451244133315670473049137368935703059963123582528587702520548985441939633156947471949895712059575148002976857692334969805403894438458042161421055756624795746335212570265339128410143306455614669049088719517424727432470871638174094021824425656327872885520086194422866949140644892428558659048083325180521518817294299133647732897568251464409248180179296213506399196543095381905764444271123744283485464201123761905626329022060688420505001439810435461987792467150062663642094942947109959872828614834558107543157596937407054271685359624546042715441373469985503356799130027587032311989594867108486626781664706224272103124396622422150158531001872959842426969008082630808569183699811415858541997471557402292891935832833293590774047891737774697449539635712436740538054824341738284566843347578242811681037933965308796587485354204873385313266004244709288354579974419796338014742064918038642130175818306086600215816250358052882554010293026203936026820209449801700784009247241011778198427083702767253590561633621785663509424005109940125176753078613931823893077878491405600810898140037768159036668013146690158019005246076112951287250319961764843764932196847551212831866456741000677294073960554595697296143640198767278017603314780423307788858894790311515657347053664675716710202816659043588091590558324552599026084248012199006240882091235490980403677057935038469786640642898951865462222533292595532366456566189926630750066125782781578684502259024580523343111746607972621247102073772961069064505724047621466811350416593742766727421902943254429412976900438399141855098809157075946818183117372731285271281633698538107474311628182964026972841905373978072385148638909890812372599421600675124125670551598894741339683804840079540435261828662033836447027383935647772700514150001888390845784176487333068983533967334764527480641901482815705715529174427850659538544609869837722621643676195263232096558233706571901560642658880811298538849582203944973090838936858528039371979312751299640205052980465947580227203827897074590081187273178326974729365025505193726817102336219434134426427512887145249664690424836255680428911900839555151528111762693645785015734186554031354158183153352981281854108551530865629466916115519850845673039929969746146964836501322708560823318869191151198768140883140454713073195575666036870693917904989018624365479438058459535810187317929753137343709764256236175392852548869481781811076090258935801720169154594925063463568790095998152697632393081074512819292955448372483348636386467114029122965317044413469528926372701853607756546460220274332305367153979702087226215780202503635159773095354640150929297144338993290097765701819615690493437854541702000158629982753479094574893925579815078985208925714472587212194111721422925235099952823608009902880710052424094564044247654333858128551109049029185676581443708542878833639968518913549693762823923551296768545672538273210321070349070292684012096300919815915107257651671961299881656910055849138523452031866939222110624242805784798621657538157630514874334931678938767471814448327558700807654025220857097393670031299037058574264027726664443947382046104038405342794569128516526510404926126001923296457141183585174806274609646370111743063959847275009357143823711922648362024222622343350854974894813118192855372207319473936077384479634795554240318943943815419851752849931232919879346129416508594067036685732751522696246903357044279169510944824311104211035353722087031298099231469965070391491713630550750008239404720502654333057999948108205451963880194924996349223932173500190437198773992433696181882727585521109454160138251469932516240631512146427671897369862761483243490406002677767079420501758414694165463228064894892244020357609735416831292073847846353242685652036583625807389062923763671667467543890123470212721880919814846207073903105526542573563132501224693024222446158757569859583236025752982848144849634603500247270184986227516300533658891666057222860293460618104994902473815820130678117876351368316631018806852974058089696757686211044031314824007834292007082119393610456112317006105503822079775403445338132787637875434802483845397946002444835431674819260929127621397061279657227761014484751217312481504230265031191448446132588418131568876538562185261633458555530510644180228658894784291658707838852107137684389008310360420199532954694652930288367769104566876594184305753264756606061776678400988197743349077472006768008288482668910149303346132613646278139577063638341033817102872493104730031174098622365267296372756538382771820784134500797552714361764742739323750032427215381685030859036806446065330125871225516400422389384390347475195458929266010987251749142842012595908121780979972580996074506688097454547178650647008013463740419338518346113174991301939482720301877684198534696796565753999993580016543836914848765188989505443383970265550141042305925769386697400192318384960562992918866581035308961002047323993368074477667389244567207826930628769575395549017171507345102091289930773533567666214004624467618526052633916065352557212191772776580765681209925998556118868957639708381902724862657741847989348985497224161166926257779478958861031773893118831749606496157077677763181875146185025244435324683071749773802848004505202282254726067670235327082229996927072573296768492976510487294209315336129611284182521641277778377124634896754550499075400094182773164494956421524076296323875778516137518618460949569465691965653372728748226761517606861670996768060320252352292492317703503835662288766803228248819633983185845862388204497464404032913717392311720840794597632025790690753751027029862840071570271749470533530835156500957617131772877563793581652053656331692900635078379448224958042004654788568147398559952565009414600233386955024965963803719896907648760872139258570352831765239897646115015842413169070299153998892282298134551981246950439025460374913166227241952338603354493338336148641321229080171417448414798795808453659291721999316014000926149543975285526661831297898943459534973713559938990471495422483624779806593749947556942792074468095661369286312655520133238434777022197022003449903498614449260190707202734634778552956952958543015277936702124836109849584070705441519738081156652256614301089890743049574877608953163018422085774024527785499837616589595688062058520156401679458754704000414453352199009515451323194419173252714762754540855624727256213496346768439959974231631499781940556636233748272511825663484685316124235124158424281703180347118189138163926063233763811780129536138078961025426350885926703969297459945550596829960723565406288846530864254026524256519784376277424407243597815927379564818934307054411608372392699780178056109336089393223156087653049691701413831278911174716569344704305242030301631964353141835219305169033824958441559013592452034403520200924419917899862626235598834186002460943397100966816307635997892819754790882248403999870903131722456421928520964858226173252713390980195073776608799850424652409137929207003163174084672288277736318159349249233513504404073494552959091058833637802781697318967834296313760128022984674546396425848910963057098873073603961318965231510305163385484563180029326439281432162290752676129568475856508070165498517061164316427513077816200389776012124443536477401455216715781663525310185356270664252171014960175354977726566633575076348053998115849597499435622775725022850682409541064048200736278918851872861853936921797424660679057205947116766197427685594671388421905076029543735274213995685540686395127157727299363654975537448681219558929520232755272961336362803438518687196107638410661017442836861429319460655381458982278492469529448436749255530216327660488192680847871996068151593647618335146303310317027763456549661870866328988982672573894588296270969418178753399765417752132213360338055859985782322846351669627066302095623446600639916682429039807468651192211815387794900301395970409948497926026892727497039126738036946217624709308837857872935027465256046561789857471998714633369341633966244091821624185164660455442498510866856469408820087335163548806221986313371616107140712178117029395175616940404368173995559909387270523831332879658322810949038629247496614121184431535317965579780696907287661277185990662418291183052144591461340739507260377503732083825909430780641678514011541024529001636239777614771447928535330749037213848877073919931342823870519221678831291465933422878660486760296080265557783411499607939275171705404118872894846668861407625597693060025554678374977425335140705598990984364820419999639463480545640795382279830570330459026936781920475283562111614147517657419159839114143960422974021818999940005385745613456439934278774299406177663885984866011942205143505698357378136425716936452028687222928649254073258070629653424306535466187992312156006118034939070181724161682935927625631234690972660229566108083522484774854556622454741827381126039444222586194172403988112576473449342890775582689837280019555069042549268930167104094964014457002700457901637633688453023561156650196612738465355497333488842045502566924114212687195225838393508696996954074561340712719282364207472721525024613295593075046013837676226997490779526872783343136390509105964819944129487467166248454082758947148330449451754075296158906110000361047750662446806527710976525278295966177074254078003613525248392521649512918343060279847337846829782185595245789532933925804329209566741446105025544859602204981052346619844220370415395314787676207109337610182806869328860270900442982404544866908490143173076552378263340956616512871681704438730806679443303683006860111356017114658757810341687084944507908197080107784586834866624597448858094809412243652471046289839598999961148712942049269658174486044673141185292264068856666063693939686528762363967520121460116840473031650646867728966974843857426386194534946910298739580601629441247629959750114371575388699111326267957517856514361156167505736782598267667264840759235565238415543805280847460059347669587430942607789116901515124067318145090295622946771972457074396573676770378378751984533620916159777515247626373345334972865832253420120116207075455520310683261563304638284911330104660061553807597448651799733080348850367643530834828346870464723345012494822192668282992362793346377265122293923102979128340696668981152374748519755734453678733222118355829069259883721968771508743138387867844965495807155655968112549281726354852976048004053383208874043159836179419343548059884548227316881895796523216676394599446447900274384841055917277336965244042588898593391730615963283724640364486222057423152864235302269465488318757532915912359176132218100127765923143257182164888898344221088944701527950762647906772162740496213379236081891482187608294147602958668307973479431811346815795042311182953545879172913391243914688128447805607868655791702788353424600834010068619447474122419632732160457169398306890402354422777113021846546894516129654923845689790092181165002593060196384153656484090012983562093114369414367334459287632137570396206477148233484437247823094653803942692806859876851535863792936529306972524917455646554185978552287917613808441790846297350874583402157913704659102907486935970172966490714857436359304580684604228276507690300085910170335653748637955828720548543896533974044109959470871697872278438450708601137789919219762497730631797571679031731085477146457138565720102272639508003789656811011265174964275554300968816441238601706088938272688301402348583603328182015318638341103627991252499045600373754238005531814721735123726017069806234226916209334242908704055686308588585048025248774198419164223230482899576045322016604588351276201595417916991824677504450916725807753633621931617307500854505095125784756749946210303279315286966181502871722933141289971199813852541122072884836668420867991250541362923641291163532525369885652621053670869856061664528817885754637576322445196067373653476067112606160087464990621639920551877051213149536917845150202404264796921865057603512053212236285193195595310426248351959255801690935715434043382171006876472782120278655447977515778945427620887864523134707182932074994706738898994355026044232669449358172117302902915124963991116715763416121050777694162879057615532278568842565353596242160043419581970596351485272604826773916685880127410107015591123933422914492183448409699900330934892755552564923383871083310867374232571999046506949465931875408339075719757182913016730037816986329381153062753571026191795868837100147019623479511357428617344228823083548578412951265087126482137297894598724594890760423167461111229330081466447731594285338728220378893617641962790602241300610800508953579069257297157171635792133287133962963961958592348363563907308227205424770365170200367838084029594718915465800373173207106758921052224415374586920057802915278616861079916047140245407568535963432133656390214389102856131072260758776975510017895023854684316631367000632285085507050207305877195554651611531493649279357388921296283988664579398911150779563279093274420873593257961669008409152749771404339385876164005869242749497634315901734686287137118525044660346518298448106182030269352252713512409910624397367124119906347950819716694426948682191600554513843766526505688615122259258587168637715505823276889779364528083336480000045197363430087501536372781690590585185354158654949706466880406551511365598518685131336803666653981989213101834148228368098028501127919310290155698635584215787834584785452567551713964123660768440586889057683356952206184226980375237059312171201225082858937956029813066928505855955192073769126161688393311093661554017494176960608611269944972347652131289668661137890653287697477477759740124023127282234595948158068918572533870982791194167858746806129370714056502466173192972754064016182815164770691334979490584182301752599620123090552500334070068066200702460174987419658374801037690108413806485304592760653163802267005549544555276992674906855197468594008326849842462529776207785617714021235533696402559151269540840025505727274044541629153268029162580796483503695733068213160339630505963410653376269170691157523005641139046365013534956749782845205047882722170242409426233449435312298960684117784405030631398927254095317846927514482873685207615504207471357180346439291329662464079129416235585780308459720436250426312474059970193214206709741687789974178042444356548514079788485326353105371845454531970946484422411196878923170134803480491519878975693226876264056461570543639448546947472444478791528791576409147887996234759611271648812006975774921470397505214851892634882006355986627313029962556775732544647400755856458456499871775562087661854837060545775959609024744198164031318688527826793966674379680168677986971453348142125836818549313146959057525918105854709290296205910094615362331410193975837541446425007325850380203710992801162688407276221972086695355699155411422049137507838247784351003270783101848157297608179213581749410732896371840020150815465657154280467146375294203894274258751431148573901852476865341249372039673417874096860048994625666564725245747468205199885139239399007697739330994963187707875585931827655945512321741016595141729192966359870301789925605427907515322355867604091794521338869535205200893933419600659005047186554896740295539657998617109431395954989337606605600048217012566199892094049967618277050899081736034699407340092647853260153871022728718045225388114034011158410541209930338121532978669815837336770959280885075364677220411592300458582235810971774786542788316338956204004006231669995497190092052902344538168363767695538895471012569081357888917166049610854408959294396251172815209096941808175541167437357019839905266988148379246330641622931155610826858711797698274407024593474939452986176824713682915073977834248882837751824466657418041805731397351296089569258318058099120258197080470687054033463083371654738738762468966878372853895474299099357379067626367615722505957146704802725821339568852356809471416492049444766682846526659969497356046945236614837047385308785655703219950235611151396476789779934532354895826914207213261385492355150155645218978240157000831079169599591003670351266002093072134248238934570588724322823195155824861316225202085289882072389147549061902512069432121231388460903679380348703202328294212855361916168026491223140121448994391536883631456902723245395917880884376142059430334583036999435356837874638108316160713294608401088894305576865991448053208368187889574872931282900785156622169330015352542948653815767323296562096091944276331648445774132686140674480951018512230226993493867574964311976822719715612725806604330559785832925599312676620180329796473636756777918755871888405186863525026970176694116385702523343449381603563133760477940106420970136663525204641952473814874761354613912449124032960424446224693339370101968798841564077523216515969322956527069496044071850547488837083127177101242487327745420804961294329719487675096945231403178065831551267224239278776894427821679197675331344988487809451340206619187147725230106999371994157608344333545898576244112426620719721525252099715142901794229318993401808703332995344645476535267218004032205098428020144707876696972578230275332725705884554050923132538059791482630036632844716234664697898814623976066858329359002542990701579107819732460481955407190213558114674104297187154330429648624510651742844414862543852417138718035444486697235178552898125440395405383019145832485585460564830612574618888531177103679843077430085147897386759543058769190756016161696050757795925532441749329140076137844764929292364341605141553097934978549459290846390336060846696942845129883013403934141862887680644734361752342367234637895511801733290381114572520057929966099908842016050951205702184155637690996768827653468368732098375607741806244441160753339514730478298487593871773645643771674032505631800172173180762054671086826369763449783047161939015127482125429183980192458191464243737415830974426884060403406413658817191588132711050405332196856035460464040464429620339082528320249437839635229434553861148325591742593955049824266067007211908745782641391130352878341365006948689027480054359729474249820871973979971483350047626933459135698396506178543950068806267008522633672706641404156765482429928671018000952026253728469666330218622352451292008291212364882156773099647375354622859362677299509860203832822847294468675784970929862426188688616144482466738597573497273629258664486289682435876208093648364835857484298386076107716049282479262607128502105457771634704505525784849629772999666642719713146659563336082658367958488118944056298959312204775272980036820505687791113571807678847034909135396501476336785785976345704970303485985029351145132277317774604035543478487901866071656679366186725409785744821704656983670416103696527272114218036355525740634303879762815486446140216460737576566187511089435627276399866507416093847960525074204646929157703970554722002178594166886949551599965132869357709737085156520688886869783150072029554169205768619282254786011133956189175487085556642442305688256619397957777514974275208173630085898194096966772151853463777251074915939449666220108364429584549525017361404549405945261639069617785961956614149570731177587133283894707093208570428330931227388996057843326722345631071217891480552768471240099757303607240236999901805683040172484900815510855573810240178027215368545011317850022763792293539446698764005232972097755811911916834437548488844820701121177489181790479431333778716087125418853532480074939567288731671811979502628454235769402265342298109904807445208695684348783804205120794594352871058756009668604556026445898441188652691782013334181893977136332340970992048897039355915078166850493232037650123130647907554798336249537220492553792205047883825582551142945179545545065060538529031381493029748003659650586520620387291263661465824561217260001421043882777815336591841660184616847638756707948749290455735563416532803252083086561061779530247194435163677291468622383317380761461132094771634499888913842369095618209221732149564752339414282288680933625425450039647718035882356329376046484594517355054490297853352892990241968814160594302241371397374253768329166237349213399805000067740807512928991711608988161994291377251203480209530683335229667571688236065000852300429362386915964342065793064557776816498709951486097756692437351843501302468903496046921464604301048595075367422964391943311108148685217936998559374220803515450341523180465664959116564304575893623430812883200917354972312367287424570199050183797740713777133042465400586770415629269121640136833308009476842160543137838779866032817819623786933190530411773005522666229909348703852288788845856297837007948679240298484325148484676293448382353272229459042251041509551312866697566889681157152312233735135358012866220379949690831162785719313001411671879391759767662902206293029408774868336522626316562919313225617996114777407881782106979248774737932223037662355517791142179415018272909221966318223863201098818115689952388792315160068523657585296523030649079095451752369696651897496611759817265240964714122055400255942294416433223798723029519441502005733498542097491645863139523755339937669942209087959040715063236327931637086452384588427517797723902099139053150424824674370372583764502370095308519574874083586581381040919036105852241390765127080503161746516650981592496712381645982230445589627869255314111224280416938599505768551308109310394582608209683373260405318575399446263815097816018296951864044987503001763972317098115248193310947355572535085402031491958910573843776392166206254293008439146888525396869508012798683913253922203932875688787094015030435689599193322564501168174772569259537567760632187703216903852622937290862591088766288263423551734778306031800164695368820182430267286444607789598742049652955631320464732972008707111335796564449967866214098767332796620230981646648519669500481161509658690348039178579502179649753234029935390507295414302712391800223317237682283224069345705501551272719833127450865445413977791139050441604650449929834873315018576905926965077442080854259809808815772933515126787788033516632925272908236830998474209702238463143749539867437334905950210148527877292154696731328250918993728405112448261732286478254332187450336665506631407475484492615074202719775743614315734366418719121525027991195419406318266255812019884090212105325306980909819760205887589936473709398178172980497790520412881394978121108232111016097133053147105894968318256142270339521312547575517599505863693721839707809103811752280236314219586548598371359918114866612696887959227202613063446837946137452618915233018754956153094036012411150610215615466095183354371484300523516790350253848849911443895821266338103356828246573003728649945029042746853498439053034158443609969074504073463716340076051110877175201289108871963779155130256548394588852386840253109833765120524144204228516139807143107390185708971589019212827891609006272798422831017010146978901083391346370263958919556141977172707972284340937538226662258151025055150631815513970515741495468756134676810767868563179945114961709951951580712208593367166539865513847144072768428093645308145566811220793665686911873645695732156788549115084935328627449207188078209799689005367615974607598034077849615941560483405025160548042077939770194347971564040706182612499894836857180391557849095529481129548600977460658463322324353261072944432336401325130776713857855621985545356418419357699781515917314728889789646168573657251176834442050826490290831418469108597627901854477941542370477162706674370232268557380051175716866424307944000515340167774780210479022347084600467031130704527846102038902462642135175010404788914907738309195464181013501274279630592173350942093001961997231172475637844932610732207272567047802967673587184930994916131871913404830201261582876176293710219297190187316641536668672085888974925538182465874825194716617196387668486449315036920561048607743636651277634172635871516639491805884540263691635474189789582342032536526438355591534120810767973215520433253004847113096639501004655385338401801373232563425631347037578429331103145058841548332485966205292183812993155322597915927661733137902121569152056032320590658022154889668502790937095934233361999819277330653910360084344945163124413796174663268622127733874802785257715514048391728953317011200736098745021362986711725950533779258679373995998515533512448575489644649684551790233266309128139275745848873631262146464173770595787034571658675015523772188117395915586421231457013187560500556502671717340812737835243725095148322539676529411650984164197798626401828030914554790905249488341732401665635081580303284639627472570857367890010394063996135139599490086257273563295392701505409526575817088761939765768424240039695220694634468525333061994456680558431641391816155754911361928048627735855295054012532386436532577162267931496357245327224385996220070389482103557974914067847205862421687392961848818691609661343079476420853684647159122750172642538257546904847398047655080228774419758148954519402989604472996828581841168643233847710396680513208610474790842295645060422902336048228605858633300303867744602050694912656210086524697047670713923557402804505259195278150139613563270264120645961202886678256919223458425221746314278163784824630002236571064201714512448538888615305206873102311507486362600625256922145133853771966494527057842349322497256140270562611594730028588535458448815212267856573961021838944332271078800771082447902722133502934042431879685501643373741613878131358090979050791066718424664383749080525820928100133734587094273863081367751778643752402832868881581952450059280889561175710064881665683435872650220337705548268327964801541300503141390800477552323390695392450735631998810203254570871728536622586253953591529478516363355822891167033397449457646002746372462192217010163974954700075637720570776189242017448359122172336059561214129157969280742500624342271622822432054109357500568972564745323912027907386452749961177169856417374110937928952499596512363507047608911372283360647876196315842646525373549816571360705603228182479392264811843483780787191723649134743434348756516108616847643873517278284651693738273456189970439063551622330789019241478794149795693228566384583601374926089871933898330023765435423720319268090571582525635120534389490946391808491741151953918138550625265163810222534679024910207387939097329838665788244969227648818767774588126177755369413404251936396667293277828737282628221504190419100179882509362098010080047138487084669289687694019473635543015886597273239645359747403447878663954127426929973953359099510289828415402734212301711951739564187365822693433080599296587415149457040662058873730956284814158196850087686554191440794538872341479625253760002461599012153334556547432568941470587632602523634161786708851855449291700989339848777562681980446146576346671383924008344331688898221663564541889586012749591756076478615797687042168510243722559013072392581458590516086533371408511477208670790567100017924015984528139242286070890968086181024568546139865077809585699833190287384165700154141305588748852217040194056998331745536708540378092681528302744340381508928500892671497575191382965943336396638819273271645220047990781497873668423646658106647232050933038505012627260791575931126832975621936683561934614077658861851162629413065408688455385187844520793889983475218935562965197629699266402450656664645954183852937550179062944993674050514139746419435856478460628084470777822066566893039635695212879264232669768015245675505717884350340382154275724654165099688697579249893663759920023094946911902951786707867181042255864664390681668325939404800953930216582649602628564286587951969099685427167848540099876253665446121148310806292252517887545668741915089325464189224717557483961564656989270434237809381007291502813251254883271129189077271655151722956483050157118779015172049956004429437141772465162516239305583822045934757710436338511248799578558019778365749404181956766957946961847331393777200894055563505378420856770578869066380187524220689714557906202470403186796252516707202920587560266299405013207787676816108910881313221134314612492143097097631502349402933545178887416941643580238396975262827810508734807909845184595500134368624083740523609934440264807158245359702561614919667917000454809159788673895072023775157594353742305494933852035099988820967755587208971767101862281736542058534714705233778966959591441964920618969567788517241799110543032291932168067583981139744937028142335386570476470981261313212574130383617303318853888684779489191018159669206245701986318033014339261057419678811286178553900409651310033427572663646776187033815777099191507685808302433972014805799331342756722894570560146194684653252654015860177864345615639941446056539392897663903921386877038214288654004092113991229843046450734089168670876400984663053027964363466988404395231831943525154835428984021715399679276116139740756200465040499810538033417686523413360377254102636789893228284391632246434959991523976400659392932264704889243501292605051043967769064870309267415596358071800610895170549063199584005577203670640259021861928871618067793314216493321701596313914701863205291756543494777993971911561295821669155689807345319914407533573925401862833795129846836734666880390376295848188623933984842998415382282348194480423984128152526532108324000227642094455262522724803132182345983653343355591903972646284849619252794092652407260645068174041291651407819481884308797402363327449154276630952701105269747651431768668335877941604110602034894591262383259764165786758792571863209358764895367993305192166618444924253369418144066330425938087237072402299717548705955837785541053246502107677118877215734169468250248056195991232631800665907450515055374596064425798325851204851901903228672059988105500054905214230165342924834543573684791341542265709245689851759344749039010190782494024141238944801690887036556437821148744676220285418986906888459557157761022954802608086593628681465594518028490452598619661468763641858114724937700649273813815511077622821930919951055667346529162357961124079272734327020205555724455068789241815719629223325408777276631473569360099220869210820987825259950098855534628608775073123955231809719201368761907571357130620046495443664267645603774558565431736189994141532069153618346031498935976063406013365220651276141165795129855355281408799914483348875821159516051383885211358867732327292360439150347969613896198602425285126374152021089566104865054511945400386289227221709404948804133540516176918438589900572784874358977225086077285496355130798781986837423692121276534650178851430211044812234702762964697366867734977167148670540927351746417406147528058749403023002571559501745661133958219710426146555728312397360086072354842847311340256875472011683135575274691830260606690598893661121146259581477251312010026380659919137020101366435214244601133294185057623444535165013427594758808677802911498306542550945575142466488120359009140696016387645833141297983346711236136111383481624704663172892571318476001062468337851555285144295616362332283919130506381354597812083290169030987988204188199164377448694917570046629344686702644857464310345619567216303352610893601945428940122421274384074116066200539280501357844459500600889598723615437355832563812001448667179067327171638366208147365306559372661913003201637044873603022686276394787215953566668414364733763467941122413542167538407490787179519041507485154666913318549610638969435659372281319235246062469707270300330040527818788178524436981718893898144337382745837693940874809889224695854373764711153945679552473249679244417384272149735741015715683096540601127390169603245159638139612998285044949514128040676746488933222277092184944943841156684643115846746115564873658821192205710726414226486316897382454653775822365538778449702407098849336802789328061292384193609434362847337582027368753446224699678608941717223750979209238332341162280065208777776899306404636971407367555198281453841267319717719356666085125885122175408238671482073701132765229758185406946763057583411895166653104086268370226302495282538338682524573515437354874860081768578528685434441907854530418306830997168667066067853149272346431768050040791352427588186219767017140510485918136886767855925348624214481391693985928059190038019958815114115278787512165119425569528071666721500509385358603458467168997367291995121736025732051766603908206193838003274372347455845095086959373267873717289533579091287361417885185624166043601939017305444692546382065962891605416826686310167875563116719494805593589695926530579323702601944773037146311747827788203303409692901940273517533067853567882513535886756374705444646397928714877961476884684239657042360404438403621793828165900407044114405398749870384333877030345557199232099162610032118834195709454947950536176070863482108809596840988123522222955691978131918818580988567516340560636498607023008082644277570704849499305473623485470881282080878149811731015597716312850936896727345653899189864882076700036072185092688374320645932167419123979762213350737856357718551004444633873766605127251509281687589609690197900060336226866639166913612676272068225115557667727758580154390836951236898548147212792260920230611537297397065181493028887524651825784440424741069057676350215303841718535796537891557422870058016393732655289159985574832953378937806555590191552978988086114405857433154386356204743156784648522159253983975714770280916556849510571823801078460288078217514254951670045463262083312398872943871365726617087842441079362474573685822811824651810270647484277405324007305353545491332876294890322821557688089676846934447546842687481162873216811104421877128505458978663478733363636257283617916990258943506511769592890765582539152482181654359429784401420441025573404313327740352047973399552441715214523606086490753574367494730933844186999679751349784871649987260026831183683982887454305933506675777684119039508131762107964916723945610662682073389391843508138190141836193892053638439810022190975556339396006027634369861336743825357033279297657928604565099746382514378185688640873976924596219792248239241418998832006467757833417848180613408240080425057579594157869175708570519073714571406429331769018511672633806890755558512225386269438367624737577839326858733015946786773581703739998059565054764622876372183155218848175675880716311885751742766672973136228526319473808213496653126093216514212339097354533157035033203537928728854174554597453501760532135144941569378343356189556035527620426462184998137749342775054975798459938018851550822310806382666946459961599982554999542394525785389596096173031253000772525623046810492887579967170343977718033884790828663155628875839387425845709560402777907796731730706238242130207143294790426525286979505515353765244177547284104478056021105006095864258773225459120869105616647235020016101165002389198594994861518985052790747835034368720583607732750163309282074031941662844996400624332341977645060249100331541326513752465056622826946260495465978093327776784819441564462602231801206156352299135885598077753875082417122399577374558074342063897200599874790858517014368062835631776512936679342611521041773883894297001014188158672964588359118190985112697936661971722808264360521306569782695393672579399870003978920886040646272236992636151792261520671106201358187582753900611972570381123741597245894240656239231823988598143250855463091946028583218652275794396699405375309253040885350651688767801484870986762890551441667600991311578469298210811423708214417179315410504311170819229897662009109566569479489076937311474081078848406239020499159126695794715219103302669607076659754715612103781389596927689550434569943251075954177145781482556657802452933845496200582331976436264837868146707336953329377775931805193585657849580286796144250101390369815706206499277095083164356194599078894255347772747332120474947632158814991122573268492429707539308336544644211692687084534709396141734866970372478823345950975626542890141073185194852357561308282643878105329456302636806236750675318073950738398884102095975800516282404918363726772727373191092029525726984897929739587706649039196644729082998951651437009820517653463538576676385881492719583912322369066558440697837586796045517775348954384610814075255818572363960341844405505976516478439140765018371758704995849809098206730594477869266433970400359960080752528396498422252874358057371639601999990085905659616799983510227426758673431487155938526446709882275422373918452601621535863343598758267852178439548238148191865731710464060712361294845290286584997273992944327467017363542085663428016424061729418187514045686298257849150898907787730932339084009319388004162804362943041013656915959819978800649738791781093016456803230557196012035102740833016954196011163217134349732079626744556451036450666941319551886216336093484806014584971324122614043810003314733136562943875641480164589683188301252394464517232558596710911609022706286815130189304877170350199846713286276253351438403765234245840145519899141511859852009182779966647509283999835792967012072389319218549078443911883552385652827987372049368890050244676843931236240515403933611241362977644146865914740934281652917170875822399291242923322198495420199254277169619013638437870946150483921667512371309931926981884771521205506244277631603646041013674983434473577794443176838588377486942112819223850345296590712468492712765352504778428911734584985442166133742114531505832975202300156390217853847184224121993982733481946977880430927177903846319129339505626431688794177254958094914947722973697427820462222230712010632712775909309963621086284423668162380558210981012735060425224351124103079891002659984676194586105553004346358773228113962000354638645671808908754646744694525311833860678117507922507591015647870640282851627320446129724522816337638600326286848438260220058035569231268434922139974222103360251341090133572568861363602461794947114513215420403865797617134735913230226734199070424878269909086096910521244844784482942358192723837199304122526309554063998668605624409474890671364019447202463804779095932131367928310818457572119542866797136436042799402888371248772711396248979077966819394388775778375484273449517815344536722330420139670394726577074515980455102242296909073371219039687636600788732674066977406351677856008054852977883068100755131708066151095743746634157769129110020262837321451286924058090320816157159238074647751884507766710775291942632527375770981422912814740940508508951645357768782134999892127612236735582616557042678588240175975271472309962308604283630575711796748697960193829930514977145346858496023334393424645399341537952024876067040169266561367287163809423020557523340665009922731113741690872713606642341005265080399977082099826830237727324407638993143715635723263787944317191113488556214193452071669010531135755228015348640577847294788617597124860403604899103204549896646432171331884411036233912565568259043325422210804464138157527965340038071093120203982347545472275063638476220875811844961789008467090139338129446378575051430057782050951897118021465014813661642795579445225631580936085892983350797884439644709919979583558444425300187280223365320629738248684266673438747962902718372597085441509301455516236124164289740266281529543460962219693855700983691817527295536233481444723292273844199980854853855755236006649651076658174036994891634872465934940350109154920015142469840891341797375940040628706367833015681152293342187096903341789532841614048862583307146600617306356909490199886356024684049085405602331857105238106360472349681659725577263128199468098524299267942144534506830116678642254339289325443189380634220413173478456703365041453192210689754831541412543978786242612689252405124011391681560760664659514571915306444716146953114452308048094198648800829867347876275426178838483241851775338648287107535023694360508932432762278525283475300985018824532026796852114629566752843951676631272815186388642391127630594696029871764464825814485594477026979378537267737700464222140500230361796824292561215423945303334163535649766617026148340119752610856799753397740819015015275869440382716769190212992903308676458060353578945061545828327753748884550339035991488996867334274297845057751543476587132347842044827817874560902516327102065225535016847007158086056280330460852890616311787314851500626032477072722426472872224020507975909480113050227043854055931191669740582984729071403109507970032259494340913229621560731229211192925230220416063622543859156799642787949549843844508106689169380752410453359904766703301914138622072480263347931305341942082291438446553931878747054799487119472040513553152787219378722512215108413390391882915043721785914768953389536173529347693613651143197287929720816709923820163895908372376609226007368496166386970267229207853294364307505605290159653890718661744298369341016260395547437980698898587647007996696733261358154315310925493839490606387291038966030445087271152597558123846022464041135797701927069412902791474493083265991501861691135464352595502418640641757250436424539068372931800019769760174906193784732511484249013856413776761181211039020316622766588641607046952839978704294937963644755143781134353175119310721320845191734710196273782831321743638406849013913419821124892755585243787858671674124172395249323565697592353847290409714821204870216032147820212922897531634770627893326594921569097994610518970635215589438047901258536426824397594175149301840871072220517680360101569876617579610311240197929239848541634587599599075717901451184862503269985851027622116233212075139949935305946262129276495787928621623234062263147395203145484301781840251828949694828560969327208896729612632996633551152218062782771546642629609218527412152834206536003872505517257295265712722800284212680785134738575525829207427733328333049971379270183996127293886860564758142803646844339205448886121989502783091244535758510563903151457615596842988641726606488548940195440745995411374483528495713350300852063281713156717784650437817066249746116257849379783453893235937756585762967712744676834305814837167527216359459810514971572427141449398324370100740635427766496103247198915443999102710933674566554722263860120189430589705607317300576016160108782348588168087276008294622640184070087274493121511849787519184956663864224240731897201795410639537280346397200594580301595549105534643072402621035404955700782163897330709506040023761287702182307080134186949623717766801635215398612670730411487509615885805502143934878360510992089488264885394394739250538647313467454138925275016584253571028433561490121903041584861215477373496760391204863286446914880710818700243031647226529050742876293924871488693232720259916587336221657044671979433121622806672193626431759107065638384467621591080783202616155588110708212359536574639803943281658080683252515971844889938193700258364075926620099469831538735342358067956830722231974974902454075492923326452696866686326260624175975885439011466564771998979355494261098956622647808643159772261084544841165786237780028191070334087546906735962383845724679278073691726333588957295619795345946137988139842641224134015226414683415963677507990930689415984789918799941004552917794378499754416678028283037139031304118022942696829580001621666451171070121279544016129901657715143326706901705364911909406481987549671857327214695710995849724659319315695572125385758950107386233684850237370725887176839357500422753941953394053492815619343314303156713369256583288559274660174651367789069147445778449920858967227428920239211744242374647303156033028992925991783567356644542423837282749131021372383151633149099785457558484116530047658755325365273055231700569381847694525633270013918224972593461687397714160635938029954277705694422759325616290067960666460949480983312722351220815345871200775385242734134808349501846018612125428612242129349947961211665723973745844630809208502382225445388428779838153166789397480903865443591819315701197328216024635132108791429326624731961979550405064602119943231192620460262829356013735546889962119928188437958841610529566994567963881441521942578843390501328496085486853316388896044948651819923448478034516134880914334827709156334731227142390759217649221455829042278358191644770718700445493990062664275538127508733249905374066079989536601187283945240167517516688919028178758253679588002650538476755327486287130315547369688855829101462847814151219833289369918273108008224524109642063307948770866931472296675641175768594352393103331759382189945225406441940270627861619483192710312255894024014603524169187577336779968315461363391560414356830918543668927191714469253958463492435885207691731831356566926476097636333797837409395714119995450785955992979779818356316240860352449194670186757238072090849280253832952991680692722447289680832817954779831159187385627860745123317636100121312841924142249584371066450596796530719138123794539917258444228424323918548071871356781740641017413658381039398970263856533561235567122112758172588210975435464286387176935081252069229897568548157587302813447143307871733720370153347636028827490374498591968643970007562286595339222193637785255232107568686055646516594618834806183271688902274264140278604477505765695738630835307399648832988501420799806556592964296952670333931069400220569043554005258010029107958398086647813276993634503480970632450064030214878513713887048404502725865906542521128167142211435794733709556375126846525867019036188080372742869695868987241694071724603075812940434887741848980973271358680437845931837615780990928562699109318100660667164943049127647843868342233597903178575490343471423109323612607090412663356461711380696194065043944761778720690839713166048351880114081065133202503417525289870762217413307645005011035016299995723301079593681122893589296425369301843856485620960576154701780735206064691945933967121377145923020228600380495778560967000222264887112172486594983341007446189630639722834853850779075937846715717233304950591278548252602735813914193365112450908329890319242799408679877485217005622433973041201169020870216487914316793358613086541822835818031805142824416324075844173543781383860080727757443457806412037214673610372168554106364058922277849179352162317225266583272036084558877716457703899034543519224472846129478243840110055099159151792765179635135373911344966280666780180844211414449068955904689866028220183502369103225704579824905882468036639138034843228680607532982542888612654175036621724781230025289228515652484118802179751135006284445116687782090490190541686557874131159402977100290520272087671644752777127251351451651799577115949888254879227691978758836885431462760141438898994676100582809870672117905606164733059768402298735549698502098784436524794936663405050189231095627949246786364750085912424924357683682662071047331039151016728677089037562325901333391430974102974507879050530326091536627777915567598796005825981573843977302834068874024726724043058687827719155732165914398174015983043829552374767056292968979253692427078583254167154780922599958938201139546932473048167307262595264297693105152076714923967860601356663368397066277515624141837335680537148462979525979554753279412551843479112433950307753602371643642248711355223782425542007420098995411366938552097686402134192735565938845946862041310036030904289740448811781556022147046650185893824166764534226919057348740337045707978206829538146538392831363601718168212718913599260758517136278223844098935649107025525428065137714225242289722959735116886464680537237625333582511173132756700368304846833807910763586600440541210567069622854142873838666613885177003897651484357239315211773313573132454330672737445677907246453683083560027946396164482366114337706938090422060765444550473955571344440723570866657797338190835283394162950024528833399987391862750717413332029970141613872188110875385337237209662121697591975186455532874696032835158854593751217050309268419754618768643979749956432106632005178695001689292547689476973194178396116303107016925046758331257675629204957337147674491629031661068388904611813789966634614122628477905840973123638025196781298625998006005018457265723980232351154343045088198632515186732214993710145378528452030326559251899483509177110909466420417283093899811476577387396741206462118742401395012317609495674684504567457726054054773907073049535577072803265875236368756796384454305738241043350226275470547971579603673333252739708787712548433612042964030926974777414955768744809732695911647385807185873319824254210466161634956897264416806166912715314072798602764040927960247605314758712030362471536989079302554433148519302999291450127124527566904880903870849998598338850054072304832023932018437163032905451508328899216992545378378075175616298729299405128121247741185663030016390134847846192015143081626114922233468436085660244988941737692597747447691272931513218835744076088650134881356192380329580953470696587622390974048487973993384873602313333932996841583037257278194549852664160494277234782044892210695589825419746509772690604450152137775063048898053591605512096011081174147390689428683393138966699754989031037445063809995242176089983166490379481360911222784953696357078226007263674969063399960605383191306424195040920057981937560519547186907879549994172786579031563476840701751771788491212690383571712376584440763469878691789318065639449871123822653923185738258599043256334989327106246347578652124026901528494472726680241902431231886178017430499623681797779387857627962774766222550825621202092477388620122475684123880027414024772108426956958863149751198335927223936064206749134454878918139368353497086193022014848887889730130525984713953585542727933795407857040993749260098922549209304201184288947445366882305958643440341115820086414177062449276087956823849997754196273101102821825842832820907696563933794745619296162899727128276915068509730751406532655871174794582050494091660303524324786049434603833538933908182726030098813590092249370682186929663596852388729817190721315365760083555892935812871556160962848770663514667558332123237334712747184956745224697270840313332277530361796476974201517522253012243347915178332086715601785207278768719699829361375736699858331286941877057391030705773705119619007482159178645311818759650332056020172854720140555314183861513293445789748122147800593320842867820723736146158846154368211850560032097186572012051513140076742596995654379373358112849496801962015972106094443520815587107756145212349773736520359488036460636542079186780470411191870083029189472536645156246547913155025057552655375157456045563792296676267871501311465878402544414181836138527854538210461031068288677888406467054221458505172085219724269295558324644444589927771150093308042900309895324991070076255072054655036266847245870477181725314430153055341949368311956893604578981068893301330701156660444963292107062095411873893524074958149716980102106898396852687308557566168289318320621327218936170065242954297488704110744008272293053867961110040387683248005194497473573279073094066768072334822182444802433017792476336988161761300221399435409061680139281245735921121183929761705220640900435939454152625270185284524395347161088011314083157172509556265077605025009502348189118127470151905981016965936343544882082068475678332814691878971198313101427450871595014850800409890983054911003723841335643443766940773849901632733032300891017196359119703480940599139547635843382266382172049660463017805430646809688916250829770824883137200058219036302015509540612881718193298484639859807154313747659899336108754432422824749438003021552624653316027000290683253848141469727571994451258763290841714579784274384381981703248082441774310703730104000136610539648087377359186809597552508942844464037312437647853328519694801407249731912813471408583983723718256518440377223867400269251412078956781868732353962604356627712836445995459388481336963712013678963495983879268971643812675804195986900072457842492410490507501326971799018640684227306238985828810196498913575648651934928952023892883309014051276101359457398150056814174443949784642284859808699720944010558884716422379362916681722133999865528512873370447745033258541181004657825956475059124168953776743526796012869319891010282980382515900886947421226021684080126388970883091125247116094650507518412090439534362765805387820441592486098077630291036826975258981469324809224552170747334693245590725558583135607558987816298368979129712905127342054593264943401853904873923276454432263515665963236893061989888014561846782853523028076134402556629421487919371661309325105780635025434710788895733559301465053012837091734480682138154439729594515600968375336509457876981090224122438686494334430469815063489190227842470680380979778359819347525267823165078480288688348379802799787122197949006025102076817539184276907104348259534383903762909571633120745668490687865779520626378668760804192014552496501868459594708991195157942645872932762863659342485033541435906112236129392513350614853308459711315850132088876637507263511523413373663452482743696826760506648685263636894692511879000781438669481937903462628020373429882809876660418634561475463172457598423432758612920347360216191633876938379117578856038353741895722170929783087293312008068378366366195064785655233402169726348621484997388429786705557884324608563039202621693216248416027352165614096595981465433921631099578678596045847244557073817594534027957513770792522428197561820901772543330800981274074240783954314515485965534031287809778628922270186662421549789251891270155909297781393655842091214327741804017462030490573139148054215572351695119101625455783262113511484408324257004070112769934573262654064876555146222886324230182214675838628938001042394793256831162593760321278867846380229762683514589989583038743537864007192098952292782830113572800871145093844378089711086447677343604734124196750639190652713706803961714365033600559132840197956640337835578427596939584189033914147780091772035911931856018008661925837540946275206070524367323270471041473387140573348830174315028005331659184739641980447821923813500435655242223583299482799926652076939904700566287698608021534081256590004060069287398935718812185693207609599523656730475844783832985145662446921184058369303468975051786823658810217578642779059977057006748288480833267955502484362895148007086869791525810989628765604039871868172297653415334676169170555834222439859798357777706842588265037968526167505594883259265119134580227539479335886363542510890645992034253576558126171563906723749576708610739405689906220529672075062135859699740668793965783499095367004822957564089293914867448206895758351431733474395740747397361565188772930832653197522923904575265863600739428291174944958341356892748755124224708192131712922177460057226922138376217930020635045919999753248201654043511140085506284611869659198842504208221684632131162036258381967000119676676357711643523237833016153748686140415058166694702620476014623019130079468019879081530970045411814556180750946857439253206921625386788727350639523261080778067220377065994984745380930746291783855331328197986824313846158292164906230336134801690897739837840783650837568119580641027191161010290109942134450111159710974861240747366843739333145754959369628988509744684062733427968543354875729583527208673991959398108729099186706196377904241115756501810353868706499737246684837294334625373230114183737585695419675613730351611307360245229613997872790080545361689069172301447217814425276113152260587251158638231378416647176759195360808817536557008270401048878198497425002535096987635758880290335003784604807728970391480845658719679378020025728082720220536469633750813056250979250355120731677573608507278744368770032881686324653545595188145783032633986722325620701866699514167143320845004726876744362639060657212845218167421519554151297042406178257557389867298951654458571319735494100043946225111424127348762340444895048548633548256437426352633812136393846061148364145066505845522601967710624817087031747687046189445010682034406791567059720447147343414273910977429346775869945159435054626448878149049793997662605085236150057669249322164313062421570440280117441874885115474683165916751613263347202293502237700612138025575127657986195657279261743835742939804762739560631495716026945621804689761356419248848099980618444893553016529299667856680282382720279190498893669502475926213086813550792688436734257452231771417124748045172111001313934974741052127813483114790236413071662807781362986531279142136690234402896347759586984542089637759913403716285540884167659787845119614872410131181727265853499346573752088846401366560645509860828162924179108489850433712518557541858182416469933307137462376689538326762330045422109153115970208228284124784323408204400937935008090435507738477880042313134071449659708437745962838388368964720924827758076619179464269807902162609316381678222482551462851507450836016863079900948189558784514027872330268044094372320405900628371754532798460028971885707658258398149020963126493470841237012793179917104156740657442508979953203605068919761396324111071205112291888348533635222622505921386172186390915554279595671050213586598159597469461282197475075122664761634394191113070998537536192075968694198131173532836609072798951573660901280395861268103690187506518935985618740090294594592432627208544977557936584632202848522167244861870459089629875898962369342695708361798003964365849060482003201826043735700992084505190395252354738905075128957088974288513200403145813528959948388453056069008599676885114338888531167158544391934049232119702312472061497275263722585010954660580150416039395383982576536443786392834712213139315332483105027432569617749042600538683629831256126053172027377183653363516156947475100067088172712558381338962926498330148072465183681222703999270310975730592146087765492034549839254844803189171230014472182416376991566024624715436943714366850349189556630494441693924029309562532094789428197389456106110034579071013871844403800804224915929143575534626331774390450175280722906442772631574160312860675977694864138258369635211266898653533098879739036829050564987891629755545238734477201686514527902487242205625152080330345203860319857795295359448845527108440510811270934144491808563664800862783518005807138048228769197644594946199599412993933213784568165348002347675933114542808376787781181928861105760585497025784562614470007967420148074532923870794992443885584281067378021771811940370595199968578660987680079132974138661717317124150071837343040657083147357167727485740144704028837027098659857548208314388518499141163779407383572076221800055868617024319782495283015045455290282922816699336390514911887037483484765893028642969243161604020150668412891983461380836608407474998846546615685189911277929648592845615796094579034448143354193250296720397403268684679040577686255185952167738823471938771584400650608111110238931849032223009637521270222548559249944824700811863823003221103984265985631138439928785248558751248176439170884799025020483353325620825506777459329897624782443181493949036954444330772854578188206107331615797301323163710722718319364112152413265027194739739885436845369372831536402202066970934209776692689153505295209919755401796211154844784863550013253860960033250232351537511531346022385041683982496668109055987395072457141808377239595631694834792372719543774973145722707607972785729277002139153252498328330513439220350411651343391195046237810947531370694342070386361132492073499196420952949252333374835076076813222280523642607472527943479615990153800682238117889537998794190349555218624217772575531682414471741052035558103473185788069457842894597323875081658360460153663109938723564706153627264543848431914394467211948449096769080061264227176762535177997962464887001124716943713934581772349151337733321202889563020911025195124254825437259184402309765783785321537347952152800928417720725764910162927110013725796322508650546827574712666056720655031715907498392201479808398370063100175335308671619749949642668012128117204411447193046219229533211183467691216319817819149151210875071185144456009831017488331167244786435807881175370543547811121225364612223075689639980717300299810967301541683519962558985925409246930366651859194329712004583751561479671791875021027141127485018672783129966494676715567981524337584125048178172764715025197292273080145532424810328851616141697453961595042041085610589379400364037470490393288046409100980358892411633081241215890118257338309370452452941006097702366751225639283508326023559848706586194702155078405668249100643997683175944166478047139374111312888414850779094479426430505653106244209567910791521413761546830167886883898563509050017353562368939836313930332736356983437606030811627701759175894786755925567607406446063962072522228987444145462521992277335993999282050030318060066902652691780102259899272575307076483395271681933192203079142035293711956059271249166331853354408751252911613013895612045083310835018812384235283745344427225353106845860487224195623059790068484380278541837319534281305537225994867968545920553930611543429294993922256216481955944731413013966433259436956113353763067722586409437637800085754476210449852305516982388920357268334232459287369746958782766914544013771325230140476899879753130840993648261323015204412706233522990219007742316494289251970170398280748126637498427449217513800348203162298325433420739512080995935847953485700674472300204233417102321170231009114944699629526396848975050381126852981959514557035309582933795308852473631256085916891192622447433616942040810306532890052466960291506985749478620261943020509131483397377767790432161562290606382165345391210856271853874396025390740006334381726883471500154902052732038542849510093322218967557341079256749789687083918272487433864171859230007419344751458672150261648475687485561774216725227269627699500540413621228185455925664534742684660699910816555837179954436019288865631694427854501103080267795554113203735207752816957726407302329588336086254445243637526187601414131377610638349787146510327951458672557869011858299507074832784064858636652851066216560472241053332784578994353991484801291958647898228295837939459559290332158352220334271839143994040175745047498608779902731061073571189284455024896065652461622004481368479777093838433136288930051374720755955526012333619007704762136761639410736725842080269596334508645927743145145194413372894731285116192762151649548059589148535744859979777057016658900165710951848572551787566071165071096583507339672280272527385046117872806745882456853008643472549145968571676873820476708249943954537987584964909224989033419702669968692152385720136644189969303615065036392530860697880233253000161066407385648200139502912811910700229498351522731100751468519993454471559157897781691816944899398067317311345864595561057859436061481355968880695849658717044374989521072280435430212768388789273755795593852389220873270123771400335698322864407200040732007416641770397145975522362465028314699900289662825791533779192916896416659825093990160321137712762881901322108694674199224143611977366518051814401638367357460673335597301767687736641529275411162999791676710775821053551593746562837089524041818107128427939044919481825500527420473072001391380259829347066076699900134990426723732611832151238651352190209378070083110251889381618568315475437271428234724686492772760282150486060821456175004844329678506545349543892094612603520277728710108785603872465840282556304011274677184057037765388543746229226327301748406751095921647764534665620921672600695473253116949741428735878468697381286642122103267314879067839124042587293765313549924394485739000702805251997506166594621640817946143355298577355266322130867930362068781953182386117221385832788367154513670384540962661503785476705257236762745942270684588648744434814323661440556568408169663702106766357552246952975679994341968656518900942583995977434851186663627798782967405033860216308631395139361953600319015797468010892708980478796560970903673081373665785354835171776415391892412146070274391159268095475165915495732657819886457878920591813110621509628003935525915213681473874505286196284040985180131189312398710642137297467103463485640628511513535629882355465705555949778093301681054171538054260906076752460552917492860890369110797859894433111220254032708716556523908161136497012969098480473648706398947869097545990025776230391742496106956616152271202005769076668426488983746027378442791453852638367518115834125647215918776795243950112679398338943425399493168666510340588055369693005871446566661589855726974225506962712890300653774286837471193334161459857480810595124887042685065274283068355069984555279107684831186908257205284474363612963874448984998133969989233201687241340805670114945254381069954685465724071928855909806037985567063676221751491578008743084263658758709556590056188694181148991032228184873658574304311041564597568973019141233154311721605744965613362302982439301298458650680563748805355473919367103395965873273859457049395784522004086108550650000489994814039030748167714336649932511641937316297509882372988059139893124077136343722892471084706391751067525593985424942147581361969198137994995100465068546733075043207963587005036369329433766935184186620204643579731073315642410347714079617145893945293271849179958116878049192464919603501494260114881100354813742485897147779957632914630868774032981827476880352442999037647696826429809083759348378917856641764118597306933591177210646940135620976680362660774170875736573382245912268746427514861160309448233823210203036121943327439417590011927217596941960554076807013640719554574652837364657957778750902856083876620055103131660466850036524571741282165349319691604019450331775721450394310077818942355933063501752847221872351706456748416505121427287396387522754991488078768153082287763290482344079224616408998184704425592470624212131107830556479680606251813543762612476749012025946796214140688597967089043382651888995575276609706910144877173511491392151773483370559049228765068026799005399505162137212660051022363493157036917288273640728079186623446663140368965865342477499010641899803531330494392399743278966538114895342124783924468297331657579796412606486451412268200479424054648544167208920319377754832522920745257138893887818519078157188331352098907845726628641474383603598660029945556286219937909528166109117331606606808266316613400448671680642755239604525787424340909693333053080199099057242721069036183405865439431832056329254033635710134600809061781217027387863530044570819825799513218529790058385982289485014733798843680700608821697916225739183039784917314217245132382631322624204023000823475899300823273127672127974023022039429909605881380465574000270033513868945751540132555141820535856109321266007303969267790431612810217780963853000927424334583485192021315210351415711379964181622548126095133205426618503683260308842961142061893861446067066783437523361392067933417756515270881514968876467890423083199841076735909925529093351663771026519402456654601753140948174809461895144973911838345135858573074671425821088946168516550232958393874579406462662294951433254569662952517337574918175749816990092042242259718158153128210335570049338425533676756809988711403722074883208815457701504910389205127693917398965517865532643444499006487720090622045667974905143612558802380509131664551823261079817601241500103767909994855031349528765432765590283014308604049068493958511007168244680193147259563167447326248004969365021448855648636620735845873409230032752248021568551861912608957944533081789963169273337224401281009410036642664829652613602099575475352650896376909039350451654763960862037347869169820571149030900468989979759891818412456321182919768184686061305358615221438937662350533059578747202273434895259500580823653933940560921966641595198114131203025802506992417069366476453568900601990836612424322051301581366509127179361559785871905928049113528686682402190724666582851741498372779945853306356226154263821997436367000098558854418395426453846793350924204087248924964301797382847752577102091644515947089253996085123416831832723625037259926636212401913047351713146584937911119405565012119584635318473024072999031592846351522296829878629701166562356888232221874877552422833838712347660248591694474143362097046808154751511092715718318494972318796858573377388487782523684781037026730455822911240043952175627961274042759012559671774754852751538736167691323280777441668520495982776161548574900614396603429223733075206131878965502416874442166531955027421973788358311011390568381211529669929511307341174465591192932966637486969516345974056269108231202902466021561400881446162947303445005696679657446968420700464642550008703712386384306813909086115160877421633105139668369491671585971455803086558306618346918079957495543474897749071785222903012225221606523735646021459822015052333914050301643453766667877981312341088151116289365706019505230938167083608819393737550404874826127678105862032951585179752032113162739622164560111851879319213333580890619507715607952291941276257827683218200307259846096803701403657591307614797204852927131657043201300014686123976071101570357454939632098270136536325222287812357966793723156132850454769414922868641360096356495214797922574134261588533095683920168336881027260650695902048015842366959787813083544780895299538316660979014232357411857334591773963267137440644857046737296747528094276212269936242548064710130052011258893236033989320686953938916029476962148788005623904683505181556492244594946893117564727991362270887944071761910662746294057429944658340264479883538550564927242764068807315117669914382745161615803463693120811087972898641111779742572276981959313253871599381416360066689947391231383394744652407472738744212660180850973066852079161645379839242480056010531144228510916891705775336808694372676407422807121461277479739438598962615843744633573700325543303710505977230073066729989126289952724745283902373250973993757409455199078694101891399179517577614761798718550518855819026596021194257376602939212504480782259974611783906081289744362482853762749642325403303029769298989841230722924038849697369164690803254979364194817096046764514975873760692112745105395183885561889634510611411260382546160843220600853429925774856217487248378093904934164568444113777840482128070216874180210741391527477926581261595059526839595962642932700358939125040790721596790468093893906781522112642438004207662054162406690359531188052942477518610951626731049223787642447925054673591725789546614623236765909882300531459348176379163446688837581845411445804928817865648423602684011478029982509569363148525839343199619583930494319422564546588444562715500321697571029662567473610684529421040793503876015542255328879975095291574365354877320382468097025418922213535123466381637709822664336727994954036396776395954307768889270251816200614411451268319121674506057527030199865045071641602439286859139382087067686428873235958897103389079618876890073195338632296402189354484749616246984038650396943518257326073446357439173791544594163675878373374190760171276602175545619523240562466237048721589310992275075335997237022204571653748879437063119198077074838532109656944357016115099538613664454546075041473987803725292893689665219207145742501237586925282348122064328554814621578189352684482465073466780434102109717244736974171813805082735682043021355678139947159626901596518063031133424297281852354368907229635552580856271046182151327397178922409676480797398466699551564447528819775295070995393771702890073788913258974558085084188806019617272154500385804434627676825499970581796298236834356864904333299691030442093472217477610900097479883736778221062742633372963571330105414078465578723401711623565562524651527685391165590059501937852483071835009677457190561262469094181117159150008398579409733996398311076560724022491835459441475384007798502157137062417446408992142122414830826562077137802400796885546143876424106065134189879674828891490702989618859946318386723009646171542569625424163007982911816509010924120659387531644785560479502037794262649929882763764321560642184013650920640116625695597051989415841933183884771875818377732113539137552032406873564264520253212816248808142973191717390492299475206509569979861195084789198676600143189472270325200143661901518046109956901688365122366036560821211741614282291659139397162700266285294666079148308246825945749976184672486711453107745303932924966151811342233191592279642418731380531834478029247491171902929262951930312209945133592146217609479654041727593571747814014711857905879811395053960051715577119984404530158641855380413479477132235155434274676709948017516691329937524816296567308927420608462826100493635217916728693100343071503093580612045745656171976211414406327354572227879951714713837896091971665537123601001448440773691056426646437950145564635146769142181060260176796595410160949146147229086949792096362738407049586846088604820933500959205101663761227386304526705634538822085382913795380004698563950042038084142619729559977348910902621033648042925768753997863952122610913228459328309519194175467473669513726254768111748526057547440193043260371698216423115186310175584446474627998441227833535033143877797614722341772921218029753085746065817391347710323842625085639942118588480075924639450523991744201276986775218520264632743374330596069899851267254517195243112512563615242925544649925280272411453675849172938060546884442159060571061363164322279645621957015320557606016814930349064993855247499065087496662849234257028908817889557833670538094410040939290753357365666489471598065812787946574732683475191817896830807764008565128403153923423729357263423466024966692662281849704346438642060428415689275480987883620717642750165581487001784287092617406069988904814398044004470835453051061504639421625524479632062221404185797387027205250450875748472068623664887729569125220579859387943284030088050543798757656646691238372851527767845442584915032390268283898066797824877125188257446935885132382554666533020451676480645808412817917030202475020675545893732900195216339559548651913921420334734349459301378593972005298248846662701529059269284056651374161355191061937436992364507484181844800587165049307544911964327232159161659320768509121888222435893672547356344811410263227409558446506737282545977529013749304823361036442618823758001188982256123141008303622433095637927686173191876672459735116551917402453242680144261947480394945991933335951284635423111933019156885684193238537573737600605351238268867644494945765949602242639969606439823645682483369129178758346018136819949921867846906045166682224838248830904743365397099596131652250820398374867282961681357180484063264028947051676645664226022436087140483113658256310323864121484200289307717054174914972142417752620265978646932730856789204179628289411626685987286384993769364412189731185596550818799093860038020198155336785981733977078019789253489036174752878085359313260474539485113204442745205746317585996151975986753434587292546837769008461771376804282822310137788365328470370929644743551794007449693100580027221980539490571121108952510158967997139514808508728510715524718004077843877518784683458743446572486557779570735390459640224563545450563493500052023472664808306071235931390223799155408883830047268560514804149260879006989743702102541142929361113468824114166966283371990872766997506335960498733914835633682851805590131368954803262274539985750757815893322643495548109483375464324809820316099177405593273077881259460320010551572947606231296105054901663800634296230184288650097297742030846112173890315755802970679012104549800401246609301142095934338238944710007046686171272990497838900300340483787109864903182666357992492010880822981911031109204772851563774579624885338222000423126445403885559257441639599080293378535696691599595713535890145101270079382294263377580922704567246744283267503694382882318139918573170054538708814431320360708618391527440288166066293993372692031204757671689559361855312320975830009529733797826188171381267327724900897045871843108998935528800378291199202615567342043922266008897690818260726520007548690853955530055068799293133239995336193601541021966030463805346157929429554470154811214976276991691213101002780260641476092452856802324983592568699020467537419415224541970976755668150873076111204969749514015118343148585964587071262274305748926002955822525706842539539315968268786390619367794262645139056276615172232903194378470076788232313335812925727907807009246987776640967562084127270395426774612622630720579866248367425102499620458952201588398454259212685490656662065542946291187258762621641807292149858159063236392548926179815335544827932057008708720069658987220101097367101496804469860627923212153655842629770805375673504177327298320941171038814773052490939926801587738224372264482801664911798426581338454417744651393709194201033871489786278120137934010653554511286008874426901091141323251973045870296807217034826261119785326382689721504323579828665616961090083051116666489825289775859203432282832041839093914402052704590993761002628651473988398199013454524307949040863371658449922737962978991553595911017956177572550627379490283678385198364074318633451204797939195172858512186869757583991516724833366995097616149938538057346202824657249130260763059819441089154439784046519349029830791708482880933921174634888091611615897718098559474923300483386683426628705114096144882102609836791196889416899171886561134782150730817360750532942226689026896761727316594832181128772890775835242135739932140072016514037665670664749579609635764846043390900531287902653384559280150499167019359861471193939213448624387786224567349013243933298125856561173746544486027731743773890364331751527271445215456735123861113664568351795684944260135929469266633408729847190265938529613362442148549672651130637400299606437872027685831300329493323204750355040159361102176218233265524908302128228394748398162557545689702084384703575916937614332058244583521681224810487110736809667002915134152803539643700896343908007460450085109624453742042043717172533817147099950559109957836264581509316707103826279894014892822982925259355170339377434644019561565181482775353813366839411292596312562693926470479270563724660419242382459753575839609445930727128804554684414679036708000117510129306730360779005084218482372539252100042498089446568412488788518621245041311802470738768349058375090337841562294578388527504920372554775498778594278631699565852902145344523326222399800304602621859517935654057982127414150759767441187505233727275162837683642479145923742322167830595352075714795701226381398820376425547091303836720973787208300317654819942622006809299581973863398524114354641185398714483069850165031109122836011766339993667367224398701175909389143679151550339478297590691638929800806877372362116260254465484395536494237691610592001599048931118317598184138124713197320913490136310345135445966741176524321840767231354858287468652473876973750488865306430169214449265344918320255430881369054083350098408127618704387072146214600515540162194087792234518093680203995193528136020705037600365386850022439004022528425776274865894579208870321105488331665610825975001858583254673714075274977190178011920530871790741191036432355783225478079311864364797130524258359134824494694481410305586285751783209668844093172334051321705547912996273027019554475486794899571976219707418623297046493816420545645953456577827026597792671943295364243428149805943127068023411970374765530219330424809376276195401109958248335965466317354343118564116319276657550010201204099222958867544550188278677379400871129642433310971422694198377756188158579615576487295192691773493275414983459474738282748860666208351570772641214884146292584117009568591899239423710680306034679385592184771066096823107916191499460013635770610004195628271681319743166684077561454160035234807707349169730461927041227968967615677202175885218679651699481550202553618956119605161819021196409031910799401608802088203901497042481459556940560988768614610116313637507641208382216912052665946700312715177742350386687620968706396108369951339152250195113546640136657580051709387500509071925298759887906723512040719908426039421400184693226037529398408360833491121111611034220946445677748059730803188512299611810283837760812933116068496052603325874309616818893801909989878441781057095464455893295018466236179671545811683303119912356532757469096307758555730686308112245737937576816790662945864513288401104236114508680112253037039789974160730293835178900909937398159729901653588315532291022257458294155584480318812269427968654364381620711475749491778563375331164315962493373077500885768145815320818243879791058134968265695671296166030282853819551542204135816162413767467166398740842220365555477856126386432945140269635039522244944831575607387996484350037209868841841738671296277441271396282747513556819556336498605520804264605314009081084056781966996463566501269860042775782242397613764160915149301523705176403387353021601997180420616958897234809048281726069575863642845945076206780944125122346168159467589392524951115458157475818972989587310103348136153371848374252901837418443688440988321232878933890969484250848783491042489012421358190800210074725267530498951463751431384690543919027436253563819127683742884691323843495252219662940533139595502398911292620718242907324469555990195976849079496885215280643080289908952169039956306222943446060594221328962201696200327732418186013203621727110530121904243489650493625836410325825924460362893215949247770204386671320433766686796429340885633439796007993950717467349197556101768433453172594037377640109020307096511922795320912623295440963095539627995498613196966123883266038405629449296439359113058421548754341900524476451634651389112377865334542272251138424494895235183448927460864007661858314911280291411031969816712752692012807710248651827405992542234547031122952865984640676907335492655848045849715343793369587654435231734848842731548468941126796306849131536872092406577943456318668721263035347610511847912032640902257454790403608229219986388946321507872399173060206382327978224394682364454852654889422222562735192063128559500998174840714512166033627997113045757136947406778575753506794121262266173537768433036244249661041032264479565139616124442830267973998993392210857664819083289815594667764992969601815690692987537222620035454612825808795962176494335543918777707758726187372222206313024142219952014953937515399571797342141867952451956817334243449275291466976368997323835782185207190946768264623642148168490978161050701666947046961770156053484268384545732094178716032930015519534444817314770155238777464111480035904471886087500555859274054184499180460637703597806543617092731241592345877924896051833638491311420160578286103055386112397043597449703212637783276407680952469201016149809981849579746621432960824110029620995743440113390695291903201533064980363928649188817645395416202485512140089813540169278365103263013513205468173767540896302640624595930619876999736930364242565440654497060098742060468350747633857803122494186637908861286362108178008716536571183570442974210653662157548383516472978986511825711603397789831110501347681025789196692786947976831030218269496849355080507021440696437183164692276971209712264513783467196031408618282520136030332121826936935907297508339489513198872507405223872894097863439055210999555096304180360791324526265975247087562041632849141242332679655824516111060962079386846080878831109686401832253616848040496145372599069377050270519582475585499931738638046180348043287459322972723467966356053784456441549788192589638165869899455205917335581273598412947886961173381845461447396008644706684412182506086168705350215851718772038363856579535536927162394417714781068775573985196253455991443771510352014302275078720640780306600034201715256701569714691866515305328784591694943160503826431070550523335170065138755739153458633735899613029674038893120833064820448200323351396648459779159319359161438820379738689047730147174555324976801234372354239914606601436375423709776922438031390562985481819938349051403944870572901394862385190905459224644966054817039454045026728897558206327431773088940489782487921121363316809532165206412986543958116317017794753423899696415102318426267821418405888703552652402270104631102041421050304659876105818872988016594512951113904374196084761421166215348581475486991317686890406574954869726903011243818617888033063000960657379972905021279468965887202775156075063224920520773574868898792229886118470360909780023535193903853341052730240690271892730371183059879137691305955666708079602557670753475087139359255688765512903562050796632957613850647988893413382524410550359390414351663410965265731485432346016979924795930333397949608535193060467252081229365232803021248854326735209933931796538291140435562728964527330546571593877993552300493091630952512299885668340540386700297058097301806842995206643890997921234967377943875711999908943191622295322829207341859116779189485837260665535864768731054036986873612842176275957973882424282632832502558319426465501235779593214627070102401411431926379502487287053207888640097627638829809358342345314206894247831315953566697977468758830705960813919537010767235335908484553904414226615322309733105507925432222808419591925421124905158218143359987860200736303796462523225294967433837845458047830451146087469464728483600681702958479451433635606204365660887138390647191567786344407459988803726740726419611394631390760033406258106402512658950658653629316711521061720169852011873853775575806778151063383962434364888952318570185518178807728323494855654772328823928624323103942133815050235270027641929241823134014414179909908389380448803057713626295531790379860799906501555794499577378531629102527311731693113695531436586438862903067087946206917831170373812573099593270502186835002591041467285189031227967704772302180993177379875723112742179718972795849106506978747772235631140275636406623588392983598945073562579602206821032787343554656593202847963230469073875030521297857464863690180626356187335471790630019595900630789482581867080069525013732381293500736197316933364418207071226171680654662034204699698413295533686349880292044854424229982914328954826578670009314088605608108272518622066921519848872609707155822198080355160666789498557447555250058408058686878597442782550232839226935063885063451657019089002933207855408164369827548829118043933914754057546762465804641618024725482878300030314115907986441805241808405608215022079660751368612938362834829530306256201994325778204315689590410383040679485375404741701616816465660478609011669399818956295910259146600508403144045433757637644119129653318566951049049771868160958034136553162903191998638815394792806107272722925193294538055892391911789346524540478026070907267943564909863420984565595846930748779720829897489748270115291419902435476209000557154952296917696382784259765448828910276705822650776814881707362808493229214804888372520295790515136465336011149956222129617622991207715020960603880742417252899181142973582751175174055726867139379862033969296951230959343931433872981332189670296636912728335829079819986713073030223450516947129207768406083724571790166233092336807019717014621820398288607313398787850222930667717282441610342677633627019250849903579334139563701425011547362625771553638165779418679702008154293928644281417191154149376753722111272101657015683481219495820159832141408235548757230331044320501910512215324603234569732497756866977037142938304962536952464684331991157505746530561826909948758811747300006883830934180217177468557849178977573708922199670506063495288662068193554273485553601811987371255165150718564674456387463602153091966877150791102252133471552869518570686966975099451034020335077002518767072879261048250867945782164037386140503787635600646934488477660468951187617918455737271308047368072269142330358620866015233402639051632906731790370240096326905803607955856162635058080359312534837572860052700089171587288321395571235920594061210141277629718177793252077639483047555538091523929927245081823299794123692859242955597859168767923548310530473567615424057200101019578688953598564263954899237635625163790067791602515110337586619997770196705345639157718967031688320647076012779814325502222561044849338693280621327724553385895100943959969899503164513859932104019409456718129569737447972648341495834643031652473491409075930670711351660567160120196493229655427226130501357246163931587721310613523435918087691055710839624380640437085268655784460093551991459382921507825082492142030826790661136918572615699773509691408642670797039777129812203168316115254398454313823760333813938441777281499601356572590737290248244237177820608793569706605833493672830668078204203691683969177593800109244020786157232089394228295239890792300354762695574929005740665045916671583945590876887140738890063951751894954548762978484543321527370541477860699001348066254382733269026963378911451105808178429658928513467809466167425250167950480581643748717215968911596115868673718135165318843164020866788380396020156649003147482894914096948260537524185478578251666160076631908925102004596591327177070629099780758057944000862143419607974533682436246212974316130787930749733319041032353703756054840732646854960405804348203456953762851622945950243728547491210334190077244355925576241775550843690298408933783191227955253654800975048547529801175119684497091875001434611176377170810445708173629994578770438440886239659951223371169985136251159931401428714224678999968901870789099422986445040259656858847820344887949639973747122468559308378828884792591277893374978881344112322953679994113568721271147620961358781717712252141190203722133470342170190631989928767068817841852121634144819513854270627090831364209991744366381836568350859026049373953269426332600546801611244075948366659648079959149510101678534438021936993176165521761405158529626394624871022427904350918633954878174093180332648955574620310220125119853465349455749438190644680115902674974345256755672610140982962464238111379378056319952063447714873663660113672389359821153375604191340026673534051689831705935281803251104857016306962792022418592102582189404380506322066288694941622649391185195656286687765181954793152352264662956757408553743728884939162158213398518553772763665148737050132885177886802093570828182634912464799722654528011571020595365050182011216747826587140854127142323724740557147707138996575013385600516356599077138538578119404225715351736533208337549166744973031921496910686361768474832308561974233684975768795782228172329354395619167671974469676933978210882999857140261546670687681044881397460137680088993143977157873906054114987978378881284559217603790664189434442944525770483549381785949291402727979683131269995558404909456727142084130244874851937228171849154733743436653186108351513715883117120360879084455446506519889852079333381089515610502293198480698131462790631139366542569748237411757660657761010682486346435354644700770989418339589033413818355818396528732966616607383411439594284152724451633254441566309087039920848479088416864860272095191073267470837619059431622440476702158917398469490506037219481067350017063124843696884630355778795283092054051157320738439765403157617935304199152697778502366994898166311522357536752058739864354993863039617978613741921480957202115561158695794595039295233399478784751300371314723999248288025403223489027156750259880687740468955286852527196835928874104036917702916074086307662751554897192096943810172849500270472070958243881011471045391413246178947960041371396149924769286426530289967176606723256772624577003155824245798054563649197335136481174725737082197944465038513263434218329350976605595002124292840024440215367949791237334392916767259978544910725672386384989975453909830958392451579709714178349664233810706927334651565073003401165732119657552983285693639335294062312742926610402063536013196599802768078610373656516630773258141656612310348436770384938074752682428636679495773026781343056327067136756281532492047815302190154978659651257294600868630256149411681640492934730099569535792709202371286125116002446332249732424451559988228986173442751067377274366296192353025617600678680201156757169658486364150026747048096928698213951231845289577282304523960599579133706425049905892747818002612536107813829795969565779302520949034252900238929877183633334887988158567348889713329849324589882416381506620404178995163650552329252339359270919888419208374469268221929032249312303234522323260615346571427482670788446858130576366462689827592235583065313311274652218763662303783132015269335394024172849293498679310501541209003782592242291981464713976749756999926850878291606136636460146637551848607801050887320709934070832835066930325115753481875158240358234053326655410078464045927172397108984926568033341639774886423787942257031443969066949583335752171667951066954159335054889310905894221489983866527918417626529051992501967980143820380422543256670920832777305787574439127768794622993987353925564635684111350546161175975681615134995455168461479811587745626274152037740514166319533493415778643066385072854369782877769300327668245704528520087375983126219882630167340859942425603394964931038221342144629185278500702684138619475567786573466331831465908918545636204895302867152046866711839145610549024244554394171679466364079720403410808679100035213147004552657784024651969861856507705135386353811144601824080880166114983539508282237923791462670504171758730678372594345077077398337205655022535885376052470826426922526518455227768365891111233582224071655445637322270786518336047942977303204542036824449911633378769321096742928250287669673647645947895742406091438408263259521230892948765400347373933803775690371205487250524570477277344646828822439046728029401383229763143936010216880392120825130679643052604344225814817447699489764544182735820285434844424176702653886857020144720765449602143287072585270663303453014935328555685647620288053634037391298547274873139466327813702966000007300707286342683276196743823344149771877144208430215181898445204414960312776314377980094119293593394312007988628346704551130759479120411744655827816894883170690067834615052235382004731090183906995046384573096728301344889614116772493242761320370868010962753346631683017760414672562831668872168610191358409867628855192999252748164259431310274625411631895083183390591349459340560899460389000253879018789433410635889158492132692053293100978714389929510148803380007482791892652673738100416343963642405028081548868385932014774156640207417838681156559148188231436357256626476199726902722303582557230009915848548825732704667244473371078249788084820177267382359929579984323077465393112061685587699653447376976981431117177508772886670085716530554734235813204146880935182424678338967044833063816426775198065229784819998042700379741647723483340122500526163655955854125898118283774083245689086904059464501654443505113251041055446677553105397162329277517670815807764525896075938181015104289283882329532182903852557443629199618626652243398367795712965529964173838022584272521559752935101191814812205322619525957576587661223739335964728695398608031628571332749304275112169840416377055656587470860359570538471050914327991317008849311577840581917648113301902252279911837904832456297836208901132246865664363757322261597112314774734487645043249081102997892711769954635845652446553977749948208318775354030248705125304403256850198612156316883071191766130383070172445312186544043051427160543383453457683374288433926865798961628511100568205939055036330912523590248977838244842962908866620083715992329098072812783270473749606284750941779260528420108783768693263714847824783185355865773284628211584505609413917963605425135257203617629314842097278449113789550243030972454415003656435544191155701870752108500451377016200605540916080730324142154313397035272689214111091036176395981448256603278786188005095678299717080727648716339569721777595796637844073569754686948786230344595200975519250926819765733075361788220396399554972346148315686143241199196536785624932120706292275960048319235916058571553208947115653238954777817891066178749693163033576143980368422587036996451072950958109914098679643191582096150962572080921894304447354069058396662653476832213115308273547648701395177512462158394196812281195854635603464606073026554526538295253939635170725251055087445441869569026549089607623922173831140681263432748156398965530856549167980181378982193387212600289593846594944113477074239117024860637991051361999210880041832276625247412313554398667449672386918962187821137703551709194278979527591817585892198440593813192997292183620917354966579207175535383307234630721866401710570049002844254124850622130886928080781120046856178335862202873615572054010009047545719261635027627916743232498950959984918972386520866887473510145660242915881600095026310006607679668689628230349947628183670460544149755733584680566611514826375497619116033309712855438635573624406158791164913419952316155932487868237855876443045844314552929272920648451536615311648606843392800754975762465152474787609141900604678566533051617756768660235576949104108536274550123788353251544845065748135183171324562619839160664203635205685485996524784877493343912260256420057421435382257377897192846413807910872382360125732974561991722616681285078388930019028950548644304075516089584848813643312040423097293837589903055385259940241441401260522448648746730763997671123512963151863606286144482291502940893377904900133800550181956737977325073581005554510976162661481643011068915920397288921784421144244577875837380129064074069236019446336160963303740958435703049876756830122159201150644695892655761432126476704502760272690174585886296396395674531755532836806657698695456349169442420992607690593392829614545586862652891768541196454070692881287728185995313733834583105757530736091779474028176875856655281832346156221580452979584302481428101808865160424714662996370783935025281581358052339967793484756981829268265442199111030334645861541336714909228541583556247674881724964807587201761949351011902970634360560622335719919424083997021567932977919057083869641311327109294963093569101978548062525472412023088511914492120868394420760872920456655082962642748948940153312064105111577360494014372348492959564748865403655291527966595651067865642182929307518351225132569831540665107126661258886200393590563625666533002652903196042191732917385644685621686416995075217221350618765372681491190479597368730330913488972109794959142775841284466921610484563351317026592784420594387557951346706828997812207063406347479401537150612315537045927754970920891939519577526190713818907568542342363752624180681994852729334370878526957654681012205042355641363739065387796965908407504883351000789910863472097078747441258072049243038929816333598645378116966063031223597372111556733963774570810157714732980743990140465224579983933143766601464321878534290743704196975205248871838217572414996809805241370437651553063649643052074808119095665041789331483694080149402106829861682465196214999809790520545364723962155773671355641727996946607274491469925617967694995335190939775448979794770666129265360894208971851498687418039161258911178046973148237165410647993194780136381569145994752482207300517511597617366878001936647194646766505546327391897613347154570299857844494468424106398238949244562659432235067458400196427383355784869021999685258454686960203192414115208292484470677792040295250099384849738000091522635495387987546756301295542186206836685933848423550565273626598753286373650599463915785750041075346052277906697333894867903619758029897726619571955143153318208348969313739150374792664296739811304010541975480418922657299223354807605476655302245319568352116599001362813445021315831662128647188762248453816716611439724024324577189250180617201030232002529226698891448520060277442977715367376364709841834322408908162196632397212949060061253659282239513848095893941867546517365121797557428948710267862121917971811740435476267738512421139304586966303957547699226724256160778868331284970918600635665867771580710206757449231839777950161563136117054766110241283366562059051834318179450870016239845549978324402240197724091758476099079560090196992939748604229420053559196908622804029685533594123003203801093607960263703970054519971439750056510197472255964518391832190324215548714816238859291586017264971787332222703414295653109879042759741765975570617405279955020211711724265407942064965409139661149262017244585870918209643986522506581300413269567006608760492082227517412923835682612137524238438450300360594420247744903889296464482438697654166277616553308539529762295000751889474285171364247110994080350551734804878278782770171495913007092925931656874435529767460717266656778719342709405305587982215350164090861159535631081133319688907727334687930407541145573679703977384036608789717153687436870332129086168543820199412679582745818634551869195483572816090581968933257556230421649684875389672899849164141207297342857228704319540482077480266698544145951304348133754602785910134110129959469705521822295309615600026866916236962026796362174962422228585663533074239987356223497786145734456709335887742802456488041630206082605540017241037022920629855214113775889760171215535711786057058673085081237132765587087541343142231600804635057739081783265301302591772919621684515683504560410538083717710466850425076867613514012780573217587955018429365458441971097256688215760654072003675825646027200889888295570877937448548518033833233572398325642109972134936975695512330565878603386601125463805037463015070644788994553050344122976333839584729289436218560799729086793067674522547688651020714212151628387720598240735461701442825456294096414227250084104230177756542415602413829424638786935602967058314404065608123786641978090520554506110658939790277414547055826152220631749340446600420604188709963074477704964944370173188549354124598579407676838190208814523891463412897750867966450958923618088300618450992055213339789605018127796557162621423409645129453886851829856152345344744508149879079995538223623457296112257441797221214489207558956413933811083055611776579236012809421214977147238873665578257450989522118314653550315239044960255545608802313932177871118498318360877128137063369871281536887254252387600252904938390339469489219766217261575723691889142386282610440193430358275770375489174108691231583095549686977896974572427820839300318719053669335358360972247185274258107282953517268424547194420363462216284243886328788228888553697101327107408500470515875605043256248509306328025860564928125958603371393499141332558710211369031407118640683484895882051984720275353112358652913041025701777995984564374831594978633997722646223771649948804141223322332527615865152102405881617575363830465627488563122918959600753820824154091313172675887271681042202080545608021323808602686135934376048257479452820760976517360294353869900213823716628860279168704214412463189600571471814789990007382921846146641388216743852700148958263970763942382072707141649010171019143935627140597345984059858314415991837792918938393552871059922743548878692941722418582797750082916817664233972912398738920733344256110468552094221409468284313817777049328918905923108692999475566637967032998326623630350634232559933997991293597962139578254447419318193770459752079694298454117624730223530918904932442826130256011999195680794046000428648875054079887233077913018307094641770675077635495488164848641240175275330739377110306141563681713870143125517176010289297284302005151760611263774932748649802577307473288864873218319663989552751547538924196152050794908248530584194539010631178882834403015498657013903773390028856583258889715108336964020996650426295525679251150411481868211319623728187943155748756902248846246475673112256800500870142859709961760909182928734809468259308177552837154463544914126421626853990572219250177727379904686702741697913592018313866556833008616638794155538022186329420681962181254228453410553754779215950181547724103613907093300949267917793587726712051637046208810426775655725883816398938810871788778428470315040207876368128475408595506669251038816284307355015533897043316299258878193552612386319852231033045522419207597516477677445798575662319750952582436780533102695197788376401079817208478556282673629135520461809134183894247329701201035631683979293356544313177406787412462582211477566338622284502256930015756683401924560453084869662661140316151194426187940305216568130913659704426545267077979800517761493830285833773051221711841128083967690653861480768117236341824399985818104375594166523729654770418464466638140637300018547019651310965087107064611599040050569437950319212692241464199156514398093972650137098962625198640323783757843696700625973168922646954074648938869158615547465137875459248329379219403049254930800955441620628133279921796160095966850786655824358617572614380300803343728377944539293506130840601359400695549663510876055328039216451279245895706423245795612966993353803539565737019788631388310903621198229681881870419571476795938386687705661940640068560322738411715884641965052113530595639721580589305201774380201651689211318233541781922269729452443951372789227210429273338721651348740804064367683600397777439322373618831522739243189383344579205957965847186037551851695994286257366186922658772661116404881803166520693682290436929447019569091460066900746387383891922358573228341447919100876968131211350975665702554817213913993699363771443379700998039603192250593098757896165652728212992897244962420710970412637484053235463854225601049566676250380172463318432317677862555506489199490144484354865274146224778764630867758847549206623315184055336939067590711459946768506572947823033267124521424209266747661254315319904897167269892027312331954760976168072400589476578185295898010044419108939713403022861660704551480167757025614019637655018733049420380850556026094138240441251901465026113518493551506192661447074501839210444863369347795308079106639294607411964737176335315229589101675879932411427294451006743546330316386927849655295639085847444224860989916461014679232861378561014009961979001739005512871163096644589719432501613240683620582620739907427794847989502011598492182239382681760346229526848925569083162217114506409241111400306652176113516017484071874929390056739591354280133745834599432578748007265921179255757383126739505353595314560365261231315399055579395724290596207071491658426673551398103791212025693856746297663767450152661095033678922168178363382564462413443523647565487936921911710327036946259875558893694496252346414199197412303679800695442809096233423805442325776531992341038244612935044100819615936344168645935458098655429602704173874148084564396419623960186241723604658890864499248612211681058712043598265950142792676853886714942915552131318594224888198383386724355612439647108964530226021124199851126967131266610560430187295468876296183769965356528006424250027253996283243720451423026426883387501882941649853864872551841722416163641776662066372051835997637539223330154418707700398455311192909743391260819516732478148472528581824519815438104152482411512959653030748561958137249279591057409508133959438870644604228844982324459547960207763085065975021106780986068807588906888340509804476835355062515051292015903761366186287283022736741568175821226872601628379981397534658193387799468403830364685692886510012783140733729451549676927863444899336084160291588739374877816645454941762355479012727360836882529121455508640988330867835024025079771920800828301074724125395674261663951111341944604896185804081344740573783420227108245399758744274051748008074673851444890329841102378763317732295533933564141471060989311434755888445228029627969071226856382720097393251062157596646628291947243030663854478598629099616669385119277135457794691954934301381563538497127217903693621612184991892268195323475815456449173836262360134321106532101507422105333097759112432876223120057710905610558585476145156412453971714435020888904074379743007401345065119115457826213394037153084944805743740123598535014555400088106970474231518962844315275535590551288425523133325467241279647061850555847653249472328284715677228816659075852655209558516559561439502167066583925108486812375954511645062091261320725620042052973896498605535102095504628695567148136215849492175250001719885229038107636342887526295335955228309470658543043269235838681551860970746455825810788398817911839129893060962797646193521097247250226802957391672143550636793709498399657267997886008903889587043689314056704033082703107115778469307445568314615242025590087161061560847792256234834240488786977953701995761870029486261470062269118847316405376695912534640291370189531138340739071048311633336832202854612355556050091220876995806174813489322168014072526277351877776693271815093322190835025883612272322529562958382169892079410916876312133315406201065373792655677309852712530596600900461908538448657303954027047855194600286464066809490103882269223493201448471758467183354751007375455004224324164647506129336248217403174044224087970057985961447963654119632086589568913737829422665281723968667431233815105839957737046755613456110667845449912084076705054252344656452370706485253959263377314295730400945325693269748675632637274041393762456165925959098259903979921897494997938821653902873358833486915438444162714896160248845354664765575055677680580545462559090596656842487211405963243911507533396011093238907828715253480284702128244063851000827974030961252143915258675096766693041397891711597348560934838345244262526480601166474736856737580172918545562554656737993529904754030018826129737546225745702291727938146875832236366352240427109780281057275879753310098859064489600024800821801213899073526567202600377368174702099470678184345266309508248726000722369813395339381195052108298110713381076762509476073276703734535433408502439654062026123266472725596811977090862078254251457198552379721397375896042380443368744899771778479948916297800361920311558590814291479643804094569979650455016930838259155094493152954853332354473727432751817913286093688932464870339662988716161351970958834779306828116846351930377677120311908073903888667971350171710155153482328124719674602010760422718545985614221312421660122777173880982278096768131795163632894938012742240622964209542493963484275976964551773510831939174620144123464496282060241343977491372159410282667665691490386724891038915101406065965165251550647004491426423976300931962255645193211713210225067294140732246212308904227705349411675614163447346022939202876920495090901111561266484129446159327003308334576086549315311088943158510984583059311865748632697560013223833521480716809492056166517463788947158278742155539885734374071130124034632887575127811263865675358345968937698892037249890574170274342839814287071281235623929329996869470151746950339062491590638683003869194807625029132991318712333317149442206024367691099801331112347669281143699754401946837118360756589738696009482758725997475041266593317256076969639426240046647150891737033723875312827257592992350114464071495517505700926791089806991456321551479138610623487354082985779325942959634157401788399028320832240792670796648611598924886461901694954539655862869728390438038310680953966137524932756896523124293833031452503823324993585365380652772883678777340450763840254759813834446390753977092451517407409329255857977200089188881893288229984749936667205757051433642177580590048597454318444558684099168418447899182778071787873861374133587423190334227003300201583699295556874647914975252712966044611672003783189245497753245132853229692225063126375455088409584901570218745634351875622318498290133693180524057796894741365762559078183402086726993046103683136567686271558294057551341628700465054033027759610622169287242779491891910885839264606729009784829655103517253589309455627162071570514774775963423026770121914898787338627618420101774279109547028249826878900400058986013585687003479506824813386381853904555736209175396739273601753811237206198645028964430450178061314131391227707431537527037061924527752179670473537201876517976236678157933776220458421627141169999431458901372792372485227748322531994270724596272878342262677768460064102535602190408218588944315331008508631298398244768997670265466313976145963622095873388875245024343659887215672865788351022316581845090249769268799604263353973471272195167221470055392448503668785202834155230987839773477305810975615806757198858566933848003485007776313035581213164450795142426232237636488546929156162564260527887905459074726311007011397787623404767878513694133956679532016312090957321980353810675320013276487164467855920420450926208707948330565785641614775739091349251393799528448528364595966729074904077004221021972538719304336269129981278112068542468599421008567112487603368717665688737331344590186289961845002308893309354592258999633104730774154991579449510038496204748349734706753097978577623334223963750901752705030812649892689089319095936169686093546080066378090976457856221567656734779127482065339532318236993064032919797060441327496952386356857909739584193567161714009515653342170490971962248836785208368034169890412530903894253149351998857083886520662745460886610218095274012184521745225735858210848993228743814079587068548226674622359688450990234197628949809960846380915398694327213523159481663474233390224292076788475401333466365284098183662971958433597215633028464901954473364371175542995062960828289633952282185628773985550453358957014471065471061617192960097084169150703488631107551805142366641310598324591317410825474445551207399908480958640196529826273744492101834170367476774404140956946644717463142334134351606771878869567012298667181159438273550573103127804176032664776075765116912568490421898918438069717859009612019304137166666233663861306713054281735026274382538887276371988676157317823558187375444126237160193513578596220743674936643488882620094185972331278184530953218507868207135350176431513795886564916233336484067905376613683113797939537951393747410100163613937927108746015717493774742032328741113435895401840207304796020830359541732666718570003317047512545497637634414441133532016139707603913914913239268864246602294392355952750636833459240534580295215547651303333694061507460937274902306770059752780285098288463379710515247169620749090579436480070842627088808326200292381741432823807482768918133188003106644935908517533179775316937004391362066330678908793440152508464427528815857473160630726256823425885960155440469200779320995549369945566004713439706974180227661170349773971019548469952455231805601442713900056023262811104398161422105413447637382699635986024289836199994620706416123097447757378679881341288732713897203445118463804146619855353802696623398755006144214026946477818249381779725741658437558490485850110877368019886035581574982271764601313069152988970117836862391901307905616761335642106972919609843046700852646295255801588639115000515748955289522996611837154431320816345059894753454380015314194235554892163633170773659110023106094769487974810085924290340307555613547188013655649169616238318155863296503750974996361581775691044621764669411189599366785903820842799965992288895483365211948932610250867607735572646981094653604738572793738435515610074998739952081384358382845412935812803967837990702834124829811035259636639175873502710642223335986436236337098680439092491365332509450985359523527315406397564556366079870955705559830927229559448256105173910732969973738684120696268401531868571634762197628246742195443087667189710332672160490696821177049339564812270832066567078336912235806175925619644886369802775096607858042266864550065065767697759731234204206628549828528080737365680019684504473244766623519707253512556877482901064182173246042342764021465155775804527472809941143327867955658127564100793103989892431052361402835032976295514613097919802557643996120738559865551739476202573857724295798575535538172000431895245406702685363903235655391573472567683707363278500087363618484884752905613316393934256184194026816213366421500593729206456937351393994630029461969088199320689628220030868814211500590134350569512808801569613363387578550762830697937948299158146575893256676200827396018773320825887665409263498446258279959029595167272273280226962696131969023836235088467237489318160459224865097621329000862454215207275689145897161750879012864789607583466631398350402040767799116921258366160465719370259879832287680273934974099244445949509302229450775905587033466538651004082597288416530668727088924208160380288222744097879309201396008180755618314036049399752678461463412047146114068170315792613671626911171246683255256852736626393324247640167349176171260751057504208261729900440688110012692786633646618964023850535688646714186140992130513777866554041523670399726436431060437516977517455023664391742977235050061841691250188132845410614570142766687946798766025033204999238167352254219061454004268505897499334996004876285121336330581369689607018752689240794014161884482517556103499776233122585394722558089069954201429718521006360926301077294264957642630608392600156983939870983207324684865562565356704432916793716860335993294386641125719631737751379979491994926827575824001297086319946596519944079556389105069871592961076785145486357073593565904038086015286627220670597915308059866931363830722624632356246905934183862162464631403529559337630404586208674409533178296205708515052193162449569269357323122604427605815024627383478078514440949306906423563810084408518659722959861650448391163119935363715525114112725457991351339829768639236133262237071609508496942954295914488545077300538580441310596123780944283145717419728248325754327133646153653641152534574281697687483685302269772724213401429319550860040243938050795334907437404118772131300967904041095033466184484104817859258847775309867534239006097500647505197591779974207209615196433857550639793926630575844370865062766967146422852774604302344399034356589578966416149826947505730986259168573837880333906611516773234263912098021842420051463047269894954126882790312858360828702774181274347871450207329799755720437848296895086854717623259830717560676707520481890769194272212220034991522111164870108199161738030283414490578699115705647069444200039552964309424316985723286014332441651321206561923446016407271522559888610389499186969127859220961745852178121304200489767610033999560214072170304674957385772457469208776379735278572018634805679443710671001359765244853566693671902918215240389677140769390927656651615016203086187037917566328821531206137261872629731924829458593270488977214061800836059383589083440638581326311645779429391180482016149473965734234658577510931597025561758105561803194054770515426975929949064468526197011919602428312046184518044867148938783246350865540769394997103170240649446272619947925010887710163177062284946095928016206137271027131621330135307508973633893306765868934135572657087421113270067584025060190198263219436701937564805450521313467904105161004112093521643528715955458945572483764372254851694560609230910179206178918015587367852633760920457825920090558845003830162346997989363048535811332043799423479910517560435850223926761586772362877529255208877722748272730244509494276648666524506720114045687958478070076156324860704865911599355071477028396525928524369243338435608666782918483929132224552769272910144660805440373631308179679083430227245573522968610376935521452863742528590510455414722201395033114889819411051694442742690812983227972902636870107526510133113625210936430980502108522438902408098387047447404607620917315549166846122247912958645906273929066217841824938990783743555465228975591555620126767832454042023081181229175111138030351425607860984190173376299106467221714092749269883262638908363846796092431946369473251576683634067719209921416898519119783156824791013806047822336968742951438546370861519635867585860153767101692492208634048267482037087318547011110172634575880205943366898779146893998380034242367052774425831646211116224662775756397113122471267723751793100457393171109496227610224794279484019064401850509146378034349093063281174305093728558799068979533978825294628229910393959209126567444431709055389881733057540091888492704028965079688419437208573971653041415672436458218777395652381896298156000924287101369395805714229471223913701808248234222636843001900950851026720757771243564727219369317921500137360554644412630476227014202034361964751479272514432642172254233898700058831036460813577162307598828147818629601866349922326757218577891780338842654373222032522410269200941571166603367334016912878438322635157520176347519651561486486508408613693934218214416393983611038105632866246334397704231421504401893206316143984989976288405608073013456781291955292315602851849772819548671348452036505383462504848208493461872007868532686832640719966220322928937315975444011469115848514634820134323154316658985198851993227103173035064424045086382257707425697486791809280446838809932694477108772288962159785076424660210496584659006403402607463831075110014581863045356753792858811334777399840821390215829298799226058300475456793624469002815659177444936098390588041163883174774812877628092021290391398960548474700257930549026180882058175761145542677911968904597969265581406659102220882548345584665961081622947633816726742446605694721903679450022643788372784369708355903073757042268396593642656962198875093102077959558165325425083658186373191017546064395888330296927380148306509834645012518663007455956217208692652386804448409378067872796526994685896711579125213254834481073849750312528955136390556998518729784717081218513899253369915001657203855947739184279983114231064590333481517910424099994301095273644366599785636925126259788731607489924612963224154092926334198853896205054815009637926152221381893602809024727661627275868748426846223830322854863694639635490370641672935000309885099705512003407370807800332640346374364257483177919144420216718466218056329739786568967672124700354927735018759731388935817585206150904642091127730043252288912927211707040471323598845353285653346622933115394801070375570924825371855618039246912188069965211696051481405365370737563371158088347383199591009532873874068373254175138971923834647022766417057427557521398494014563662510537305871271283062286019822676793822835350377205743233839645847142577304028256182965500058055198802868460704276428791773634315227288214422610332368839636367328659670989511934818753328454373194039746119658208467339993523323428203527182047502194947539322511187610582580155612119141089349850690124084853375841614837135173578930325281002549661436741270784302066172796158052991012333947593217784807799363429944972718917415085760336322341576977935611751536205288560440424879975630484435751313430229151144744141991292941592169171557955149724637308024433093696111877218426669439718575701161467583609644697039203257911253583104462185501209623401972450530411710187825402154934859996855709715554211326193952405777265176862919983053393088877968607302326200350347112814045641388044633490542495015875046952408194943686613649966515845749254993403948969238908321642691872613395965508452300857328555891816227790829820005901277057359006963341599100036704279129926372685428006403616699719976017254224526854707172814871944721350924008562888274162392938286244123032846424475457027850567048828678784870291523707036107837513691489805208937293690988142896822390938696315105749664010322362857799149643994257440510177970146936543753057835216212302002198632672361647215477854396494785029358246522046917092950900551819413333668392091096995859193872696648368096113878786772021624478427352704719179152524246423468487571679847383333201733925944536447142369737993366227065091190826135334038481214006839031493062261545318265905551676063016432206800492747698203828346976194462514718530244819697761243681175501977222964218930767378897518053109284592076298174691127897187038299311079669261189254518094497893101080013008896904315597303074476352345056220436548122767332364768536143026104627885684216518913877001654767011571053840939684066091674392784403985504543596769917940098712446453424298050770970705126893396714537369955050703464737313731727808558710018346428736449009612046332980353124487894812690153446085435686743018097907474947598035194266955243927619319372071503097030534141593966976269449559909628591898324751850778554535774703274388604747417127400860692392741528810303167753773370150462042221244955209734727594151082580193919864028961298797348836912904841796681181843151953484314583441481670921531966752421259991008520293355107550246046533591324295844404253254058981513057751095734936036305897695475802512047254190787358677647147703390079319589663888248425327213315384192355218552356267247252716264766047809676624669916796419284336347297014732805675239383564031257489829992846898941262098261475579788285153406751245379380358611445707243005242836567279419930596682693163039533422027464875861007344197253078874950484192325694904641198177189061039923737720878965059854937362789178877712406975081066699274224345029161260911286343314644748059255969665209726990343652227965852826359805815740750690106848439792949762621395914005189331431713930430835928054026905836671427076897341618359391261124257984943409103069958343582635860832898709193265483437053424315828560021648224825966295828860539179346504407659692904691595444039209608978548562024148041411862968529479596089279535153478651695526339310350347861819680573050134460269014074517014757531050440748327808455156268583882097141979039751770212907578774827667944059368607858141025145226663898527199462771987028486646822118543936707385180404357508077219913640972801687281834236901834912387037125978556361607407313853318585801327312869559029692725253172780588278349652027518293173969202471749665745693778614513951145033943129801467622898863459444743889891982274907865599278290400753690647989756254661982021926539186823500099882813699879802113528583272108536826012698433588991597121172389224560134746033705055403272048497542484872257973400433470308270286112752798599039358351003932359533136862135674092422637042756366534538615435782830166219733774339607608443294125995080050024780116163050760947940215457455369327266537730091718530068954294751708694066461352987959448852338972883241794259888821933836918195038477403342746041638957247396527408883037244602245816909416014428827568796856795017690792386540825393247806190293904535280108714880941903216984746149109146791226614927598812158093909232829846619782873864494184230753596282080726972605249263194172130890385291709513160909643977416687624780448146505625587952603211882162389857708254801556173212333591083952313621436028128760404086414733160852130483017848245558368534421629132513376014193607927568098198474051772092631831576980713061371249638132611921591371663412736934528056822412830105449301494920928432834770426366395538597665098975891309252564098771393094591126349047755403200303686715341721840646576037996419653678017700594588906784620538216897152871597666745888713857679374063197702738253253720535591504771361987750587760888526393262216070541397102242714318517729964623823740375538650574548147882713580716065978497612703924217683662926597866182411685330361583880285226793946325069742366057148371569550273179637849212625544918963995802262267994317687474087765403019447080480198876899502476383696844315132270362619622233867242486643809408866582691499761772093357875792648259036513203123649701689118605286511944182199352758361355764832606551875109101442016787347050565748739989840401761158987337707137877709878528218144358591528183592643176602887484188690897792183289619257295861151518820004208654475667790034205154357753808404975366406673717231851235999262621357386131659604537201761408011118599749233510548548512982453219917569483625114022846677427860896747075220634790239968601978283015878162968017127220755284046446427633181458614985424970942107719095693661753821726528518826792939649933598496761787978405131066450373642008958890080101163905574188242586365866458851884960247847919870604670645838031621684023451378971437146895410116243757618820503826016421023218729952370720146508076611031206375797405765897245143065802961316739489369513763443353231484508916406634450335753180828139631881649348728578405789264114040878036681708405326936267216669382871553189231020051646596195062435999822318443247160895362926256582925623751853604008909500904070904606461694434845782837552054244084586310395644278553011605433558216592293838738561401037703707212917122850060776834414321088900593637505414918937188781515118068889528998427417864010932079528912023898000845957280827846221662109832079236801578210801605263168867962752073532002415377080994163838429688325810981947949529336299945768007436671877697350958308020701880266475381504609044559399477096097962680955457661000982421130066405259781075891062558846321773926731929360989961113291033494903199464653839686652649953691595559334440818271646595511216379271844307429558612101128959136549710828990203331830390034363472051012476946417251628168997145734208663018164039208866714708621484050595216462928736403112761666259131133689219951085377784125539789645826223403665913929653353501721606168885116040027369675519855993747078573497589391618172984379939965826425149825714111192695073345512634099720495070332459029088865332719257645275750531413530127542599983964584033183807605235971078470847027472113395018475297922587783819628249045414234034879461269127808357935330803145357440357875560073150272858312572036699864018330194914307096518993054652878693171160165193154389634322698359272238328870782488321412868862161332970432176860670797395838036715897207598581811954252629696668994879195008317597775395821820067376085491096040438560364559865950559061761628527708163515419778402779901009239533755568182782370415323338179948596583240258583808036749922956695915049105980271868854173225136360422276126896996352413197127342420500057039044264764606689300816467731436086688474651584022726729671288163535877739743017998756952276578094911276100843471164481585411164290273736856759023276278922133839440695234803032278622912681194257582561183589892771009417219444649337546778446139552893132543021953021881318437047645505696664775405626064064018860516613226050060013889027831401193832669236140195263239489543216865632867942665677707594938103181054364870982895370969882454161700806196734970371101499803250373050119063478912578714069158035193323714098640729986184480981830951229594718065597395300815443281462857923294637331944138301704230440931537627344390127827032091400545611581513911641799873605229981950690586326501417703369371091307559146875208789983871267468946666675015981916261265020770726531589075654808644300836280830870941578542872051239679994844797249193230935104388077828235271600231711756422409271221933342222936682412895257144656759371458006425610662879590860261689287532529665827255896066438510589199946043675691466393280237022337463317496498679345498661549694240916849801046976794718778112116842584712697375379871460087899478053485752042919773321639474485967789560445855928832168265921703848739521796369782242932521050298543807506704009146699028124945194117690746269665825632851997170617504247832799712067400310396432811141266735447461567659176440011438614272136265397120262681220298822966440193831149560569905106869543244896709954565524630985885978142750687129823829214964025012510220761519009629229015226823901193233576741449738227818905212660314843000065611116581358406240062582236566375174036061865026865633284700565963247635989127970207864708133630847648219693464050905455042824474691344665013677712421001557743426395272451996856505125325845319742425026349634343810592637246166456978374731422907704853634648234745859897090277710536260979510108200032386880890854371390523721467180752770399115793058288679570586369113547739687994377227202780765610185426397438386858998204257728084774428087570104427692936699976980792510741668982032405621458931656848068054279915452754948502385840897769574202669351053904568874252609766623329937044988435553910536502781004946071758043797959076862661726870703905685418187793589704021449327697912753979090087469813025230142623034274383657177793886643124317858214548843804751253256723991202786950818740023278453185312173007871344945577225623073078969482230065788615362749691490262860060840081040135367782557174430441140316423085489023933481038598454193979940781529704501473320015063213504923279656215154503175587293356306128437883750843371375226861933444626326553694748974858710273228546885975249948056960668496285965546123592925435797283518082698237079715940694736110415343852875458606753473916825718688508750448369494838421162076652461611826472435568245244313728769767675331610249883497219248244220673614604878530609135242573138416653949755128906365520663653524760235319842774466299850697833084348203719244912307688740103826643715243235333104381954065964637340860486895381997229132761704546674125541815344102252256065582995675641950041193820708542636121022800258217506099698461850726300921219945746651205238495867740816736625478441745954522057834685793142871860475715726710250752260022341259286759654569089726383605175814111077678087552841912404497825982177005420839101819694121539906661502891573407049943300449165651443794333866259097239119366875075378536095757419000354685213096386313453455963685372766960646210712870760910711677207975810712693260595887662343080145988027459906973562939929089052368224822840929055017170902143206536241855848098002425803419344243279624529640485278085562484192086358496968729060228553834569345335184930293721693133611583138782237321449530063849897932525867536661838739872705741433952047827701541876984425363945726249633506733399856958600739002449659593562418832186945450172910187313344020985727997433795413483787552147712488899197442883664485623140836302930057571229081441240344115136731423980494047468910419354095682646552614483148738285904051996925676619336093514376302164957790520310738094346249321159269389450251791163339339141172276215100382252695354672526465205344587635050904032867826956324371944205763173909458059165277564567676738810186485638600243578613918707179107103472872775381223444695313518128790062392143554743182661653718816522655610099043299938324951771538423154355724029112444824426315176358044605929264336878866780735873790260021199456016833958317308206352672498825204715449609995708731460399142641231076110480653874633169453450511227493205651729842328846042871816281259073327778512323248763211728539432508733994383118047353030274095167240788357101163137470224431324829198407547537152978171149904128412307536875443040533993253570107483294945507495210803141097650621219005763984345018315147399493080925700837309574814524349954341376092766266075574510060299561552613749003127288426208414811071083620966251504087281577763860590686113911242447090798171167940810516122208335632830025899036618204072275226863408437226644147891566154815684408701951364525889416462518756029369358832424443334593715542074900452248798585284864915505201484167224442984108550297037730460569531377157188452835158720418517279541977291827692056996204288897541830933816433959313269738733190506761720119559641973349284556397087991761204292274073219918169176369592500447909160116341581118893818438395613616946629660478286173337870108101396950020244385690170804268875113018839890323313441677070546767238280863678302280185402451255481528711028077282175886956725198745657779458097046099764735141058075731536615234085507261960705620689586050648526066018882475646540500860792179786272507974690457552084371359193074963070403487074369928470923459597839535874669290270599044640331989472638278928598543516944589753733318563244521214750918210761914474310544637263941242260726620681749039957783747581889887983152704525046695961342802351574141402621032904644288064578096964311851816040714214931089191806885950327438130134923370501372851843258167823843528852319449525244296285848232065812139705344819526239474231053394593741230651949941946247359563248728373842939065653662502201117699596714506508278630997734482144888044277398306044481054400185186161793180281090880813098217237283247621175680203167208059244226941421066076569726918857472806311193013384229391831290441929704066209706781899754769309855658021012636466683285195225359217201130761518085465897638499666643675088761865793810036517385827232578238752003980388987671286296154604063188911015556373976789230416890023748095081575541307844737705985511607758894027709798357618883449275654998709651200915313987816819013146513907934363717990842413144776343254004336730722292941934272976410761960059888200099217444065229190504101359399034456892191344328079697033829797644615733804814681131874362620291060990336456815895967751049240512799880487544321333504104019964469002868023350499849067163079250634807486755203879608734104666248997077878244796524950597465962658409547406638019508802218086652118563596437386071883215192719654783903850920392128056286592662227268429922056245329278250243589986557952097000051464262715009000052299658207287325433620896443128949607872693129315232571471172968164778640341971780216145183536428380489414188231822901255541316723333764190442204773679230172423568204457914569867144413210777460391833109223041310284563717394173346580245705526912416341806439904604333429126478714139932531470244349643784665304390249960358138701168505511692189584742594621761054449658035632320951725714762346694601483633283796445579195617291929020629020782523409075500481044830145776137433969879160226057334108772181927833851554646346795679994861587267227049799571442306882976906768444546308810574705414152308804334358517517460873051968479890424114373635466344185143262746620124364937224109121266802559410235132693014736053821268263782016548193033323704998566093499065807069295881341664409051675123089764486248500542012331477244979432760632269591523013991836774913180188741616330790571924965773078183505861234679784094693931871676250509400645211147586665688849104012456558492801994949456940242336952343869867570751969846836137257563283241921026510069391162871374386660960290759550128493515321144519064037064278823561618840646102726188117954236083175597168927795185282741697409821679852046403670406531196436871017318361247419934326699627931662389786452791637247557913498588371512430108742164482016768589791315795758171261328143444188034979894320280136031465604667007436475052345947131985192192440525540671408366572030577789693413434648479351748447541479894434790557043045692113768566554540099358420899595450436605026745840869132346413743317850653933780862175023588266997878748433626766070108386320806281758018471907084681457524540993419470091425800834893232082537391392250796515838358027769039565230749436317321364262983665625336987609061353223713385784804157954142453945201218297148913331480137036012621118197214174614355265602417407270359951630108338876860375153382263750735426101076257628108976206173671115187633019855105473016008715946890747345929786759777740553163021829821367267209774763787585770154538298466836849544810691115488031243094866676838911901717797444567096558769575120037183210579282579396955414522818811967423177888330153671517874067296117857826265621656936417294238474050852715993568030899408116815047607291849103036290717276503469692911498932411998362350435183221823763184328401792986323254604973510778144735028179553143770688786330312124764134528580402698585125382107436455359657399667827487641929699836853870816176123853238338861490517287710677808494448039488484421729108743582200458900957564203910897082139416894915737603645109172564144909832983076012987099172895063790249238022458489233459966900975773540182929382273886578895838555223955991821907263136395235963278492762999952577934943007955105516092980358474273688745456991255091991973815521642172097961523451073459313863570575901789652050063852795203728042769075276736936381961633610186028999848957598324272181426623217064559253296089072519571979113448069287078669764058400262666655799137111637582246660442572647296703769740631141232011554518404229041311656330783712786315009362002616424836968561352947651145265563290223499372064694654992218370079278206214945331547285863521990052145568157508114857649503552589260684067024282289009583128521463783919588763825032954140794209216745753791276236124975453016070531168189391038824799806146091462128818526289368974106917458355131440058538687795099784263549314562559132012740146094414330540123698880042819912367341851230404148732248408234689057488915231645654131651841045220312226692087509586933295941581697568606531535367799360003118651325412264457325441600936470558046792776700798576779003453246211729057792933109163328240362326955038134884736787676915366896931234217582973217955507370638840852778784971970325750666593959437854243178618485164531489843910250186692644633754123127599335751811123051074643793180816849788036069024780690862634133613826505074295474394751336589898876153283584604227403314679166485989519229612402655961287135345780044140563217851577327703304238394623349665862378774462832156272870911791056914854028953275390315512241267610889550410488590051836015478676614898083090450800374402925968211712550641565546331827851614732723103970887978330482123971381970209598292200230326644323977618462849825025649056277827251138932368846536424378682741469912889593974866434670491899952386577022990094414041615120366790902050237753433431038203262700340545345643846861969531117254984122317916110042680289191607710484370986735180059487583890711008390436533163819739568137429689513174941832838182541897767939567980062152166314321249622417903909795648711301500097881758228258973282067442294382258409785791712997027760535542102203542751478283222531851520909289650429402159491071815892427218312413445905520291252807769028391739679399769554417016995931955680049150318121566589747356163652562070535401167283514115270131520267472791848057184886771985513215266707712206927371478430197035044183703516851685163350203622535128832584118191860961732736767885444064034261537625436061881058853522882345739929859203052267298537803753665513231299689040961066952947588717760050540520765096966701189356704570447525585791641989218127142526107082483817747396082674569670667784664056822087339404056508967962188139998491438548718182361318143541460245299239763895886270077106756759770803386892677305038127793059717931538040910091662704282330406624626657845640018735990528798584572254438437586006998852116119751623666644403764426279329102989304333194702242350071373303103971540915686589679146251849479450839434370882857713849952841759321377844009080889411286427640633961542835415296670407781051417645868305397793875410503416708545278796737604190379551223759177591122801354944755390939606549706430731117313750744062417570953100835679113186133431502287340875051864220499769682691476185490657918991632515245839535858915575205003968711603710564103626545834153185671249597395209899580808115943824686221977863651127890144362360975376751042086795900965642851804913187434797814649505206067926959533166405652212303525295280470506829684029290240463098256168441920270954825403133171003766518389411475571746960626945479221182668274826644577005002132668029649865720778977808191569299350186932701331268116872604626529088723116169616291333740135084877956178513521278281896209528372746713476824499212657358079716191946696263811217818122660692289319699181499774063862290625765999349805742050495144794449215450711830587058899453867659319330656584177777251996837796653658673607725166913645399186497256622963770367644770439572807567584597990133578837636328815287518546034902730761214246509130379232986814040878990147670691917159038422969556944126658223631656660577813197808953808123291510101235731862379415234036580993602199425146113567393030717140333409462083847080239034005912536890126192777518244663571697469242665429648860772310347572255045387548320155278608291731142285915672350234573452064793815202244029418833788592797217249938560701211719603035083245940516828552128816783963977598736057118382689907402824223453090880844703474660126447711759698760480706031137363189352705644854352336047800710577179495847907792064475407594313664305884848220836319339943917465595457201114462133882945305286486135596758655427683365160183505929157040282634788036532077269556244322472256308700179139909711298942590051319898773330055845097493328140358545446502404015334945686530009919327557393255317448171301996392239897848453714539960176392905474209120843144749915869130423971244267213299664935699058112597486131398157010103029287032505021628095326950947741390581339715615881025078770964313226733684040453266982509084266082588119139975044821963784214829029672796659383811900576622645870938450603361069776556488221143014536328784160972343836192893478950387326387390676418134511611635867981822203987283895278942053897182028754813743523811983590462775062089518900553840810004969397895059551356831377855252623300885225598140146542745941527932049153681301102549652652298373372105578183749423865173954808194542796420405854957670723050875266448350581582056194409904238243910153632199445809063619041299352192729909811863309183313898312682967330963075349012285863265254064013714109590754515784025733149952812586458413773889246242232519655296580986188589718228856940786173872783690155503513337758874839737499438504924453899621037574223146881790767515571240230706264464447309225059153388428931914495948743713238963578493642873952455282989201176630576289870852221532533950948709935025922759317547962879819217756833549405141229969302012856609975728879647164986849639415232640816373637687253954053234286566558973383138518233614186296838416710068203004414323096830210008442368498645693012901861316696113202299252990987232087659859001320595682584315452182573149144376803731973048970396235003559187155446936904068332000768576831222484486598652950693349393657484215848030284830009560266460970917760601325654106017313340186583479747958037487707617404545715845007392354715845773518886620956928578342213489927698775842305795271688789639440097328515748107406131256446380856115960293159417100910821576438129967938511995748893923377393079040211131307466582683634327929864183925014828892569488122522054556664857368595672155888173247099219065624619152802045123367493021871266622725453144912977559406680606956821033623096458637218297439259922346881542830395418605607434070651831192612421168222740747322063369008969160372514503105413649435672586697103779336547672862254302473046430478910722151015625182405182370784906883670103479994392502041754824627863297368010427246419017448940310093588600032898694393522303398209439556267610441461636464109963193007658980213659032806638419729423390947247779837534423849078515290591365170268464527866726544422110914263069037777221823890502314265792760669913286674716304186200607044357320690166727748974279122797312111002688589144228824425912502476002167995567143726040202935181493966015887121520487146422506290832881985735622175115307513640541645559484161997394480196195673378343924869099079165043613866340543273372126695099318025337450549457353895493981034451366425561538764900679490660833603397244629230061023841210453010216487273670323174173435861539390992281359679432648542200787870578508679981473056785628597231880791619285543317402758781951846017383893586623703288045753426142773800295770572921085002695685192622971556548722063990011106197315508904752322361571644971466540700137868040300201811923132966172705822837843479110877588762316570937829641175878237744991711881348674275082777894569040654708431976418005334222499854383204279171132367809475863095162491178393484969330008424860016426865041428500056518384241673726361244764225897919437892023539441740910906780001604032841799687095477572650474682971612051573750037877448207054960814668134473681552754118401732892600932022258284441340717813354009130859870648011684602316408084760728944865345537639129389346650152902599724482977889844936229177365083536914395869791270116638209217055429390118936182624033787168218121968172939242148091186472119813159386697368352628904737396710428992117220415700059043714806474756144740311229913819812598175012545699538066129333493652748373716326592279358271077364552866619641684082395477300254225920377794897835006368766280489712270087952099424402681488504264234350548081106053433529906727438339289603930495655755365787681759154980620399768194841677316853422602193328673329527126928619940464819453961858208779103928519535053259519615994537609732499140044105459144602929617260840828020181878270263097674163923226624922408916675458932135850037550313337928591253025644987584928873850238701921184632158300602315980239386718876032138516523718670875124904743028332776552812281110060405535408592986713078647562292286056322459071150503134162143886902467468979071064774990833277899426237205175341104491062406267962617389723015643312087667374991777992020595535021829116563945833854853326028239304248406255499051184575919268943677735792281230625323701166527469580049911726459401488374369275870344714015794988835946772843317121947436413468294489966334578071363656776607701125270731800446257492578751627556876211049649281140392304054962874708895451894965587697151477898290133116963960935934068959296042002630035133538170818534150863083639826997850053079959675406614359600612228648261113885651164621367317792857274281512482167946917472057597702840711970463264110838018329295205939423994069335985190923890954088822493194843141464001466041183905279491042789348032681194685117137486847823090242864754744518642204083960866027491986068109577959878356481659751038065763917877423413803899312666581085371879834817834547048948590023706245611318835093245866799031416434989144934288587043524928701682604886613553266177107614814825839429925721293984678003693953274322996511697884849818092699257289999931689630748665090800528878523949337785330356659056353981731502338912452034048452741036462796266072880149113821422601718682218584902742176625044894879608916658406190047645943500990055899620911355540567043567863157042661535135572255609356331909497328413561437660660746439495200927636186989846982076713573235694677214441534903596830264624575149333218885592338315469087753114196139878732658024829329717690675901266185610390353394983791598595177847969988463302831183571979727525176434728063177936387586274677255994002462479546899395737471386799873850372409266677425073845164461640465460315264262421558081501619115420934395920779417808657960059695848527092372303258515390606053585071931869854647048926449230842134926780508462223357755749444295710115391445226028829971605932790091487114366043290235682957906006443969599485106583204751626053717578154607033696572615180420843058307320879199360757143065631878095851327961964619871513038138911681557560798772774484453496641127525330045501953055306997827317743550012341703910314946712951644328800631498882200111670516477391589346506779522214361716977851532386839624136974143432012535407096346178199553123921180767428624270498166446743900494319822460041617650390931660874591347317951554565955206673340266117056811994607471973701185215096232059253058452071203573991515648722662272180803315296511964108098222394039094934535103318028998143837275824016218254645898980021710833968450921965013217987258034446427445779759941442428512922502937195359638795152711229077746617677660084887183405376481065234012717692146415796428950982866683849232566475529143879527395398054491464831232119858695122626664292280664716559456658922604010546163317116989050461004646301737477028306337206995108904156380880555592438759179869418088563003815777842209718787294382426403260477385681768706782990882263177389232225121277720342784026928861487834660566141489011307105030440245202325248232156498562122973583685584247163643932699678078989487215935507088577279717095580929118217171305919055525567608136583971006242062065860746918560994695964610768786149195498976996230584192081637509467863681379297690895152196185449490457199965500050096193361718633948657255371807825279212425843533809436486802546973925136555658800045599806271122799039423407206853430441095581211611165959889549171011670456893599494937276987528019456352887887617860082482761148775383237292829651212291508175324604163127035131712752824333935327177278150170069947650598777446542841489116804178022248132396286965413768547320579131967411687188002544345262216216693178786104347212761509572717420600339317448932220002212449008767617440237128334229246233391754475873187168503991045172777896913083584892264135239055275029458261628039076053046389572692010575992952578327175784741094405868646705640683257849185281977661270945378370981278573313223595618749656129187285616785373869434564400971988320649750813791005022224781889585690061971108050227000746071781833800834060388155416507193481474666718084911714533263495053529682836218312796906672404040434499323469876404976796518949020279297841828890723916731430159492135991100733517652460099724750296298612053855852217421425474052060226477083256228936251402061397143260729692460144129434235529970791485054175726687307133523220265168998449307431312497169584238722664005088113053203691136513850558743867959296484741830813535363607898836258769630138827475541953425387608122769158741558446438790153288666272389738041695892132425089594921655852765274688850799941772883246289920913550900972067063991537693464059302179495777854482883234420982477192222927801432512778449864448380647738188848492217968907567743204387939776164144554706678354279520569563429859649284639520995009751155759123718008425557395672844537474994798889939090307422487285907051575032952623805941107763495190041372117544408546182458073621353896200803581562698530960499048242653195560840130775687422532987757361825968367623528286107732298014150172907282274718806552297383548201984324878013699902190359639011860622113349065098634588049539492478120822132393847754565065556935899849462042377236675646468352208342774720056142273354335792428318035790290398715275501065821506919691649365456124135158511562214006273365345966243513343784719788743424695091841567141290433534348763582192819144543013259224656308892032293828904252043590384585799671226994550138888113965649114181629373698040289123880178789774069394336651779407460679612565888949719202508056681920084694520553034218832871650727695339528382150129355845073972889604076028552721698644106472193897552416188714882586091333300874033927399689908860629700927006957432972877770824620929638995651007853647961030821378497494228052015006145819588014947323210671144881439484200022149349137256829327952711157547501631347449648141471389832481089350248323311197549952166847850954169506483529171168464157932844167098553845453543736209787544815110545670939788045294017281231960984130922789597025877532055218683173925470991305448690137961701574344552336841717319247587229384212484236418083458437744392433926854990917240198931515019254560720145728431598824977512517154228209722365924442564487393707347685194801499987073356578480242568155700393286520610106394319015179245317842628515269522308396523967884849742594755907020273131726299021519968305620882717682497699850709036822639469511427659734999447087586275909564824171015220555171295214892249567193778880529262821430855583521520932820529665102252893611750842955663519043088126270648293306151136544447112458584397534581981022772878757365837675600548712186222870483657228244667370012560283763122977834274990427068234797732875121883942850890692122655197477952856088022345238339910943383814920542517907719315174417420730781113656580731993837947239589422961363397915401056557853457891935806963878986857474286743500370617170858462727746281030912804528534226864351584221642985083733182993403200012330577709391101270325535446327453130152302320874530086207535795556814439961376217686563038808962571436889903293924419551809426291539202768977004057669527666217959937882947328800170661005863339259023777368452467546330712249466137454890345479454455777869035260482359545626389131184005693898670231743791425331381872458539796790914097041192044210558585516672493658699930921582443083379745740829770630550470716307234376719854105712706569402976920287810676226591720563984832991332989687851027929784647804411777604887393831654905763399929349942887814910346721620138085778156378814577666629747830016074811780962587077509752184647700011330836518291375109398527481853145356750349330856719276318318909979518534360918179779981348576213703291566433267702460294813042055563144106607860526612331702255169942153774933124452775281983849389543628849651506885444869913623209777937049712456795376478853432114913591213198202741551298102542326186888447227095422640329006431610668525418653212144240228354110550226933919688934613374876663932345118069581914884337168169953582801612496814758565802841455699176058231574293654676039907967324000474606135474446376757790057695311973813924454917545777832048364256921959283652451146816399692460629694124901406616703018772673954981114812530860882593924548787500680610407957289716653382886506352450953457503750155033240634035545841559095012925852283856015614885788915442565646788205482484823172105120093077272297035064536326097338984430283605851390710640757751232828561691184920887285179306429119546270685526252585239364852867031186787663860591120915899219039613079444994615728179945577460210309522291016686907830996246220818241103288465538132541295267401252301235693409265784122087625630577236656469552000221627311535667537341636556123409570738422532173575182659397357524127504254144297652543134897272649350351850319035906750275175591039500706201879136114769397301375624366224906950411166675263183630345951171319461146449544824210806227344215267723479098461078094974008797344914075571663036022013163611773860108763734461067373264956533642482472730175177119575353177026836376341415355700020365215850864920546003208911358112045176850316086448019855373209205687379178780211410723907078533551412881281970552672626300851976269625930403688911796700676281616621598152512604486573323182816276645473519551860754334594959477683159320628401748423443381914501943479970760003449026285188832485920378634805301592298679448084369310059396538472805901616538198177934707391977892034308919064980387890179033518689320697548254700797770927810917564396390732811851688780819789436855133435076783589299100810761512927042559642799433309500378232226013959184549337629354988817089342280373714228702181658764346093414205975270926397236663136622938032925246513653628162272380703874447594425530496623838698854629496776716178610252974042730068743742680144380724220026427636306493723988250873089105043924361519765534539628614071739200333234404907442592894935724074930241750774651051160934974397650562171863215374547042163327508578955429386537156201224295017284838327170923430374343308694131741529760394187008908825924003907709208038181759647883216912170046488604427276668434417070893477337395377009048866773778714316148232656739586088564517262295855161414868542568032926955887152402324337975929835481649130519233828355478138481995910751652326933566155332530426687900052710391816488232549535492481223667634968957163778189238740386555116475831079494012517817563107861269235944823712114603919259126123956714259620520303250249074963321721623868893323735588141751520879234335572677776346025639763070215683093323813937490198261609630949412842660656897828508096647291133772312585087792480235830197665553546849040179643431329545165858897215668974928205584278852850943011103082394347271556206874952031352969288355935324278120829267875561619684835836279552402369958415226488824058163701135086715152617830641034209118123592506203976883549452315461579798421100402127398273382994482955200225825143255801060503991960142418689468683084139176917660423886104732263405439510469623203622659686835250712336011840940716035127148605996394951206815523885255743859200747408097708116370206462129335082228978056201858648089242532180794942815050877179122353758100195035830754137377357975345290573528008823341094376747237803118877415480416186288451246955133095118708569677209838409528308844632943100865070859675312928201630514033501256946430950263526733187465168246145076276099361844264087216543271803884596655843321518996557096477891504420959295917678340505245708180101809113537796307763956958597933421810329747076275215236637386179841697946802756227200952226176607462247178189386579892950093733647793957348574421168763549720063828749591399607483210134049728211913626064716658318900114225418998656589258158149895733911376656908801755970631100110677163308189010169900957881447375109318086845583112646433174788900983875127242076269376253067286046993401504407918322853577492042426741698161434523483404361748501027124176128406325707993315067961812379136135763583804312011421415244974637657094909961839829866613782663045163433142999743345920577704461817395866036502898359861053998613178008730927854304313101937550627104726455705592092628864930589486043852271930717214128015341033324999545434107221958273805307061049867500366145893072952016741179668208227464798280916570898193335419366765759399207065120104590903173058890117847737075676225862411631815551843847857355840509564511036277326116610776911833856441264512217698114509585157869654235292726284926521191150742859572701027352713385113109458804343824078965828705711410764845028201150662373646325398615499577811852233156854552036629428085700075924346065942527275927879825155745584358705285680512692988424875629750213951813431551404485619473520316202492880286135192718518187657727300105619521512696089372549957964740340934802034640162875411673314148620060281982370605348988074879887326985010233633090012686839491968714060343942860302204943688375387849539772519724594440613635236551257471307828578083237578472608547458154584106560175307842530753130990551190976253972073799261287485681929239723259840773439047351817965620455877992576853096135730719322531815945934284663473289503826027244061207434661449843815573779103070638739652793183696766435946143607151747045902605333949292009202582913155781610083877170961739414628255064406293166579501725541414811905288129382440188210297844027102842029766379445832889662241687800134390588349716819776293769208407763584205765293062851018727908603896712675534471642639479735001307493162432955167812607362739758211833923140125437381977158659802670484109452332013874584809396511711215644128431055854329490990186399822825771352901995660757707782536260286388624723081307058319515208482938195056374945671366720034115785070279274169292356703202919313490111208447003616411409731317198819845848003377209525836614280471762432775007922449398686572248181428190343834669173490737499153404096271199168330395363566260218580775209908265965768293729792862476813989064605236327473977525619951851201946703479456505019803000791897315263209589455159202889318057205411388599520392446487571225776550684196072337892418676816691573769720832059070366546066127505828279490641087431297961624857810853666109283268463355762577259689146157042142245664198907235599564030351694467069245990935039141643311933582769115990634953343865716439063941948639124260676870639887863603332749917835901072572114202099953367564338906470923968106570039575286222215079211426005546878485785044166086780811882398399561515292082935708502332922798971827038913154863296446095415801444717830479833583690268428314796062144079856200108179331777312994915713447974197495688361773079335825941136126371903650651113648480069602262036028654016922022887328017615796374436147066588098302996634420607380911831638947724785688297664808581720542268694383751168747914669770337447129753857017164732520874009986991791260983525061878854305924587224134585205073993289500162068130820792948073974650755605651706855282665930243179224204423637967307749294613314708983401096156806687540310747965971192934290788297383884476553756031103478231449954613644464343792201830989483067584694416820913682546692149516379965880884000930136911708233284999732519620557487493689948909082509362650693072666696283503622537330159081279553072478642745564257017145064331367722196887365121922167501482133101757558439608780474636143704732988709146447540887377391250001882403006600682211377642673817185728235415094214522250876446536062984118109543990188468964943144785868753255255832255323181730937423043257281758311830210741023686472652196757335144060199194517795099870789591822967543256453096859755406271797043191139329095443389537551379781892251264279289814612335590860655882416643868200191594805611986257810777390378574825012732203170867104661632378282654759297665833948975228319518596474736029035411392846367892691475239990403842192230357296093492949488420111232462752244309528034840005512104178880428052353797010900054754573433963456961299230168987633189682323338170476826429191933396459935344282708911536197967468743901584402294090419336539956854657726829948657730123643487310550932206664184324805257210596376730585744925098570518577862669681371058738913283403156040763547074250550808535480218976648109518159296373812470361063090054058278209224469149386916040187287102439675777451765475570491055659890536056049444615300404975761172017389719650291968103042581813817831275121622733193018743255791975425628417483309409720558615246118335478749990669974286651613240775469564801956163912183297069602057923722644076237550243474814193701659957016551957537887527703897585639194587915417262875024971118623037495713680703281844378577428717073217433095747262720680931795383920448335376926595746781390884782100108155153495687464889275855835294549235608729642118647854144308796728904872703113959870288447100073728209905397597727753332194330270022214977799985614783124559786224193508093340978400591194799202652346742632144502525042846528344633660702173437184193192403151249122979461528220539622237012729904613042290242805098736055758112563831728943300081075484823403736634746598508659346995097009771690136395219446430256748733473260675176457978444570059739564938413850035461065055189999836002892209319084345598754531002070974266329838551051127991669067795905560988656917815131844405079179609757061689001198302593999104196494756020271615187699670265818897806368043290778748247182386425584946204065610297242206725615346356850331408040746085775324729196125254478604322647161403580514283210904477443774862203313202924156307943819267513190790117274131656992110946938606440624686373977273835273255626334348640559922830299553587280904333250505487388704640428628749178889204859296481829439617912228775245893001712707273617909657871533920167301445801990632919919050390920987020319249773967156093794174431276105994963041273686572683638082936915426985023779180232076199084671781106478664628980352480228492878178985870371162950505731291539778175165751084954578324381768663379077027940797966250963264988062915629181863713025124723674992700423733316877123022046016434149636505089657569252819248256626484565626990125494899993035794834872850499854420808058466607708132072239006967409609574729212864024219885321825572425907065345659736140887532371780669772819994806625123679710907593199214807266377267647476034552683641089272603783131601179811684402337331753222457008622626961824939103976401687722030280221956075932852917835757727036642394355311566084335718430965991708071249621609266380554438915719749507670115835917127807369012324188352645871326029573469645272600891455621507956791440113115395282144133010363463676610805378763278296700852835944313804748716555051518277297080022864761575240852764925240513090035693197326924234517703200975045710435278965559859492982029706315337004152755404796864294236139094498217442338820011596235984628615710330954288114428941925230338893519948467093255604454810260444054363289223099336727918326299406550886340753883170032571160821009726746442567400222604043128686506556864629848840607310399721481446041164342851105146283697745249530054955719495976551564611984565717095458171856153828509821971544343957830221041362127175825705537717683818087303367128942609835779304790620905687333251518504269394016303379913112513601205646153506520554135248206928636160267264265001178916105142564427343799020907424704047278419743188930757263555538561635384793467386064761214367113038061523893746552338689896167468335436756729902656958172735482628189536110284732239882689659864340280223073926903680184036407265237633405566849326411170023690312285683419697217716299246292037025082802907485692954142149683856864046752012155158446101893693915867510843735933486971048394700359034495264588659321165570632720827985707600011598927431222798286340152902889558914564988862418883133895512262306629300324530224092281319438517662444839036067493075972774238183463237730134186312803196463421498534171698880050455197948535078148222979246060057741378874815924121066496731356248585787954145468102153945233748722984051577302272182329094708131462004823650300463637179583194184009755819506481751911083220633992993385183661213738315597144690852864433711742879772436728271460532239674367683626833216764845494329182904506164635718033178772840939387838465573770578878726645452451806105380604465113184688378318050138411508859942751282786789443496953039992836667644954929286453539242715927065462043586581031286179620726081921051024464590777770872517271929714789089972780925287230317114021893439820321238275327679640605259157200158381215892008714695663440416810217702847836988260882395497469629028905189290191828211874796452724030124982534139880748499435823402034750217913668982884093659004551126849176637538673277239273604870849097053211209482512872511609762256806435560082439859461443153983618296437893335693402415511229850314721823905510835660237067633182934098253096618077382754554323888326095876363093058909591653739194783045173001604987291282602655838439341256160401031737150969174126634374872761092244242458670059748112998648008934244626047870566583631643802716959031218754558764576760798671570981772963886524323890897640757968053692053770504840724690786819107990644880909911704737182923352975886427100891069825027905740991737284661293243108726829844654913681106477341882091668072278324165422189177884602238063083998286908858283563534514185226082157591141524166959878985729870544890242146808184253600842604276103216483966226482160221624345433589510265262237476984954254731777225599845424070540400892496989809797724300940161383440960293256148812728757601029395306653117889306336395007022937888022420667326741604882088589370246446198228161217513661980296341500864793765113342010328488026590638357266183666325657546847057737215670080686627313216889976301870872388460125616903428840715516531273413551297245508541140069521937153090224793303187626944330103955460760363099144941853172892602813300150172680379039949712911244204761632852886778125980555713531435255141240381510119171205132820530682712256758862001553794592226966160603310939135720175928790771570487434461803174998851430713705651884360211667680666145183274806301368969731746114548404368672498788265833872858748813486148875508924322412748645172464493068261232666292428350234276415186994335222432352068160219803174469286177006175827727350732510732796232931881213601135465504302524346906758940880513707924321762477734786674999850581981918010350122502671327513185644229976319115372971842725002781903588151691353369225455421020141275542149413665156511094713704440730951041359253948731657689166236721876891742839249914091305135374959422394799708199267490740415304814650446629058413430728803714705605891935143501122321168005003616718987262817633820404421054009367241746524472321572601743809341091905171840938948088498801364463617993221119530237987300050911686410745910022555905696770955321133935018268823682754662267817774924970287222101104600207840396655180600208104209508643276848007574319334217257598189557659796207731798805310718597832319945017226896983992278181049739494241276072260294406403859268033096960074665458419511835232511384943939506287387622236234750832014061717628390298455590774749624239419945921684390433706105480997172468847352090143035241423488046614910400554279735554802187846719056686977868044210951375799422955391790121911599039230873516430425033599902595162311615731009228256904231794329608801727783586050753590726866493488287688095385934270041186274667029287183537344238307100672893453040867995468527967081209104357278935628414286020367974432832513873465611829948149588727425931547678910729286833585785466388780433525380132974832651153027623845872925147204579181059998553641978545923773689276171433636468600630295737566914319940369907322249016569747792212485402176608209501352745040073888070254469223858376616590858870024941294429308158656360710621994048496708449714534257747009170465857533317557041109217523864562459962529168640714460261588626514725686978185547513915155407210044565739784203388607977525153824834424315873335926530198326982452412752995950474989291636399687396879524173859873289023288201656579091237299543504288105425147425599670199789570943735802501378204471257021315433837063180586588115313778596160534601669445857693617831888483049966512299906022953673903479751030271066817113185248575683122462155977378949793341349196244195013488119201962325075883486889627870956268629719919830589101828485733908591433188066199438378590517104062104862178242928423896689798791145862297500570839028624398747716926399835109138096429994315648654095917375030708055637558815901341448165161312670613771859394701131424548153582645124449036087295578117347996527506442506536780176378890576557944318235985954047898089998870164624619874207192413033620853864207492735037557258825923797981064924620190266134511548052798289876561166965556465851811438935530962346529472696956167172502037055344737870133122935513419087275177123108058170180980401443882377737989397486395967872241460478138133361261435540565536591483559243232515857723663866872614253166983175590092247738778366434983114723858801564074685221224067143564491913588504642509808544304759342916165373155331556520511597095049225182809627496281771226909063121879265695522792347733266484994940333505061482895028675697508482831121957504840488813922794306493856332697467931249787174177037079592853200592940261161059067218427838471988565670119058579317439280463404993774345433977166545348795568025970257659335262650572220656993046128356797134717152004402689516970776646599575204164940963947990919227858018707204942746051226129380304545082598811866494814394729394284922882917232933736696098303702819504623106300846240876814089278493011846468136192513910707629935429490684595332773237811460029476554823433090145938002804924359238367720510076175037543832784491480742579930520806477446902712022880558028182426990442232913624652076208625556978847550737860497737064873033125578385223607079294302381109797043613104233053123791290114859705942759206070086036551481422612355885605875667073991555253900855830959269277176856660811617177354892139685458270764632009292837251308461812515878756619333124276849442467876608487677467990677309072000932336478433174286117402638878568934777981774696371410400730917859361762985249928916699813902297791771048927278364905392219805086054058988431770744223905651460263251334246983472945208626403535919005144816826354657784636437300271104508691277144648937827457971247353538465098897878109792851995275944641237676698703330910777225621905958534754307419995867983615971313744404592298086768504842749235922073015502253148333736230552361770352336473938683315786452008471997147507079421974710301670911296549213934121693427181312039328678348974189286127210796808107374078171789657592662687713539439090456757514288119159212735349235832862586253379753428651271731511314691252718798493531185080530980039923695390078859096345644311245256411610602038361142643612510863394047692501223986818102727713549856357133992488914733024656009407739072149138641834647689246533353392271779450733821200986327284480181204506926378979267063668770844078949325907989477685742200276286561579151327812378963684651609023380566115850978343106616987022708408523091958490163337697819127264697469206816971360635134217019341302469309691931460652883551042637837803151024494316242364071506125576537232076083432094553924948601956035521360333965184316796998284830277846688791883059151588615436893164040791432164589700582047181864138897672986639797191363075068530613708590222579053697995561074774916598755207364066243395573173484881675791440249380110089171327476999142962603888583742040316997706795163068590958465129488576127857810326388569811288568924277954677152985397270255757664822668661677546771360805597749629777573413281117476875542730265061025527264923082658734758066575656789399960753629293766859075771454802832445454540942084087789153876173513160282752022112862767856539048183466327219182317381169513116814348509409993510416471837763845935445358067434601749898868234285257692636355633957744134860717855292444608941189902431717183490851532927814034719966026152014676934269208278706898844317083291035745420051545739743557928533635350718284930980960011484279466327778383182482516621969367419096862757331029726696054131295191700722079569797344477700317953879480561610923027034127782977348930256867084406552409355618604698763988570806297905738012986907671276440826775452344925555205240487810031571557284032393212448882205806273986042604422746605033315309147429642075014203661282579253703155730772276642097718499385731594527193758505935005317548593686029039729417500817631573634695195752954750777540676134101061845123062660561700112906965253265398009288475348050572377986758178177311642687421423241896805456819953669406506291252789206103636653223178976356607867280351226427957248629700784289374936538172891659307398027691888184386935422540164494026295427631937296640545836275308197038024721832160654024012090183016047974758944960307004233870273314751860513690328051842999828510493939193590340128957997284334724857092437125422720519840009613126038953025723413743266501508447781356641504015067046922879939714935025746069069151037446556555264891868740314171771966575797286613625581632206851848645573369355807767738857444780557619956230672360329009166282809827388859783588502681283684749299697820441455816737342056500743989863885091225116321770844602251090764873993708959138063727308591763071338589740460248799428442423301784706008757424498981231192437768257467938122217414342421737160262729741596062898541687875528870764047874132569781066785889417119990476280569392451307377168622483753424223184390867001387960417193015867602623200252783335525247310982653098286552473098902163187198797360710319761753989689758046526480526343239358503500324580623310800420944003612468587812273539886516650145521303041151744584163391968223233770953618307160461564883546407600331413206525285391407867477012661784568180465035157716146432280706189735245228704060171776384410544479279046641399443583709151765070020321536575643009094742827154365370220566659874591363105076114124490031989788917464397840097684862192681499254829296629336739914582328080429017533296860081557815857603636985283902998361793673330863924899467583001803501380579980722415481831055014256758973299877762067478597601675236633816452732575412943998658565324679209565147452749851770957272961843179880565331578810872513622248048752008980551777271571829359418241609240701400907926719525045743197683744105461025183285111512126504518141279155353561452611338843697912606513205520070180374465123058918615214017173268468475281718696845433990173208842107009276921336177715887797054344111811342858878299147501259513008787246000132412980093138464022204881845600563584635009962636532028505259818518878667033171501129640425851702038484445133729134175409862430687420491980997466488446352107243379237351756876944197770521365350309477153716261250916837248328863197104504719217589913613470048766192218834428369692111572647024275049520462863504318728517389329825559540854270230101897170420563505968678301842008877384579864595881162541429692528953069524738268601606841264902566048050780805656102003662491460036243216126024923482550304639477208177857505182563720950092256449924236817289606072339621740842061097410669904343604078931026375767539064582945061906090731249279875932319670214770636726634262786162243457822912993242929150336172130529686229021043251899969346949561649826729113426306273502071593956691382808861403584941467630276993197082222028980308393017552442179428402476800032579795410688612094416556420317084984374969149079325176744371970470696988560321082717595272302224776099786212887844093523237870510039458697841132081817281266789659839262988341503032711482882881284465972191651300397291411278292286444862564119472168805598248727523166872978302148196767037516496851920796113412479945495911411439863686137807843237568191728078177744991240379349019114355073382456990928792047278798753533982360930077792876632044099938523575638523647494180211962683077355157970768827027259829339267070158582404391793497191326117162961992913063476941879113860207166377611800307356769064805756211179862528252878864575055312726198736885453588410393188341121664355682580131188532587021741764537322608813355197315217472033364384407581617876159587112253558193028770857750257605087747968073501211596406407780925590825730415426516894042196957368639974477690572303524028976061656888828061206582803944388840284081808365284234360203150687496656518484414166990966936949347576908100065273616549087789704087576789646811184714123710185513670666902069139427053792006104537329515810685327682871975817975914961397162755786785116795446870838532402921191868306660122331133071858147547976850491832491716712347645640535759945227190638806465525208134466916008638852196927934073727469886117786635128896414513490610098444215685395764511448356196905986244432027492453373866505907291728092815248704406215647108860745625214177239230038913694686239751267257859628776197702015879110999889486837496791704072869446699991462257094984213649087495354953223562251118896980444424940183895939790204548199194084096268828556311541798389466311305743913280234096047887028979733408249265708293307859503858590421591173595678919937932654942166517586751662027208541889101302683158365583948695745312151639968446797738104404275760159496348529120456717963331539491256605299328331753111430689763297560045354739997845971517525733096673156762114043150721430180382374576225862164455195456260157897317469278453441128377301777631593134039420097625765866691322264946186720169279103167340466057340082193809531927638436921856528802720905394095683711538063165914859934036377724690651607541799371007833517525327704626890442859335338499438263856637100662383009572926478499659364102711615964735813051719298584649550326075214078701058072917295134861545492527625343649921452428180312974752323666885971739840196028659399563017058942470739144777281589908521738690051676220449733849521250966137235061545618950613540657304302017434956624236966484776739642174258591845339465855432280118236231590173466616408195115095736910794184635776062597699501271774634868766198322234965321612294763095613601026386757492127590216149190985974900148645283136110995149500428445387943131213317047751247513044581659044300654658706231735328284090560080720698012987553333454246442304141654285183763876515225324960672001180566978555832915647095224428321121943866383351498958099129534138939271912442865455980654417463056855651585852005967132431543518133037057149726025576614715911323746209311931968645967562916917883225209674787176072240525683601955172712226961886091032728761971543324191009208892375431065607140713383093768079116615503886085672835910080079036511640623640718005040917038467083364510268588747644909687965751809073675189350104348697424846963613583940875516164884404294824902000885555765185950249457147964532686812900096248048747583799325721900828386961789265416236353712367866196895390040761404218241636371480757495212122184368001078081435374285879297558105759992177462097585904026104354675641557333446830156346262781314306507889348237712081474759884308489317826234809525106642432484492577628291815431685633815898868457432470235037910692963311802933887406416486083414571351098941812070367166566490681377874261527830927061835262410834045206318539249213525655370575192188428620496036544922994598894901697107869382318714292489870385164865075767340882945916644987325028325826764718193989977026931905040088926857756367932605764860999730219005749062360400700945052666007999053169481625317629498802496942153390133784943687439689704707747208660321276749310524248526267443171770146556271021182148030442055350117299906152364099447334330715706720562574481198699124122964927032136712897430848241445843421593136130877363750947554293009524201443275976886286905815753831252037171078026427633704845763880292256137137147153145405937151775153430896713065590136389662519849037331161076322385996990314546269836410484744718211345019093357251048879827980904994079457430834985089774146299937765057796285695443399344607165889864257102813939996864551137399135220387279967906227811258694360434859618700520156285124401245492115544136270320065104936725968679995098742401049612263266358638125869895275717582227479470449803149606852049799344226937579709091152152390905644902834837228472689383078258910261665506547424082163565100696944132875446526267450459128493996375639894908761877060571784363485601028676030283972440175493543394851223281739256484852616158803304294145045368029008496494814505961938503536345476437780928702595019918006893164201328740187181017927231696631468679902780354579938092839417705411570304624163256812271376383761669062574582582489203890845336999023305553077019855664457359240727182533588814098189014206469813036474806611166491486568182777838834136675928016841737637744488509197626763826983182673117960672787848190363115081990744999411730355986602492661291270010221196500116788218268166782418045822784941076415712942478617277443153717109170443418372356730760501578653676593658589267907825366370980083460650297094054044697202883728483210444382616003884668088594498159994071512821072940816717629066604416593955470147744987135526261181477407236194968190112189440698569693121713387937465063567838648964971977454619115052925906354818629713749137507470439015741379384881067632501700440707892481000330615847911665790668975414803905439210171709431413030953051582439472652678286365388410672250016972947758112187297105665463864499599551463364995494014591704559664719300022171694836073923026991660057871605373360818308210762061327117043862998693288207337759203305424367233603015934262380891694312541026731365982950146553585381779563380299628757691329639219673334568113354732791472166899953362218025583149239321797303438463338018900115301211160242971415678243401760535097435800455443302307474272304917409991938314144938475942434384995890775195014806634026759369658483006143606450066991012838357899199994109142357900832069360533639906694095537106467937810255117221524641567587235373563702683431578335296481689174015290179087722115314955942726819053581787301235038881473364187811948210735100204489600566158942696143758208146967331306580796900648748257397748841770257499121276427330371874396190061316044923006354002916084585005632579130605167914378314541284648400682777891507153015545158248999960348606387656955878207469896147523387947725971978819226040780162139343390261603595334779672924303719571038654973168816909746003455959305366106917693862796225191605871527730644173058678455567453696051780120821033560179905622489779233002461769809696212858086847451180636994743265949080008840751348890219654485108986426849308953603516475445215740998286862170027935153001624839510075095930506747713808567830459409081807888135777039227880569263440188812435487372726830499474961194698975873890901064565854995127236264280530729865590685087222658747150729738203017671789205795056090782519884149474726619553862595964307131260478923864625009347144198137469040379420062625243470949804368049606230425074374207937139986493182436338688638640980859303052709627354269238192752173274517708761600015759014120912206165447248422949122342427970925686238424946876525760172416165030051420404549790854502206820864113702367894647881666112651714759055194378522605162301573701010244411594751336543757842076038334293854082118748339911348642469918268671265946819197695151754189515366004042470889664189721033748974029034922825013255584467427294622256820422573895449701171101775574178650717581185401526191857340751276987864399700884041748491879749429086987677863724888082878179145274622231888871019796951700077590945412324171051975280088993433524729525692847360370003922536251997915889574991471569806117378179036942289758819056397269805167121612624262353480031875795081096760113317270066580383031459652781234734291282712877931234260437572955985392783422868812328634435400000622154572846939022488205318378656874713175954545161864217052548246948474667060020550817717070367992689500701349508523255300419826452869644872963914424721588211250909866374534673433592739420429333752746981846144702874945764435365347312488244204827069193239067046880698685288128867867613926008598934999659846273133343037194478603445742287487232982392313202870738278828987317510970724934075484644011202230005446290701148409470428373416938868839776439500228233862184889813935915583114263028116121116393855936659796637789594374494490090017126992595202239302136125429818733643149773670537811324963138743301264257625957986200057982132378537667863447271889985920620390348730380486726260122641162363261900568154270035547172053644609646996404286473358642160482357035469032677119948596638323291778677843393131560379774862059475756202514641572618441585557893811675598282257355576249256664268228473504263881608842075111698559348590245458586895812226434823553728247639329620285294089827627569710574975084083365924411442437322237910699665031718324310147601738034638856959732284638442389154390426279883635329714207632227253415210480394403365508251065081355441007513075139132640648300945397672910596083286550854463069611142545456581003728724012314213841463576983013744950045196505193036651645948090645732511221915896638471229254387466997736946938090418373851700717147860667406377858416079694335098120609136779529563811463436938165653478134370351681460788749745141948990477101973855537613552630871180693997780962240920975014841057613202123288126723908651538469715095906645708612035597317997449782558098645308834383746862127337296425551880537321484115397873718474348040113178410735914324507540652519219761860142524814260460879321765306495231989991098602564449316585630000910898168780923023640858040928681627664847661303184126656730693605998992976134993979971000492579701089223676527314462111116083134244620371877523846946019972010708402993345344510026232182714831394083460738478842150034313997396655372048645509779836494862146114990189453668261423023386370309183308971568920877916309100140229045440010168234429167389193537408887686453768309066576894233875218662963414415925658293590359885374326211028957274301651973085067659793453285330423794890471305194332671785864291509010308557183365307647647202356543855003698726952186739489397876994538229959983708412020741047090415960714393870086168845263595335380262952469532187879591049529246381505409636664314142660027424533585786896568132468658917292510818675351477702962137598002271712907700271874959125028492579212149370339995572088945789721872960007463329802465007200712230518469677989368331539107164635497838853967474937011556187120958518379595240451877613909280813938476267850832401876502243062211073831163499847832614895148032422397602248405686620518034170755682553681621149305944378362448431353966065977394898911492565488943053855499766980720812053769607228399672725404776883186962236802170941343430923424807245883327665148145768191899519148931270194042010522574861723823475732802387752888660761008220365048454453439590716206128991800326610463891613609702275278500459177149278286000259147980422676447300882649563661691706673071218542684637825775380656284973473693677640857520003020913072666792272797020697152225813094497413666626477003295378453098571218201959273518242932308082470726097149640108222308606382813503907236944312781433158692697663609424184654249166137000456159751162724241920959624856268216345350380265410313442786051181545500284717618556688186942698682539431248321999820041680161385627362846168862193673560951402703995309856278456578889769219003109025702804402269838274637800450975701302506871499592733642414736936733166499087470666897433277328756551974408475041141870654799922729190851419150972698983523637511070333011699361843152556128019411241958130793675286085640744702108735647340318058704496829654897006521521795509818558646345935476275461758723991372624879430430963244369937802503679722235318779540067528334427503451827159270274224178647099832510829354672619773924800165889785497727582909879383445171562020724008286768115655877168150483389461656624174334067015400001985508796716745200825845287972089142588735488601942682476630963492074702015288582651000620453426211166297678570817673516464432810300109493177980886092881747455418815285385884283305539267896540898445298227820233683925889741353793562528065124488263217650709046402150657032046070494962065148111809752635522754605561999661437417685651293078417625086928318449264908937300245562323114913973250991827012155945646705107064515443158669334665693791456199464364966958492410573806709421034611955430498934120798239693399246345930648283842034489402263700034741132845801900695199033015859580196674889484064954022737305114826723234203887163501610797534552957594931944945646010677460331728442921147644095583359038088025840093310034709015874936305391904684538110493175614594644012103367873601809526466459294378906482011516498290399759333901299428233853056064102578976820980052386521505358139074825842975866725707993306051743134915594667349459736225749879788249596818668083654288225750145145745224241570036885642132158039330491322831172172664433710847692556788265914164942218367862548946767579228630172833022226201697958315950186689771055994114866504272661401967219025256972730312270444135726554486800467690673205657493772734442795150436054452436513591577012218260015942731883576856624809671882837766128013725321091983885195862585411373595514163775895861986960657046553111991391738209918164202667414108263106571671642777105267508655125044265387191526314221875707469831019654070888698041462247586199871624227352037359528420310090559024551352992392369769706048482399444627586105677329391576095916124598016419378881058917286290925400444101515722626715976450725733424741546249273220578496457186794750765705119605591566782259798034168717889279617610482024957155861928692961744526899560116427055407289417769894075119308344689747283597426868943861826307325888898431204114569535704922776638958495834551574907897389490499998750780758620745909823833939194963076754552952613485926924523522236467607465727343595458666946287206201098689345772376626748873103791299969059092518744514876934568716624629453592125736201994577764799873133020535027851678969696428441449476638796478633322842893225502047937231421385463563760583931923734055434605230348643278034245812020503043636648402648805935348907375828639388536281638221957061346219817066917641255171464804677917013953893275039049394035927552575099757411027247447631832597304817076450084362164944906738815576164879019901639186528291828399569093700397649984771166648844765853306554957972851494939429402202256742748465739184979006304937430474639336049959530753390052252465709370163840471536939331197826845806116181056339987091910448276596191461938883286511546523311992004606712431161820522734203697956964406124786354993988497828057541852616153846697432529161030636111448361468556491087672599937161446858753368078641746987969242225571710026617445905822063664395682743204092232780124669620111252511415974816781371017390901079524327151294233867699819533474593661545867663918322931833799493960331761180680740661598465275713721488506696962880340677457513535353986025328127844586425699343796598927671735339543070017612272336195295763295100927041594567009132490277406620856593640229675091058409403619086656396646520593379075085330715959067403571698573017425827560003090404377961251783172231045351530919683315639355121208254902137088163026149957283960220987343328216956542296190270444341884149460935598734955306906872865638096303716509003586805565758670352015068676854579451294710773041324615784821709693632496129340715169589824415881984799111255964078646504523544136991377817207405412886760973304741012013805034031934217615219413689392472063455814510706001483734707663968700261450341028919032481021885636301276445071519071677974077137501548523643020978419722617865720022828470015960137518815660213481366586454357870820346939607510336001223864555634718922934338230639087906305300844609498798420176273592228531329953935579968797058973642127111024191544802123769381854732455143698763571105830362787972400017493881568138859535455538742381823205694906245118514229132417929188497313657958628203140990352381832705525101433950552788099506337210340866552436943408444203872199256964205779241079387114427143408798893478482092710909190038945362377656640122341213321887503595457648036816497832752967175161203565864000274034692633248224148623891436012859297684429151621609133057977573772098376225964376791997770748824509116615341081672617621089806744534410988872220913388193001968232692685657747319583469739177550099817875848205779687301116033883036061633055997422418522059033929620764361950629103647676601637136928654461520620297575455609071061405538255695945545447311665778424792055328912560681241871097264321074076038685248180910671169734915416112237073680688533429140628056956576273395951064120772230885079038089004186950077506542603806760096912504655895143360805276621296438675666122847143410949326588217107388658190917117193653928668364389423854927235296865923000303348533541903793195323243671544890041960531838934061180124319581921381573477383910661967319159875584505670425637853003339120828208085692190880034072481035331111038389761337737696754193202665343409982319493897447313048762018001337921484077998938571348955183990861244460254919197624427445755208677406839850095147965351195528097543410111579374263447453014598038566354234714411785182159678418185346562116333027000783489097736038637450250851729016554558916973832232413064039007078100488708813759010080751063475034339464339152709816956115972265676615118021345386622755567278644461219204520760725796543114658993093600334041207599905359542775022781181749548219195752956068576125793697914709350667717802768690240595229433300510702758613136665373422352446049132289244685309915977745958066257487645522649928212181235561984300180411408016030053326550936166335039989767212428804830495032674578824839087897573373070957291672224978548326865901420620250068051243808525139666944232336863969533524509325563602719730575624793602843855483765177719616739595987541224260107363548365419751572783929194258468479626736787476965122096759190144690554128179949218150328247988135915570791420826179616216266543859509664801461282923406751671897898879152798289769550323073143473033695194705420119911097377163080681445527953914899955593935227504911564717086682223908625554232401372560980654689996514260761716619046654676468440075847035044530708550366390938015664079272940941154826869381771062714620320768422783382065867983858232492737980956814704907410366549066334926864155246613658564041201325966379752218952509417525929611363509452740990108524937172696011509263145971365529870132322726023243814871463229456525084389604398285540209319233139330442374441132737795613297506583756570597586421079255896889114421787120716522431813762077452008881910195440247847270348075738178780738932305575831781737124876853932240829756941010589720628226157459879224310952963429795428023880855962272297764717268882747864374036354384833875985360385243354958347242960563159336837998959769012753453258656065585151373634553624107946280712276653834084955730272009349104025131490092889338567201720849239424842698792981018313358496365973280540485053421261552043546315107161316921762240572801859998517711961851302268148284197659497028653144559040406445702675347424007656290460893037881205290620843800514848164828992794921184071609976189032641748971043867083076117441311130031737042787511303426627312475409320636774354611231314621930902837725570572480921316372990739852995600238628820787939608860502580385335777508648244159878232212761689738407049644488697017983943100029862543444144936098302293925688298410076913018371226462074802358997107845266321800517502614639749807923889613271288311001236676387086354273858106896537802963549928968259487828836760525114443083120647022097343650261684253310476244989792727276760709160784225610048976971435748130359818383435273054694218981076991304568976034151005116337645500322803836894327865575566135416303373279560389909562949591706827599570218805299849549169766577977488836479107777458372932412812284639382787912790567869647380469584688105343412605991191714201117643643719976806914943750424199154479008417894018497465190597716341094085212848848597892409164048938913576717090634289573278426683172578640317074292321355875417645637583725380584849560868011112035783816965820736800990607107958748029677729508023258030642266680418973440997452734011420252360810494504601126487980357559925921447899556992457357441503179211756600321771641821630388395421676086684066494218234278533273449260070914267853502867049713074587007116881951692824574072831095805779459992871996451287492890400836136413794604223495267092704679010955281531188278490027472568154485672494744803931576666686051140319555738516934954684390818545717372584561642330249463002525929508126132031051529436808620076904131384486049791300760079896692725414715807041879971391542738502034224555802692588141133580662276586720413914390489094311629992839557006151757481748627648947983621363853740354319450318386956607198961920211184437071579454896192647442189723529465096834491247061454933962600943076497040239441832839561804296816525520235763377989611180341300305069528152263684240968209906335395222842339762041055487221566536460518133063260923784119848690526915642766003003562202477657012086115364853732328502732873484942977129731133956595638865114786568069450434584128155012167739090023928456726025458971655657750951939960174556978747889589807098235739005479134635087136758644658448588321426607597628211502724273921132843342731053058658413588301136287590543224864313757610831272779598762803506062470125106367186024559330872017086382028406552578853057991730802864094346173272399251152131565495286110779907211124510059886298911563936484468647638232506586132746263901918307949990634868388056021055977079988230754085239664654618259963390236568192975744844098789522554267447143098959048854323581504960693334562993445188710476810109620202094896360247601777088159614075108763974334351746692281337990088738572421624010726167800852714424934867626130824851634996250972805698622281704652325983231440931737464365805627589879312135793948883546135967556520081885948974898716341186447351621225162957704201109097808302429019822288065154747070044562078505723056418130469022702347945552212573004713588869476572989077522264896526042952181012815519697726613190321454981076505875333808858291818587055363868920211501536413355560159320552579086225366276617672564674112382495764752012412622469804046179336601861195970176017961611775088512953707245381051124995318992078870693850171291826563443877739740466104600805777899716921893396689825127245236779632714820745291718419891856525727239317675216497958393405344604785773565911658308245292515566992341789373323865540246790363406251557271760031817750647401128090025603949999391142649989771533813468373181424875338107966065350949365405364696289710371520739410703398332918675200189939331996408709769886367882030734920979151743260915209912857511205617852792460518704319559465819738157996321377981148834056793501183113561643255209476443017992883122066328513367906845137812660418343554662342771515055184026334879070028289422138546512136120203384438524083473652336533634141311966639493847131901804523114183463958563095421336138475730004881777350089141436969344400843555756056974032067599988847795239027955198178059439852025157577050391687628857166792870488103864416833502589442125019727963391561311352504880802460319595027566866555355562169212269907564615334844018681983746943285586622642803286831463484885526524705465974940952980752466086573681804833618270719410123105064172886261271641497305197670877876306125440123690149305782715548065799854098848910311002389836755063276639493547651261396596039565879444620939448376613711562596640307483474593922250319607058417201398181785772171153138306982074645149487973372205976595508796305133240941650625664303483277593566607268479329527618635083099091381942630129663505324645868521033971823061062690437494961633662317189601892448787040914105219944944116655133465026716360882477808045696422132244448303587454189252374205193519953760291368421871094101660964738146964400947214745247337494195074083581305228617732070796987695791417357044146592509521976112897747560083510810120373522814376801384841807777056289310747230554909202124490644608705915428942902999014435768331383057772335108710546102423218135140671979243075007392589513336134763668298716995465584479043855340383269443512456787366034320283100187097733480074614385939463790144520941985181905496058853717518215126759181967964959119272602223979467319442887992989648134015885046200990580980231872173440820299505233885201728956998105699617268372316952864583407434902082673563669179697884081366705925727475666073070440801308132965878916458998220686249839179675560398738931195904646801418555558157789262833169827119340375731119384680407063481909511347734736590596595070381115809701895242654355232424675068200038913641167711760053172003216984253066170747729866807335723356728820059412664353064371402351207361073139837265109176912204658618150534764460231981267019116245391643521397846716447278562301065278387830135420685057685897279054606090174432090698711617092571965188909055187349019270640848710571782763498700589577337588227990634655450940892507781170822039838971722675011468529172777360951882979515542718810398842164924617290587801623691149767803444592624904347495460963584680204259572970138979934181646327089581951615855106045056486098579290210662803155810581356746738347772833838773483581663154193647062268712274200229378192033855283789251974982543526292158318007251870737342137747625267234834470711283672247796235901831255661122417645888375843113516783177717548228731997529038637020062501184042938979082596739502900577479848970604063904875274510860609945671171446438661383154128385687933074798856752811768022260044904985669309207654125349801947048542918342819392744458348379221224638635502076565341331183378439551131217159107424995315260736759029259428115225522684648137000164499080101331838516609415667056926000468791560578627392024088916120899880812636447217606462535487012639877139255209339912940374973918762523971270938802859238704153574306278292341228803935287705380954183679243755513679938185106010196449730485904878195191850379726017165478346125488022476774193351989961364176667250314143060401022830533452288835716616496936880995650767490969145527832164860419554311563366497267806135000826003745899097589944403055761195511346174832591126590971461282944298475569635407533904195008212561150238967313074396242944646559328846092994583634839751971959763068021020750953089595210593643217511471600567558847454022160103455541668364086856851594720201876748260382635873859102461215662925098124191473472499895411837585065026085232219560169378925714892861140707997110756055567506721499681282454617545591677481829896175391794177433630006460303987183314751794013798504241996744553979710006175360001073389003171705567279165905215518318881681071352626319810629153217300194069778369106894972561731982384411115048560719293160605706859984219145298382601945604679273751649134701251012408862642684005873762253900627904492996439881612434384693850990638594187655494975499138401018779408004420909384735741059373106024107419447284613204524105271208106654600438157878193926957618091707404197733186744933831793951020242104361585881567811506126425627055142507712982916786908587757458718624755779713534656793747575608376730985805119792456679029470918628076843594587754604319081847768291872461678172507250937109203297527940083737005450446528095793338021509679077116713755472853411903159996073967792328014607639389717612332957371661301657702406123161010294581182966633221283303747418556467569883684606794158591536120791608418065022411664253538433634822074299767971984220244227290116814056201912244031024604103125931056978721104626596303061626412620835822634327847895457366823813871729284735230854435775793301763189958047207467582797690556412003487532566460128496812441327649347459026434456230997101181466101359393047509357921448150504759017244041575830910316475733781459868535267174585162847409521998655061193192403526927548622217259448849235900126773500281721112870074917400113475649470411645143381552008725573819795776948492094717190206375098206945371777515875936134606135874540377820793747772031254069977689352426488797924374240060156840686637540062831618103467179727663964353452027406643727666104874905804268407947614924198000168864300648720645228067702125793712152209906490170549307143552378349260144687682438769629207295858100176869270298500301298813115262283007294244491124793751131453819298006052549445639672132667492444720386301906436406988055364318647526531072542596941975956169824379365826538032655686479846785222690467252119469072645844064046102758156871504160338214007460771411411435203042128678940964516273181188247646183865339011835533808898923348077183669308692763710451479293239879058176647115436549933195862085271654223805824048546978453791263371777970322531868217233023280366611208962121956142145552124906098031676407059153472231697281027378128532571202551208541835352098445280847437742468257772412914958772741768824615358866517801165154159654839252945612946288622580707946484197596618444200383552736524159320500119047481493117796039383111188377734990255362354479145523621727149178549014572908909430114010502986140616771646745538298923141269365004647953590559296678419504170696692994274000510525858049461013008843264664105572275827092993135232278939086610275032710681084270893274558711066408709689499190363157772840445259569667132177019845116381021030461481921884232478257852288064060218199034090472262992613908515949704775856585697214555446751564696215451250397441944983815299972995112520012783452316605337818609852520908745737439435879602902245865678830086168352911538754270441511928957178083832937870089052838943128479133380097823726608878625691251878657201188511799648347138190728616883726262274474780481980206083964530993507486837515085202641033097178966155143863896441902434524395295094929149944018360590093808404600682730119034063114249004165964524879209119512998277037546054126410957356525430094145783679012260971038651947084061302271381866257006346780173821882438576607728752139229250202920685214688879829656400106695704349613771343475310023150764099317419048394013461595609773038092962493723710333787469165864600384205740875663643456321900850307528919683194015561196836540519473287216695001828205787811805526115504288216188368730819122869144463111652843315165700887762862377816500783987643273296555284241244607966148081864819577838647065863294563707808242271839429871047955529360127002119393807155046175281934324879675418555504868599136672025325542043040615172913051079065894559231686492725147353079220970604984399887929075535667400660584791253140729901576407531367051974692954088340932568138286681765100910665346077295877219297998532869985247476381619331584400468588137504760816913242293626508986044423174542514858894316305078839402911972230520090073912659236959254667734149866936910088244677849776848292973570346600981480223114196790197526733546371671513856636159497536280963570128080286226556233132890144890321275701682760329945767463585343548538965255096348795089459148715292800918368598807069154051291191240084239553381618928829945166782046840419629691222598676148014900690753542602002585464915649232050748519030289169074522631695003128591948385731587177211455769100708892088887083133093185764702667823738658306749199690141693436468731700556609018286125410184371149167973191578085244608334129477479493867029924525034723956917318755658053599338279360286594364141107104111923296479051012698632446341624947806184009356245104678814736752998718407697411515135667795184591655179758860767811347107193610274827956429151338575997134474188832730704178312565303439880250972038337514493675095355724082257391914491443320394851072223249548291952963045264469531258660919207802813043415555820525540655846190856101409835946670893633551930427943778304432128887052972523461394642340058437510160538636091297157280841385471541923315829865085054921928717506544084886845860329305797935318398237839991392634067827739077815784109439771247827962626529926572072695244017179586538626306234115453295302808843393299834028168719623920319754197157358198886048533568572978890034596635206845347046585125106966476113357093176553547164566095422285178713342150807338410121216530430824287053774916978136049859930658942352055711005029926854817333339038753446971618800363025316892805830514991927848352489562165324714534397033092572773438691579002185156330690274171800970191720412162262569571784170389856616503303859191107534609013099804631197667092379842584606335083107479455097030748356883212032158591775621603887224632300991950250121411429352927280748471182876785057844257955062396732129364920935462280760805144344904810322212825967810947819930852743809190986113193194020609239840500912904156072124594244998578211220822757195060861808659288130261197158755223821294554462407234524101831808540948470272928873823815141670049231425618099087092016201427129735978351377775801831067905089867934781440212923676659852499071178389150562821464215337593794963678925343869511948658425714207296951131519651378858739637053093861933609386761559636650414879665650005613069273942341461582253324690930907926303345496211216373186966257220214429422089087666646492795602981299997311971003661043209865034804704995550377501689364520437026553856848845111093346471409572444576028732135556323911071069761401601055187504191691225210491612788285518891283767348590280900810342946070279707406235692648159765483433918512203529388212705436870942169547010324047960941310179472617498256970283694682830450841652861690663756903114514374257413618600039182490702546091917255429040433151960341669537254857262364173368162421021751620682749586070431596745514601355995197613459637362136332290034628429914887451531174230637504515403412609504710891287298576521691396658946101933913648699959197649368308395280621372827707729013410751790686920049954277193860401965656912161630932258510500617485354217102781590953936235099258928701365802537504124376441497506449840454275502598591694983034928523449627822324345472284656466775297210786972223785994201661652086869632530280241685690016161888820089401302111679914599889464825816861364232573332718704877014812235186243526027760702546372107344816075363563556119967355174444362089208451536771099681940330811013832316619723277002406251908310308203428740183306870430447433898889665225494977378492156816649169851922197319817801017027890076284284487373969267967486210867419541148733473788911664604826850427830803094875548353837166794545999583555052684671763498090070222685352347380030746559961239796128944708078525322266988792889948180178302975383428140044383312545593449864422442690729929925904467250724302808113231864854160313099474810431414398246488740484250586961665050248183037204676860493681294278439036246035759741122566965238602611878371974134816975725392118323646152175464266759708207451292946254878714771668102764793538568881863146461273283380868390557643435066593474166074122191101609538030949342732304261879198889210218140040318105205449996657331644673745263476976493181105876053498994784596368018039266802900744640189155010595021395495973778614045370336138586215150415563118286704928124380227104768240195493637600689936524555079282436211452324732304150386676159023248091661601307143633134170297468781997479569796712311550220801540246301183986526058641288059277147412657724771108954215907791540894732260606995870140073488646828072075408250836949147537721228138106486306092517036659713233147178552023899364375817574346705493610239800885671769904026959752434736667300957454555362014185341236510662547462743743838412367667582783109226022392213505977377545484912863934306685236938486461352470519771653598535399028340218683410213728068892653263346840664879621488677845793688529924318489123489766894054436148151673611384222056968856155331491018123419282244784123455898988970188975634675865435631055526412612136204935025832635119059075226865815764471925204066706519112040095373412601856269306671934915979528383517595958490648896430193638237301349877162685744970086687811066112141992612501213168558671492272908003290417894359889110171392233904120916223739547272864993636527018675877007135719906820349461209391733845357236852183660007590496208879861391789617585093054348868012150132818795938568166689845694033574100415772203095728711435482002435413473095163084339389781520183229249383879114774782637235614944695130049702113124949123611319897980289388015725925666882113131000996959088995927543256506706791770732879069418131665610672748769436079805635433329134194027604904369144263248775099543373130533042795361580464231377559479997562759236427804359851164717792598048499580246409424808369627933707570791286583396183053807369832934753989133613354687851349145073609024845653903048376625151220046362684021215811853885722028747747096971916387449511946124589663021419071617418495350564450622531746676697103053762804071176608113345155473444226540742954464205046357286979875962894653440975237504808174944078392919922060334066574501397446561271746792157884039623536816812859789607607620975023633296980609370197495128540789678105919105343612135225785822298271660242716057235181255754033315485858031644074010269186836597849785550816688107046635788102753436783938002325353481195898467330160483572710459001722211936740711572819115512112818735941674135346519645796241094676050691561355666992089767557969222514015365020575315897807693076997438995658077145206206350215462409034757906292138957028460763523731008736993452455134236874827682161543774651579850620775905288764072240282433371710129713473201301500601173425378732939026879772609582046932383746232053438956265463267124416961106038031994531878121106910413718565331581535189162993464041989338030376876341031088255299528631450735604213919024699374662952709467850906111884001856903449559105667091478989940532126837729812295990728542033778078798616606812245132322133236661869883285172962594474403354555029496499367406954873211205583347140670528128073096753039192373912652436634060448066120922202229580865228233534848310459122880496233215756047406945954082265854688204257962875469685370631979236686514761274666860450666861728524981043348216308774018514686974165432866775556476556382585855231416680107877449147798024331532979760004017302590608277369751459414118247465828637764851104368088078084569796139930564309258369497126461527624332407193331461680160984049274362153053808914461217393947084216051013115369172293896772298798651809699701172135477847276694250086823993229320321402566529398171341397357521212330236617132332965836165655370813294805524218101688852062736670502100490452286792962292956709129602727101292836735783631923752522534966871367160889153930935813581589436109221421907816366903303471595839166226645465563196242587670107464086346486554573968108384645201225989509486287141848841761419075656355730756244223712914550841920701499639549521490892595643234360899626628770530091909520862276598272984304716377784567997616731887104138053362057924211906537032923310875606149663675405223436396523077455225170519624747658099513408302649566356405413477874171025511524013291466336473651116730802639897371529167353658116349535496071900624370561262920557362379644767486295186939610095926128318797686890045811187227148583285994180005632617724449391783788697642772811127703594930958406360923369734469119906118542124932997561375182352178551546141018896520762049453295724681235791679101449018726621545232118607826210375509291077431825836356108870386598252532660917558563628179720134530266053306979859699366187449914937877741271396233374204716918787253691126413954811449174377072935279061477341160788148748584783142297843121860237763859340533705647666899429755723416712676439567285316296295739489562474558417317532503216639833861790525896281997604914532411810688846992688176270087592008072673190154615436826630428019176115449410565394299275207436142966353743631069808933077143128895623759939766639173200623977793517632063130264651817424110922359054935816956439218642598610704452510104297172031221168093414911923626465109025678982937254008416094284090723197521271598567861230875047622004518286949068753214930496039121159649880724829852272163876989305590614090085443696834708957986791406144385177320235969008013663538885865253621570597013918126192948528952924927211928826609592339309430956261343480469817244508484869433070100803351757086261551527960233228265839169846679022605787998343992947518476812189947686498492628750602850288059409897298336710045598969823475341933169683338542888745830928604276381214640209931113066521041891282443899308864013167694154954996849973798500455763664771567926623338277351788421205375012706516521775993822340377904925004976969621252470388929460345684638864377624708061731101296460457145197313902298136353387332643372102703400389536697942223934994040207632757636802320293594637544155342225412828949153708834849938058439593482840200590837628917216621537465388074234281341064069212128330481856461982187095598883169639126588664030833762530085302704481871026332355404571177520312068435947455960573118326087085516574754594298386948196700240298969550188896530023516785038728365862057923173888737808677758275589696295075997152113012464376128438493249897147631423601944800169305048507177672234768359927767311983684536468317008633681589808222135661026905976847765659134166948326540285776567474804549708972307464119368757347707724564402618888644554108373528905218703486080354151992680777637144636969830469990997915643026260432857977221962373051601805723546874170786209814932482178004662026590831185305573398773882892721555282724737542836622028362706257961192717735981574820203146618214235816073675865426767580685030647251370792723296661714452760895186336744227837504456813595189103878453213217908930558767254519171217755995686486664068483087021827939803231297882988366013248804411583427945845972706062658806453845775169579086062805371337223769148536641439264354447104880971132744705185296531034064304675390006055962837715845694121843695863341039470166848492239256229934014778105351676562249171253389311789532298291629265095916003422826956250195692547821938060727349167982437577336642307010681768921026834314779679402468247468412461918783713021660016357165420898730386719550637998810244432920769734240569876358715716255378563036432488905045169141117165076708082986811075779047587430032359435070003338552815025117262554905946260278405923538349385546603869305026485667153678007481181581742238970448177158610396950435365285807411271047032056452135176450678029968608512326304188224948381106923139883599854640818066273344555100055873177404149007877202236962856983908250517482962779177767073696612741624465735667873498758143161284145402435636599276201288783364915035223263520625766008149987642274880238650423751356635916081979405147481063682874887074615068908742168115366351507817404839043948867001837586145193457778946021097048772261145475937157597861718469417972177789961414244542791204968347705550149260719142406616905111571033637711616278972723208027986345893020222645203347922869744790537449921034747811046976395216785685248866062370714116045857247372263723958691947335532685336281447863494290198886218970067784159995822950330177761867049965631101371336250625056542693611564082930188180025130602173533597330029318608590481398801038538592591402995936774281905099360778232698245067576041271291008634828688076398358124483850670940261854240594030512367763483613228176375069363761946938746628620117252200176593522012249312910259621284777619444926486861074912076381086863771874177337698205650380435079707672195792000261706224271177109321327253830663294762751560783029360096611725254005354296607301906195005586005179599459318896756692426837276494305854400491798156042174909987617105699797920508568774581144425676094178374639512151511012079076003632264501987649118954438730440590803070788657583084064427422559811702969899158582407648515190323813977024699276423369832146153981458433083648945591419386655098986990970466295099384580492951524172203904103512176311297118064959150837940028077314791508705274168093330141741403210306694715981815440109897300648173344845247002351247509088873794255609774337950007972848435352108909046566569263862075577285308977550019725889831441899059991527314556508585518362163245002804660608112652278875607338224841699045257870568597555467444290574850823999541541025821641366446206888290347599537908710699178430029630517506953012264836136927135032971775015553739931297525705031637703793585657214175843969464410670344885079087920896811554140175061690550675311099955156400614103808960201632539815818622170708785062901988676063553770113652743521982625441322084511287571952858717773899310509710747164911997551526751728932749283443458123015920324957429351768864298432908901743988362934674075184714614427595572256881501495005456231361248593054718355615507679277076386122188385311999675143645096285724696913384683968087494619312942258023913556237559381950759087167636823693691999202796771131683753865506034606086720553677871867746241021002072463314871252362883520764626822073642568975192040239838208635362233731826287745895145061796530834789958606605643506226490467708619962029386618929533727965909433774135044982284808876719858168936996839727766151580835747853197944442792597893868548819749080601799327954440851402368872852682056196807986539098972857955854888517023131243203902803763493992226110099054412731787510682240125836471601619637876826547411007679047970319380961738140239220934606612753877309585435247351823126073416535100989236060327458476911310701496379004626307374758286383138062250464725012662493146496952229044874626384287882489615767993938748676808432370480064095013923408955260117225773887912822247498824357691096705533654851451011602170348484182064525570487243206347569660883974529403769578571222885651549913163813413286131290717021621014123182047634629657719770774239139926722844096816501775907938299046266965505965241546909720681289839798454645812578555377427579317042288994063721735280982604317296152252360026171814986511504136528015091261064671248058711178839734647279489693184005571854416546792746415325913711976053528828666601491102177709167871399332902328949869159258302315828129580633313183121342105443272560254707158203012533413524299750767137949302755675387827356767757196815486213931852303019047747240903673998304754417377749718457265653942638343312105113719658480595262891440695914366191533385464060345225252761082291705640059497328455531474027044159379361828901508595783616523094080038781557824041638745466800574203779519923806557390152307122114804778646682923044778290864077730335833642206442131337576886022746637847539028070238419608163355454086458483077879700793371380308459955256496297490587919114410288298311252139916915372270401331891354264589724391947182504512700332369949368102372922839319016528583561046202067383702144502239830234875973536796697667698288965557840801024402075505699312697128804062278452224908847637202636285308822880088276851944522446850851491622484364314190664112840083250165090810728450823527204135848030399319825270488033010733395481858763364154921520941877100843180089612731884155902824818850023005635299606427635240223253850235331462198297689069057835675594065555933650503705040563511204671747851505026173654764910316926702195786380080035432951005837705425514807402455083377308334377154777114747290730885483649556662747874010540480156234609090562354096525998744156270397746179991856451678990512449665199612203629832543685195948407902168524407020660019848985287673389795708069061939089336068530934137651033141856041098429048194169117766704188535403092904935314949299283542511290213301101142283140317579923812520668833549201192300506328245968104606309237016975750974179548127757282644466417934230510540351955753664163560622712919735271113260571952878416596981087027422190816959370645780388117755709602129178559751706274938907693108655819440561488376967805220511270211121668798229874620256449722031080718102813852256283304430844253032595710656564324516601559732605307770644144322907900868423050155548029579074157178300001999450294281704388191145247366147970518153916531301699708889256628845502724267244173571481862237228639842173238932603405335931025622614353344296603947515720443751740773702421105191590122509405082763673895053873086686282918293056001900745858896831893018954696104142671327966387065262684314840908989779770901491083714004083908255829448889887611564269442506177826071431440747580869142586448143889601578891810378367561130444694493293090188005466179932781877926096020398241620646526502104032426147680236667663545939031587024136646672006412654528065825171860224828545976136022289254547698576158884818546398363102671504256522619028019324120481393427931568083077970823379686935836371212325619041353594901086760435829927216931678085108189604860670246281351946603057687595341359344845393102003048789057503310829351517090808344444510457450171397178682874500686318842481312073361111216794914955127167027426877960359175849471390089568005600035028239735061833072870748215888443340921944682058018092755587358916475827921942721523726646266961461185957832982557182523763213347807213305895599375985478254287850684305952204166478336564595768929284871563456395287053540662303258291934464911097209153835309863578718238158694324336283352833493300222690247452161521554951178134164215876304605355859252329173876610003615173100182368278373887484936010977889903033547067251510754959246854438594461091608154133802218802941851465984596570161362094793813596535234702481267476677244672761319700991137813441650172679242526204775532913885031454838750190122868364454737160319135456908227784334653728580123813157634549945739465339570066349726331004634643961202731066117101694815491823401686764795247165248602342818110100083443382737965358129798854807827297893105034085783038687960640110425180852665115577219246080892732296045744655297804836966015318015071811671789233929774916759896526727930000642596725562019867355929379094857947413188360283891669606992080271465138311135146558603570704989637422329177984642419700028135284606388200808998564147090373647639004214444589177750060875712575410757182114122417718817628358084754021649682025438026902708485028259047807430943919097116008242119583063309436910838903675888282616921781387247433516963004279344406706552871197721567860636673722762181361614185553605131394265235093991879549094855416850781124849918689620049263214875207387895791111286446770555446637940264984071526186406855419477896100709706569975795888601233921085934106048902451935102080803018641753520415047247776308377136534527623763689264352276419285222819051882516612535219509383614777019904995578812436330909893673756336454309779012354786640774282433401556033093014299970683443628805103507444095402359448157641427555250789380145128463172632158275525305489930622645225702809077892754060435949424474065081458336963701465717733976222858825110230441609136935546460738292529825499191129319823063103978237360030081504633432722094697180518672011209394692767590344671183186442023039359492403838169058312605376907780283374225452574001525618220551406257466963808274656921700229920881454590042688114047093304209247791255254537832804823946958070511776365230801681905003738064740546828939800904458058358428173007032898938455741273514009724202397654794218524287616583326173422869883243611948137983729984785021241876592901011313245193597483885127054813856948763558474515721473268256307248238219787368629443971579323274994336893361562643313861402814192984657619122010533459034983926998162674914086390265912616254457619222956572627413067642252804486511062116497649301456019780857627521507767271418158187358859745605003626547752274058612129094297033095615254111727695852792818085488986969263403872982735759719184329662583051042293227038958056042929489705511700882628296750496508087130256780860458086042889943803174424752195846354280155093574268635371141206170535664978100976171668055451741698967414056819660206114220055908310457429311628475385095976332604087348446516879262724453980281834136177831572919254850511856761264290227196389627138655498235410524252701228180449174422230145881173894863056704804464516979449533582645656696900599237078936508497369975043627020406319674052950585243129876953762447456363936651162830349459530830912042197047852174986173514393565564652080901781477213855229380959960182884454975169641562482908348526250805293415418464620707349005082029897652147619480403543648628319839539332216592558723915319812471738540732819845362442778845813839317776486516186442015994991755262157309298002600048333401701829613949916008583618890733120676226322399627204689670515516558272551574099005649859919192516401889947808889923377828984203977990741713902720484671818048147594891528468280108978347339245778434636221973661093918176525759977815879015506486798410002661994159371533531556575299902608359195100192074299428403101471471376963514372780287882286909487780650106246968166833590850223703204832940516744444521534856906999621253818270240755940774230661055383544602832596423015014884932871356817635909950745017295584787036466927795086476243685371868344588425606569098729179212100676935634996504669434040595530263063139981029779799373673067325356032797028183937103533731989771920123686427972583251940614537069449777714327588473998972862624797801357992753257819530420076916054212878779971269215033023912939088597004295202084705818813751471443154548848359988305385506710757252681787950032039127823920344550700045469098693881734390289417235450985491086816138631439244482755739156658955948273671005379158111804025386023701004492791679421179567029421424160465153827188423234577426236838523037182343484679763104523624724269797227801505794073629078639020978548740709043762881763916175645349281679440151602290647701936490344998579444057937946899315232354929060958077241736745384794008423722624817833303278169284690741954559249763241559508732181495381975363039798704918326421717180714766788558262863109833408357331587298426752805401149883041079594501048553526985182461788437782053168949112480228347299039898531546425043497731395363348618457564613969715279814624543907248694572453668646547198941779469162352678111875620217717460074543211872638788181486867377640036045119883746102129301380785584078787290588140688646631543245695739103618655073523833393842858270028168234334016179796439059589318693619997140140394560044415996956049380972522045328436743172052132851776556601193897359387089546075241252907752973817074770288633892836889025940563046528240800494341880267745554102276559393451879148166590663191127548117726486571018197125547188212255267608866847309446256415359584650214206003579402763411278956194432706018747786444979154312025287233421276538710903139774339869188978991124022983292126476608217495317919038609711613699217247245658403887320393523631130938519795660838375958269552208888370913480571223319498375459344878151692629083949425833064896619806178327395136465234821667493137786383852791803361145102061916471939525755594710815622182516248377375431682017763933338158061949312177715814707011205695250572367440086112727551591672990459490951452885185396946864156064414656975069662412558285718797822823288819825138329686415720556502519693932346611561795541963696855073462171089986683930080913050735817225175556206468765127618902376180681379232606631981168353677100209560830648468808758565231838355789858419302892840142243002707219538375214587240129086828998968440420725121483415715592429623336380266790622035715721722769397922016308133583353345798468857497410091261465569715705460355468927846576998856509773749385878778140863206907170503070389800287424056704545560026408493741691759178944050360806245325440505238920011089676150622064000315935470371002326444725265882834464775837752758883008550173533904377852491069518385497464536574051139309295911992849550218060385569830111977284649776012678229103497351023015159662413082373708182157297662554180737451755979354241430128977432852826980955681529772370712529051177770377432141988050389918864615454474449214769949249753718489742547497223248959704431391249326210095972046831569480787117577075969619149838437762305958360025638248424612954254172210302533615024516157329839605780620824256215180223946729902869895037023215873674266332701112446490892143511985171086803604347875629514493977509277905221373929906975575261891765869599259905436873939056696238747218954679284795239091115332268922873376863773285389077962936035531295299076828069699874181887401792886498562874978758380447394288701701863799873949166493933250463170626298631097459336768910522365448996354216797175025231236864992134350848102251149098477539666156135104855810120247986736440092111500399640293052155699069876020719143742123479966839958673508317586699564940316975989385420343654426947056489798960020871018231802390514023557696504471943568897692930042891881621138183533161916806357144226453062794152680962656542366683614465126062353910771503362875373482081327475290846655660848358296079901812840864795107939644750136028522450783769974033158314904982845076128501481563606515420771232827901167061709893309561708996412160818185792137705375302898226200618801076185766662327770258783481398042110188912237511792518578110227661289174673584734930737303559506508775334830238810568007178562989175447383082992940388822711791123525934937593111647966968531983589268040854573393840065413685856821814627279966131225192767724269399453848859763889519677146094221730980899512438542301317717407837356232097296988711053630239174096262592306356440013578342474916331597473707700650970447945978141122514726437109292616010550027992557345847107561400335890616499568706849136046228621949977669821018992203605363302696102729085622060248595719525083909728430663775824981724940904849566876454862115548639787906187896336291762861530266189826134047746987991808521698350352809826521222839821948471096753847565579008767554816804462576936745987323355607267771751984763197102929528538285248929532562200256251370111326374919926872391693877782550794734689725033686245206988593593348713507071572026025986700487770852240374660767609604053328750913244104830054871673338273358317039389523380951345357720201827346989496360239359241202663941281188233217940528226895850720613563807997416582361508964179557663387510870392604961147580031357718184748127560349146903639792728445979964670414536482492111308703223429925764601978060727298490905673192356398188770153714319840001833995563401522490103717483974813714612327116429935388981015642281126918875450458621093928248367468185610014720724316569899385585628699722158776662236887130820466685404740346917332160056958780811306321032817622133672369098538538476730587451371202797492248255854927006426865051918252262453797561885059705984413655301325899126787407714974509629661350750181390484356356500187120589056013636795044742324097421538985033956998380958855946191074013859942615064432584037368968578579029093062570276473083133922920981128303090025078775871168572411459214662364193901969007325514329977983530573616480510868222742792445387329658833286788151370214557399661024699981862821616362525353946327970808271072861371649579054852962980528749808632837009482296450633114841105885756691945664985434852190249418044457606510959250887025597560656499169674587170362934269181567184280200609532239007621134578325640534807900962354738155001595267953637090919254506070143089484611968441576077164734901504075707159114271073969401183999471471615844004581119515898162157956663868560252139212996692974179232074179969962178541910879512381302379015714926640468762953487642311048733017679640713381925036378538129058283549912193463461956681624274896045521591394524326087734901734436912881004259610737351802251408119647356716023639859462802401918076681389253192205560316663248856932658522849969515392490432091085235173209681297606506571268884385155036521839071787118667845714224985987772119625332225493974721882329336965792405844188164813072073193500369833992398254040158965131661720645925412651974755695641620307784283129032245803555669776500379931649684005348810163553004907171841911207959128877250609717318098085418467049312959219554288511320452529894338014278512295154763251757240219966096451421513285773632129991743212188709566425019685444148658764569640961473903598052464580697718115062788710186682041879290366794750816534651967006012069368114091502351770015459948552593857149272124222295378428039984240078970161032818795749132802340240789669366147368290317339618026818094558083624293578116642946907412609579461338191568402789200638191005583453252690295162846687761417927348975598063293625663374836753653678943624069386972552608664966933295569538829149888704706637961234139018073291897289868785851956397740744362755312092570149590911405037588948792058484159791763115483212592700040896946909117591197852692023342366401641883325294929658683396911817616303143849231132074601321690631042038941706064208693802447032250403639860162379586531561916521791829840554059699293902030947472392874855589543482263215971388675741107941911343340789572568717602859006311653989625909659063471410400300465586726750632551651076382033323782624603471477787647375401242219657989058884637130788008596431053535618842988600856012044901114172457309862163587256150872674407455554630726525010880563436461254964738214306052146844835949708989304833009127150709167674442268786948405203516249005853422318281674549879376418872599070625567090313661056858101124720795677999111388256669194072127684988483956527669188873496576340648705348383310018840396834877871898670238526401196151502795076007173672842782867688760316815803351789097658573391415730418137468075500090741329558354302364492274506972997919621609890681572295545680520670498052010972197032181529481547050992635025081891310369416989392402419521627531493226435744323268615960938646262915912507381879693907515205290038525378306263411035035904158839790448447595252026562567718825527959675671798546442420610526739457347218057169938748718619586994078861647548757754884314147369696519258599624827103655350380187018271732540383630876789920675832247574608670884759833881843541758029482203825724779822214935725412914987631952791345202468272541832809569198590348061552884245818996470625994230010651324027597554425113950390197352551543469350256547887004076422381724828293546714775224183433104946581621089457364625654756099166043440476197242306879263842157098892711055046951595934097627042651811018800288548727790719937872896769311319355674116736077183759719012526337720992645296223029824349773120905638129385642400784028792293602536158742468303452336323628682293901796641333028631328212904137647842956228504750685284801860515989826782222598070946966604386135233034364258071927119271033901366882836138504423165664171643065950461263038613861576769589757899323246992794930472605466329406929761772505592834680020235897966870710323952303626165387622534404194597341860464742085067852442617015884603184920598946767787196759809737441769904574497604610874141863053165768119535936813139957982592781727519841179874699551374388455928563616184550297356503275808770396285098819831003299797807000279995262488448086763183107336988553135278309148218629342926429661057758383034684001856030373729253518545647890960849337227905517218378277997348136702756870737488760696184945071978013379128124844333402145761657723481603557881532989463368707214515762120917694100906300767082119641262237568082018821975185733524607444132542511003895601813520461569808591516161207025266251360395354732388930705054536437845356136479738107046793009888708636216981028978638101434999078571510944185228945998301287933073718331775761233580477255804185947166015982303509937750723679558327587395323655655072313308057608536217111704821322878297147058699260732168157098484563234753121570683094690028382928436844625185550622101124562685569050996776634276819433721933023236179548411990335688266612366173259457257776370374845104334009792921456260879931480611991794141142673101098535652942810857093150853587545420461391242381329591101251772404765255679930726582863483001964067283262440844869867440316252187034344704526145628390636375914930710244220364396417811185423517710490778320718358185804268783884634458704310787418462932247366274045777071313133961266372963429225178513291963685666517272934374011587903022354807744412343948249130904724405479936183590354104496640517732010474648391808163234667626194155887505431315734396768673025443839014231267144561225048752832800642993762456388356655532809054381324029642028550527100918408693412205645798861270153667994866686555358558520501826126681922284694500082519815903381568507169154757137965120548545738017030659563493795899243415377266064028717359212025610525178836853144697156999568952509020718369664177171959083014313835658114493105540321419174890419116385278395066184091872972357667644045193023904843612321460402300533403507775326246262348715434142200491676193609097175339922153362354111010140206815156145728203320201297858501530460669997542977376092706139385015070538538854875200780817068160388905423978579056707575947724916948085045854191450578444432746126013563626840730531327756721674102806982740696647533461315089252432630592847303510945270372257704923119630427832316429721829608004877614602016455006369968346728024105489170876859687284786455150795948771903058611711879830974672565669776272019410999610075859580974342608935384332779043116266807144133035276291720332366785258963631014609557037360306421713589428746329683777004029368304221696590084683164458274362073445877029850596445100191110332232197479566700004940802865351446310956816799459284669617874112564678148038262092371181201018778480392294062135392236850254389764589144633712909337588885430857785758632052554574901632781616343516076403504302653240504904379262122014779843490356567923390054197855052217089415770872548678674663980771551423685781963276717870455142309193556622425133746216201751614376031126976702364331784202120396572261249126269698394691285812110257109259431515138461250630645536321005553492270305938908518841016373039747779059076358710629146532196664148252549585795517246549052983794494704549524849453005600309149451837620898697313853759773556207826003552722671972105091497127147324787707844274284153876407327591470863727539760757810684064423603592547953948691557251305163004560730921396101270396769149023810342421727804418295819314722987828004123062539148108022999315505172366499239422189787683848646559748631091234510439899010668111554536884830401312116667376407744162193969284142797141879107476960006236400201785965684267206555500834557869968866413356209036102902738909077260670223957216012957219344500947727863277984065636421511531322190869783063329093759095571701443231623037192670179591407637819806645352466680839286737095852431616572536734160755260481485341724769597941099982531368166610798716958735508645257516962660543689759738881875692914726495155637347274598819120662223152224672500327017180360577524662348116621744609412324215130403419798856179930121344778189710221898207977865154662029387574995234903512550882750922991930739102389045309680138210425961150509672710993415994881647134374066634948173346804079780069471014750061310597693863562124192579944211222424738085012039194712579788459610599554221608951875623403419157943671517281848895446203510375007461053168842089538478007651201771584213010135172066339177188607840032211908560933666395047963379897411596407777919156304412288354833640009360300540062651192737952570051558717092115334985577732894174402468438830583543495060376074979931685463280193536679835238722175768174579806280315535781418315709719710108518431466537361400858669024495885112392716566373381711914128582182740172786733776741490945572046564647923598830420130611069607934115883736914163247187294118768187780121115057739352122796301151071704787627602740255206376824280570408257627435848525422080665769002460746908141084115142434551585066469305583300489389080820066992423305656927722722840731062826488734864858584492941666278933882966179382153033416201295362310138256028872747260967074064094792268950064864317058124759220725646824584392435507679191312048057719591823833637752631162445057180319427869256842301144949266205413383805442069997296982350702630002291067477279987501563656808501541426640363798913277692661167539673712285661042484000989777272355194284717217009109158387677338197235378826350888896785156555729249751602009055245946663958180451328668292805101871667895888339856122946712283854266692715741982351088051228001467102605693423522799938290948490303902371669884710267367942069427160330295445690812953152737921416626229324175369904662792142144090564059279371187380741591117870713815061066600542105943555613418177337268121680164134493956495841030322203266962158203081973440428835850369614070153992777690851530454404668977181302360504998299908440757254540533039209307576400916845464312368123982279795635788165173130243891784653027928035097435209762977158297883458076979572449735479535098806891589060580258014682221148811442450252700833179847456647373691370669326355429572738063565329073994301454329307452989984938598066054979159735987254108100545134996745098526858955060204212053843137004414011367582750249894737859490911051220644335086685469354688376207384117403141839220467569366357178697378222679348626306461021260628501291382256113422291627398627675118088669262139281744530901793769312307359314150891703546003983098359866704875410057033718524974271029772804252928701199410914979776888185532799810813953247642561588818954937857532562997897057749742832112242482178679381201963596406752947799153138499140179882692005523915864507120460629469101236152077155151005495660637994969745713623392102036357034760003672888522579120511305535326153135747079215615823901964135469934968502151620846770166643605962001606856889822908343235633404530402137780280341716966136328044389126698832901605447012097532474681193793482395762857374369157104738169678391267369921931988713300918629772238706825111885437918369070432731365206261647700996071317861913061988731008819731274387973847840727023413115527377415623322211519757269249972280309423338641728741433481287473312866118240712428387223001216547027715698535713510664572454936615567069107888127054231563491933212165930880965871200432251634825705251555927956591412322769348067624870093704072503795654227386675019070898719364601332990350446969407061217611229919011028763406290806984481714065941893364710080720757521839315919273875967949677931796271792945320953816371420275059855833373563251836412705929801477815268770298507412021086181269566275453492083583091403453650559201289382464879656369409013755914443071677253749554698435958019261016659906422296614010847418878331091223682974186575903301376985718775598162651646798394492756474109824877505077669752614253462315758704968922313510454211327199549797325997832262434372899857231880544621338887771392154184057519596124930472361180386799586301331617065595120408056348181369174464792380892970694389042274649154636572179313077867762296798314385213334150358558643081829363065432767738675243804191094646780698793903908688818240988249679129391676032906234516913106440223995574913725255132840570102511881065978012650211822087912521112597991539108718030585489345832157660362642640575223268741017898502566656792789201143112796294726639645474184564861405725394749771619263253552072172925849222939183296436173835355745740670530621892258807089627789707234501523326668601771274301115577558056272221146193198687235553829125856292951662663140557544314169229390163885148635772059320401025295925424962312955295508815183259641564982665943742128693531586255308625073699105842901986959242736433841839560194598440935607189676707192704833438338591177863501763228659478382788335970926563822008006432698073504107573191357513551913994071409990702373870886216965948028323429612626001551119843505662896847105087436681594930597940524323512864698858281400702217786783008517446747380284092649305582930240898218967451655692028615428495414770862518237796259722101385701051782544401194594640921427504422603703521174629326848204661151782526835632484551762122080120891901565071369044955282188399518178361406849801886829228203569043823141836363539513476589132855119717610075651231185939478095511502363626257776806636618103347765918578349438530289720679263353645697170591682139317922819001562594087168327733219961322399953458377297202843876286892267715727257112056209280916304275988788777910892524407733647703166945343386473439052307112292896149616067668998062349626753162063261834733370104943631751468725457583456853190906691006736249088898890679882758035641535764320344146497218201578417845267553577959844635129414749599437703909707489145866346964641744404014295291802762935190909833108467401694237878999241194443239459303392417002967764374319216754407391891635685555504460708162046984358603947666408736925456249384076276843829498865200473547340050963345971914954470229164693688609820230128689895953473612420784544349489475550450619894864453203328636641477053562596843209514521318444322515308145546954468559623078998432978130571071734964127586773664419642155943849930358150550116250636045210543189256144207034703620428844749200565613493228077071064088043870241291901890726254375396031254841045775342511407615551049950070035767381165021084692308502368859442851878580793189227449175793311255378862410208523822672754457962016499475762524913085773199307600305311809259420247068511446958949006075750273104675029346553261615146567649054175997119108275032538005043717855348377522316016425722426031894457099563027706430519658286986184221391496468093769908332389933412892445366857813737537334394405491514878999297718068039430241190046987928637364218552463084634797516160775718982688950418818077155801224074580266812204630043694706211866774173356926485525222888144547031135511724768434863763227803952589130401511437773803402379093855549028822252229361601160743286064155724645910638458024894629553501307183338132482121377271866655443345532050655625507640089899089413052609517075669812809654369981089417969578901472257362404673743730670504826743742920292982251781151025724584135068609985240696834948157808108185050278217052249821492844576597420141628351478901750303977253394222042609282642451106596354443383513521844040332021404393735370916555112143769463957228798802931651272115157958366361051706205080428030279658687519784113403342389244884511242581261036026212308961787033888329283615365056090867283365041114038390177979959723485490588904490117175581975314360277626972686781856936661528840936922465874231058901635798588219022020142432165498416034008072278516435765565692337760978324619598116774449149304742701644933402532704580974754182113731192185077539798145426210499632520469698946837018861479718426314972226807432102394242573261933439639405421632906075514772905694373458487960291054652023314799602015051088684495863764843131683745359819017791546166993052604363004430200913203569841070739661030113590335142712759991509677903087379173578152789044232677215346009318192289034402186128447656136585907091030572073404319333731233866852330505447158307622968317065267736013599793551731245849322687968206432115927404778079808192772526440021270181904513699880143567966215486617339177921917952916153814277547555933956295507823198791746205372367624688694033019902787541440310424925031800483417273626121669521027683712089821387526094200650856595681052453135392016138256822162820958960039517634966313550197617955736450184413146494270708247698794626290354938028251684148543180397996870486577998678000456695251320753737838572975221537421322004764421278099676274790221313376536911442890323748227742082240325969434802830620899071434997544859651258849668830035157022044714407948649859726079560492302375267243241541558657917912516621687612406768969486630808600840233960563882172053637616839606685090218051238205084902494049793615955296476628675261661085021192018757299377598709847774568155808170884374643517107172148770884591750183903816980819945496594799192243369809399648192142922693551464783426222595347902665072246637245965360813242896658435925916017983406483449821836385878614918537516287532107193641467764226554794046993646438654982963987499761197034369192322432327110503875350154686786381553642735221866776589381992750336549345382609578546388151666128262149322679561866968157927764081880621577014919062133247413475936930146740603808673690370268313562456020325676621715159419715029075262294273034298843937850877050626035670486039586875041772415275649307991902735879176750857226197112976245703686642980279171701143038577439895984635339372418112784881285343273232859315938940449564777017560333881393738513480026813594403100334860396495099104788785758016946563886951155280288270509656097522938290902075048610211513555989999230174339650161862395632713876519088484494128683989623190518486527319989996156814751624020195197732027397399621154768465713792708167870821700666135220155799291235683114523121326347038111990815126823846109134022717952667346210489722542508873572819956606164162396261668406114246250820833428678582436743863873485372267208389195023629871999055971705571888499911301923938468766179534146318349344585241252226082035301204042568811428211030519898074539624672715830798962773487857611629794461656111646670164598314354718086990717896490725839713021078552552322385458995998176943165349019948839060562266482895288962213192161627633969850778758769919648251332502751518316251714472693305695809591185419650543969095027470479592773070484835878739514731968798621415321398992490446727004467606278308562111792905462606719767598407253659548696602415432578056011443181749955463735201736084710607196229168781816202271105075584926764404464733751234502462164714656475389736631209928645823892484706445896951019415094154564540250126821605273602134179175070715854721934907321627670917888295156377945102858804745825250611877288726687116056515439698441340350807682921955250457788761588885833953927418472102100597116255805897146607021104212596246923537865812351921149475314401257324552210136893222980672295717976946322419186252343956819991492267389504327250442918735721829195941388504195227063434789936318593171035910297958770000704624919956207257983277911947258082136416032671901692987534330638514386340795693653291887932819255905887079874440991207226607023073754966417249261896690061512617878188293782402308476241072379244911121490226027719842506120455337548938120954949113085820767924027434641719412573836965714462892160097995217423932274825697992912311906616117674500494685535326148756021170475795881053848119909692230154156945444388214088978918182714605591620668468643609921812071356769113243433574319559052427498147385885581657753514287017326794209460589738581303300989320585186734743603770076192056202947685021869117574748092294975329398936240504291951732316747276789259710626513778827411872943568177888962984881406404462155058910414069907043040864154349961340795605092676713727201196548834478118883305144380368698681930780738911812296261817698583373129057370727728697440073658696575918912604012121231155060851037625734053650463702803198297682149458479283816772355847209083691826079001868411226387701040678310748344635783418737969153804808297957208045488316665754995137287704783884350167215430533509010337914731329093460166605964728040636061147079069254047868888705724450449630110687469434095897445597884421455721610218501845576834968174508280706817654282080143331527198038973745513259579562791474210540369603058639438914490640932337450796823328500357478482538977470186725617571669406607821222238143704958360456788774546088859611229575819977832323469483967404628760414074633314186215786153985091610237469966188438114376230269620433335645861889305307795158144810251174719856954479729952950523707938876211376241519571579964465089966769806556431554973744535066159710740443677970872775414503994638861457073179165143030221257261460387102681601040855943752465473758200071714841927983002051750717057367357291608888551809412985401488083334971095398607125695407021503129462340238323594919534621649260356148308805117011265903963773132938486812828742379177530400116254304193396968458300301286567240060829934990190511909874544022978447224606476739423186114565553887529242764826454623368212110331829524464433363156681780524269208238773498488869613839244833670293438337790985892284430612022990137933404246115190227499448194887095613209789653022687964331611294360642939986845849595570897967317194618825611104202113220601283270263843590115705396967332421821025944123414408968426945115483378489371895299861157774766601164134538743996117453593440759637921601676943131623504946578243989801262689803022626585847616041230020946805348818172296995005073872785320100263139268049473901593526736023982802138999631914961864671795257157083099282204695672317638520837074815181367030826981034461655264955837772721881609537557779372291740006756911266724754845791943257992216738809808808967550910722465878593865447047777842679977075866494437113060093472524611011720871343318669103774062294516361040388656913910245966644721965138587909796253561593574596851036437886641707537322030546066337220583231078952357619997300390039224627717054569858527810083765718896948449083756792911662223284077969727338232488363046097364544112279595833292060152958887200049230502333309749957430087031059555678728126225943818238683355913963956604560097316442536553263955835640682611335603137365687474457039599255952293420563575695134274285442318976091115588329432872009923951445108396916122189158052523956498910340004148812795198929448143509153385171440889984534591513886110737487528195643465738480514517095007904384174609660678496611031054699572455667381227830541061654255403656386061070736449064191842422491318797549913440285436655006325257608396573738858518336912444702726068784886953482377148803963988566844137778459641835815225206562850640027718986553378998426796303452849511510983319229980678939605410784214918933628716540669536065272072259751758160442791292971434175509049222916667739149594309034565693941044562973418776670287977178008028984331452847236838359984989099868035979668536128945491123302967849063006880593356551594131308945055112113363298318395323373082490674406026907945157694680715499672577590622335453454210236278980291039218845462356682429374435856771855277161715456200234588177377217140171092632683110788675264911387766628650091624985834934523260561404966769399532760357139548318417682311405376128450285295662170289132217498556324228195422632719862878030436589228601839717916289623123233601924008438206600636667853837603504665199127239633782757384684868774996879772017842426359332534913529577548543376061526032721901102577807649359135609404308854317278178350272456672097885184170234174862938759129926956023894857032503495164194445326697848969930011529392514536250998174644926948945494621632953973213983186003378701085581836545925932637394515153835861996581945614827603765316031682194096921145677228070377534941133829306640088922558403669546572633483449221472044967676642977582324652222594890681058152265439150981321650918461903719164345954367072729356751456632666064543409546769194736945936759749493811187079858839599304438104671897575888909935341237412656927663562723861138147679982004472913685525666285809229133740217035904260441026941079417032517559269828010088567136673796766839909520098446616347819427892059239960008694867700622854134562915612647855171025471520209642599733528396717317260643602412596145076779141773493131762523512245643370400108104351677635913775408324878158873617971254627071688705766142735190063253348286713216030271924224214111775505847996152175248223191545896625865281874797042957737031601685949808902657764575569699405424732676095291522497586493382520766764868793030277415604435776052810974303813599003385036553803649185366498150178176092640658401074155029677765602427822279819559735449743500321161776802121283653941228663746284613960810429666802088385118763578960908952263835220687218496287922842228869292598229057441438440759283670478628713900141724655376943632722529341246582269315440578181730527200978727234930347920932990547218275028916879323014532826912602221714090209140864668431306088017804342660453771069527731170374347262351892438955898345641478698041544647892122071950000535031320327503921921201358703394486985853392189184285486872930619590039736998304004987964233108439511797175514704247471516782771539338112970427862535180857643975671403703740572658382042835440711777933282695623402762912460856083178421457916887366495474020115657360393832194354495290241007297901726147797039758695305794373200541491735555380193171315269551971478818827150037927965478177171360795814004577698302028379292741155659233554760927985806367563454244254800092487045957267304084968185218363609956976491478795361489169021345164314421383942750017583604006115134582722372282906605971852616485425765456949484579558641943552008296346811877536377433281828662126480010053957309113318614644965438304909948933106603341153880202614822484162851905296135176440835872120502797548429861443944365182234804665357922510815680404845356543942115677963108277379614057497572168558669086070084576193826847533449445809912440060989068192850637474280745878106198010724194117681777397950631461484376281832877840481851261424219243714861203850263733272901540530824892497454572786006715450471074122663986511749956443581680316333654838119988963169916550052748948950201861926272411636689232733745152854322405096661644519645182777116067878547251761061512304636541294145890309703815168004932619961841401600878440054829684665057937086461528672996030592672324031457443661346022072980100094130063408322429069996359216197155204873638217676970884621543147064333959356236224192220200580241458408723236805031759442871093523998501582086093747478191306474365069845252477297596622431007444770015695076062420010304553278280598795698718457686589387765846877358487957151573201170974452058696158037188675644612816797453322656967633977798736396839515210772008749030136076426547622814337182047735367415286664064958914967348483907328949060771820106018445469143073655143983182059854789462698703652835159230905282630202222556897890997636974776750790894587834721453517411794938153390533882369634382496780171354166808985754847888240523695275953012549026139732654988773825757560132110554709237685745596951181015814578289262745062061194134523671641670730179460777321021070712210659274218797170828618933012543556826599182742331192034340422414992789489505229624684281828667950672028671006548055972704127803511781818323067427859437678153639484000997213408902360368109757592530118777279364801614890772840099236614056909618993769650992272112795733787380055316100290241628571561944337482776608198861044941361535796702973124332304743160210238048120147425811601167440780214945943900462544481550543361068044208259811686094470723524889504336934267079477225339107128801382330663565222888822754213317108733274750565037999036580816618777285646620719195267906295634314331665242230598653324768911628208421273670911264802722287735954572940647186843855439429880667704492192047711740745635410292167547751390615232618987720651047822262680303358653979771703284302598232390233311818038140699104326252389797973977285628517033187991976960833256195378350240639755493798117117026065919229426856672627458412322928282044922091502920872212734997667637240486676657164629263687283476643951432489249308340109923954153826122596974844738841943129452473688979904967014288897060909358581224604724102205423163179336178777575853837026663591629471107155787625157641850167631715230883113767869210147608984423263581832282462931026527249303880468200579465638340145343541451466574355364782303178064181210656455553094198662866501824604210499992697947276998556315465619737572672737264354726130600469487025352528063723937809947866360053330164561220644265258710675472315001945652538215423291675820682873110752540615341098983455854441598292326976129943891192765216554493404841028632827024255479782228108871816210089756495010658818463301348629634373510223632493980507407199205911677344493554842407479389048666501909705133976947312248684638730124603230542806572293586939384087064127546820718376244491781661927958594568849736180600320213298045529701892796025704577376568350301553685309957659473485222158058419197394156824372286590254603558056176049395329031104043526755672581793515793509034613315108103155586451564802303266347083401284076344767261279392263043390428947753107021601241407460135692643978434207353436527265366056130222584472713969740623686506768315162739103458747076384675335802386778263296832947838766736246474858023700747498649146080357986272686889859902349465917484903196271896102205284013579085560580999324899455266500033459210016817968241662675374897332121784931646054675942874245300431677400372402682511638814999100447665959355560914009676799273817474670585539682049346697871849792844096947144204949279971686779643450756416856724225097426583343382922828509576048744945124761639398283303990693959469847613181297774043902251713372000716916757573223903385246874555493386115539613800938482792752049505227171087438050517710873857939073243021634843795905141089304605741196690077768844570160079256380954305957481474864033355112869966501470831815463206288533843496286735482995267397407310110320189427174984870850374319529685827543173575614186387433696835103737473848145376523799472645028036929606862556823554875277406134138846753335151069507631911370363285523041931788454491156683980452483229580355067349493208285764287753181565615948244194191183681573062426886562522079787961229681051070626082286589699656253490851878369737719190501638491921787456209907750651004441148145037529377377826466779592999435049910675072042594082122005589393090477458969027366258211024887687261332381431617815565446996617736280616606699854991272398333609014489880285016372735010418357066679894512356323795380962265600661369806576555358522009997378372627205757857605982271272345841193144228567193834461850355428200808142978959607955004016392869760490538271710013990131203818752635813234609834046771349878571275984806594282463482771216573154378466471288100754541244793976869073914213818444652279786840827137493148786889552613161229466928461539298520587557371424297424733621510687619906857831065331173116971547722892262151649538533904272313145477218320819468819252782453580457440152537171663341191050077981498104385581631660289277006448448039492759281376243716730691675853046359065117516952788951290998230585060985794756268993025460657327722762111013287730537199961586279150811200014786762434577423706868510285950137927587249703389428427857852158070054519197988286937396014630855075400155099639560928615094392662326655597302461924051426844019282510692441888326153332512675860318429562074444916230572051854792695381873126159850183857442639188749486049598581673508966022161330566832646316889060183675892280777401214067610032932157477684763512102508764349294659369659310218177336995257759525256678174168191337599211465803957647183366315623013324604289541466238647980022280613125683880855574582976090885614990404962831750040604752021926643015924474140949767096308062693872181978504604948692734283052416069083229167339097980157072682100726800489986580638798229319213864312593703845537326722997092126256148733802265917990467831299496158973764942843599349602428670615930779014320208713463154928095273490508220350088368296747388091176539361613826276298836219685544704142179158906883629250714291935320108198824921610734918358205135559186821479743109277092686480242598424229872686206388296594424010490786269184786761550766500077099992478049935731108584297532875753995585213590796313961620491865795245864305684406807392171816574823086085257525117508255677019710446591365939877085557419529189414449522857641553759471125161479002928674724468155030980465278870463561181297150914853040630217502510709750777538533071414549430109753670068445394238851999188913809590939392464140374779023144344165507131459838538381924020364787556378651252759534979738039752725843462030422018897929880089426514387631176996979274063996788901450325664590609413368099053706316570514074933289186579504456258769942507605903052559552296258614336034073347445995585409820644047446185007663662798125368906121131046916900436993488340592407754497244777669270148763220065670648534176850790630306340670273001231389904531919465168589814965010649554075675856119343425694542020383802075543712690669170964913870886775461437329857400811055829846868599834707720947632279444762259589861304297984575907854162409628913383617241676619979126684498652447229729054447741106188867667619606538469109875660630729954964142261740467986915966083051733746114097630341792796785239290608221478950196523380116742617420797954696061012048687392840640328724856058803057034596893423553249333765821759376134701676862823135607700241330371089397762710228046675831260599362568303964436559705854311275740154607527224924517418299299438325527484434030638669705416319185811121123914999245635549575396778349785061137408224124894399008358853649403049692543832527212106315654703581096806450671551097085980275991703275689387068145328417176206460782900770057251810802750771514529988127471013162784309918615587048383760839609736818076560499743274150914052823224646991046417443091461166992602398164930087569109783068977335132028592746421669677742376582552524587444614051182602273755371804291853552019364997153958140563184016195360887768445251459176082953426512603727045110706799028076021417131420675170477320074204017733862785082730665700566997943230440689906074791692090950528045718853373190156112806100138841044037757968893868942052648983200378911475275995432334360615952068410187441771585644333980195649441446107149695329712024034139654686339236955248970156316878435133090049604965046152750421269807123381532250580170561201880448494319997741479396521695957549018296500063791757781361435683956258367730243602458376862662022853570580695709182827264492999767422549250736332652483439618311297485260851487846581491007999414575092446691061265362827585772474857644379016069152103304222076916522759958242115070793318444223418323956448016655734122629335911758018921841536137238799608214539911136605267563297830075692973952057291084090110643936967356619234188632223269615772640089121928130406246100028789701991718140747369697747302317537562164090326779031471653035098158857601647012476140113171992038669064742438743372385891006053303637366327856289103647096277843444188821166850331644646539569214534746695781782942744737310284053947884217205110544634555701930667457384227284275543245763334305648234916783515236176721306903541450645383424184084632103921621892516904456184569651928220463188434202944819374477772200690010036542135014592836782184248892283933419394044530707964411714019235903434148527717626208033523021388651845076728746694534959898178243332701524620486552588967101017450815398218175601155678645199053602228480254912614669762184904316209017791323921164062600771214094850249501854642510286713541084894474721703574827935622939163690254820039039681058573589486872174804003233625524578096908704828877361749759160831078951461517327573518898187266422979450532342331221874453696489467837513282007569056948002002053629333242864297853534926010471412697791707027156952615611246641619044451182499437322077867899651165507093904580008661553553096477362379819672737268177128569887548307118996778367216679371781674992166419104803259737721100978195010222749666496547180263172568327809588304355859890459423929081799524997476207032117256807138074105978487046340669988939735769683750559550757920438330143738447256521887489883886146813971250006639358545474141469336734012800415564840693007344265989183355746633692329500830612062253804974057430864200522260560604539313910116709623256513247388857623064071815023709822440017443938691528193839299934466002373384134384046219226347599375710758837913265071029196433894996740095701788986624917258305407942703424290791320551647665583456088572690584735209735628631486093823344563752890708467390946058027931508432802220096673773592862789734573731469916660194074843809142677234617045381963396272817816529405637772405944853804128133505576474204578383218519173999766268724961952062591348314562984941974894079439153972131142843806158330087740151417857078053189496605921444503381061528019067536090051290519846869690037701283791610202615117147196360121660607039692712496430224409062761738848668215246541990752804572781681090087420042822107313625699958176287379778814130423112173602822270108505176580916996404596351191080535369574401671659035858545155148254897653821174082525112388956802842406600487364777236348268644937970152607855213489355048454991776225709392439556141050186728470136715729223032748476654388748576603381627795825238229529143238988605978350522872270866100063703985334638200145596624597969231616212873618609625928474324555225595221549493513252659618870657096734757656342173348480299486077614354255174416456782198179789831378347870118308738198089433846783009872245679542282255118750658922737765039782025016654101273742494017999903228494614833177985990694708329609349276323723840210842773621030703247447281389937034541356402389989683864810864743661549493029767631883409652963549014188862472267726022052257993651242334136759546586023920465608793151847627745011310642420453672084372750109035251635447640767746712613973115785518291554276881686324395811338249161978552482814770150245371970089528329560618566052011575863156430916322783857732457588954722910808252237435702523919936818135242144039728155562015209029396556446356757558550183842352366572260543049810617002533746419429383530682467427266779894116313590067914645509159146290527482271612862441504566164566737144093788140614977119909439564722841374542477771525893134731694291006123732238385505581140626251028025575086270059346731818701587151329804649903779633203912521897696890036402243045026633577002017482495379154091098777954745911787695820200791855430684502088290730611702703755906616484240164817753862339130224526537072874000247940076046571746243245978596852239738874860761208466846527961879773128849568285489809230387155426468436161997477149222461485695105385640714810823262245653649189987450034535836256632649374564172632463413651016927109403860049926228290812893217641498953163080820809728218709329646373085836829140267037438951913387012872487972511992416394830782458214639108035933606742628196250810048288334281371738680510492673240821930987996074984285100894104334276880528314091496985870017133455261454973548870922527222421792719953328254039288314744888656556242418661225557789894399112465471868559200475115887950653824425180310732763909001857041107545841288708694464472977286122700841587849829659883399939457179904861553615172251739516119139731062907528621704962222611726613617122396736347116976838093275435828803351457256503586884212922247907768681672814171803124241995286100783555660726052102641346535444019505562531961930399873083571372864797671421322401487437436474348256823525235532321122086724000048788006755708169124543393450083744461223872769049955819885550136560139533352217426731443744021917936383031871273669773764253146467718440685599438951563935606051797048714557228199709607781338846753397649918889345050156828691529116605374459647391443257368599908483484413098100466089772689103054906794771708388175519996314576570852206211798604908527386412749962259002975969328518621738097826507550320293582849416154515674833291524831820554089297038897237467777291245753158277719340356636380840594143678885025672457234976807567388729097553316240257245247061410034793224593924711690059473822629225460019743213715176718084199585480735131837451970611807053948702035997893153115891704672181015808506987685307600661378648346907366942620793079743391839657504303729744994856371243133917103706763565401244351536996396593205121527788546470980031797310713846314074288522559246384704134329746076467339288163692982396186235054319233301878698640912537825299039455350705198748471216556252306949392370353538680320730406402640452123606343505526494368010754696657130357258015813724995829024292822296207211162446119607584091228005859860910003771411218636883679500231856291979553054719337187141182356738573017973471786214248445535301278455772330805486263155114711195426834845923218837399885655482207740242275101583301345848913096606646066170955190860971182475825504988778882432732556654781751910177263848979859400598035711628699488300780803600680255352608409413132137865898113284404724528053044876670133646440445632119047349783530281577300468888170078797904436912163045403278177319008032253077388487822740180499586302181001207595593907904136359219098568340207344205079550007533939476982235589826431254322298907353514500786118776700627053849159268780441048497328884916539110652060022579731627993481816827720800567217432949521486748720884336594210640441173257740135453053206408889499774280230012354558445703591273877642032278985986796969116701357978012536273700295131479925106913635784508782226525498676239281508052010909403622426664590726135215420510151356273874984993141668876046799272738889538943177662869090997240237066803189825037571809936201284789664713178431315944917329766198599474143615919702096555847119948955239298166070445139993508769852458529445959632854686213379937762712925327020283771404127733693959394096166724323658204321605831091800893554517853218760602830580974072050621093828399654898486040247313752491971968855236794363138554549847675743807824523373498207864370333767589764904647291135318034230140644024246562944393879533801037102551727811018897584667796849325810123939345422591567810355038373271171806791748088129170757563228215834128425743147038035637295188414997517094910063213308551287204391695216276550427228997870425212398462052513961130014601961922368482573475153019717519109909994330242793558694385294510719915510598605468479150720889750812897298329333757008714579387757429795423490761450877246834370113998905110003423266787272930752599800371994250632685238246547484875122273172890659934812491306670508657963860822553283811572209076473360501255458901239138503670964569141229966947253609109258559465166505764139410921231469330061847921510260604090324871223617508044279759572038216001433187113705594616984658585141142260490436906343742748780204576408522641682095863121533074965561425599783480729179633748377032060939779170387609131523139877909276960811446022112554585344009027771358281945809106516167862397058270552850178225845946392655587864624607115894542876997078921736481055814387133539169226026010528742036449689194808493399745910414805961108309793397510691372459668609644172307842793250040094720388478499134692454693008358144391738018577666259401735957531927325081311243766570564505458536370006028026951410303505159098251577037010965460909901879883465778367938190564953642081455398213725159844002149438957037384901285305554595972052194619657380546363643316789758072943024870061375576094068591162721352668638485631888169536998325085922967162437520929300072170531432944155833898898436774945862847033252609361461658557437757814661312084415556061005949037720320882554847675210013232401753419090988428936579271201089298741116036931351800483623557421140691766496764769060385916931234233880077636290519203428514173721362735654831469661549468045751735610600759559909767324473333448761160143164175997207921889260709778720935129827446424997283227939788030514655341611448678365150588543706362049033414808434046683905473775396339887208698237824829753913631611883387644925025765808974003275637163135030332407958027695275482133704534348183109242072675866046910681491880073683435662603766905903102803583027051179439794204833920673592092446064752050893072825210549595665796938918595886339343487717507741528736665352300906951743229281980489119192465194240827377409245150688919270153593078594370834652043660531759378699439023120490860782834443324309003080136857094650664216633789728109041467645506879133566023210788238231655231690774337275472949721090846507544864360766318777666789593536035334704306833338440196112425457263940120480986690428090381118155741846200493115499826011978701398827687066322375393514235767750343380854571309408064551610207161734166910846745843056451977904770438720456538582711002223563012636695756948012611908499460967461776454228357853265966659629105184865624322600467376198616776296281112597047447374431125687425916192345974952349273281800089846679987143098768689319181498163003075150000735089738418111753049127420514981555019822958643537705046001919925408446257759432357036172919703729177448177256212394556562670042640006241298743955472618251007064547428828952292203434203142858330812891438202697967344432985021403261067793373307611051541805214492082259427724818829314690255291929885553211636482835533768385363159294995092963036353288592688567709363832893390227298765355462917213215894114875151123528186602862602490477981858167499186022557177145916913666806572356325537751583987947278577958908819855483924294151630223161475818991861142885735421398059243179180073699666233279999540312834283712264305920677768606345054936956589085143510217186248152129820145055754637446264637756915029338094883434713672440753451352645717979871690911804599649902828008655429667598595136741845551375043009554839015089654293089453548693833880910057619864494656332912995182115283085950450138548124888914487125422709258650964958629573150426636099203288484032970507877105763218768286997118368509893532620106958195633882287356486356528111461431719784869138018492425193073897114771569636345169812211112207725884401121467007464395552195745550040751139271229248344084774538168573048347589640403699385475815388786263812307193747160798027172029417906630202178724660481703025400838797098583615286157156784145979632192311019590843131790075694668419199609240811102743319375806503890029362478306092908277604052394132620911668382834574576440755970206326738491512798773691986960854768264530910530204922950169892269995804194901909444833838531203967169651061719900092402835482541448695862766265841655591139757286890690748018636197107142048604530124113778905186805553452375975971051195050593044828155026212011589265333193957833173592717471856758186831957606122334045966442537629686409405345745991263911916717732266832840933722493659390579629407687314259499055978198494918480940688451731384544228448589286482390299005343759054408472739483819937185215094650203621083868785116878920530839095199826046764133426977452624930483758838720950869294655420676535078048945044499974026626317868582581364290313498559835943930185200857349806272092558050649901964259662164690775794475451634663921611279222767249718128882177016219212424309712278468709447239929502918246930664690294651408138088105976763079867399472157843144996174541190875523409680223046134983664908974148755831438551738052263247268543713862807696099455433753312355998706270741009274383338308508510929231894219296388154900756154724188001541110057414667502809003527088366782861578273448366864835084081470274685835806906181388884132772225714088462585895581262064871973529585629417756026912673648534568875123675550526877643693228645886650336977728505523684452133695366529056774288851658865337582674345256118205224539511336578926199516119751552230264875506910918947687398373080258627871032859770229051419122951320204982015893729798782085988524284177796882238676575170156646445328327916056767043630755223866284601551889370402735981228078244490310123857253413968485732443166079411896002903819843140773326268282447782314262056042239321056306557289712650145032495697628489730573644532873273267473849401995112011422064866851150058597857614265334666322507993089835301750545594954812000803463402428663733626573794637797474668470210110223686903562061251236576684702304452992947184212155453085734721743817414237141220296507952559384954805697934058107985015003166059322848880490189422458306282604131357292037268330866458286944183734817909093309400135889391717668597650823932898419577107155305661920366841570633724546084677690393864958360379057166392972184669617632232267527038204968687623127076387481349311065970938472762574349968842989159319784509356183663767050693475995453787295414614664006513400301408116858585692799555463864315830851414834350139312134559624538785026592739334831255726789476622731110909497909996855281538905627324714323329750837495120642215866186244769370993742751518082287990432650349663481969436685421728346703247524352232962518754038787849001122357648236647379627187802082641415090443076659038262436688110373043716180393580713937420151217861035782828966810555001679743071338156746548887825631477270636899182971920462996270393077371380080424249751522079485062233446822826899200079363878548853679752897178757508691106062345046549429252724090215559767895124806007503173904040245664171796033750154126339640692328491501381338610459629097316092591638875573344571050948977284017595515909935312998659530532040020000956267009870765858247511192577240433539356368120288614960523605499104592845695925238135531372173052842654824014696873861355187001033043186990538504538016675191319581312012772032666898484809038582736824664915685062007410390873285877771212842606455618083995034042726856270805743505722305615754954104978716089712549502210356177582272834625360556961696016445072083873916539736160316211235332458405355214256426468303787958588063593366393255998239603992671640091453909265728927575576316363078586720554994468588423737558987714496726513520849725470612943198916052064567407827823170493041721966873096105899445360371725539824834307504503943411476033908495423479956657338712735154802848810222698193054948584652174115915534017459623738103008736237564361053430029055212561392861925488866139642524999037670514598376030919486057837611509591099519096022123984909023465920383221465670156782180202501791832607974776910626904446361512987369108991823872254549588362737709767192718787691670120527421116853789980769970887731960275053889919876870564385151907861478105227323305399770748373012568574900387123693741313282999081617122949628148395640991631774891051600863873711618995167912878410517234453720467858706180476449728249701674288392853933176238653008600896171393026350944384689272743692819771157905395182336757130362826282373816301099767156393695427344197543515182611895095700662810045158198909377966556044148456980231945219468512790997222989124744937208568540831032557592694844285794534044441365981299432531380172027421093479725234923600179113145494341008594294904692693771764874986967089282018551350270671093128605241294153340521188511028024671457106034805831345405571133792176090407054819955504087807568464753564299839532575510628317550357907392191105370325846590810895918502433906831896070198225061934075375736966994064234707466721308632977679817492386350039775976836584470092486270100431590312138603423471850322521118834645599857868045759540967623863521927048735173484606736708721318343460420914330420976510883035560169994412329105069136297551556199269079746603452429822333224045363389286518295001562821881839209982268880586342207156916710170512871147191601342505002439868112129991505152460296984391869261296524552350417556380256658439222017753875487612030331766442530996595428111922514387139607536245335049309402734466029222466710397451971213964621106900460154310478223142965473828858005612240491864588579137298822208813314514174577239556951524868963105408773961204030399309651032802032790513527782790800052307398501465789172095605173276257348759017415558711736516393289834706642430970618303569796230346553063505580062501053739946483712952328616240913492979421363628459769734323178449046111865024475082062657476705299504928590865749991932434424402514514797546696132193460436194051506112219682553879505487621382161371382284383420437039036116802969488796110014652472195368688053264750199596172060354430130562357175429341216699230590575840436499278377388034932869291147661599474086160634884315966854848512728851216570874309633396464662471019370546698595188140586127982381813955993179891458439049301860231509901389560364503082355872101721237343618564840796672957705853174333353559572262935725827165353127661674355227612937762768482130223469529651839627127717439259392396552726447943794745481380790148170551783183433680396239695437980065347438135014583012613046309337544156294904350166891970114347370723171869254505269915847079495122479384743112227034246461943139968910003214008285604502807697865311452555385639359392202622092818444516057080585133336128590488099471327851090474818890887875863465328968200344443602019498456502088168632390723893827245060487366583280782381407313956015111729216228454703258441085345793206749326941541223179663918820526584590182391037898867249509650110394231371551567542034910347579097945474068771613237292047023272657602409530609067227423716408266677655076837988685794094009511973611011977546834409494041235151992776985446601092460122025920189864301283225959463711821630475178845861061439752319318249317505249322622848083918244842069792852624022170933628569861273524479357088030437764269210469844056780791164396456288340574879056630443223739543701189651417293981843071397787822546403721677944636521861595458002851923614822902751595087737659005581547028860175709040606955986329071493823005326488903900653953062355203286928760972396879717819596979277053960708740114177874374259806272109932419172174481651013235078235053682078875523669855437815633032811123080547425206204445720667840704738954099973076856639790586111428604571985939333358068769711935651773432862259408307062430844642520868356255976929561387738475929417343042950449681441841637535819757506586362918578645645074438957568830493547276019038479999085692978347046622076601947706767307064611467686222078193896172968387829607203878043279728967739583060284064626043597330879434989403663758150181396841587778591467893864771568757578853435884537953615112077784607849561564854932922681543390754315304326936868179074149201340307988721310152823869741919361240523144202376638427113811901728707972182814069908668090124511587980895524337648375687355655330590445020548843742176416707303021058246499118939229360907484620979151585147117252135918355438869471008522595291011573434336809000310806744459222966984300376744058361533888570645479806694130771869684856346317867741111581501994004679351419525390470120611451181749410716433087837808660229918777002074281053444877629240407545216121390799191163482301256664977854890330521289625067336067441943646699025409029105385326176787756649988858709726449985595110072365497033017730562412329308289983244976279656755394966517535638310561777418438652649025086120493463951461352512264466854728997460452863767389716115660502838988771701677245983050504284773664781553260888067368869891297122960918012778375115022445912713600015169950782747510948876380563759152203863875797243457804696940663553232797785977982096852397525387995516131273459712177741848137181762115306280963024880908491913944881176155213599161305179697991439778994974567763782926894389407586976474430786597250145116890465055538564552075979959377899610811506986352822960191806884675847590076478084981830359145553725404056815869285892421657393052350964915370730067343744165910840921396420925871765978337899670058083320560197097988569516469274503528948495068488040468383362372818748857119295590013748751816987249179942006624966914026263617511468084412790016537423811245369869226831750085111843843571097639798147759808996274187663611086361154261731375652958779135512413813491210388724434897195395524197376581255888222708173296261622466200068319047731316227805669039347956740669900281806232550443160950928528184593024183878384241094719125303061536132551838157015237185449521262919979330133460748295548723185604104351569998391825635325195746318516156216391949612522293216209848439998600662875287296826530743590109203582889277186644078675219029788850043609743279767843475292233165037796034227131176366202533512754535832900289392955597177837894533659599493424022399009856594456832729575485940939717863793586414632956843245852655227744528408198851706781813653814675806092863793791897098220853373536683825153512706704272289924170672567919245971493170571765643761802025817728240513066740688736755805045044237089770352474071708739318703997587939185578959663109404337067087975421011332702177607313792943435326705525199684096386017576373462144982243472114246290853117721706731371596816452601420625210793825959835066428379306087442651086314390498319698277569346158097378122188805570957406332112058656250825714096243539152252307254487608745345387953891545995891352859587130666968688873595453523879166537185021548465424028915262298736180218265390354979086206017286869983741619278818991043853083803335354540069936519157424991777680363904171050102882681690325298599062005557919036979556993788496654587441522922268405677463830290621445692378276778793124335608613443834160868438471295419803260486298616118563210885439303478249718671966746852622161366805412533080014561637577432626928033919076332793232028545576108971686343278633648776554666116499091555639455883632202342377313898177378975723705227964509471047889775674535359098167115648957082855175056661652463936890494841777831939613996286200021692137730099107817502242061239208015257903769705873217113046775117372278969946368481457544360031069695637589659590290362679184740430494615409381897066498113483872913056402751978767745552671023524160647444659875845067388391261115005713380686250248591450048191321708008181923243050031645674502605436764833612143235509797630145974690269353530997451479047489865628528754964087068284235640725372148745333419285854223711161147515699264271692886306373644218584894053236312598756820924725337226352961421608908849662901505936137076062099755113417009428908715692658937674281271426925426988082502304491729013457727937427763124805986956398766120894467945405122737084918201472135703187059794897404452007444632686206058116141454165849291480250403787875303588111641215604784706923893589051446860989901783721895254037781043669991792299440692214403021732453069337288423017576220724170675574554247404675095811468898570144918077881088535887593164549052629204449567983369359375064991194697058311681724244109577739239271289515013100052158749483945311704695089303386537122899300706297153040282724459971067726330443648026766075836414586840417999442103517996250766896612861403329453281892485022334787427798931586234318457011411841048369419343993798531050678292820724923519722405720622931705671205378510297698994312898942846229079227551294645816202873582026075625697396124047336920276839067349380380090317942061960486909032367948386030791313654397276835768351054941998878644236223687460695789236071271024131746903120075125726329961738769998903265343999716808514439788032925976812176439742187489625843770659230190556152558673379235247277428066349160626727284372100461727496189434408316706996737466175841781824998591487586917205941196281731434033123361347473060826274846083531117162009711279973598821441463431784341837905301571747290021740694028479838548869247572946637758920909864396969231825973580044402687980738251516909389431015889275982234733597785728736471553187954968759402912225682668000842468521278675775198534558416110905026043988762930172967704206841115230575795435962890023868239004773017072798797695950362405199866174431882281222824844940628973364264361535724980180443434420901623158872397114545891321596521977343444661704036251651866197072553490649362376287505609329368723661631141899538629943827365580432933328377245780737689347385974842435540114055221473664952481148933542495375485118930880081154231967718308472871658040837219224266337630042622758184936130170948018158905364962705280085873196152496956527764186585148722828593217271068475351041066374982357886936243410802679022748536654377092614588171307999694257676957068120186587061817561659168639479566343982033899654136720225465493157484546805060223708738045899672596917827510459345124781869985138896624716698329011646110938999868074213599551901642965891090299451778915131015092224818721048018884554284114691162974948820790558984810215302706640848024209089741193153905973104276629572102945982238441094085073535827389410867739512478301937655348019858336807588727342240323193495545602799143760761250961289197016861555232562549867360262361054682180410477607249243929331338508143301156246223391462177939523016825258151847810002810206597407735748389334609211467384376126431372366467120208710642879292095371958991688111341818823780351588546138267012018951945542728965547104525167978489734821413777386272344382418740534072240061397041632319357489315287754343796800735628830627481326605426675905372322271118398513097671579754814243636404339246183618510710194781578682176577638063250618181957276370655839930919662891040002625337474110493553706553752938617625568714125311112480051574668338084108886351598645612753760552966515312791992605082818406823320825456785773626095365316182961900900820976972130895162363667666657876024264918115133302003925727843338429567795960229113205886355016242465233551657523043671109443571647501141419726572391132759157762301996199587356643905847607743247714127972873768290949312205857778618521867546371264873651150375773680990592259119941964510213176450504858046380402786247782473164143010986923949136701294984590085338499150054104069347060334007198004703988742166878741698198427912502722224272726387640549413299074345464402739918203755516316982692892906392145108655626204024424430586352645179231590883410532027558662781240608718724713495235538465226413256173056297084516235625344654860614304570593902246067519314649140652566026531250935022574598570958722551293420973971893055825457774381840500055645649303242140268936106929965493183519364655287093642655060864781614813994074602491943714100573687796947094645154199456006981076265544229716088044153283118290235757956490253750467877828554259892169740976874407124571721993408812177385871587279413355531283017916702279887901861755304355149090349929135187946860261045268968641860730497826811314911478642739947486597975015162420285719089841944195023356852476641685169320786143787409304077316734318640656536918338609574566318867119640359174590638187744060518317185347199199036430044114320942480692770761962784717088870093780493363087813057616147170963962497443186781716531252683607923766875919944843807152540563520885155888554420644632739930911243988655237987829953250422904957275052734350280584285512525521738414732380326214015705077434552324829211840442314478241134528047825125896721440800516519924695716217698433002072034403603446260096589751400565223494608962519491473864363602938613557206417005088042695200023941894352375755293969406301692977168519912620158060711067012589277552425289448224595233459867648542094476225240561481314716249929023483873316281479841100191636345441366263311554393200011426745867780334336537204491520210435619552332991331169995759882313910071084319127980814265182761072772611242114132060228717068136282809709553789455795227578345907763365911824798308438793338734588785051479997643744072531235032140074358551949594688201843858864979880489357816861241590977808310849142012024663481583077307410775087404766228900365398076482192852937179349317700979276381011111668366908059175732731436932199103542246878614989442271915628763674566721972050440949146375366712652135348322129558490930775973075170738768714662264498450528499112577023299066344881193687977720016190957072283603897472879358124679045756184472262754844963785128319340820448178743405555858278154792240326409461305397981017574061366819958644288229744055886814217780398168289883579175197545512157546811472297637921390144002891280210397386845993079872191698831817900023094767543673836060503691674379589112360198115248582139766642103108450244504448384732321652372024148420811105242056956580036872419804484135204660574561042453305895679702542516706056640113376510813754919085165761235392495736354143849475080733797129542811963043769969483113671933131175394002581488279959353186345252471642817435687997291521828762386762944230301142038150101478528956168522406874034080099077309456691678116651045564976066153364717630286432864902198227002198746644076377964961593064095949460988645413015646941785976730944495505235144340571285073993280955232740732231283854859339790899320144255613406837987249047977903060536396796329923870786496341219292564493375274391770504503607362057729868368765877270208855923854070420525240321768952418102806110435566364446863388900501337894753323341951656191465879942350191957384512595215620999213120547168068327369422365546979437816256779128807278423440439807401611192666129865132034028639099960321131191853495614953089427839871064462814991249458882234934349826734152012261572459630975179417457124725651613982311811704108641162456126303720521527771415723276352130555922554208320999833086100293377061895578122248868033953066615789852792710664866905851383613426417994255632138275257900627913250660050771802910180393371600692103883637620509426468996460532663858770490937914362039642895119934033154880743519177836494723842116304337675344570392426587254188835727754355858216189376961468286959669887209375632238588076690104024277979674584672699793384519813037442016911601990946241957567795173508455100887305488359036114825370151673542717935702554946755637608178216207616500122911729239680750171577462419005750135743026297918271810144453526118086070043142917402757358784361430283253458756740438311114017592356857325431813620497084231219019052872645378416736304213772339206219219307751782225812337217701223717293243401706551413768771886216630598449663162163814629053671644119879594798954001669391679671470171068658754594398879617700465271062204994520463217214542268719261460843066118912376319511910552409729143582846027940190481388610959102873911541228155065148410324607504345499743366756082107453471761997832471662545644161542150862538931623340969716802196111890091806209521646174654742068085440099653758906065518760163132981521824767923037015899221491615516355191544451760121893485475058184458458357948792365911950582055387794935809231178371839693609672153927771530903261345367687612937868932061446349999943587032312204390635319513362363515066847896151933238720696560811833972508842933424320230201664314039140212626016721914565265431379124307358779907994087149058092808265241925861132083617717517764735756360780592724649150946147020496709552085844489555621428853640835649882092953590251704224326098647326541504465390345426710134844234466287110512244663441674783719467942387741980473321510185564945492577382960996654886611339643554843847093045566667907505393997584631386245190920836525174455045199729869130179587292033913887214967938931083915453208365406142925599859191394150954134561533949194908435800433679141234234364416800828726726044612828760891505144753266029837951976747056334167441195040407706377839588156403445349310164309226106006026862412262424462675630438935882913839049144188574618721134500044044487243089055000688872354146670366360170049013027316357739985926502421541885243858517901895161283666617281423850342282513510917942016722888147130196208386268561900488004728405060300637953805007406780003416426052154130676027806853710867229394412525101445427002518786312413954584923877419084590458066184578744205949008447402157485525402655030896331190258819605046804359353645614024320684847857307989374813338958921704731288024061787450503225033126723336603066618510960022603886888068935641432564525902813005043715974091717726951135352775394330471515554640809179000905391753235521047203582855736310171633536428930893287594314094205717025761298383108052889152375880219119009130009045776543774943048562235125508264349623972641425550090339689767164404717313041562898016178614535418033485161205199092010054571103720716452634095919618843934309884452742643165194593949195012721204049559555271989040773237184096507331308194741490883253731873113798759466379955679911424921734462487980569886987760154127272685925279338312179818141402452150541962232227340979361417341849196760653086411856716699446479213805036475561705339681976523008870348484113150028990520268300508174195793385513247022190200840025931225603779269814044147987069991745698390260287195920783375126742937508536041469793016399699666049909192174161693187791586902934192992241000765371845639314441077867908992117549584360226023915538014106084327222063580440424290531681372172842079298750171363604460464576307620017746965427634834250373618832072576487768632070480327057796997931419188518061587482193241042872237506094150526436749381841714470983497767963742000530901127853824843810197820231882551310037091126256131909692443396785526632743840496116022580206581374966492776668421871515283559441775987170978608335947216890568958046545854765130766728440055557967913442541334617450361723018484162054438013848319559425706442399820794086460362361891697882351710670817363716313223545149408330729440314454727239622301140180036491965890167204992853445083677578247268735093273221116817846913262651840774201690956666274585842449557110704367846626918992078419511580869382809711598846176958264291842082461345839083722190879414911505336744897883195018536108701987796419186717295104356649490771907972892318725462355289474906150066893615417327284813002530663723566576509446233572185988587121986832236281996151422227356563546886393088211182837667245348176874134365975282338174534681412845368181030004217345474260505616335714138677285140538738302356376711492108664895717428305634603075389407295439445119761452034933997010836573889588164012725131182374991145322963753360867120045225526986345033762050468537453433765058911886193206032386384465148672753895568755234206271511724335661259951960044991777265939876905415736051801285814471774803028459433899385197691047891495330669806432561206666159164101831334529079216251267947092652465861514294250156195581012607391645614482101729695999948283259018813299148289461579842869216311460732073422353042159277053294311136463326705969239255457593620813983646835381649414352085484272025082606178113971300689800180018014034934111380242171043112543994588530064205462037515224882546702206203047509645879428153603462651623685348808048169910471386574445469214948990108730634153727700742346060057714467655605931646247963843556844502722193004411674672807637054177724134635187300060584004132585802077249823731569286631412413587317662211024703363508082976884564916638991815850125244335967639847831163223016366009804563535952714035641679612654819727835734395242302188686471274328943333916950759531775886524187946740534685779849821653437010348554819731491023318849782835739310479229747418073128352466712352611985312146057934530110867303407558457466728189021706543373383824283311215848234170892024177011923924066617695465458396542383775712838885957060213304272308593054731919817703701875940986202970340482501106399876144151728445648053710607109651722149167933065522182877656393721563391713905743625098219405242063846185780479700087027232912601602620862850041293882666423463838310347718853317215789699553337806310410138102738628781153450220585282657077345885309754677701216540815852116813726147751465679631197710886663504737787231029010597047781684375353721502131481672510241540236698051498699153124415903891071442982231729418278800590150152074021445433931474720665901275024780071799958325605228640381487768900723357831106818393246800515143113521626785132286274413396321869528401419430468933808971245944329980544833615071045968897771001174691201646744127499130059999293782951644067402436437663333027670665471804009522233221772616457261096284078589658118320599768431800674321022766063238135474077521052803780708179738354007446645231706661226118741499364562881357202389844880179254864776017699790680806888041842931135230950946578572763351619045527954419752039473779978413553197118501739944919035547331066665626613374454602241182329021038860178340716464590462484512558753468964466225605153782150177003348991174785741191310900651511550625204366799506844572413518024540550083103901332864068538950918793538113756672469479187743553809329706339735221553412057699274064391868869308255621475672477769658964734016385039845478732733275317766393040461312718534692513279729563480979921533902466606067478456820999528606640388824935181386996647110192670383706654935969669724392562407527894950506716848159730058168855157853448557052634139108703902630758233054486554959684068635601346738174645232762633170642760685704033513141205149079463316145187012692233001328427882665560597333832048719751392782894469124602886604990309296161905914571790164903055867109810115220775838278095573239204891193354522441702448271456399110717496513831063001671124320002408528394921868789717850596361965537564205092717493899219203411013125303838354362878810911155531217865103541419574107969624940373111816649880250579793068355981168598535750163571175012528036448096834532628028126843594294903008235704920822446729655311872786771660072426333687417153502215642878261657225011516938080567519078666496102237527498394970751350275835047054139280277577625254986243086037871660002021425805328834382231128873068625617528332422565485252799657831203464062699278621830509799041917450120701270433642385475725288829068470797839057276658602880526823187562116819999502448306608643035010721133234083161358708873263085920868505358886001520813295621212432374518958547566702311654740372195510469538193710637560013528383626869374052186235427912206699967037662496127443591658655004209848734258791657097777853488302499162938766635449688297175116162650748229717263282750830074032784074858930497861810174523982356652977715965287083271274967843588772104267465745079196203975078688286836141231707320970028217281047443136027549339053358498548254279264202580666749252294738718461316444724606211930386595805475003761129379097204487369238612605126896200613244448739191644504684465861040123521477441303941952264868382674854638562529899666785491858112569013023725213082989498795595276680683717546624555363009531067237878414538371909340804550243477113792634181734043966186849758902197511668167629362723676486001829076022511307502432994735720920373581942255121543554821322241238372042294291469792138864403773959889338332507693894603602901903828657945836713375521652875409515083108384677599141619838513099397851524733667936254933359837608209961784987196264538642028480587551518509142615914182776061178574230215117311659739833054190874024902255902739596594174396708047558803890266832725654400418836760153616270877021584971955184059721616893612759603426321119309992004931050462796138744609726657608578489457246822248439850396443336137068918256173589474033250576665129568148640882504801495475340278987791078079691611655458413681940736866020450623969203531759764872000606300969136828182485314803960786125697358899548444298126195870991194733286927496219297801682628738350083880133350833827251233320635212470763532938273168494114048515696786029927938008726587671596403352268241598455626406368340516363996018462407110375864022561553399110947040013078554061355458454670002342434254444588197955431511868208974198159556097686241509835499914124217611664414972525138341371079439260725654483643996477578562874267028665654738527023811453770353051767363303096418892881047967150382154648460081946673002019693422929427230422017684134243746368523979317391950587054182620773465551042559742887859425028832076262535148023459297175965576945530084629369410928823802880267987621422437841263411991651827820633809629179991545619668863046260433724234458247581830234942409899860422479381020385207210723657532469550640868541945834954055467067713747630963695017819456293700208845996649806878035104378472311927145632514702101225926029572591708597544318822498724736566921835069092031488648829951692728078001973486988304945688079122610983666220189314430186219591762706722166814630702785813550139135749996802395732677600217363134771557843883202359811710235945703856865913757308011367087290633947935474057916043651022834990362724369172654421401164705927079420852289235869165698626746115199153089742560132609717810697739641106704384798072731063634520929386947083099142316926956084403953922978762189432144526071199708750294799966931311661916015375229166753221534360998964776068328199110926182233569523257225539010540771216851613354979559053713210170797701250978618863018313867656142888525249864399321022818583178554632397986593539052709597621907162938054398183926540535398291193181083481885020206896704552000422329729536561085203152604824221487139842423305580929422630677260854052468689024857027863079571690644263727585639492738018325969993157125629912849092587267271308345058425842738599822143275621240024898137006769868220605184437071537745284144857384001253077612861740705054034155278434482202447040228387802085885318874108785787920556874088597402774523386019126270513557734714678253635952415525390754876342112545077711202599159672822092017922716171538984507912493791291971519689628464509417924291913531298302926774781018331205104264967349615119711511251380578000099073834962855760459012105799157286150715636307380961116638741856594611156046958750108450931685570387989507650490447443549808977814024615710018840195505641012947134934536294200716282445266828652178006687115656620264588769872230586371635899523605139652583766438108239809692422773870883175409472338950631659966910262731919297829109327813511945518498435056634925580703104032480162145746427763047823882896320938057034002003620390788410293809228851347561370800408811498339037247158319575149653279240195344593276999481313263572224606999517273554105121323102720014265907313939936943613357854511078766765257375923823252168756192202357304774097160639018579440175556211930957048353933706000274637294847811187466057962665280854880793821824176868342630541732813672675290281504222592257246761753674359109274776937435185976903784758779261328900058717433244043837325533290043533065738663818006586067451211518328801754799754880804461835949753604993526010823020543057922735809844490904773574240646978262479625357320098353952991138975216615764422125464415890666744275416352825511120041603445047666187908904472750515147560813548924013511002984215230324684036897490085928903500292615207784528773682734119797547352915820660529839590322083319802410724379214013820353474697075993364263788016088050084219734179139459696834567396433053754899490658383097833963844475513238220543019903479369039604235458551439236756434849986686012942401579016463672291774804696903794477676006746840567507312562723940268974009782565760380776557328394335763133519023431096451481727842441923425461348180702639907731974876719928512194142586446379908345443090474670442753142329356577565835426089540770723082833352655782113606721040468982988382481365063280609549850135760947134572526321066358594963556569913813032914644104571396092994151329768962036428625326650317554362335991345211446186140785303407336821046472702938063690518197859766365045588658187801493393468213346160651118052301145270830969414324014533163293891272125113120226291512378291851560093083944985232571639320187169821907506391806045023135749292275346022047960393988281179716294962145599080866118825979235299472626702406176288898580071345846268616630891368559102787867919082766574910314353336262480759485554364341095360115106277170948581777042485939373360578397664402667282448131961600000376799518817408460888438281815079820419147464314123855412146908509864723284317510982655650607665851306395028238023814477068006821143939021911236064796928538883875803363228524633954523315931436129299804520116467141676250859300879183000591894406611038037247043374221561821723175184640917100940763759174646345798961405531024639963388664145008889168553364067103219989095122585744525393981198552023141850426327958642711267998568166529978826014676808090960636690078637188774829237352535313516139403463458700299454995377415322959278641363338766859961520133885162330471766683025268179372355221299347053339912600038192109835332136646299342389522235044149750494914604661941366526715595761424090927569859231877375913253945351786895727538805630075151270025427304390380434264520170507261640669434331904342654017713185832318494901939961034707841977037330001859328386237881349126426386902316813137158006787385907758981693071723929591276303350044741151203674432190977811088986796104274627272951499995775143329418393430621986719046038472111081625598913502614669694687680638122069834443222430368113858601520153911063118040556587018648297889091070363140202075413504561944553110737681614423226081370427258645543217575783103473223955596376254876947492159369595575674692991990525394789243349020169566630537793972883974244245695370311129284244330706243694764971251440472693681509636457359079319200418768531182929688167370603367526926972009488234667149052980764044739882850143176007680870687860619391685626107457568217279382826751829696595096697958139677890723048804543144792544602344877345197087777040157998606679446499959573618804872997204521984160144603502535080539682351596753769382050187429164167108934610256427921407882788978842698945157866342686234163924274349748484670872749636252507965049626769243781108199032815407755742854825334857202769133376406391245914501933385322983057551271901312878697992787866448131922482375662032388900104692033789944456118576206597499799024164728621608617685813407904081726894210508328150790337982424570092456600050828933010739416136579759571635413409473464280674291969455621041891915675297991123034460832198871181829475517486178173208300859393342694633806833383417861472990271924188638939682496414146992078983044673458229109320086220691301623196452463719250617102835221167673772163639708236819981541627336501823923109083231743258983469764361305355895031916360682360116757306604806326403694626581074141489862303936852086941705419197723449916395113559364454529144472292181830144786533620718792749231813349152071536050132372504885227250757727441057743530021665197560112117981248265244417495742551394545324451401884241409530770439485713113079376061954820165760583587146971343890803286375456072715166737792911817511910425145007687828825783537464361906346281297580558579340617458170208821951600168965058250242233948148265913180824587933875129264687016007657339231942230448974182798744101665902489202194107588160810828387223606751158035239889204039000335959847144266800341512477061568946641636922458614447161518670900835651120703615862403678189885599366906154089693227997210991476598418648069679206950808415997863721146519777698859371437215489143025793135931252393948550873355322425269954004345422451524107461857524322203417482315794483984448666353332825549673123078569202574172779599240324797660886492508866973570068011136591726783415495953745457633994575364411205770216303941665917868934877579940838440027887894727449430456364202006811142945447284949562436423060102772306058796025857798748654473152999553398547540369427052638465105992533323482238448570446115662835068641552695491843691956163554744339731823324141872416984640875443809338029746618086475188177296489333376183121784616763442350649229892524492148639044455427156152739821275328085205259821445773906142650767592944247519453819207365895969272571147884997153739067703800141922899244551538603669072323665118940839066816301399899355692386049449342341097929092005221530174485038339856747700709863239006453076590555709069799314528862419486838755255162912559461812690373468220556626774199586424387168009111659623340432785955728726834135552275897012326303009979154736757116825709533252583963471754472025774643418951476083440615831816595634713122231165845266957402905537075463243446733292819714167773566998283335136224788805560702947232479437062006927767157766715902299840822308929119459615684155083104943707105658612927635635410052324453935577328818960411208772543195582615150490337310861096149742392551294266219196561506373652224481596621873951474473155109636819855381139556774171259613226637707267833639674501173623571666645248057735753417808439069422219673635269105618563671964933957015208397824413599682395121600569807227148048341655125082170886638819165902161069814748727791461123310556089712965382893543423893072723340101167076090050745292464585591281075590562405116185635110190874791891017976336483672991871489757431014224753847345563837612732408753970479401949112686817325978578655414849780355318421481802350161956456785969335481196217884417435828333004330216499654107828816852901517152147495167290707428085781304224407093615944150699608924007455678567799577263485033219846575289823557666373417782320685897778373157671572824754037901235467364147579522217740356271702219344582171610654521715337156709876101241837581129045023046511674171343148385170066431667866575270434494188273798974405620060473054673483591151549977616301850667103217547194754144076320202814366306343084198352617196923143002169332395064434754101477550743422186762843932920870087912117419122436761376538955004318135752989180978161535730885519752820053828056163008958874099385579814349438281379261979722224471376223811541806657009907264886565922994479502448938236522920323726451189963705694302983300266504376494486920179254889869019664661997469021900727453811853269271132101562274617437261785307891088873197565111886467172539287118040629876768097854981392756833490350451435342642854004865477992695253021919111546937233699378619053306954772415623305340536097142589691774395391084091381342350475177228374877528741822028331879518461033234748746155763864309601453216073501607478182113176385748825092882983634375884798400945944747416656264174012429504965136374308812544679886340878532653332260319383681126977381937061689098438586259168017321695233816078158706434967309345872542277993353358817622312879445749097823913036445303761598214973887404641657480683598146139650923333030672710505896810387604713479802393244654564245122151160461392905036907431367401142294870531171816886709063665575392888179143081454679392106930021823381631763036599420505954478899727544660658064265737374148432569507900762396247193268392553591248201091841454398743720750892798441872088084790305879857874774970780749366554741846354680154407380757677052002179526223272405546259756868261628753933682057484656870104096271399582221741827792402466546380054431194363229947941568892323429161226519964932653580745943868883522199247710212746933860366505266683014107735221268984623549280033239441396478401653730654598184030871090161596971434461484144644067091225459690532252477643608700716374925613535818392510902897027236498626721824467712189381924853648945553614158487959272453625682557081158407780551733002377296592779360934960078972705785683553427222721422690114355556880368770174653216388665885443099563961386503680447995074175407756426577779378157397794426078445417381663674721691044223133488902103161040971043372574485163220587396369197492296045501734206332239378553985889208952813276945360124533068422690022241017763763764430850100464143622597663965681964571835734036063396155431698970784377592735752159227929328634299283193487800789176132448697151924161499102993026149616204214845743387016629402701532952192892087704159230829198574063978520600998278715511069909436479425197491789890597590669955445554242611510874457756403830063472105303664768415393284460877012320938069230487303573974157747367637089362301336770169630251112080441033038101584772519643555185104342315389357594712463381734394840435577121784551762417959533249339021847706861444747957880950424627102020891278139584023121837954209533046150127785637552076678572030862429398936425297590804539053760595071071934992132264727637263542934079661728770085391501200505733547219046584746021578803758418528606588866895000850689764309595754102430908488670578473232686247630489417826927935754210674627225054962082662699182193638327320185499983387903139867696949331244565743115081504389760735002207773424680630632127807395982908115300878869361634582869680663434848133797930891158872895717449110644175352302058247262257823833993680022489907822275980344773855885578804145143067850805379315858819215052398784014239091212322461576168500211847666759525171868196119394330266948564797912100486289699834990781895874345446155233519550748257372752136438297644138595891107439322718394673498863541109698488362742005907563138395807474084146622463719369439368656695157608179923033548261396976870920537370565982556474570641444597208462310877817049885545520018180158872513119891039099313891115200106535806820340471452521312617221468436343383592985446582478281219779108695136468607204359108269882875198148566081767274449369591955047015399748578471130024377065264322076459075272385253418436276683451276532198796344534007114373575878320994996361973205331610999774868441903393261372474727057869077877067860015269514687690311514502964254004040181513787593984137236818783165101515587905525984947207997478546257203150447031724245801842896081125422889137571840193092060033801268512687337408355200899806428138865458961486208754697332932029928889011012602196036295727964990019245716214035009206859579992301786075338948230953071142555650362040081417094794384349130642491951960374128685821244143961858678278070025533888498614765401112136627535704232878948093438395611227891983395408396094497395215649360250809020290989775633517652971776020463487464836111749876374785158644793610299788110324293975290681176044606922289779969581862184799559674687171672966987740139710601882226484863341711393080518651210990448951418691567272919633563376652810444635547473735731908616206946707689129115450735880910309117048109353150495641296396763220903083539993931895669824929211533430038381980095488921075032778054370349006290925141051523246780140725423189988970923035907332833159638389916972157346151446775701656233774752162470871013166738471817514836011240498598595717022118473113765119778987115148181259916524130754196445991258003782113271759222153783972382568869923519509952716881544111426973490974493694484090242199104070700034633579459725908961828573636265547888354895756119485499875854551565283286946798118996438428434935547707501567852846911262214105311711981062686338535042936900795990017096343718056597031835609089640289649873145462351417551300665926413701391376172292292980385729480493287097826795107103317517067881181817742963839582369191471275955937494963156627569886192127144840730139768162103786530909810751162310003490358673023394910216316340872872498427870404906536945254610129069214509333083678440030671990532216704723496784661480225298339978840701454723510549995048078487888884521894320956906213185063126133912465241045154826039785978318867926541063661625498939869607307506906681092695046311557361652475770872381372818234317147043060603401658171621758756963624270443087846596421730098273440579367561505605928337232259874700026627327176630024835262498372941358301645187275891887517751436839491141350446893182789929153067386160212156806033537292077390400916731699400482863669633743534691705848006868251748883468575960143229231559709520685813081831821759744601407728778845797950747899938067438871947344730195168245355796812024407109344666957848865231985291816090498777175260959998552607469346903778100011933746045261729439970956135602780587651201386497227771227139755653713725112838612919500948330124871564375876318703409069975870807498199572340902045935348985504573693176371943567701758889256413539595245597850075239273836516943947838567119140660146004172233757142230747348099399314947308522331301183357506501959657797884034361014528634654568599077173563792052037650963327658998591936390874505985912615208365028140460359266881766066831216404680223691215026358069126999477631233527021780271759707251604325331579776954139391050168053984525676584333422460869655344503481290203091819155174902529586354865870448336225320060982840948261110814470506705378055483999638508533496288638156872044968020304447076482980787900026026485364668389532183434535394232782806219843593958679483653679872982163809694801617232628442218789931111540464517321964745510637282087917905036309748696961737863483006103920855133941495778906450805315950034857653120971774886190186634108653189859833332003746914280352000867374359390499356737425265129427699275440687603421800752281733309130246770031261994239898179098868240519269609369880273929976342372669959851503773084185264086766841304377882193602182229391870203850616607674428041677237254358447596820463336881101750352067479937527023367352950957843605136308960849036139126302272565420709970869358650970300938146092909932893731021995013740038274123372929878736597251169764834995063935752091020040719085817599911958344963781612016558087144737421352322028081886596128783680719963217208221428232681096186682759636590177661748742277580593807536027968912076470435222845305184215203178561880077580479995975154865942988078386981275751240382353591113204599632170213610462714950224893232506645782528559548988913321954227219313889983356378524523931897306372490800012079318085321502230164257401727862689734880315889233334004142776776231638094036731534095726462527493683674753171189130018820523221121390117313365421743555635365535658749795160527087122962502939987129141135979449212460941126231467826765211782575340692015927623203970710582085788959077873191931300887516232321840774921364187082716548265575199680812441311629815143237594054869924010291651181771247159551034608850268146147818891983370062512682524976306686763011131542594510436123627341078409215611556035918144622664757109723529898139125867068812153589833220244700667264641193487636475799143295683171598136483006925611369153566946813513309283199121514717107216694404850430358427501366844290329476797888203942743242139636290773783166317718507952987424148873494338150452988154804056322666235424779290627393468575729602587825858162089419325401915476389270945784000105169695858344794506213238441215478425984705761735881181555497091217816127770598908689347706209038936987743863526135508588133333463953157150968397264959693355204331726775145069221132833917005842255605241637331182445180802096845204947165429548540031331543346039963440607695252492477418807401322045122458247934066437280936077103806994922138281462632055529149995177049445343688429218571816820416179815686047177227236333183349670088664562969315618165196248168471128762642959077812196350473292660875119011467278892290928952248916510391199446418051246671273256124986218762722385423097923008848124455850371548125156961334039475947276441012569896502153630088919965284978575549214413585899233016743189084659474779673237761843245999055622010826222138331234038638608247106081593722875146365280175509202508442098393168587864654501690827163795091676320215236984324878131440051319156717741574636073467273808152311690084721160532728507395210775858206969022417963273626188207109267944178669120006977614259378815240489091258830609315216393337591714808778374799309681441640553033304893009313992180777480383993329963057413727022180034719325132671755610187386452225005041096680628980954299634479123052641496944559554756972585198753987919244530564955372910419240246207880038697759494478563865360536419452971539221146331095607137900865359522632466718192198998482055569057237693076312057434135596885797246841544183711756224107052014160201358742904979233695761958415841689369516116268381798306195100746841235884554420876238463956108886839652316128027973672547300806484488051669049170087935515582944235723539306619329597359086573019787662125210241917820192780545146221665672234817017572677456207900667658280462008723617894425936594540032682581363511100343412645169042960686904472813214834424462885276237780046113866365472178905307710818109827313525404318423687299620723408811597333625320456350826208859026955135471654765560606036523475513168487148937384302402320738863073364459227646706575195310539117840223223191698839083974176079378825320814330620031735538005834907339607867559850305754149655454256505565158906262238656150348893734877277607446684967936202744091771922539300094948958733726362043584401542057890612513967504048486103329646074702385647653174682039512648655929953638664306837978940264207528722848673477538369343881490441746978673403731385520718984193222803099651845966595594604419049237738942381720455360185296320922203341040793101662903027384858306227060363587759100849700447787803350500272905719738261744529504147104022555254600027459192642269800477553982721268806656823503410159226928049285380802639816947428266043433335430782461137940523597917269311872685898397784511755853859686892183954031840801676896653632320803369431549818645483778577148369480474225763585281840353768981196795115403864109787802591778730980577739190938275644144375985489451969636951328211895334942582728501174703801554813732928762081989526613236227503246718494520854220012264545702004378491241699031601723305079325480810514395065862797547613694017490669045457167351323883719354649045407645117741050303272631365886842014314915797303046475346488139917205505651885199317884847535709056749586334146958546279399575640016362027537657057479159269673188614906783989184399711612761588931818671443251507669430781952525549841536346424347971785928583925613200812510729908740022481288291261031069148541066119604666020541032149700626996897206832449292882754722647353475115868550736506314280313857912944394807974949278822165408304656090432792889861041473782463743045060496782023897307557045252311775685855140718883095351634365633290384582813010847160696386271824088770479819118572944764754168868154016217531582607727401530338807501807806360598506536591724249927260452793363145962130140296269173631412479947981656037906219461043225613781188342578686455306268340794254086925025203276848006024361597127004586399841221962778347639592731195029546342165441387363264427793043508360955239146802973770030127757986260959700593037255375603006157026063446274655024427043278079659444954764261835798516660563388432210413445470299812130704939740357779147403297918502978738192213080468540427838480567659424227431203753267730244290231275484188350208716223592105995101829189848463954581288687376836087470522026465016639847585462764027527813817811357304563455963381830440391069900454920003565107431443816285658971504497207080407712306713866946868330142579195287036195289292218645631092175495729260162196753399225453559928766160916500469927325212461517706645148631185833055705267620151530401329916326440342372343771100434617474397983363487489981268996137029632553714591505376338605967596945098961567360880645691776912418874009813198204787700691803178159497175052416697291088892828419327016101841112213353850333702823157383760584090652544926959699812547184763504946749874522340860540144314931190697741292426828207020653100624923289819808419689417675297314561495155010605657603149195480236824157534460998818854097287857598434613183796654526807926393673215467768351955054297566368693075463498149591944767099999294824407531826292152546799545836873556186186083623339322084511129221337491717263182752051062201412930881103577548639224699919033116924300628481329970739533760435729938285272858677487217787973562191370945702188144076909135524137439961838818394899827152893101427401916973567113036473095552128841628855891211952819039119020698181128646771446305189322206961386300938039382553494018432058994300894909163041777965436891678910671554074277717069447273310825646428860351697123091569752497456779586526765660024269933493420933432695422034892326358140099598155924510548463837310048313485997685950374843919798983454552295909858229615016288347913946055610748732113117889373863921752970149304143732738700950860980305200278698570362778307359272470293892172021248194481391851521711564397444955974457655551196300373028117728318162166844627540977249849574783738891321399182875819064016096473209465256261025810987599761521178142405982107025820198539106269723692287458001538095722367153674628254916727122631286809062446476024811429142949860905954096749868248065791329685031674192912352818260734539737755704555584984918807081844160791974996969531858497030916052231619213042600957913923613468185458390995427537299775798495765396260820678031550519064131591434580116583904627693245476251107193098894520126446324959870518813796685317921084948501359366598031120909340302065624830960858323069786196701191122393582857246167109433065767362885368212481706143397966197714104399371082596135738580489419705491768527104170414232526257435507023898074938797844744990382318416672324104161899840856939426230279053418808962636667979731514696386603939700913213456721983176308702473533977053276467689386174559076412304018752750434864316266830523601748570569426743039117079506755162260970573882494216955830990973312973038450103019373202527569124814730179646066545560478034469991395548204079369700504869906624317103559690902592734767156648826758923640494871431320724273410919210332625688438638946340240523148349089423705247711306758599263951316518686384550595294181454432121907288757516633033095497415838264382725863272393797314925245449422722860953397279623506226642483897656911384708342160393347598415338237749102918714772164160664927335225390956206085880356899380248731126032174831055914673780706557043905155168906715632149276864294190622314339862492121636978487521394487916386765296433714922749795029121609347937076542205152087995121722811479492757199273542524190847211360988003210673388855288474014481431578450984420225859067206970508936679935904161052070965192267905027816367768064152940763297743523590418541334195645970171392355842727192693028418938839068733320410469293740949809055659723787169925202202610594389823148969875251545425035065299526541009413354943606023238417589775295029092069934528572141868825346677339083145485182015159604614042165138172656967905106049137382836839575371090506183407623820441537766647080870802710274456406507723190373310465125417925151154718066744313448822213661374706654957011703739095031943779559759093440767649128272264416404975764513711628036804116818623974379665260809774869462562715338028303794967357765326055452607524721837545740446145971243179278716406411677099369762846754717462755241521296184266037455693949155071251360965186301703179991193620919423710826818379372811226090498244201401629608808726505704637881089386324156202822001169518094933577368876970113344048342853459761434543149574440955836172119847843924630145391544218315724364152047938345821993220470740877334206154445920196847587287029455982762660044487214085941896321358605727518801480531461101351902674702462282921018108223088277005239044720929342073363750758235335054607869659298868262505560387027890093534694589461721800878195348620968304385067856480787922918849162692722085045967444920134965758902646502039863127624760167928807611172552759768892221228110478532672848704280576877149490593001116095323131717401440553841294283668060737241667085647794017347965360560707450151378594282220119904431334692210746001740311080715334318679575104534459513600280462320246579735126470151060280550578139944440886909989885434243507096745907964189645689667038417774503338496848359735221687112980627532752098690361431548909975793276253309703663878233658408694232211178048269566995054431100634835476022662883762459060340898420296999766745911622033100734987591301617640536943908740147368358324586482909119969699084603178780386423912353484333471416801552989982707996618675349882135283028374571100439729638506172873025977486329523275532348474417502528471235108056656496489126242593894367512804746383113688545596352930152288848246818453265363407605464632491980648023479078223491916116951689489290875883947216137615791449002158275862808043407465126568180308035724963581543720789902372767698682052879831066002733448598787809876920944560796582876505193096446036255016738167218887984554453707957054098889304901252348197705613072272331679327540352742956232255316616121739225427462132610413897427410252172420585195123312365885793989808080640517880537107363933427289921804360332566230949662650972757584537477621839795512530218483265520497675880703052831373396293600635022231082458412481167689315607332957285206817603068192971694797400188590437644255835037762111684376732036354207105541955173164557971660840701615200258393830740277759969761278673533460587800384633010473374510368065080473821246039078421512814415895852296058353781624228234658053295085661648001002399385467202432617231439852800233620194545103575901090847725141467380813686420854512575956004974278562804595353756760880310021373082549349721397603625738560992365217375685094238394042911538451632151019822920367518705861032177258171087063499195784024352721749822409421509137348538368013155652006905519210096190343641883938186899075877645198895392447817609447739926440397827793676471919714638123142133671349600838447360590630302168944663388254806189626598215548050801338728005794969131914265880899402399920529088376564355310395465050155214239690782295798300215207829967665839260122030535915451056736087207922918925695658089887994921350272594014620098397515919144639119405025703842160002960917953008016093473117933347522920411582262655010327614297784015613727961298822412874737447928954027832983142282299517630314507415119439534462549795453248632099237244197865082988566756599699090667493852496912202561549947211410982495709352611070443764784357750844771950091093818077499345674636610028272752401302288359055741501349611809882050976509669176992175589993584176899496565401549618297326873835692727015070174141678111479270637785923357962199057489156630438925006292495211320867678161465488865923187529785100392901914942405424329336764550254634447199192256567475768425501772354567537996707669449998694938567954411425380844103649756476290223897831498721178626304780323312207495486937627353147087596423296368456970604427339044435804617641095969878642498457629543584975042079836205003834950732635312223511424463070949956686265995530320123746655367126013467841224153666741796555064079448276541799620030116896006043936834200620410413937613212642082197694934244712733604546968274725744159418563578770010804223607477398078920458218457233203084196046401489627078226496526045367233554931466761060291600683019458211479743851193449915340904419879613448269260287723910441678250063689882550980097610453072812980640711898083396786551005204511922005443018964326843642894191827089136989049886056004443960666446992571391862450590822197848750748170963868799156321921736643837327470259872757409313117837014553871962927396443514994795472418444834180841649793867983361316689102972072960399822743778263340477263016360539113832059286047557826155391658477925319911703789221290183569674705136846224295008116027389028333645395177771891637881103201555352007603056625829514799837462637887263727542880529620885455088516509229104658426186425006710011001106769022015331811155190233119035836851414465921354950480802375117528863709423102021749505144566841764868845013750399229079970726327931433250191379964812281288133681392796085828006507115179292228548764968871052966078612162014765063156534451952878671644138168243527715832270710906312406966069939100040578436640505107084526011948053907183409448529069421066064581822201015748927215385351138985516129928694084961114152053965387034925356564107107125215045735202773916727161986720458249913146195617677697430091663446757641402106057271636029147607118520244682648378094239351735036535231760166423867541248232686145998355437770485298728964489404667005263350382527172864784649018515939395165117213604500092406124101718675032950683900502465252090024225929725862096463279679087308868773352510752123083128868389799558453171292187021669828310056681849159181706828424159821281103194427397538802333434507919292826529933706209948958923052816266542194538781117885488844191961060754350219324571794943969562824390440962283737038456828425181697997237422869050097890526970798088866299913829633103202438394355944886298653510480000907838331532975396294051550453946649576992071912048059800026568321964760633102126431897220212656858814546756068670622802844444006933999277026213609489388847641098594587621728260520497819286874756438604829422021680522642906672527670824705873650960010538011748470780349224205172691337272436451239336638026977937340420404378318476523611795864193669887503244041261788015541554681556949942232122476440846558623385007342501194423982033558413081384636948442363934380345324738806371390579894492062334751309114562035373886929741863625375851681688438324748846850116572830635481382877856867442379870103035995346870070633055614827757958101838334350341530048913831927344474742535738415197778181002604517389117363171845799194740948080259620041382214444697858701443196002329802552316839446248111811013380122784053016804699159807580831109928738432337599040990966314981949923870333763578581059225275640207985280860973426114382947139690676207108299428518017791866928362707255612799316992689172956377989243102023433694776263575082633022930687142589650076846785480236221014242342944883793101791154026213943359533061409355332275217082981472920109674996760405503258684581205497573330987026549202981428268882565271495735512838270188014664982535769668462089124715604835087782027134649721054489650614585610829247517319076809175771491071139844575130935583527656646401988908700482143925055311725239651563139367140521515981357491737597139344882225942885759265001827563411481270543980142235184393946057934605741566924010504054085213688999752462906011971059426556119052956935323837934118387433360344274066495261796312559621626527042095689408778982561965184192201150268019886096562286629088391188180677844352440334432220485565211047503461529545080775639189394006784917411033809328583992306627227335708939523147093311894076333938478911960460174747213467144461986457412581270632439561162283255982841643537517566312797454032927697144828922275642983567514107891691416604698325611466006574399231579551649440404206464835955752433121939294386007708053449818747579555722193209692443051263882308413664562180417037327806956987857127596629366273208283563195364235823913663841691360978443773558691575844033579571026334710183413321946966599903460979480147648090935498027567857691682100484054852888841358710154146530410025328034951698542986516082140803291838418244777722803802284569285674286737096159906405152697617356198602553733347957933671898527214864005071014537206578283642090262393544093723933647191412076360229257298051101998420460088790954938232534831794320655762263206917052375379949705036901998282953915916362234002327987386350301238905522344095967858427781446552261764842989654075705411928917029146829969994117467254347128579975567790452831539195875833900427013751820078437997468856823613293495386385529521887403668250097542298660206592141434900802321087856371939318855625917977770990663408836157634542802717436111209200536959068446494436528777172788261449879280373278879341580084418452902123638487926771310379020295034522686480326126959902138587701325547365300337761612238431121740861438367277225104370719088527175911042092102005506372121295228912478478591536971508574788865920001649581353932019333673254904029121686937840199215185426285772992827652388756039702287587940753953278771576568517536397035205564988009649263069866581655351888400562047322423379309975582863830161851884684425730359351091850232629851074725730097281593430607997984948691541315614594692496892934879118288921076425786427833535455646897116020828985248470171548461387723186858449188402498089082768926450289502765219113376740568162369314227572080938934940616248066772070114548638867811805677903334559815448782276799079079460789886332648752138372896650196201980253659639762713964470424671582411611290625230096805175097486350164896862315940857791492386002688069636692236690173391360992382225049975987751227175168961420239700114770909064540928514971322365974179247328452750837416594675280505456891450620142870124483764761164569248762467621980847525838974882030243649911196006033334872023758539053669721148994253598843271498896954595425094154942350391832654982573916702484804107660692332986571406963841146986341448537549991744019296986130608863849537010926638344514701804657857867690810734302502974081945982248035033100697514524081658119845588956469862711944734551972210875748567127878460515590873902091826238873367809477828889739805759725777845295258644008198443531940291447202036276659413857854416949258663299310189131333661317605309682228170725219917967676503977852954873302714168164589619518513620629860383386742236058003636285104433952708918056099072207367640602448570108686614037134493315404483583153174488069731596292784437602193215491213704771934192156695972353305209441909934483512118112042855444920821289522912424277359560834946582478779109459138567696540243482580266874657365706831193704557787853842730854789669181721745287675880505881761262368918844778427965167915743343708632407065944169318367734738578435990860703338889278999978295584480691969209206777238896280700742530826450313806475975820432695218543214806002640049120202885412824247265425940802882594408346305656914569096892894251739529829374001465872898925009961630785976282119854361170280291202432755467513774335643384233099492169896928282309380565472573006890008979201096588086596140431544543158259748618800533610615253553372084624603408972940187349567819526536012918994470084083615933394988260535607894378956568788354503861910814284549795140928337034765403296769122566017652558521951772808238675497052451939048584774287383811689408906239210799477194850465738515226793888695226271754418013091960440577809085096008967404571056012052280981328645113847417962049516539538745927121256075700058780711093651480399025907271007857936175050551986347560095668645162063923447293890605726980394563035725419507439009183351495842525138177791026964431348618242362185444557181583785640299905708135951867679294477405453900817133555589463805233762981521772726834294532260844598514921079003334311318925553270084631668671401045001562221395218713379630446140286036006523276017106946866368058775301121364024982466742040635475381122244826487100509736289595678443023910662896487600486993866899480665347314450928902413745516964983768286409072569935787419074275395556994092258012458005135178734809184866241032702845470555022030538648305257750623050685399535143208677395367391516086052330881885210080381860307854607568600492867058118385861760450400261218147254525806144028629251409800806511817254918071252823781565226536962309246007715315794532586156421925133019049483545344594285040568131722278059476881802669688073463341238796591610681890252051753675260027671983433089412954334796648982390018385245850534111261827371450048232619841972324653909295130257703400121753354672334252488234897965702583978928051740847859789417104562101572342172802665109730246428112439205659058359231514518641825735368544655697370040018683072760656630514152609553415730674386487951950707413093208703857213385707382364063619897866049562902591758680325952222779023306061181299060414059074248700766351117307019923475891880553268521908621633248536085241500400786796879291356414398666918007597960274514409489337630441996697177816254002942517026049039045716815661231642652294126990515598564313274612195915942486816086977949834596454325620107988501736135843537961847049165591448158151001215246566272913053921931999928556464701620019873177366516394185488613617992496083615009734964605380386498288737988929275036543770170839126876390514450590558317668393844859996362420743421929616994782269710931914742626234675383488663974926263699831920101322754136029021491271019412265685008053423927707325569946570496527487911593936251864598467563306649384047252095138259563503684439694647076588161252404662458530940336289617803117478125794095397155906995801070570314130171800351564953533453244533497491911707555106777451643788384319257056733715021201724091975229620937580874833538931464713426505662877027627542664444013560600538491155844941467636544408907981433586132261810943553100035114552636642874906601876410774150148973031891453139288496956484011994121762267708245289844784457776124649450571944683269684201255461992908689343847126299873919681957117476337188699668168591308618444507733059805741468189216894889840416145097027249443684758820197176543223328863888293392482901039489947735362424512537855900492920477374269657232927220381066895641338150093774036467314511829076986917684782905657346178734285959055555713931960197898698013253030114035740913346044378181637300195119599427601166468587876865559841958764644385940246909062567309630815876965540198955084826327256137783845938607419997563390459439363994169641793326782391427577085736859142706214372673329840478459504535206583186069077831887489964941219427340099568065459522301497523522824239388963849898748285551767007162105374512546203943822046449445040839771258658076745892987723794321524844982743930283512188174236366676743549433863424525065202367072026578532564259086601268612602884467907956688272035834263233022049510533426392193161278663872388962399073247811619165757333618459930770068431716195197808634593409316296986639176799913994586781162088801660198276814241396435489840769425081437667272757550424623149498544132714857308913712776563474957154570580540377737018073053667772742702540000452393210744659033966723571673687618385035908357220217178279418398668526294268202479846488527304737186054864602666532161183656948034953086120824117106243187872684817701326984794346517315857798577754297776654554404066305295307628977969012333650617384410559222159414638027746395147051252401852741704335371994642992160718231260664344730851908639122516894614247789190078548093732947768122097791576789062299442950628416330814178076020151584238365568103888676403442510898080836008796805911705985380746375710858795462175999692137739106013829268242960510687030488587936911396705524147532046411948690684706635257947429623675584513764362243830645244897782172975194907123258382338155010437413631762479127101892877799568132374734392964936611514831373618370563044913558566207608102544359207477573829207916363066966616847030836180814954351707203048168348831142355130879617582930725173347374132611714701777729528397972023024915224094238195313808126413586699045492969813755869998273849676626433324831918819588275896195087000428797590467336789378412029048514150804512199567003579156979762643735691179409475197982490609036721987777663713626669067409097496322292994041180252476415309724392424387939794295484444918844429539434698495908488501122494676604672639268082407287106804844341507619690718234516064650832365503988202083981912338786983952871988227168794114180742285221571752986317837890750439378973778738582266445548745788972062292271505162697518796200816488266617919908808223263672243870225653547904659549582658911822166885528606607710985531821828523864937836566818454267026571397268108864986587626729159382750704292202082423821888140752136723346229283671940337443672860370632554607130130615534249000052913415035169802093509853618459621823880405537924888923640067794965209218854475975504486622533092602640095332627725516073454440528705564275357236664996464338102957335197044024167692852760875505522600394383627799462237325181520078447811290470877337871782798608423255683198215790497603749097492968397193824316178765197042998948054466563763951288081760123385861398628654539414325908131848042783326375382868082073136274504483032407612670152293753172614090522784109733678763540184466119792086898784187911869124894491173308930194195388446662527173872806702487750506671660193261129189657810703216072744740773243579034254973896682989408508918688399031624980144665756251137387637679673413130890237549411516999605300290112994087161773042090310632687382997826792073119137149466359384068667029566028340545073661037208741785295782378821041867968121885224425510769492552618611719621047639411956442770465493954825067025940215137051410825671190123216011209646791039551793416402790089614945228957232763220020714389454199993429990811519384346793971883575105629892360604710888565420959835689532948789529724255883884409721549737548596377803290725656777121306342953724242067326711087904188466555256047558307750389849486483354506027741512825558748828475366600157358735467729891719081162126074404440176777858605773836736925302594670294257863066682296837966659442762963574579276530604226363320697775718499567703620971218698690196941497425608460622323536217455665191856736679267333611043390074467885863085859417830058154827769221966106965621468766065566869438221308437572001212863103721518962130646757518478660958541162442828872769431048553015703112822161073026223907795675786461785874283459281664951122926560638653345176888350271438485883861502889665635573102679080970144420789681537366610929655230532943855672544529083327110804077153357182948812763831916984539023275499856791412861179348143118410275064921857744371706700982699431439691758319695274554266993005589533232266433553827886031844370808105742148979433968898422336619724161509842358063518867631138141771268867162620425284115916308690605948711802690455364446864775870639596834724362282870012380754642978891759336015460122166382861302954509836745994987745993829504435906723473443721276064901815007866488397589481824998740568521917442702082941309865019862423835391022269946360896090813099107088170931644413499014132453377187755904077841976908158565448400823998117664770022937443326647846562573104246927763584099554434727918845015297827047244903991643652934415242244765122888796634672930693845767278518080024283907916043874598953891397699287398820187310821072277304389202726614091877778844227557147895735047786844879974271257340607683339022686536218267297193965956489447899927223279610718774711807161342462452588950769873300629097436411605343486917912211877601234302901352367148504785974601114523094724285051230919503716148693353867410001176918638776759542467659531601909962409863317900301597892579681251301841707605701424947730331304547077856389799268330753630845975867205914583471148035054414477143744510264810232857855466189819612030675367961044118602733627268682981696211240726727482173426942270117123102261784895873157189659439427383451855744144994265790734807057267505024177137379349602253493138981053959792742697907530732866638988163792939376801631733592557045782812888017435639706891864143099627513202054248114774230919749305046375332528861203895677822168941516714065246194132361357479842813488477327434483239061871605364016767835139763095143996516083422490649650683228613307749159605789655014042223263481642205936648626592980909378933309974074052732292598007873274413128320331472431558711630732523565883295331210109328847840872961945110695751763533796838233078163621647850452960192308532610327894647846517233370896855907273145283197290079715861579385439858441561448902284593082448067364180912631287103140974137015514403880291617198411800320864447953849734018921477621097155788929695674428376599079815806601384870802995983104468947524036861624654914104396140508864215829011846792152198017497595263142139214706694571191688054588711204295658861491200323017239204542502471355661818739513991670657313760623146998979873516894801905575598606228445090891706640727483224561122342944114265198647483459379657265247691377669640366801648636656651145100287546978737917155761339351294332822897933199623649467070564907605888745808429188448452792241806967780676206643714615238005531648732291198503490356731863534578633728462525164133591880411575997503231630425203539948562554219878428248740779346569557006706414561308552155906285062137706040940280038357254270028734901680855119568054435518196326126758358585484443127200886025448783528826481443721449896069229648137710813866213611163924503936564960786065902672286497792627243784294037672389538504220323512694207572661733289773831559322989198275116378769915424977455814695764555730859300400065169028527216074578387994221551517078470834490196581261881582231017224016569954718565901360795736609717332565829239229875443325067656471653468188398362629009904515424775533943554932103044895990194513259791353199885788021900020067932914028992353659706006948913184147615382005667813670421219001573126483279402686127299542718194354256269896930222209349217607578745613317367744102324385280941364088955469814797523590176381185051888499388182827652606952587052111336399524550679714243106543842678974639064017433367224779486091063826909000425155816139384834624940734461141066667255005130288295459237821379856950872023389480090818730917409631111345858769917779582315822597954924083293398749668704726567618948480679451346466863319843804750083150554399274511508682978711576936249093880079113176245635636856241834132337244306681989067312977621604953276555536253121863880617556629675828124851920536723836256579125715696065095151759286577439763546250154487623055921399438562304574393990989386784864165765099796960209876922956857541853746237955814106646361081301347552000682835525285630745445652506992399538158168633242024782685348412039047644804452568202470746908015467104814055662886938968962655674147214537808936686370168784872290115644085765853832278806623514062804892291134282181975091056378931079305136618402305153061667899239830664772123332183078135759166020474898827964918654725394904410504644244615513726296268340101965682473612536962038016249364859409752834879230661691352374702434346892513658621505405456841557589965131948501837608925925866334589942756368431526166984323509222236307863199255097274855666556139635626264718660720817334518363838980215865887375764179919973360158398071361716358266026081448138996068228107003251587522540240079277555827557370450041127350654138278894130143943285625052110199383673279931584424161368334616615680389045975035812493731061932018831065932795439318607524712723318218932286995466758666187779208904984014932196542615771444466832620338921919759517046366973692216925437435789330645069505305076157664182029822084535927436940834258104478450365072490414063985812708477382696605628300743716484095388489751979700459404784283259588538259956495298909175785230318177079085171245539533700770430095082187076060579845211181638828820561438370580585128513448551743259195769551178977711894219597784579016593692154166278587212056946815876264092350516710232567324821674511892619561608468805620314122919627276658170219749995706582889764658735550603939338134647240131110101176099548168571523497031719218965949895450878199208200982813014287192589712918800337862846722910621133293781304496597980968447178934252957010543556771413110694492563963732238007507252650312560746990650683888070334430672739627195905656264109739879734512327800325050629450213856191580789169813224779552789276688581415442454588037192977421477354893245245807958726077386524328436632935364743315273779719874977094518686121631143618900819710387957836647376841693768347835937386702427834940416265939382710447065226928005952068481630928330712144795191487251837778183923255938554604620994645009377940419805640281653042914509787052549212509931417862212432672155883445251310707915027385633713129981322915421557014824492633239737325535442300581958440306552219413856748190356299147468230885408081142352913511341185860152658759146704058484868024571535227163651482754711738502740671345412705936633916728169881430045907812584204350243336478263790645888518631221917311913978939018857540826881459818627984689749374583430306338577235082019001565984432933028605556158157176913325488161442581457692596884385298033685724558595857016988920703215997865869243986695620534628199952127660551264509063314136873237022157807580126597135554047191490212300151216178793962206195469224754438447552090118163100093138918940407789449306590703363865298719113278924712586313270027036266414501856396389615114107132436911372263005181527973286143900626634492074997502976202556413630589371380054921050359135397136846770498708449514181866409697990497506471649921168177995534260200513892724209584245107493690642692574095146909250660878997021660348244072888534121375679649066297908459691046127641265581829254716560200711058451817924056953774505361528090645923131948337809191650451453290097369282491361074830847701592140894013726659828229962735706399329351517084208671076908812178333326509693616816766220640821926625793352811159963576732079996245508684099223922592094356853806882642658039384936113229879429490387102097768975863362095855089164023474516013474582245263356903183703332512242599425592839681449684050969767514306001044923312630377852945330638946293279039224020429841818479570952961123138369023165410595822786539571348982095485070219858247302984315609312985892647551460347464016079078757753153845651140724765135535352706872631312096586818980885242418227593134481834762989816028037224011137007254244878261880003224492820328699437130801831230636493649419832052359880671221610794351216905247502442075493918252919996578036073605158908521838105476330246662217166483139745927652349795557955533268544888300325890143523073387443691362246009699040033776463854347587585082122292339489864060437585519884500288481841956483811550520473954699390827521906595135730063374288766014523382935944667454717357931632925977533722266642508100003341976203943310733804797877518265602568172035410725291479021832955473947997132373198648248247033811655719550044830649801007590181522630201016541444433980430985663981386079441478988673952168542235801953147070466254448187658691287180800522139676606877648510493500019521833227867540435479727146369831866580064328638176383885255803591418380244898412217224978228474942815580245464045633518291689791573047288084682791110044735865839815900168874984687349567391110509189713380004401757534716473869528960101327805332317997331083236499995864938878923357183601722740738644125639088235830682832456080349627011769409643084922611109966802268453198469892097027043254392793839112607791866962359462694261501452306796918240533423919446889603879070956816292249071158018607284449206820114768422183580005898843182084361050450942770621111835196054535894678008673267402921975150213761619287169371559531175974817542413943889597365272260852600201462300785314648807314703810153445282971950087308635547891315085399952106166108683562098247711099538095065497845876238994541513453736994558032057036727973384326978945613597987487045407875983943261788176394713263795823734204066717544796017256607477029071818264528902060310701685398035402084823497737817791397128246843808674228526705722727599626764444664526038581768614978066465349947866383373662750757451544217892116685451809298239176935802685824865048992451868973333980460490922241330242510736764515388056978154556865858535770928205981606365950933459098141794147040023946703303540503016440057536887425805999350319008866562327109341614600817470286495432345290879979307293115578242975050287522904524896731921077428278638621201350948600398248277960739434140590136576544556100414089698992531090849668653344258520124458912679844842249473114478550371953695266631148505393810658253157153796354866338270490486607954101586865308946208908830686368444220120773299008227793313398214591665453055813718845087109556912397001717834674800817000367158648235196710850883885689066831804337287148711900199187387649744081779152004073879223069052607239218645633603554973040173789619608537884163041261243068964037864010546294848041148002301375466566874298482875397011311155903467784226916445784110557959586957862603153258462172457384119564749392108201590533807008629051798017983508039910274359493334549534543732883349462918987398748744355267128548765118331526011744244438810907497272576065513783654116933134805809075547054510183244323756217989621258747639289963223830178042640020517517052818080796924405974119588584731428043882369003352580423222075853746002118210025641767968684671127183316043463705214986990982262484113217317560109139289854012515184585288249442720907807960089193659623817596858148026964902875230959246987524603524794270617213108140548238501613562536758108346665205203643304994840661810960995272321220947840024409952716678819838356432886221069025149242749209635712111104788034616256563395993686980937380466910621586002733916421470379421479941165468450639765118316147332022191063968205049572859309987558298168317128604737154674062045092005075307552910899593416218715817096246864353093744297850887626660706933839098171495998034782808276283970265334973814344022734047354514047189619679424535086845889876630311854622844488822703196181261690899887590839795283076886352083948801534773398226557158971803638081857645615891702820838767068024596572628935473738216160430248177769414990538195864814438586378457526377849154985483268196756887724311032575944596508994633299281336645937934261207996856677366961601445800408076476981288849578164551283087138196942880887607449838911910982852217510435216607384171962139103054703724318248822685266331918791990336085080580226408467043797192322254392355229607980989299493296313045500838053686250053652968322930767415857966291813457839140185123103134133805160300135488336397054901296271967937736911399751393240062512767317706754396336375728235250962750746009142914378726680362714020185489284594091242390707354606671165828693262457960833065927547054624501995560935807741430221347262342925377667342808660716433050630434928044548485855582618054223728458999687563459463063946857970397395463449733690451210528409513071820468922077953463907995494245033576935586867252904525703028259059766116425398876344827951783857231797773334735118696963847132235156538954147496692929261828708569773533216020898975067520130654461043242468687450479891582088390829722682319534719749145618908734732902871061233269249196649321698740205596994599376985285102214255277807302710330121017070873608355800575092798169204151381310386162532816904576500003767120131604434498495500358279543236329761848864164590780161946355664061145987717568760009937054197585531417944930413083652579800162473087648398264319587333863638652484399602333023121906298248181170027438541843665658921959102350842852481253862377359963111799598444954036192042164898173701726926177273793863218831677982760037281654137320428350221412364996021616786968286303207496358624193528200615515472087715475515412497572239444423507875624712085027607470568688640274360608432278311669100944538053020871550224963621631673499760276858617754130371757938922443456980605526419353994819765861694409115520791579057740732473057933591429103549381186837279812572123948086767313267570387359056249449447007016942526888189324729576646188986947726660838523512914582186442071748209483244861271138959653987133644718037486522931244743021920074375862066511987295866818480175259740755398307507731560909052316328470429844974893235293071153053055326530582018175694226568377947175870818429847558020115013593238948628266588194881767349808738121116112690190763141953523158824976161595335294476033828950509693686713878362455253540318227021912402625390839313734608216274235209739635730634161157527918812518979119552801118351665366286685828479006085824249174987273124591445445572941955240918206772671805964733806042740231538164827673152838649815090137434447329308563683669001486571199593739361604284600466885013051602211685987606334687826206840513571862020915289234087774404808712238265987926800012603005121312638952700720175528277547942062101686340368089703370322837630757455986694281070717276301621209736459991771054973220945855201624801310154002431810918125099713754349655539655996384310063198609495368761219647140205220592467912217547988930812728819085729685557707825762802591136077026112492603347386331035581416589356337493524122271799742553343098064854241966390510314709775213353384499146346907705117404393896427860294280218153361516928656413140017560275137158988271990699490338624058434211196706402442330898471105143110494734538887586635776709595756527022816695661349268810867742794644880573243160834923015901735426415209640994120870308243375604442687362931117705216344157175203551400120148273434676979825028322018293380843373790338658096157916525301505252517388160728956922299624108285574746806697516048392795165168165298192639073908768187391310908715619462598573482552568543492004167018773289803253824411811780046563107539737542354134662293904842562728107070450899968837546855488868586531909290772533629213580542609387189007069649257739384086487872543796836847529425090358332075988328921586172637733979224646186663271383629655987466938251408024426702524034292478543590370123242686969586989215391456777665712277688802683809686659679929833090349160271510607883496651452390230435094742755761234397952784158253658600805955782192293587432387602410413402605332564061696041797480185003703976185299271876603463990665047541839716881683764514021899283197453294848829391191495453342128653283170621922789953076980513138590854475589017722020254135571564434459325113255790016647318993893987332801340307619029423362746516664788309028486665998530136308421309277423630436157258981099028204522618861677271796224692560211746144424373659740095266814487991295953652967051450006824817857247766958318014695615610058535531292429041741454964749924026005658078590151723648671172924616877743940014159984115993558306819201593105445348644921873113530532404603252765638353517908710621832694160733958506264705574705538719990610671720322093808322504151433575283253136954090747533827301768782337522568020139282863708899279945927846959170562008847210566828871966581332103272079093502633436394186544882116299441452459490620772418719944289476686312908708680642909202624986068411279637855386927380809203648158729567296554553289288623433023092233628074981790502007048003276205073112136302292089092002926405447424511109242284513748657991204929770108366148728639602645315917412723816937931657147999104348685218151482776198856427727276065223831465054205236704939355563837946952634528679470255648548621060916240488802177367335568673375791430284776534850469546098842439466575532514781230766965703410663624596968077772216609710407664561883526710472774838471025521974954347848290643661715467536179931466097424517078948707897738576833255450168990927972289129962142923325108871049329999213951843783645357714002156835777497735138351450366135557010246367606439733120664595529143264366264881693936827159271902831214328990526280631966495101238873452887220962510301579171751828090113723413605295284701615208733474980509030190325706401151804348977799079495618730960470733992584303617335530104710781448286350578748669155479218692094845133568049043116264893591752876525913198903728511990637110579614693868906165100567554753519468432865701525930607495902501063137099936640267214218146929569057236431649182811066869507393098777489563608958171909147810296221386253361802529645862760174919775631314608195560729632122749702951365420766233779517484082548345329067128567520033866713375836378853638552973683232739728844402091968841802425118199737384952714679248543434861025660830159259580180884462147234918102220720431444514370500058513172780940350965791149342807380729818413299318627073168059560820467306428931070377337301349506434674197338393740737010187337168250651414014154601516908138473869301967617025184562341702875184386132189701388342372533956049457931023351552936591085632064847994601837482375730038695189728762696517806245848029695878485019408123790917584157939583902422863806759637496278499422491049377809562976375163497549827350401001349252058215614420338017120539066871549124848887626096562924256733191522811389298782331701623536395717365193227468399491994155025346527600672214004722918645123131954217302732407112366943534294124993107425468592553534009188310105647229226338638076823141045979065743070232085837841343338735237847493228990327035827398055356344106186382837587924415090827839135883593919129545706895356219914083899331995422249720866424142628082051242323793702844198947792290576292049077300580517866762631053515395598520956451290894703768062483396713434550089828821636441937973976164531347915707151618610077700095570104824784605710431967159593166733678011391634349470911671989680884471298155264858591180092747999208642444085470032653349021224862994305264120796470031779058443094050655986270873620861542095592471488950334946172230123583134969549359011774462416629733624160441002087821888551700422945084360236151343250701090720855825065947358269292929810051391938392135569687108158588221025795657619025657258819272396819133848907134012120527438540100747442928483216124284128034179873346051501057951266534343814591950766880524182801906905498393192722082124221101212246376353802090053549102536112716532307600442878005861510569904625998315966248404626918699836880710610131895410641374804638617197838802517439848562955042664760498819898896379842058630381807816199382071575896341824677925461976242754371546674241085439341172262569178756722704043752938654255540341764266085900224784325725210674005073622116224066341160135993284971050508822887703475574353261380360132626402808299741287759284384865291359026861171663029064327504885951074449153999104396457421983524294548644594599605801287093637198635589094660831440638874927050688775529827763300601891573634270738199710945123939406473769353585973898546078720957153421419177557290936993133221237559048228596505021366512066179868841683864563198408220184119110709905070474329105580044560535825355329245112391947977163418903670590782609512218872686180501248092464113271573777116970864919012874748208398759066480272738310073477038107865158609801155119300078047668176523175098696702497190252016698970494838425775970398219236961068014312179037791086642084650916273351669207552438418043114723582658674740167893746456195319267347165764203061490218625628057556044710399927086308075016444344049457722250003297890012997617519462847700866340348096765804728930164271274063854740175871894737011961608399497110563116351097937644969179946059338033776180496373341993892668908282256488060979132217108468022170413971942614739597402764219841568384579096226415333664504197222943750186275617871219326486683277521015292874435644370309561447361468406755934365568757858185269161259962736992623123087359195736375265109982544701423542669811578561953607426505094438947917209127917821968202295325855836553811245278959402786609760663755173468229608229865099323876887149844556804566369169310160786755482540086990625222153356643412435717553438307595456752234720588177892373642762984356989365492650735270917485453699769926663151806423389191700972830547387852027209209450537468854984108375591349753544722104583106363544331391256297692556161966126916107422250834497092060588717335959179878040708581234765497880302289939334390345769105291718650706914839925674196338909338417119739241109832175037091673108028330775757040537982803488952970460665025565462492594733466882869613260417245963260698930204486384091365830085839873615969328437044388486051905927868591885402985872297646509986880140471699155460418608221673503854405890759769867381880282165264994809622435626297023434070063327254656846639210378614600230781377327003493002466478881953655077334792611596679559184622440223654560051205710677872317350962521238901686800559682830004610530654153941547033980338476331312754460709599467609349540347608138901935892611759717146499236307290878154592396876531746806229728438430326386473571758046713662159512864856152269998875452802062940511088434294953233181986789550430045183434349316912210102918732315090187445233650759213801674907116456345208136389155589776202421031468859865632854007513165142867254279075793903379839999201693145849854429183355320881454867430773726439515822374714851330438119180981635989623977738122273525087558470815010418119347044802425062960115155283938895933506444718783247850286232815608786075209646465889042371690463067683047676108884309537632095574490570262737203951003952874769675600296995416758425409539523943060684275583953976549909780955292147998666961407160563765916907345903108240373402572175645061382199245950439987247927002457255874610189063238712039369074715577234125523581379652438967769574538048942349532894640243248093296355826842494018537359181636112369293201976951917196546649587129504698441347646554927109495396378710278319630296374821605652369297011674919134456746078696516231335444997600861614464609773795243167636617672959687097836571288285399240735777717514823525805610702379290141275012957034955206286193814157065214630381245076736070859469804202863831194283183400378317537802067261452901302842980672620372704192622202113423456202442869938811765832015920025111505958580841828265462748653518157351828542757612018905919862788691233039566600331522831224790093796325399715722435565277949882808431596870073548538058303441753710913996726818715069939767406652405466447502670996728918499495634212114634132732730220242996193535258720633093100879346254905848014757855338153588175527160002415836515934237346371181528967719640686855335363337971415505269012904229091681763167113318122867017842112538641640678228245601389553153621420869863947948102087988747439652972056845191116497837803480964135046380462271699250192147494241859455249078402919421418010589001074956492512458657909932279599140733284448593026200977021137830717470401101004487038456310127485510582002435328677104819904161514079246792099487774894738223045796688614434614015604982547486266446424991064497152585709273424052547072275345118749698463049029781208722827087943571536100207193357625403848477254971757266399300423551242340141593653482497111232423549869952323990228355306179060596628720144712204613350984677190721575059001053969055096403320742970628564232433509268472156262385627321808646676378953320169741072448750162658102099858546764481776098917055626037440664182027269534712529415189233826196340431801642721676859872510102791641442891439474312502253266235366159502943526836030692377685977218839335380325558367334310606758610083468492386139544845970816795941433412369978458915699368147973421794345752427225210603006152014428909943642036702970718300960292603342074910891526406431523978691841111984395208634266588700428627710585862978866438328210882247044910017522503910541033480151518916466369069901237795373979204968385829523808140531217593563768108060900003063584275357847436148094365283671960829829940201080539116370208665568658084017387070166879986977170832832030529474010007599871380410473871594267451354467990579665001155569500391119483782820270389006678957279132826780745159891855719644704974668938904451414715561121492776407369833721267015418640997914237272831978372308556566038883102128147971526874727860658583921285193298406464631765047284268132305569139857130388016623418997831317752127162787566830469068760893190591676848937676463214295497505475085404073763400036702284735928729961366336915788926173337308430453496723135438911485664892937711669533062324949328494193695443876357919616318076825203179409486413581510339027238361412385253400393965016683373528565160223440917057170907530830513032072737811223426381908298733692761421491452843662529781478046586951464271272999161972048861069391923235520782176741384191559532765249008272002753190266091885069600108894868487118684514399456615580132206580778247973408906682660996320709145915385944219109335151539501674253189982016213239581743364754134578757259478404413197742400742708706464410602103225272669806833171320216850848181704887594750537547718997416493428486294410081807181550406560666265371287045124511526590988735003170086345868537208969258436421264719757555576419143558690840106553117513647010859804617157079350332766161848001567070182048423399764428988072261178777963017460061788813942676400849567459401077321300231125615605427362139375836745182622775518980570558710624985389969659586520366764261040615599490304366532644874296410043263160493513237395665140731658829775082383302947108697926706386329317312866193403521600633327505939494548848488565453403071340568095442771398560731913029448648062144734350699463552107332341298743512073382326784402347740596382188802525736383481757149746695376701483320433833688849611397027112832747882466743912596006556910010870655457823586899600610964098445996482300554141170260284385865114242282002622339916852424624767274689227745046464504697580845433552516108849456582823649669443086509292018702557262377012004026563723897602697866216328347262476343995856996755503169666454147128175294837411602965731543357768612868980410515014087003564921012778477913412235739788628227689873658751947089266370867216284853188394038383054964685810548255794654730668765907111462827450779883448682776576131642911323208939563319735847371899542208057363068829059911479133421725956113433895534270574016250551598281613129026035297848988774410089107817286101791857208604649287102116368157602896479897988647580311650038595231915661586437853266248884857167922744406198461624352020926110682854909945596318106362846369858661924752983618581241926548616605591996489792949807049275412528513051731112520512039863251594188757725935672644509181155136170527379744861690093948734062617337921369461937665117502578194875264416109278740849141591538740729502058198402422979731416254492330336772913823136536055307214133682625134295373489851547630894189337217191622235225420070006737826873582475217771769983012541572468452605583725431098595767443966326453107336669096890709747050690581323871614088744809008362079967545997866209204626959725500949646381141777141969156939660556096467410164179728190438265912849999898933935353580132383200935791585945494493999083538333113130322136950414821581453157531644585120469142032099207634477604460994373021604095804337857108934548479385280660979152441659477166593420262605176198315172444770472153689375295133442423091131628138347609645357426487144774958769131895869164347915548174154480917474382293640496494686461337361664225241436880673894608860422191113603690443369226293271176335434367257774524797779370794257369621892970938531349327320726352972434303632059474099725634174419378539534825955802891278863705174574798535642049663017432761900179999418951916490408411367037698645652324701710869049359734297331088512688307901147932388625932455364243008880156403307060842796682946949790259010521561702352832673369509232214398307483433567990650440317580536905450859138804832432268951800702943127869629649728521489089152787438445455924795397647451101733182178791028679227819404839127896081257135633713664881307291619198055736533958701028501802554137095895492893094439985394263906320017754194835151064021419218829413993839141141948645232259194711725680824319585170729720384094237331604423321160032298377913108882637540249646583829587621913318493719411642740697723534344079361909870134456423643978919760946661512498355360879074751692921712933212144600075958887276913231512580755119924640142982638316296838617316946458148251426982215072556699185353040490871321385834235655279543667807355663082646988355721626670756092544581126540368091782155464872502436348250911832335810000973676248473736150083352324213763533891005980110693427559858473398449853351752706092634988913715719900057797752842963483936637296679830898166118107748970918491942087224115149053145686084750180742062039603682379061393513867623691469621067764713208342238437838790293623486584273955814043301268766876958894432642788376989059896537332693072355643629709473716631520436368033800727865785105608372342749283216469374799701627486269272016400283766631821866427551007157971078100016248351910694546703059031604209268356149535451213755821263232087704925703465289922998504621019584338896732010590623588374254819101170052835665511850492078174794527087547706715992298258032345098314457523710993844649236169842113923864207852435026805662278844833638237927613791756942501749574776381290565411761368780606025156148881914980121090268048683814752422734691654269347557978135411891491214798729860235519145235732007073625109657351600887575124998713840144707410621071151041950613115700614331711710115993824893435222463722070903114951555683896937608356919266711252524282670016357555521609846358988289469213199153413414322057843366350762256784800928105918276846641218571276333593308300576777691961907410599696264104160242237437496128366030051521053196330444793537202586940548367571392357779301927327331318302369998050260236406021015061387826946384709831089408162524711848483323484764043269475411785323410828983014984872570401253201379626170379370456924905526648042810402551341151615582246797967719512957979536767584536311228413709090771588310524398466151474017089773096074495733649829098037167766721231838786859372438874659068598931271829239028381138283612837185012521393152577989534320340073583687127458722832294252293552433184897670331567644015214114888656615365655099610722490073394048210421692250890151266989647289468789373713372147968479068384967002308942038211454031642579536551097723208219232732997158026469615097857912985812778384849602335448508735169363308191694034319732227941114567722074465437329328319080882961428439340296136995657512314683966936870178347462369604706713146875968607184077391117485161238574772081122557307721568958175340492822825195062258643328356969542137936483001834281777817448210434110057531576630383168783653281648168828925889398553306477493302407508326569828496169407875847897767566058091923140920811936684719550014097441732364558971923856399228478910069228198119437190543403854511364432015115537049934205873143321537544450985344634012548126280015391487839568172701337069062460127594797646654520009688078698896189224651805757368904548252842703931592619451237095786831222626128941576885876832771649621529703024818165260068141678916559856014355706076331482542165942280218042539190161937754277199665830154573633851701463028365086059503905927414225703293890076810682153972775890951677415504206224432915313156902034132220362184696118464332798041692624075607611361801692542813538408734786223412087088937476205251912816693677613100703003558661154749804486083812663918860893692425330769212506636853300467246474838788880685224908325370830824814058398431699554725678655126173913982224765545582705147451251876014766204988838729871111981601781279796259505464141246632638294105057828196252617160958554454864567879660125413839883627209330953552766445338660720531000650919536925501036975703384023687702800262164164389819216128594711428208691370663247958379724935683182427447496806991400367939979923821777405424743514574613364862568379015164504699748440364112391255659025522703635627326436406473904790334496271438378579770463046334095731820003524848257250298363553661647171173854284296009925899837153136672710958230345563972418532168432492806129828931589556000346325553102377704775926407815731174742942720113349906535875325261242207399355882189564075676311420614616713453170284293131891807607932415434553355746171070724145222915553251097119706090959879092790419387185718061006161622864358034598351924976942639279421190615143014955664114490471001465968361399378607019282723559448992224976089200773617903102090699552655702733308527969425936135395697537715638533039180968732401187967964181084729180437713313426329414841520808122665472963795202287504005121371822013455369887940898416261865572349897496485872714676087915334967322165579264294465255024969847146470681884463704730737783275398637218118855477251498277511486121875159641921482938138215014967045598809168361143283885176697934691941452340477274508837747833852323738997830648192291593147666069764156058683732700372750180101072465257084807538425843402989141330944269281672785325743662541508008089125630403452726769444006983190706366179585285712825038161217911241974057424142757108249795649072814205637809660079258129713719149266446063793158732103015191825956261727930943082334740750594297619235582785664077737373603626558299956093020925436573313821651676607060347809578323500282007008801032901633483168231627672934769837371657940143926699242944393259599690402053072106079036650869699309661599035679612530761134754466217720522744416645839624475100186289756331229661849004903459174994084516336411610403089570877524293929217741641330410077794528871721873926620832257437637373646674525669134400921064538095451275615915836904250326799376438101831289958846521759488512357237761574545032483150584757433029830723209616834270697714265910996173291362875981763354987739957751703370833150654567182406494263150119499071472861583206020414304143700045664187453845095072407681818576419330428586767544632831478966029880642892396979733425440931151874540610716803327154973147519154161999529793097638558898396883445906457600277214489609704023382641056604415952714537592972590244932142476380576389353519494891152230587185106521919997207362133631756883855087838466176044985413774509431713027439544635891536806190818649686498258272472252725493593181028003453037561616207926558008659416771229228425700298262083991026141539714986041194004121689618952127614093682459946060846419852959601037512999550043294237757955699562557007132417420486149094690765410902106907152680643020577250113088128503467291345073573766907298054097730411654620739192447731362059806414825496000558938645155987261711726191659434852320660577299950422489425888570242354285297769193392025071346212011144815543621793742255475198817287506946322795704401502503198796621110284497027619165723632559467616378795334174173556757731690905232039567025784428968080715019742376813814905261915792760273298066335719599063629875301659676795703295553462008965957135901079520200860521936234768289246046674305925547406589063332107887416222064349156243777983573685770096063990855490495914433743002146191713235015378195548086202097343752385563559798595988699786943060745396022265342802136066878919389026749349850722422221262347541287341506418759569526440408328985746062990011393880197816027264586095583727769864513711729428353537945392134883183315200092773979587027030512470586265353621996679996099952851489735161764367302225528316092659372597721126015943452692559815499823485372913924733907935125723741543082631259504579322516464200753339616304698058495132007158490733456323980734193852700492802487348674403497967624477660347602564326277342940842911751806655119973106575547523132336186681619668389316390399432992010172998751330994566649285960422076233675545203300654962874755555121373784970699477786371723274715333926410862476248752893895964165532816440616742946325530700148677550387582207216205947781898590941460990878461563784355439310022859352653263434983774477640540966603768638412877379580433186073648938546440213226428680099413163616877589066591039707464783571958209457263089711946453173609661835955814452949818084703874709399366631250778940413992698418955244857888846330581244340723334331760238561254280958724588809838790742069437999515292189309418574642223754299193214667872515625990983106291411301856959713096408895246272256993028436150560129125878992924509407174214244503121435240957985502758683915814185579477828453279244954370423896822322769567139896842715501261242755827892866754752540755348269163820978444216056492396723948361150166087640847870829998813265784222664331046183083514370220701391570204906803912418998990853454086455848938330354607338603923695583314097342030089931871183440817890178518592486587258789762639713994823131346388342142773508665908034443202985265667242804687479388301844478187614492039446772538319037200323464079730313124043865229961248969585545935848010612930981736489701575122286261421608171372029304402699945186444702099141957077516826537358110334715260334335825447331859127861341112342296543743303527723189492108542308254918569060487199670705098185004592688961711877892406162185782651696062101614140904578259809094678156965547539841780670925615603782991965777755076395844562599276955535462866563172342139232621155397899662547972123489282481350848814188089307185796432673165786628885588031147363193445711980896776798484176927060914157017219671832602280752277034600947321082988947293699627071388338491822852729117695581395229278687205120163371285974786454037137605583426095735451351112051292867969802936541692200630594997458177844899250649087328720204249944585369851118807369239074361976188071243038386375310607378047954034655230975794144578315967095629638780670569128403789735412067320639221968731855815379271885911440374874328253186942209436810849103963198661210710077770005620345060469472984315497400526051608043625648797967642053710360521002931321410069458417031572265280372352141035656699450739313296007665428174538998923260593631684823821944777415760651134603894913726322753389141581581606515417061609573415315959968911247113550252461501308414439508964893705462469782644746505230378377322284673991182111006767322880930612213227240672370130352084138657934083466779157952331181010548431493867251150342105728344658569280071709102704322876586910534212192082004884683916095439962132694201958789080553754527049388971454472660300898153066649655459856589572971273929916283453933471024614199119391917580571666891860678360192995186142959216055500325439242645553798733971290063004768367811184737459327818521726383540162066810784297343757442827522851040765983400281833013483209711405788220012914635798475922171095164709179876494310191000358520469249197233458486313984148392768279745252857120309784593298622048284165364750697052952979369394321754697999469362413816599037433655790487321485589911298632950242405947671822456096125911390566907034684247462659248527751177663447376045810255511573295108358307453096661541483947536459074847139382456115496732620597007283125510002923008845258299381129965339499994829448877576912335087272965709375400264121158862383434572534252308167947031657373803254933783123788762470735071417039410279506684014741505462370113812695959425764647335019931200767684006666063574462546338496735020445139325741270643310506594222149814971289370697521957921495345025858790938752649783783278242153339930726041280546236466877741142947294273521429202610543798233066083158579060226936355713797261977099423178703061772149947268255018822257973577542127547757120580074008669834309406024815053364642924252533203434107319282213100096794472082896842076606898963924462782693141576065853950285416524128994419536761579809304468162091508680866050133649394273523087359814684061338370821887167675663520453112757300347657310600851565897529248024437105179994973886635878252785402590195240297954917969094963262433947923769639074917563438605503594748796050507275649717469099620824405645161008572463885076073147309955847095227988990883340597293977168042195507834647555798717010548504887065435099055931113016302401755358019895407192251269171638632330646104687220871906099228303830190487605388381725688740748652367993452458546974711453966112951822910020949585569376033246518331450532117294663307087157619577556470372639349999911028185467881668999173484023697598358769020951101942836594785795865172499985755502134423719838715797104623559084231029380297468463231026661983723488394389689828533198435328494831615070799472982716953674791350521145129459636577980675236301547204713463652414825302081308233498192168344014273120393286124436560221111720640565601811381880338412040108072475912184471427319696476778770734338661058657525560240559059740874045042779518504282879851045688887484718718408359644163050278758443253057253536496968198936497539315843267360790543063021538057917494659761128534057481740503074427685362348424985835679130865576499151324083443608622714435197647496964787099576951391340513298213455451077846409156610120236737809677358334506828575211577868874145049677352973459110572699829028421419670219099517360015655684831945895408789740455800314434399576607823357276606116279538926694517694005697739428972620218124295703169031825654203327575671725220090800000962015110612742995176682449281737344955224501859839268762573679600012982090699433780473403207925715391955159930475660116756875816378834363782945194123950688164562112716097386376578197678514975953181071748389516980772389909706235995017143637219814573157475194927408857643746411448087051234258919404563820477496251400205048917801290890123399084534980293205983204245821288928539902925171464919704570735538447275545228951469060572769052272450183239715708931218234651642415691189601005646306365246145761671704206652403122199136188351961940425427506634704151998447297605910318166487118202472254461041260128101783382722271219619900178195594730892474809921966005948887204474603306727061966540087851187919365210389602644415012484097214552806539538600714499160194373630036562959514389976140871025272493363787184371643573914928577713668338483458907344414377357746296800127156492892434515827921416829801470966675075286075434950028376118752072804770517555427974431659858959249054427989926151587487862047053620025997330078080001672888400491789569900277908337852765141681942029648688099933181150180898109664335934719542829735302924719532406934050052957507024048314738101543431929899207049524080088807391344927710564217609811292084823203037212915969651655818943626464242855597109269702805057030017430106635978504922856351282596764828143543151574979710345854417406281212492240276247048563669499769676194214623241978631453205561819966195619120373913926435844815195218769014825299913527013582320155778144193805319547743340998767343949561390036671157384416815449727593769077176211216685766738216474748442459673349760902706342455902970328850835893885483195104882650472660663470499169967161785200080649530963524704674784877522148249459148797043074364747777959156521576198601354511550498688751733805459107560018526944996568727360461925635493857137841187781662576794505027233371109997911935310880108279802725973225288465617359710496033956832515881974809157477815215708993113487247101622276104867471016169545568145942105516288687788684691306287425884273978979692109785665575029189152766744771371076410574746742249478356086396601550862855258496622956665642560906865471252211321882082773521187560191526557122348167833120625454558819505106954580541144845808290098074179051545988797917941795810987143213623419906529069672813991010998277461798403104049015038036187789143405101071487312587488032794733703000566167080279314655280125856201748391241787025617926806818205436618388605542743773669331272146038429976294476175697217009029721679900853036949194438464426480003732289285705386526249294612709126767746030023708988057357050158967886512346233511949133023841270347044218890153744359537390438940388538758087258687695716583826538888884459777621028876758940463620431431234424097936319099294099429697568596368851994807316899283809536157993178734564478812549987055185407474236640292713249439910080694537083482443908807484946693697607668193064624879796523231272670243510026886917947766415511402826175626092416033012549089803707418071467151984483351228136849811447074521062932887124956447060169742004977060560998543239273051163179034733159986939862653502997283698619511905632791241135374318937838656484288060640276093494245008427593513664911420579869762943000515508433115986025756889281536955683911735938778613017525611202365022954302298679743084367405506079263615751456573652595076052240055534299350322613968218592977837759317878324916173847628455500030999960061054581395376928844408404203980141278194459021866965888132777263938756408364085224666548378063866966257083633633833867788809611518747148250597322334913837280217917222297287893353204704708464915192505375821712744091668574880955864534153773280313626169070584798635911839758592778648532636265681320438902750416741285884780906696472476373220945923449137710489383455775683214442053933152465364077529397050227458590923116168876013292880012951943934944699332855260592305491986752233644439480548649964761638386459921770166100444443028031472174915553561708663419049473489241328443313788097170315317116744174435347483910820227544003615208225911441734425997148534922918501046704256218112174639187594910622406101086977813644392761857840450366610802188919113807363943045851783566689795370677775673979403784910692462781813101639939941693079841040912581568962245888890472908623647176962573741729953408574659579484871719053720940103035381720427500411188213376123254026520323860501919077128650804126258259854705579241757066815298823398623713303343953193514947000848928354631812935143928711039477949909152710812359823870435687452795880039375356328849096377537042274566004277234954835066808569306658724932997343483242307899831704063253792962610494665176404127286368904038285634586137275876819920762498799752142817753295415304753823762912250334786959026550203273428518167350335883476757208420618023844850802348927014302708105676805087184291285386512395982869487668385850194243510518075514834809878465138797008703398981601947982166373347151159141656405795019568175659856711407092881301508521721842353635469844611730535588075417819336924263127387650109325022063284122578229867093837664729124639464109775177352514623303780576375505974654291942677287865865864110339208982073503513911442761721894737127451520574877736866896946687839138947184301964649194044300106802966317073510196328741935153392180789160909899093602351803623047597279948696977856877790168094361247127190434627028164657392312653257155449639532021649153277285466621661005766164302273120009950743940500685981619364312233889057579820401803382035688113827547317108574203744861835646871049998947222400181993045846807703302127897292363185786436021696851563304594801962822430283919436205690890621219860847059382579069623029477939386734770068730013643389003539484132347793581811455149664223134576904031093943423054011939963576213106406949992572354183412173036940112024495503184166805180979995152654953243689384271871365897171768247688874612708170594263746718125456939756363490858789736449918500206318178345083797236942337833724272661625630182554713392639737706206720575227643042625959268842853819306470634454368520990138158723251178864116858877314495653317011443135387577027284635042534350516515585232108499274602440049098190805347527445875197935938058170207479067297213149291821392900154447563565273323167582606900316582432416074062947277545415015453461571049282462709130113928910180453064771959620455299231355202082739546862084688614286995344442125934335671904791283837371676928786417506786447339462682213150670180883254777167836949471491100570075300395919007239491879857699734299586028878352008711718868973270332977498437357431002379531022595858552356386516851758146450755391134297671694777153824472939055251566743851842006254318753530431192959445420955712400576311538601235669762641600476443030398640061327221445761581948065052686140590613912328539892411929976924800734700457606502358062399061995972581915231529699726748854722458277946545882528274992284924473750528388801360722019490949369723803222220275621043867469010317249136875275783232587326538256763803030907720961203484559145213414608074492384101365428951674769803087181716656915409920385631333918613186915609243467214701834351165093191536526796863113254921130558298867806784313810602738864572229532873217886361999282757182154378409585243222608831074324137353163609370257946943814346242633343073715424859736078137400978388176586731532696824303301732329814277553170283692072100239210143306712576975776340485676739450084606716607594164545856473274194043965290747829272535595798861624498568419182264588102774759664534242783708813731787213646567490743962389208782758673929371593928567226577374302776123402968501307212970966070240656940169432258009600417813794270011000725144681498929751330825629144504005322689419483025303173028095222621213582467300734955676117484365653862531075308443234059533048678031328882710837828666097329511509229177834858739132059984100602772550656500233052469477196877763040498214059476680861530346465207370829075098049899578478821337669330265546944677631061727848731908598568515772791854820290109541739085766879867613122682198464312098884855393749933964838790879141809294392255498815497030126129128165761493338113541026956849762428091446923134151126795974407285071941770565958055304928932153265445210859507973083450503667102437862803957254532290143211949517285570569467275650233910991012038168021306861682623466702969922213692098653119506997526209770703225318476787998851322317945337445190215465142619115695034889296644509286192282615495081719813386408128261395020729903248402244642003544878217677668545453695758077580752442572143054451298284087499170567147072245465857188199215150832663886183118542854605318843099083039108274633078684125546462103897476314496378873290840692423218467604512549966744966492796129881759568903035244147065559669224054789383313490623132741091528063064880894485699232856782646471370839395688532245779581623174097449403897913286171879966951065112802129816331880640034762504024797379831398327144170496654256104958102261194521795216351994595590699197299227794311747130278208212654224830066308842867282321924289933761601773847362090781475134575413846005137320874784807581101487945073556447430682924184624902122841819078256884700492514492254767821711190034620411016354886454350190619325764296492198128458311142231593545634230373220149587304260254083061054604933113048985492276706737827178337507754609458059533268279419003678211889597917863014829652479588168725627191658133131735124494298212437677509441436799108013533365159620772863044410517981541765221455052423821559830155987967124748520811211292083184735957639072446383859059960122020067178475000130867479748108218697305203195871131459839275517912931709156975901342754166448592494582499080530178386632647824899075470521488452466923682306312495925466431025877024143126958930396009918665481310167911730990779411126683989180419557366740094450665969459934398180681529835543102838598866650717941026562671371165997142072195218847998775482520638899201106643476207234369274200780897555257555186311818237202983949131657719403638969250432927472500504941562508400475292199305766805769677322417044244003509311320477599661128808495290255482525994399242194340373348919508372463391197563972751219349975735268063272897587906542741788069678607989610705981031784884183186618290357676900545128088030297133439623796520969358285412779720350383146937225583876172718836045937215503425661796092087891817939112012206719251202431013700639761844474438481065223491594604216055818324292453706141017567718743027864213007332887625962610046116085743292686438750188604320013728932052128978913340240470401803777324161759707344242744102664299836615858453162180428047436116917870479732816673651138386428610581637326328081184113832677710592264319934308122096454566117268666575123847320776525860109088776271806352923452174341446145403793792044635591342508076823628267343409312349998378290736362561746674327035273946045245405360520302372797789810352240598347864857892412862765256493297150214075823159210120617965331948717377866094240952418106149493892163310366458958825638261074121851901931873310771957470395552290349549646939842699457461674586344227564319817768619929173192595024032439554026042440808346254223339061919151680423843150816258912559416814245920101385132562996862011906950209866316205452340595082148599446251310271103818017393099850894052464503052135742966787403925593391356641330628621928280711924484302183013502234560874008347521279042918827383895603523713305640602338536249264556081111337663522017586623347121940921363703157990542854020585367168695354303328554337430769133788321133058119061399257223333821645824087959976607558337533418072996785778697602135173915052597987050724031976856935027099987726169488097627720277904780150124249424474262586372169434841033741849252072062703508793206668378392814156048796978457243113482769228511765855178313822199414211379327014384148592917455918143733006260790226883997487783570046601577988374833838908867826322515753685449072722318374302627640844572601932664692041955924512081220763756036042865684634724589570142898286062266511771470967114398313701334151184183473446653442947958198901244151596598694131184769440262837467046362188815769051570742020905793286020273637334230030918235937188282923705623703349706742794641661509284742482814069616612149139592356302448965110697968379076526685462114848052083683176445956959865216000445071945351224459695941175223459553129988658713491480155670828694593258406959878804331240449386979311014480774883166162421200077965959627732852239219186133528413225080112433318596263551661272735285586928114052266340558826055030449278019494166902401737881195406550032723090838431830054793311976952998605140384214192926359720007244698532126651838887889772541598446708561215829304203768506086975363250144505082148466190497403325074569840856752149667498472892798891779454348247267293750160041546057021618896410308753697265772036991440293055495063382648795773126809582114831308165469599286283941634135252812782211956044390173266056293366065589822601659214815401296099282189728746628342157551953872736634176559202364172832089904355807844902185392446946661194309105985734906861016171385529502255460229870365578595038336805334175348748964987320371156022680412254632616979402448888986533011905554419532531219918966794062708328253167819902159289279320731919712510507214994942974476115534436709638733835411334527605458034525502577013387356675610332862029918007862512696922134237832096435961160164781820023642621989406628011789133793465560959325756941679101910929807970275762290874730553396816219554164065234865823997949444800436400644686826213480480830601474687029211226098021500183083420725426525673135303345349709692642744223610090319949002506458994029533191151118816467034642233698944001871731999494661189004036639253954127295579325543743535739958011809427898890530530313284725230740932095973440921441755039256809679004751563984644030818761425680148708284423776670975843414579950365023376589579155936907653728012121197463620277730485162014277379466764689646760083131694796222048718796376001918085381167322105274359230959134670918114635929455208996550292702353436267419206326818233046732176834000439559864213642643266138276661996411375852135759664111836664878405056049337784082819563851936442023517731054392200688077744211046669236695631974789175463487965254847701481892082188837454735437315096873129299938969288087087301277196288434541963197473528579108837831773061109965060322712417440324920090533597235936088851666899704691162750379980822388674788555641060300373728672797920216946640795120117163038359039464735830087759876344504865784216227195880882407624168244273712183001527176480469433291875279625046838775351852472895860977119571137537456044236970139886588453747973768502659390347679381904659116918850753003687830065422605672133062050418710992811846254844861967420732594033124448644859003042586726499748129812074889706999136487233224214213311492264392191054037001075190830768500152718720595939248574270540283858717041873954316963068812892846316902103745175506604385528741819620130316486500223148173305718123998059918560727710391309229758128366206525103604728227757061079385140707469322660921864342616082543878880949902229727336766205842366599582916950336646099109133328224648421856070076292870138289329057702145248157665485985474429745932033008563654158030744668865926118303842522584161753966586024571436635530227941638383087888057295474089755875607068869804527575277444722981484433581932001274968298355921501621195981905662465057471817056367082144378471169446637029548737814025196556237321553435405774912006034437716978059066364359963897044876042565963361503939956720234230906622984785871342346339480457107111624972897996866680349174383523949521131362583457513903928564916146822669629616685604295214463198792998427583506913516504695531147926950812739200968983920389701233165462367881170009181094723061127050034067651298908703568697882390916780467910226512068394458611902403409041451176870356795025265911519475848774893559229346479937478329551579449185929703103038793568896757508612360537758012287596230794768105445246676980291639848472311072087660273366862293255715251012014353621695161590458641558856412723822519135899708172235979938364468189946096773491780314834308467762567075948822590340601327606495852866444946653271632153001553502095807554704649538524648515967530740540822166456129856959112760780190913269878545653074096539660422330125854007091973435295961437060294883005856638395848799681691623207164215360762917625699693187020111408403097464250695582204634282197825278702271648105608668036392870936400760637950989033568349601532781405840294227478530784949539679349718364893005468369002884017405501332476959696502598525054497615801485039997612972335596712484816654348176867251306594087841282266297308830486158087921366722799672304168346614238084232108556162656718433034888557926628059459545564961996685730809175127921254957746661408860772343837767332360096560648401407700178251544756896210720803056586719646345645238383953661630149367736812215160176646906970831311614184101442567497091699278798533817974438656764645430666748586320253769424953089900700545580424367303775401965659190772349213366436490016042985498350126352714835141071532560707060831474373030921785127662595919182212424599312636227266970434695137035985516398892740066255382850444803165708349021198493368313388775519909550937004916503887522578079838998601705098449981849510207360677396377843076509370216599650551665620943228346544108652023154239650222553872563094644795550044115710738959599968840637013115741987430059627612110120581956120801998617206766166845420978301595450759764980139041253639437904901232136268145794549789031976161546526356188529652101529084676131099437632774638707494575352026659508807672417740927621518046804139729180420770855590337292814862853529344795499357156983519407048644011342971098158019617718214794902697753030100588160045986241400843071246387589471650649518027136063136631070705816627703042373351445648849440870975354187466750010773767200157758270810474563165027256839318359401510981834885873440584215196168854229550929347238838646961962821220937899948385589912459928044060813355054211026208509570824626064093483039532892094632969023889147913767295593534124983331021149137396257135467655511455364595493000941067545676323483289803480484760658671853435907780868367280315755832182506071393574533699113661730477509061509051449407931233171048144407099045893993273603607858547875474030956237951921698882780400464349799915875598176534551214484289696131081656559534999817600747649396668870689976600932344717356856931171656170516900630610118133139174506410639788917650905913871009666206611738885774560524207300481940250921514849025196723442032469428841021634712913948282702719068659490311320257928017917682606708968848268320905504441634537218635839758422300519660746342102402498528469240462388809469925930979071367268481640374879748604915499310500191824621901921809298546642106687197619209304194187161836899606285217995132806535528957378445348480272863294141948992814111410079215520198134273236802250462502734299741903823483459413347447209936615184314081077177341164955745875932198654451787814557532878134931075111096884029371575882939229670660475532175035520412164752584236347686661085980853128629932290188896098913269761410222958876984580848838348044334799791945164062803287096354791705714588605694319973496319957198588247447819632545163280204562278297469107391476652841249821588949824363994070270836059995530631278992408637490792577647451656150444071139259844642795191503985787248767266242943608546899291115057557957519965081492511137747025243596235331498984051089532492085746731727757335761836590142382782356277266498330659713961439910583378989801731214891263840097105954436691232142552841495262955020098804695661970193858153430301511945992666769822041425320387627561579576179749662627462404352172796561771521100022704803825535472481052163949941570480278508162025677610392678364780208625446722254705207682570378636380697145720190540629140151479167742000991656739974474111326391345495340866020001865233768402169345136620186067218017486254600481513399143126647512226381412335376772156734282607493475370067684275118964046200601591829888393505689776780534844264145051894480720104854620650261647090766530549260245888295015465119562579246249265730881141560513968847276717140372571907782739484865919497840692559549153236767641756213637920188833721309913283661055336234797455166699922125116158810631701387123451367522048287495975678279729836209290950426387998308725740124509275809119358364991154754543201448307983006289043772746294289555745569136351942041293541207047646909167265406252660437134368578668135828563960241462995286690402098305779144119761909621458816699499313142715117911509749704156410790622323944051836295644354250001293701211212599451719077014992365515806081179352672781769736055227437167101189469700861277925013609747455225708979803520373556193325892262894844760317907183969501424097848096829142474650987913241201808093684921641869264805778366186424070016637868083218156827332500691123264406894251519450521104045392992353481745442804814548822879401983548796271237342601699499982793103727830310500608874330274733944913633802179153008450498608573095009550142193445394078682251509222741681606894432613480658535436465809597246652135207942153714354246270028125550471148440493089876861393589050447321648650301099193410976516469212816107322075487672827320812166847414747496768490753410292446363346160294930479953206193010838552407567582819453607625672254670140876357486450970277908700523665293609326156788486412213469965876081892016805723166236709496985201037864939178396360035064989784194004838817120301685935899526704300337335475836700277782651657408589800453349127946431384128281212846343361689369420323848876551089870918198594010883514277601335166854211356198180995026306107647008635535520375868206280447957081887450332407581262945339987306762841925566627205923701212556964078709186471722600980703073021062786524000444491617518603146913075737926802035350337548473154416455575037027885229439087800438188194243588102701922344449621643015364172969730217293564479029896721191704448496435240869999079918960998564113137143163701864634593457542056104021537213061925839077731359515230168891274067230996404815246122967650841867292045777780014337565893863185932011998891701043308844951560695731759758481216548390080149045436501791529485733056093816935680819159913725650484916687596872101898692872067727869769864590736249459142090711571919852331298455716398310321049762459641498858325394410887268506428403919261081239891701790977327652954821207477381821018765695551464161255930407134400435762537794780664527121482052257503541275524267480813050928102715250866634045608277533853160219355599514348808346508830372938190162829934452553543845479390246328675268003769340133999416821794842844824036433483375267325713517078351319873215516881532171611791187018492459259731405523430192768359050807163401065913691970060605804200446793449034236992038602535347195525925958714553696509279203545107987844518776635145852192063119229885339698679353028184503460256053338452110178994279423250016813589512248723342308807777362334187778819146700879803691591577316338549641823263404969181084492479216107975569326325343021532782829873140992053295233454777425974416191504605329403995150799297221418753165841177585719795298244290810307116968124497629658420536608101507930483676007429665963199079214380571511702180204909115277190894243101451748033406464206299950321017632664607663612060882476444765763533232128902570734513521859394103941863860046959912006975192925321008609096301160979711719090134513966839199105666693422565043274080879714221286260991681532292156429537785324291774050308371993303399493511264216293776844825592136998576043905281095331047155837215304288581172860919126209764753217370509930681060355782239674304540990590178458570083349741642742192289977824500996458182842683081797395946334053161432332325409356453917026461533564127853745709049727268823169940528474552626511067677298341846213494682002501797963463787565101836925664853911995149468796829675780494079848700079199396687949431477451472853267918228927956170874542203720469941461230509105213721613213618467934473884163255736562845534177119487817810662381611152306388158941395546885029005615394507468201492463993304849343544768334256150563717531324077175334900570360206778900989122002586175837691376600509322889176263999239729935544247906593537258146099958364679098459049848442899638883755102965679456919437085012309360109692054901067055555983998720311409933003732158713056099322010905463595384768014940500639013601028867511645805167729071956698556268611512222332631683742458885804185755952567785681110694824566880705793936299993504780607868460167463886304125919476433528576296158195203938990548150810768629139214965430614701584111060984419753607046798423700300993793009563455232182629635938102018520457041933944859611166591276062294878562703325017833215857007387012628379241040123644656821581275662468782490224362521250427592285100352084873105760347294558804763645993613675224084171818995398717389002417416804507242508578882674627627914775903374650300674477905636502002876237514676761385325426333758543124931145965527985850056244312381750583114019409925008432282987947756044491982625093659700406460561657466467358133951711874395070258463037073074982327671238409345036882867299253001149230236511706718952285556427226824987876646132076071036695315694202456502107690390176915766054248877623212169653314127156424678189458455530717499739234371963692077105208330504237705099458657838466469714894029714156669516312323958436532227421284930120660923029312929357111921630128537173969993774686114309487181064364211452111938162466481015701905326890616360599322290790338885015897521163930198722730987302897767832968004046246757106194999381468689319583248125622501163380538659239296462540785424059000275775344165419054769167284090503810878972728140605806625707142095258382856290497331672661799331019571834430459724139683310498354555845498175313504411787304227926023144217838349264939137749309108067538882290186045154693795829625925328000111268035024780892174776152014804909508961690285515556035993803673472931637315793427724298403516414431593666553430977036481542974847341881119042079204682088658506458579485722075230919063691954653054182587953056316940691312058187726216156480638967271085745630427587444241653594436067937754438756482690949416163688246967861338632544813231611735554157258838417204567040739385174993512727321914114907313793943687139300832674016065007256124763547353785977319576421039323805625684920551226394523982729648900896844889983291072717737567081402877754728602014798782654294375624919821079012486209117757706425911258800421554653536375992835181516637840761053593929832409121096407634464197483363025213633341805962095482670303850386110562498798393716613907390136007398054754505911468631726835804737055830354790379284561950587186035303102688180287675138876736794915861740265453499440403128136917954506622100802839736432318728512381798294547316218264376552376636840705607284229289585002291145454538276588183351438887874650739057750334748976729199069427584695593605300184689986722580354550735582623971191466920530245863646870610555501029271711916734219232844985513152054330189896109815904047816952509530549321066727850278035144353155028889825790396603082061667603924647784024186191047442603936467366955695582217327938041200896961642131420649326206330772437165148749111287733906206230239753979233728858729176700932322883215957702889176131929535678538579211691744419953480031321748253523032786695514270427358658362201119064098353246106167528082381553389927819494257772619502734701256479055968832802709068320657507487478618576232557311865719942010608994627163491867119368994036999697658374568256159862455500920408889907553412190652022071362590025481472850033174330978484915942229811913325793687465941230656553825071298192533639699070251998712576695933610037873455444522446084457199115440289126703345140494154835429145554962546000582585653525984788388802357587540956240026762968867404130595608002910856162215806318705272203186846657272145320353606986946176537639509562347730987512732198498415007867638503391933899641747097510468439829388605416248836605726014347554158452003730267986765029642262956068015954531267057889168449796737084568030560076747793335689582501176617214574099458639049847510362952952999471139077165240010982411460593701323945926386889310252400421051430849257039769477695030132667526832907674057943173654717212107423029697110495035519225098790664205312636939721970030312546370274751441611968738736316502490414546585921801442994503019787554689364381942006507735025624505590174219697984226690973452700963292602929277141548140907950004395438823066462711386981210171922073588796753027450867779209030683236179789236045819435044575079882966934918105127095702195478317146763191017207691057501259122407610957331871568667983548530244849281875834924297012213916311182798754821257982873354517482638886135451350602910645682101673075071243834705482813777992432081945840281793859044457136558475338906694655423658008490664081171478092479510421840792119170210187393115890574476441853980413377135436268102401076320632864595850180772205344555713604060949247347875053549183228492966648331155523762219099194529065207656422054075536571865320319960412127481709831888147004022278007506173932355320533419725825982311834500209335693544078235974758325440048310837083807469432013712606774970836357264676692636239237063944008979707461387678486188114522230182607719833325964184503480750722781521594067543481897085761065197364058310259608366020875140182160282301022239170110902012437991473431934602238538669956880211405978591999342450806678890373336786486786126641641662229802539552996070517879082123387649906558515226259026273733604477607919328704815208770727861538650302815720009778217058258931768450008537581635434038926842882506909379829593346690993406844050081005353765178154773452866064939374194721350339315767867955067649654736192715347090704425357766375566911932094640180283331562474403166402385822985154640872502999047195332011277072204914626786227249241491089848885822862813923984063278751338509411782437115984046882731153941435506402507940908062583846979516381375993808093094855586774997026024137368211036574574025765602786668136492083341298824011864856980131102288321929608980041140167567343651768265503577981184024798958178491980564188925121793576992831689639581093978000259687007133964460686761280660669182092786200320911101389284758648396675791174448221023247700667394952081798950664494844024115561210647989936606475943689919916677441080901706828968794596020083616513477166454210296771489764985757349955654394789548649670606028921282262596739690572258134080961072073605754319547693651765046594284401246693307391696673993346505208806635265939587248063310990721407476909846763408856879856456569925042250878299474413139624223051911813996005092837916504769444990199971665768749897481345258850619401973389365679517181633741586905884321127682689758692335199352174196171644133301899235807343761073865699316011675140840909770035689865594516025537627012406018526999652940834185612554516575187273049303309555610549367249626497933904172375962026086015723261669224855973730005721217814187132242629511671097579506924645580563578533838766287607211815733116428488859573851873864573069719852981461524739599333561339772018884664731798672010221412298497599463245405990249344850492057425467103756249904674994108242324642844138738049867433495058177153332272493441813916505565730186812636586640496876581131173455171659868195732911565015248603465976374428476817558728859347557151562336554283047085778636591598357439330767101949284359404508577069078782383654441822527315571129110245334122568406392406488415652285284240336024234047163924324624726865929140163546415028540974602157735690178454741694604186779135144624485974736838693949665885303819928210998181399909198884338198005645075369091415756683719990845488446503165063145369697806301849188349264907551289655638724652222547627517815310081451372373989469491501958670349736603729524835599357066543153504605839976600419559423974736529560509832948385578486837708453803855708167104835770216942379515000349256564871916968145507339140327869039069096700659783006743194959681102335136246601011010759247870588076958740897160323401196050787460197253615582822391096042943856148880240149863762691233403450854129713257818456776921154514561354881919161598161978988005562457467944154593632346795261253287335741349006117883268661608384964749256520586409665419839494603433263387238190921004132501866895756004609575728642911540519231115320702885316572822416353428781890961726217893922793114640479882968327200519836795760367446993675201643468898082108026203386832448669989748427236678510233426001000861887700972964791465570488151755984694869290272822290310171408190529668648433151097669111885766897698935608942209074738794651782099048067283248901458338492508817690330515884308618470677295432959260025976380013621193907748399379120150804467816266494316046931605854099361521857187524829413377651738401884671967101689104147205282486194021518964631095357940290775393390137689648441179207841627357461735116462453346219570126183216327232871321206711057277495077461022942573240411378698615688292950416958596754711656211944416884783634842915810524614522379708759973356022061492423365251524634259159439226877779383156429206098839610447119504252007483247375398391380790716464561008466695369450831297491239530854552359383406208117843733429366675027567721853357718732383368173544651777528609736376940657946534665237088516319246113479432352500593981030829047307704705716551685115092291936697975954331506432482535829833452604916768528871273033100573294180964764715367080361041354878661646772406648214111420849850043215301729225711660659898287525378566012308982534039086190759761784915042700171262892207900777535189851392434550635756333815251170953810205792615462373694212327325173808252900943746936782828178940865878089049939947069408891110686264770434823414603217631899125250653511115715632715925965275559015167324416950382308789883550669817588543652787199889113584788189789984276364617129841570364818785867947013777946550313797889757270886383427530426801823887861125602277380200696094647586538907241586479407532091297404499435610799337237977752898489408748276526897992131450776092357739415633825908615553695179080470472108737876356221167455626110713774564743007862033586848126104602004926653761651748847499091092566918408731004094434535676396500136137052405151424153324437008927859150834725285421409080157323065933136776597655003921242897148758222451105476973861276262422442206298485061316151185793470381402640083155405136286226208869308629719535616796373096440714660474299411616444740954893712422343125477688479741578146565566401702201913777547699222250647926397385727003057361489558585771467711986913617413594326048423998393577342256059238370337433127094164568040914630321036133646988172182226571771804677633965738629967573223176585282244109712620039563010218955464819422604167136105812804850915415006618570419715317960632637707779335155494691508775957738993639354198298578094975893638458885874789605107482147262424753593187206899711977164056109007069585166727171005149273527825866344241593598858233896908780506205994301667911225949001471801392856160899535007510279494924801313702562398021412690353986126071726109673940312904930521777656132845661874335006401205491533020236734156208095507358408922514997586154948479832022159330174970221028278307914703447695862414243202859852704918213791555348486346850605948399543966136291331113720311402414705997023300013844872241676345264037579110894691358249111893793663427950120981778796155146381898575658606099697103887317618791916753781805563524075886793335257307144769398110648973815352551551215300818260864816887850963893258296203385346823935479872308694154624902051643470478509789000790724539151630986735419928963119988404395869833676340642083871191283204350449078502710165233926120149875477875872908319373712759113393590162487162286947627799731707726278629376436119030801610570437617495552152863006675799784779657461852267902252766487854497924035124918716376796377750834733515821949222966473517512258195741067879455285792276471389555280676568833104639882574113956983256528071994615522411389655091312881364401138339257696307220602629620334352606323021483550613662680755398222775179455179087558343582265807333013632750992416990066647352427153108215849388504274193297120236130642050000481036338646372762549970314135672671419740787770373864019372932815791154094146743821151935224421173918393142814556613366512255324833763938919200024653666050030025339602628296749006644108796867764626748877383087623263589057073920849927319220903220891330398362988799336634252473993286645156755036442394586170985630785887222967320974359989156053995714572289637059410816730036818132813824801182008114312074639030532292140563409060663325406635839395727867516348294897487364509268827152759749668132378915450475065875244570787397221421565859632967396309592861509772091116930449669687160266805323538108517774626559389146755964998360060212037135780491102588198914079409483433749168588668005378785405311376942167189463696488891326653523855139731930155123389674887626816058178787643951587594786217580779574354953962765933668304128588806954135378365922093496390559293324441143570465175578712034743875054381339632581220322359748844960772219697668291949305150019715705872428443016308942457190154365635803913263992089339272107575506991367221743144920475930823525111970589831128867657488633932100470495621835459334413455444714815398037558758177492662195610440584006622255252429115966720947913298904678357897885732234399048419406880892042557045044700953639353000177781146551448462236573378158732721226667608220442205522477209437071303496410150527222503724538450580673865666189062914915722964685555027960478338910405003527799952234755506289940627354652344493472838948737185738947927126435377956336577893575467458802928803715422622833433473060451657629100974390011411726966024133532221050276065158109646691630318072911591517634673124585187172562441828054417184965364767014539266123105374852183446695081013734516305605483895521891234240466054035702130805037440610346671671818836981889642458630462418832969227379940920159034489366273246694569707550282330191195051300576430678176419317994173970074611308163627706060216172959110352277667220485800361175841350512495821233748444651853086252622068895877867132953249919900775151542063820393687041230597444950713971882165399237872347067132982166050760746557645671751433651423801847761560200834927135128187189717541056172895293328032127523058686773363385931920968909744185642112129370236289102160900053363403687881561620316105186076195983064940911254899336679669303479682447017103302199764550477056133006825665911388669762152288918173269532417637577552540940117491510739192430926467219438282457199312559639252762959514343332841071002640425736209633142493071038201054871549040237520528971033738496128789268929683152967963244113246456958276000748106674994015548569580152003009783148665412116661361955381239620035135071737079513610547842135858373253910850842581746853128663999216551070611993377692121168360993078096882555808547462667388063647377608754513131510469608423997712570504404877921030160635043758256055590876643664031465623041147101783474113764424947955812091105598324014313309903799349208178644120795289854285035029748297601093547990008092487932395474342772107716896350550967141411919565968933377787880896935026400428197476346333289010528167799525514832591638153533364659315082453745950469453838883399685583292182220901901024977377345181692887321243202154229300322267520600814064438551050041017549878526624380700401099193609258543502586548043256410177117666430809230239084547470535430133022963819292185917501379598375404010812741392551504071640730235053919539559302387633014286797458187198259071815289291571620203088126797773703984131378736856959771875804034969437101118034784542783088174073038335686740342520246548075767682709223407692943460607041719588716426308744839766917780722950462994816858444936750228869001461844114157362286161712630226302777502684522963163246913222721987109274082249056758865904120879961246192781942180607514354090139718248682598962836040430681627840057810090753131116478614194232021946467510666925552648879960850246870954341265425383198810796168813683770300894189934937280797722790340142078195777977566219540289296013631481150690256262451081017262384555778206551126719130603500143822260856445744987371504037036823069374335006447376799713746708661256546537085464535090402890860113078900785182571750975377230806732208202694572895860267446353520893120995726922823801430884520696744539402349745103638410984425329868840533334326205167606873390551645746350585158801822618953983665469119408711177709367474107456791847164862443390580927633936267348019872385963988489468578899091675360994610466934024097611227389085282923861006416338353382668995008225639953462535378956825562638082122257764222619925078005731343584938476260993135976081739611841800138674442820498486539499485902043943526776720471196885252488482886275559678320470005769738389721275599045027262382008327873373353927220349332450120344053380651722150144696122027971754224332882811527581072886395539701006598385369184240347569744425268817907326950421256298200574917604577881664912445524079302949880623507049367980844301963362385835440065614738736925399690753678595066159961833120812125568026159801672244541053134214503115356877441113337380445168223983871790680615608003435842797718904351763043578200712650270359335912971625321702176517806807314915752407161956783192811901328306541584801526600189312804451076963257696301935475381499852412450532597845993802021707995901822951508519181435366048483910988106225055943766188971501341157549462319270232157003031737479796723584049617180202882185515444913866884129761785870112628688507611487890883540689318700829327446986090621698199863891792578701224694480457325053845926811842363144597001512587339234072161045753926353124503771024093492417749146094992444474455987928415117829901812514748512232453192371282911634403453020002749336191857730320281251962023681740186897464631329826488401030285743366322415637577307371215282999852430002526370942252679095304208579491998155102896460851326812074584205714816810727016937237738866141862159566061827184730986653551041608862518728789955762164517519173139039957094112966083374552967680197224543403999872007872160266330727395279302373324160611648809924938879171471635995623236364312311548488704814212757607823398731617281598538158271141568242428071403004485710688262934660524671734023311406704225498659410371297492781082831062836292762415938607677483465802588996338604890970583714853434154061015920691985903329296867603189567972827763776313649258128666984053005080245831954824141143370133420663312926509422253198678691820213283102590004152798146912149569230915986862167198219108556777656508194195778170955309371258273692337227981187261816048630026626339725568470260370585651558792359137465864137583228557742641532092574600664917768586654401705389534590751337514187838072758264823142142243387841537627248990922780479314144557290922324014111628209385822838222103596125060203700236455466124493673312968028671772193467568655447797171696475558619015089863590649627679738027305547722523384587618335837756187653819885434258553478395752893246199547726276613855815371955661013840015430280476131074665449315274556007757392718879714659529809987190152925262369527951137208274191532464159454763376874792726510502095981735195512119128736929209163861776402781969809080311089382784748697737779286813462273961519702469483200428230098571893056292866767737290180828575926679814002521244129417132621205225722035050265022392468818170421131602320731239005882119954975117079127414541767624680916677307150314975064354341422517676907643688827445686750425872122206028577453787218181863091565888905189317885857322985931884965449801296696560726309802338725073410097664687271020649579898563008677948773356892941949345848427535350348360837432774214974969442608576545018132197101911677163890456806127834302434461131653019506167082181343615413518054303546135587132538084603278394236119568603170460869306188427188505228456400737911223990600678314184265964063965931220517466213726387562463603437882252175053720174563541963734705472056403035582737927753429903311159834975253441054103903335268081769994563439664167839774985463040539579822316465576264072121930472864051651013797738392462302172986908461278174073012475595135609682057208962301046017135209440994542748960636003620602233650229556766656168012148925302226721820602362729344107628954384320733778643250211758578214788113347331535112799643883210591544440472527941425666162753846422447353711441605114735513486324189614989818066926971944295743432498524878609220582785839480260346066588776621661694634026344587101013215617629710399061291202195039950536112972355113773878330948623004551823337660624652712923611278628695471985570751491598194817378903245375695483297807671460182311789164360597156869972109267664902104794505353273991226128127382667508980864011633319261497325966784793904212196970240016510751898856310745119068194640636499721688196542942961604226496605231648756882022704281407190274724012495857928670223901306092087883694944819284518149661138492546529846958490115783126417680086424015347482213288081449755568612033752922210398834865465182802304602269228676413292477852945857273412802632923365176014724819576828010907276502513264416756694955137594031751018214354808283867913869706255201444277502041868067986271977350487630334497581924247247943136328893392066980550141342698039193406948270588051053244107660612869130878360129361817881153972284042131842154559101129772984372227334965416250392321740238232951520181409026071934413299858526576593712815555885706715936304377868374118579340517834455896496772807554472226453123447768519100869674945756734100246174119242700375142934409749089991441983347327429611974145620613552418690268150685294400904121083478367287410317573463675010365526302953633209053904601863404621264117948412006202182104273690012279746509175444750855525817573655681548508607805641984723257252904350315682444414019006663623876994455279461836753293022203519210785886080119975883030440972388023455529562789336876609870111002135152599033026845097705818858847630274429913600927434918617294802490220231323573085258042901019612506197625935715649902413760291073447883308219304643285168433483667331631713338085742117055465218250250599595378657855805683220220187506645841563531210833288725129748384593875356779830093794985228315921503548692297676262838599528897938812932806425748442755486763424441008899196369662116830662413630918886355549029698530574106622063408695265895905462037448858198733474383613336674946348073702674337287071520877762431053134452374505653448531085460354614128031299100150565759068832765086717171448915539662087688820238580821292433623674605701909871883703961441937436613020077903902493961073831044504643025706702535214145044950843675600764410095040284973318381779565844928680125723918704960304498258687836190744552000501566109171560309143812941106422913512131770000556534732755069681967994658283899819977360232102805153158461514748901300548825043221420031005455043920791907695365672651740762768023602139282565130698913245459753186712919968361956859003328449195091047674648818478421347758088587630909469725535051470205145129911800216692031897517191866446954048707054898165650644158107746861310894135871103328254242301070991728062207268305969597134795789623258586796620184422054309185999865574400773454889206974871894565868721442104968292597973064070451141846664641666057299072386105489255703494601526262224414391039615864625967525605086356973430798521324459473028226957336980614907474805050426557737102280536633544903327042292994447778995296723787169032344308909435732790669897542076972653841159021110357690080808576224940194299629873575583249543479480372541205371729408115232831100952035690369822236306619265916372580709514698378598090474493543905526793253793016658056544623428253357805808454290826621270362739934714204614831957604381584893729869740037091796990538864339819825726828213601072199569410327071245951211749478850484018881985976181783191528344315899141606365090160510133395579650363094662669850328079550040996950796663461706372456367989256438973867261817943171547035771834578698525988795549823518531028342752902526271817171395898982643220293122570817756982819133635227756064894595972745337926735263267447358723439932547850917258561188880161772554497950366715532430304803429213835817459394493276411652541494246779902040186744817421708966501086992099294704447930992937829897224929626680562751088068915718619018186024851457205891089062000684791867415883546794907094588161014966235593600882967467504207321212466948540138653714333246048472725589137124146892867881092962539548840806195348823211588512848654331594151877743127874918572459117653553764623052665609378930360718510943732108728485374119334439216805525094778300357161398741881615210424118131134276378771159988639656568037872578025190009563803079740651369273024370879918693575246278658318905356842321010413204433142619550168020355873744147354145570185831419517313619170105911048313273099510842526170779892763800340044703998475514101901373560928476353920446376451299094617650584121884226541638779906899518346286175685504186339374799427979697692994962039780015516555015337477479333180974665135790889206902517033613093547309413511675109337378667150234333936117387797092654608962956104413493802305577035570951539712884839681216551666020205834575015276355241567437373612129761404562911541278440982001768180040493258530233958471172631464039344261426528447168996825126056612351758048340274029678430680379811025329848070518296441455937850222651018345605948275989683015526715641354224158480591410513539493620364326738985882086034393870667349670471433888350581855094329434684220785907021370074307831076086426632363829358039684154947007777437757492415226261958402166973346074686156316826109470497055567080380191828040359781226940371809709985423897921195304348229344070349748052754499353703513127382977911067600559116237546834101067277121589418999373261392810015226187992896711197118424127232452211705371068284169578342729658949619073646064827009659635225796478727554217414456519398080243041314665681465145440558087962236441477720235941696997981603211399006466506160703362146314355264446203510850922034765696694774485637280835891890489710032573128570315527687542286187986056603091638457460119156439111176589772053025079543752571685509991550816108291083291726800876265590224150362019593994490875748237780408966597482938366440654034119110304902611373966420567918490732519980857083922282549781067266631137109594778165419588944681825221342189899461508573785119011139882054147423501479845432320999501360246315250526546495570060661410557413402881110727596826692447726717262512894285955354957206442278425400364310222811792755967722394034873644339526559093104062169471538955082237478651997450535139341618262269989400748398931607314742133130410224585385136460539239910739236076715234583956840897207507381534546222945422914842427644949078360860439349239714765662936099205983532863166597942761808374278657229918556897695907258778524234428821423302460562871946273586536631265258220980031929883606955626965734963946756347612084754407021614786580986928968378023916876554011104242476294485727441843412166684829125988469877195805326843932119615876344917456561301822031415986753596044287560478949281809453624195919611333835316168590383144752400899198310732281103776469095993804991243184958640223739761995041679922298265024988168338532919248524476683718717920552708566629582347271188934176318948506603168115769308823644185717465685856601346410514665866176101064904294222403358357914630956519415909848162099000285647676318864638830312955937700131086087074625388905575680580940069816878869027925534486303092888985405524587434212127290855326659208239161829640275912131438823441015871701490572622870685666721800958911951504173553761558868927853798880915178486636071155182368686122551287174763222967133761800901564464979010099352080666303937008072293634981121000670199467793479895229381530033017755566862764140112025739912724513420734662140102620538278926395371020374365435071089025029641130796915498692239592491763866620489030859223553162822906906273600875469801838144596685235443984946169325031769500336247387383359017242175673745285166172377210680791239527822003825466297787543149439453942050407505201507379553948598399627465495507742462232874594461855458171061555368787094528095678496653532536276293221390955605820316083374462615201774065204367240790151727607243173350422117059573371989038660499967248958498422621928277024375350534498349062672783493858121602081136560288904129255524833315954660975344807550087111171519410283498203287719406208656269476193637523143486214477808241692483016901218265841935911611484762985066242165661319660039810788580485735632874591271593741711165265241696002297573946132153726396674621695785343065453954942059904054161167553166407116696234990091230439647431446521067748875616199530582887407276296067605996951652624227226352809025543804455003039783161003515778233718945518393798355915597082207999960429379888363081537140515371504342364454798228483312027608065034622531900090964194216237212737400134144068929367470637837369411217455200430324462906839739254242064950505701998450853505886923191584531199902282827400344983845818013401735352855551978460260827843230911779869458485440576610886031798591325084147497884243493563773713119477112827575243705118247372606828981242853116708756184063591114737032700737387452676525290228960322615117808042152766731309717709061259754378909294194694173872498516658370457562934385811106496153765707275505366167707908920388932772213623150287909788959636974771377653020171973389453469229661077719342459675915901573681007801173449030521518072379652022116075845634674984471104476590325632180509894796478437354501301164436895584252127188418015709621124636722253042300742885786656558733182389949769257353808705668668343134627728777301324434367338845612141594273368027199749781219671492274848576354161778151361158182794111638799341273702531787141318514376117305137947278315475682009900450572100086010204754579477704727563260125993163519576698803907969321459722394283354349219244830281186053977585330274316789611397989927365960854724423083527471526970314254006753329668975503239561661882871846142382647108259702296278877767982680505628238522386742543581654721929492601088206603353381676485495839530230272728204967243491614289201433082357016384515320720860002627185440256402996074069718949043097327998357173037917945072166567513864166851853037434618813747026349024501370217212390707681809962907352799916204797372735357016334820624100369080166680582340796751993378900806975641946052077631632118360703391642187925364631002159144365046006487508748673330580677990873356981689521435231689121454355578228878772836367131711191447365800345000829828150344551015221315882067701481846885434888974523881063977593697601098350333967171502239219369371803928794208661487399944185733053450270235418896327577357409900349279920407106780262186368856202821213820157105198904689384319215701206773352690235028464629254702160214159137542779405404647906607177230947093044414970183626417467284127094624430264174823529347095170719584005318443081278314026932432027938559657532625420692717865401984706335751857737714563625714118640873926347670055229383832401674449067307006511915798709567043510773251266392156963963399387164708347543344168330682589485735858415611409898322487215152313972328931033457776640269972817366352969208188658471753591227677255103476391246172591965472734596471260802536096636630575219057837950695052572577498735509839110095841368763886021494248949238594631952909079616520917679397829084731968876093054642425079845122109681054710346171397224773832325689302853846965294989400584109856061179052665774932056736787449768548365742424475701977984575169148907428122565456748766629389400463498068225518911164599136328148920760872129499283885391406104633002042363800218271974588712073569903945748648612454659977372840686538909154635103672367555010463727991206841106726801105053961883612781747167357729267372523702456246778229428735985486375325186171088268631635782426120159764842807044065499276061183182227069452574030104027113187413973828609437931661220816571595967771296687642932951378739401775885630102973013134571892934271912138547893380351875288481923834034395958245316896760731584452720229750008494370644783268406217277281868487370560008186795029330819792826859927495156179813851657342015814353953453736721459652114275364515208147882418319817947841051314038874338240101458045286656665938109474166853755787974514716430336312433964514042579987988447419553279710864687051662816037307246201612750774472857353706342800102217610723381828172005260221786517896531413562319138794669452676602321966947151861467650248476915151448360241957765666693271816949928982862992784579728422360369603815277151899226366766586587540827554109249301436764657337468461600110828441411925709977934931190684621791883893211405197837671934563003094400796928772177456752188748893312140733823067395045185965615665287005029992258124845289146590988794450212858724425456736886028397398015777952521439121456959714799199753968425928087974116794595676964474760128385530127310491862758237295530030268845244046984829056800074655989497783762755316847865876733898009122917674377641089718632032291273106320850296189800480590023540561519099981229963057729465367515930632666097182918393844441305628878785934608428751660471070987282507572458967970083222990703653755924404269973320893925915183172008749245894684014253037087880558316677082878398217076386414634676400762070973864054778587839498534143918322961910724586659978377513884243880350972867138218523947195844647856713005430278312908758686961014440546539777343175897412135341723373438234803024742481456112749369935186431062994866473206505883699074104993780768685350980342930870230962148208707232133557754187873966611753692130236553024417881481039321385155453815680693517016684230191638782640170659149204987874037480243431172599181539057921739450427884052538383825841585028001237258851366597127546712899215531808065883171009409470429503057615061123294269346156980570131500211713788392402081393080239276740182153909608926694141144488989772958444788594986814466864642980392793358362790172528648877335047039649972085363118278298945665747125476776121891102277932969413296529292047053854962617329402878554901625547069166192828390150935747455234284718920797030213834573605063873111231477288760762951733561663296071827066594841870715907653381014400942932436517957705248332636790104726955438406442018535519124416790593604814099163805854993121448335637102016816396177022650015434183290763213046654104552023841620033976128457277806374051912881502608513619966601935209652230753370316230653993072835258792940315629785412661352163221937832962031440370934455868831903020832637654162652724372730425661101382727196073652582929538139686929276906989335470256135487208488342179042030170092425155352429784540939847080845057214519698106926302412124441449396087109806496127460590670466564963158322513178414983987626929978056158016429204801517668831738315559580827673637504586700858713794083950260938572425400753469558320615733054559469951976603298156805638051840400400585315278030719606445333068985269163107611518237418735680906059155793789428364596662860491287827830730301334942808194001786355637047339266300924595627193343248344103241548139041054304786923375723044206243206055765835718247891502771807300155359030010705327036546497441580532940113644221278180302923453065691815336673668792093863340160190074266893994444491790002597258959323310721130932074711390029518631767194210748450379400378242625170904929106945648560981245446121107171585203853183454481261674901474545289381511910442517315610722499099900164058001167385054446780186366671396824484825603211263819007833320307760124501640709135638977538353584173731416224546332019321595770951726176518774630022521962607593634767117428862568911476570923774283681512611606534010027038976760657020994601105356235033597298464858300933259866467007500158070167788839337334337372553758438416831120454175393165174844112236943237530404337465462130761525061113211970335263977208853858194726299989865035762669182082757432808893330680461778145274559937123434520343971337243231172719394324483365969984562831966070930401384830913224904524911725228369423594072904312714073220544444146116166233786151571442140397373930126011025984296339008698365924181677573511911696023066956372510902499561608053587679352976092666029147912768683470268014518247148445345714010439605674114192236548364186913271276223305732251662882119127223796004644167883756350310117841913410304480252369760939866861822372551903783771642473928648663305294553579330020210311290210698134998742816697958857371616856267560309715040535096879380579323189848927351788912626996001358881927297341369455472215929090474123761166750941335335764284346929688886764155893253684905775307557016134932724112545735852072316384838510745277719992752670091549732492025252885733677348083272960337685885228174628335868461357357504795799769534512977005433683457873594234426480720621274516993100777263871055653979367060250632198442988935974080745596237282352608193881026991920677287956711151669032557198463479568017709602012901322054253276227705936728761426523718541679161115034252164438343036631799554693079399106356718484903100111673986049499469392398290873141795030743769803168682274619464609040043371874318135988078842732492722759162025594780503455830205850155980037785431809077696313075384346239986244798583762321942591997569574901666970897951065534585911590112078036849113619064092450724255821585260240269634581732859049175428359624556461697919173072937362426639550777603139334976392214402468107344049597057266931803480012159878552367357465164292531598033557266480622884503689410020133414291813756811053110639470156608753982113878917654668172042681887939357056561408229903181211282505925288240723199219370725808190357854659213055317990309439473163987762892235841388869915028219443875871059401712590592375728093433192034945895242636761551321798129469446503514717884587237955305434257594764703886273309095296875444486211232386720335212535283033234193913302233886091976664295226873113894755551006049606935755732580127509647307145651172318843826342023422934833962937443986369425788511069986807737333079650524142071140269665531547592434506040959937198086078418232289558409913543990904544834792056651606318833583667453007364611241290295891677424552299658948032187828502185690546739620693277637341519814470128607633159316602216438829166947354644115596598819078317845919637188348103162553034181664298406212585148379244596154482653026917765299572440543962535344423154286129256749666137772089768391957974318588024192035844842644917052576941002663235391619102850393019234608945707394365916864735493597392471638035061798238151939274844889847020305069651624045549462283802466741600719669173884711158299487696574774719288078765186114754102191560564398178334552028288232100360887343705263927698151946995586549526087226840014887094094301761721485849744541398601545445708830951389121517185023859900990716815673302317644527309956598895203330517017546104400336129433390458539496026518651065543342578618529734195077686002975758573889295875576138811480729448311830375432280626898521830246539340828713078485601647124506781778840025340867709873375353671956604313699000867150515408128265355723201996717662442521183621208980012669582124991297675408753936436557768070056871188072925489198012699938393086770962604615351156440945578445522395132355543872784759781360020445897325578863059013108760978602746866136153299206282728927301897810440510457435517786526872217814945749891555384208153296403486912560521604971032619200040644068693440831803192837144693934207304180317541954941151387494963008416188040430961738088129990923386248705639643822552001469188088911489745338096866138878402137078763717451789753912793643693671749156353947586769597167303812481838348822386975187051418161546855448387106093314710554800638431015386641230491538842606848759480258007764746774704025710919499344784142572391210247850568890312718018833959782826824871881983345557572709624939702557628114614181750389725592621219197399841358087463716674673837226537184543818355191148425645293828409272969582203841477627217419066678597948748014577252648928418405419504727906934503375349345773727057813374651426502237340874243611388085447451912250922861824399855584382083724647536311392599391184304711929678190860886511285998620506611477836884341857779204498567000070024539245694633062621746730183406147360634013562022178778663942283962977628517064505407922729822230841067296398609537421983287084680792033020539564537009658442754727252822178130545548641470018204232276385126505447668925263434520337770861597117739088098405844295652398104068391833168238403476293523055308181684256261160109683777390020493714302671403554536729894427635214214771461027557636816564479076594823958260631248702646713737028802671601275790859508378049578267841887233617718364642165968464005190277238288206294098539186497605389844210740787365153666886963739045603015637367297689502882142740674498539470976713249741537627261552471620806814362824184758785118484605707595099139292227276472140431191945209983362502294301642150738217159316228063083263064265514863239874417988055019192772176671552367308394995900187355957074267227121170780052930696152177517613086161690198631768301392834848625724394689823289553851534439367030590533667514317092096461174415798711008527051900440178674279897493551012792663525012561562287614997754006746339251366546059469769131097738455298138054260777977641471267964006715776334237017470922388489865316072824527046769345047527143143258974265743757835484972960123341715381469305984969067311023194345494068463608032129849140805748334454712047731719846068773539196551129986410953337523385371277346962775207442064259500460071508669946138237303765263922254730893215119384550472762214742397469605041437983178762451034777529008218677818752715267441743386089134954691566970380117079974499820123229775867690178663077243460267425900734440263342676778306437106327052606582666785158551312958079121012402151338926292023564470060166976990059663580747665201217190511982690389397377522155081049763198334187221895165624765874529698544801276202781434387489226637880802492159971336879393589147435936433228751757439106735035450654908019901019228069988467225458140857379660059339674005936113742177889665007857749663840264696537625082172349762570175199949280155348923239533206078905014186312174180347531848838265871108306004319173141387318005126068090255268332463970875970304977530378410794735767078416246297371897066382283005657133125409294035712059173357378126179205281859759673224512129902440718189795389288673292726439466862069128480779402249332666511447714334851571595636409920321388458409639006829869987620438342316883083933196302434644817340139121452018149244303599755189799996473113914433745265005659620790417667924739593389686223849182357184010604547294534501877601728475258337965832691156612821123993482915033610313760121577736339195115641458316303172745428709901761082377512670132732870607868722020057581038340188256550661044193565216465111609450497970606552470292656781218162246327729786047974524960376943920678307135927905654017331211579221169874850165329516856032621036371630248241480282535796370103747218549364426707034778677583714968796035529786230352037879559759883940813286194789765820845293578427038137072550061277188600860241283615827288339320184037221147539294920088041371737410617481480147156283272486365840452333871036131653948191613920439286091584587975719261024078455726551964888766358135705902255093170108882844681704235822674091328744520401103857914966134198030655562590402344250666304055910415118463339261656347347570989466535515211106724445077193994867778919623068618172076031319115226353351860501718066302924314895601289480815778027723219643200634646714773901050670335197568431799631525465050931015782342156565685074244822971459285624100912674743278081308980762136801707875649657990402482366448061685623109915389100131828956862700957069088218541310839808436073790113429805621628108588075689763209597989467277030950354418167439089763880294900610870776494969653782302455773321951116001477427335543838744985300108920219513045516017705053093221950767355844345069785260109396622292583433575305588598169433353703080479946230967685730170328969207747601108320157222772593914548276038071418760560668993746330324636991496128778560658480603940874195099862705588753513896033692091263681976335439521401384963264666126572763076526764452373644517404493950753110265764743588635804547681618978223128174765457483494224528835641670344444973012365187754812690718681610860792294383370655240489647078270703211615073624034971212173529453909880647080170799553234955934435349954552678639160147564704657881395092973997103109077987125622577901392462110295606294589766884012782335954021834127148258014317206796100842286157825398550290529848348779938743467957661175861831161938962299839819282562978283884043590098916746033816530914680594087006483524349556283952996877179068298464288120852691748924815540628304444354968029915995859012251750481539358376845431790911216994359341110245556212332871756737495334011684751354671004387331642970184664326103103486038642505981566967167434038031446043230100513599190907692065439735857606606050490267829729713968726604900016798299519619710801635503960433735741951738369580418220616670247031741311113669658114886569266621302876137107832268362894038696360880933976984484708974304228858846086076298037498964056980904692696851922959095159205670972680203832152400341875047891693746879227194310668904188013708789435299936082954607907255159276110535427750288711783100941464331377417598284159271656563150511342695833583110378505571012842231716641790765696967612440404939018578584539786228197801305062213199839877392275903944927978698970070453010471990136938983098924098943695191261509373048753216656262763122559300495197857265238086930790231635868604534266380197281493287657197741381904513509250674923498576191224641894123995672667224992032388775774887671973059628138623068435452086157690485411543288797582654365107454103616785591428266405809080350214680312115424262418352856381825720399153669983711159150816976283439529423653491359019304721836885439073075156841878530604314984776226291063011017119961459534361049589170128441520799260109114101255774045011031205250669182718116560217887490221928897374926293348098556317156832858442038697245818216811153508750460526078649335872472731908958246764487785772341416770496575700111574912818286166609059434288592194696252832909660536879667769621354994018488687353321342663322356299617281938310020166613906390741368795488712608955955498292040935285050931817799836625317027388561243421737365543384948876388474644165716760470404796527458503079369042397162431040301033844248600096004098419369077694057353427073425102175139294912888444484367873236808757030168505692165883472394278189401257174777550195035191261851215519102884250827722711550055021815436133769383869602233855438788363347583232851474707258255007441238187457024177429870177150158453308143263436218099940717443489482942638800017614848011247396136421501405080596009198730586987120724077830589688903806132317326327562566444000629659015532734169300164539644945729586852027847739189454545295375033783226718844925763210810622482582545897492557465282863559208443684354053406056338692434037647843655459517838088567534202922760786649260113410965447956500892904994615857476227980139138836948882364394977788700077082274861632877039950156525559236189119203235057423048367013820077503539184783476531357722425114035154060390529577144901310226645974681857790087231073001437634132752928451145335218754817474699050458899387319464748148565104890643460010728186135252634293392419660889324608684715918833024188236324954549827156113541861502466824224460875178289299379117649516481594747782728124212614430678114850123268828045502776376852207250872638068808864480927823926954019237749532307616094607852276863499383922917771651958967682718747073390463874863580679195647798705927990538376400704840794508137310856861121405412936151411617800315947371977442496138342882810858920300932412799561621603263373064443751698066873139360846491422003187865868927315004537179316544065011997359555407193664694663151988995913473552500106897595802798572603456625442183860001796707830220283906897611042821825737294477006175413317904530501461069509077515233677987101586034201916331797558902784795977260750002241684710997203975404293956551023895668679973728608132006454240548547243802075941304602212852999467546028533271867841726048272680425659569779732834752641915903437175117891937059970875785865015214411061915131400526234290233501736361561939336736099341309610647151754783732724683965769473478962625931805404997129941419996490033032541870592470640819369202694291726104844898520703712755983404550425176449710702717510066713393979852308750254008605023161558042900187923909950076893117797221843568924255121804696978957356568697167844257142051403358348461386155707294632619038410065218061912488157921921607011877423161496684728389400814127058291745032461817412629327275749802195137388094372565035344753363068322380279767464455185448084473775111179653781910320968636407155497809191085397918598409475437256023626315126972562657346101203595042786169163416304702641798802866992974989536792271225249066143770497265066426180109004249594572105029139140645158009208790427546014618699446706001975199494282796711988373178385284129033725854522714695256556558858488380253320317089198085197448830231511125668872379551491444788280331889739952001837066586590884067470152247051491345577551733266818828386740826390470139700226207462739046858916384551901551700464506111158270547595294442895110746700348677490780030102917901035121006432129611604942616339206591315732191108474641952178933616747617655075309040188815486970723567858045971218886454961944755464763736240101326480801849418648683318813064252388212718675137519069624419376294039359607996832387029388501102277254432593171905537810163567661287413122389202501012515261206747489747318671318375394430966862944426394549526426360131430981791800045193439218241734545093347786397412381929996877122978620311876355545882102754813325219466938830038643440623198127271985233094909255233939254167774827564434632809476765568849090490775801073544243857371907891638735122768223064165811529168653580860801268871930007543176684177587470120013272399402699283905612276206616846092712831164311798639669367694560629523541531840145012670804218576030938748885134278536889540926879177353371483982716355191101550991688576448380554727264795634457962032326864356695021853821313299171969747239754318367629980393807103892673422796993686011760390245320394529374134667116625765892426416833149079261884747612041619998726158799533879444422721046005198572982949739672124022671605165277219200954244273121728593798384652743981111855322191427267618859217793069474611788024800289095979362324881550470590322191377412639098454818201837562920959260310728627467086922340386329149342730177592429664018196833241046223657392768586925326246128181609655209717043476895240831444308434555626226396003262845483319952148785244057151726063914381327090057839598908971363332759249390784308968570556779036442832297264976118161467804886243772872287092020666994360773803950454271425809901266899345558557869619286524682731168535492893272032916675817800548951539255060748601117133229652281356965525975924533721594991533756446614589053214768774159698305434306376240447442553580428278478487778725511020707218725841943553438810965230292256744596501942731986851413684284311667839844650058651991891503915032438647207885476340938257782764886123984249445968437693524117218636784032446847437027873189347402566091605583538913483285393909750760937595000462274730940657853751229045700613871603191608360820094316546862516881569357890199887140214719366879685420171168746172711454641420015412696214750464520699366757031600108554058100445670068417787884712513144307364127261718034082298355302672006638052468743127720944958140075032078740388034445979416961253067134616747193837246840273442968326285825889765767409932962183689452377294800395369677399644028884962175528586411988154385075190515148237025680922959745386141158634168378350256444280239604327064574874251928813409769394561440461483452057002097046526466610537148549438719035166089257694693539179152931279366705025563940393033425363880423769440616945562669112832297488213707399500751212217080117873987873721933884933564503810015945826787985768135448492838421111505138245343632971356037406350054891455096242481446630634164531206302076914448411082741174779587895650874260156462555578334235409481593966095343136250246309570948430789287456956862694945029658186520067430889904597633610451784841565304905805466840262490198158547716643740696433309684372464188878788235691123159087403100083628626275801100610461899511357526693601064362970599747464448824491782201601624734804425871404658392298413964824788946269654962709305139859170322759101185863461413973460784239749865991592728014033108123647851323542250145195428369307091725793660026018757867104679539731718822804117794900016895519503512296031790184003066367787122887166440938579734046989117434583849538876988879229232679979362694730960818725222280068447382523722622039246553946254098290871416069293872288122499416416544265888934076790538357524414535047879113157250628479643709149129388547286722559508360945281329945405350940266220160485084620583974947798987266825797064302064694107573668286401695897539076280458234546373696044690108973491856076356534643994716033404443480821313588362822514600786779993205841160503480230741435785837562687323457895573987038569921125308296759223096829498596791447501767825633085171375514393835920305117978363611231436489001261204326840861820660011505414900682070758151883412864038771109891391029234312554790440919749043206597352622215963730584383521498499850157644001156930133468642785752407060489528307378125684182573860821163578118229856317013932905112580085806275006799062050290021337501826454351352332375790128134371514836365107376720984169463769244222507937027238290373762159523106941976259889926549227586976877238903820894952621478292411930096707878597597259366332529508555669058032992591437017338391826651352265644216948972745175403858466319302568398443725657732219187712492346979459614542689001031846829973516374953864742749851548917906516279303552300048306990348279136949547497190785928739443239547069671563285994713491632428717022336481349199579411466884780312954778003367749484844293345980022744599431592154044949863544791796035301600928692121300292043628443626672448198012240711173008470248270042339606636931279260161310111546704668067649087024231792667364463258616253744757181396234133312727640973156307277381367050372563167873003356639578464162353285587821771788032521731185186447710759871457072027957185951788846144484350834860253711406591576111811670787157467465840564138384237597818733887443371619081091171165796903308834316939104880829377588890818704786321158844869725739025155456370866703285090575028799347469378731020130576256097852809210817359120124763192394261616892291674736245420382689246035622970866362124889766366020730127481700817859646163563161369943644324685542065826483809449656321451457053956086204292999621600122901657000735140912934164948093815791155207217721001087158209103744542911898575589031324287806237281239595099676785824787645815227939948050459341791760972263853722375260479045359091861000075861813057887395645383898467486777233676553890649023481426663415899665510468822028292101182059965825260465219614014197634785139286306341793493791764123732205445566715982009695460831970840601829071190919436019147945055835825222756038203861370317063553670433971576220838660079900441601059135403965583610697622600571111339341795028182027751791862115278059641806357297183155801045611126992379115269131406643312784239704045514669422591758519940224062581037761153455105772111035097758959890579163319377247192495346307228696264490983453402753032124620893956547711515491362470742520333999600813531585011099988033895292546859378230345019338907547160581904919370477788355590021823025946045964940158331818661006270765643726141420488905985872436682921266709386380095016437734451276933179431334932536512197867541300231000168443012531528947815339805747562742304375547213840982025536394835487467574540956751121976609183864340716041809410298175715437735436824217667125909499459161371659459222109545737375838058770327418724522770897775148181183222413482164836138799730827313613470128462401433890023375672356497092709069823889650656959161533438269531740969339285682212893851615771910284147261281225644937176884670472318255831435469810369977065758802966262615360928255157194433445457064395168425152319259927773575450040251877341586600998517301678072471723362593537988319470251663240685756967264254845063982168689950942974694524745682375832702198779173791941654624082638645500045399525796166008432949030723426497683188364278685288915923710222911811997467279329642487760787406443600883404712236464823316343362575958868927827773373745501880101286222300795582252378847509341464197274529211015930021266058277873452694974124877728133597386289007389871728556013453353697397287823405844773438031223364182655382968170357334965700178991077538168550477795447408715613158561592583250504173771878303332862440096604144049665929656636464034584499852554068021439061989080663491254789438157752170274057243872419916094980453009117753864065985931634478405417590729676654763974217254315145510235010718309193672722970057405738832823537227681955860662806859182583991052322276140952414515059869540832452591563364079232286865049549272563161047746569960437964454539603953044335378783696915555899230816847025684623959747447321451242798221566494592750489330678554247192277940471952868072455212854587187972500754716907590700939838868054903684623495151536177312370991125316581034341213868593031523113043546679517778664183583915042696528260637942833110008306741326890629709780946494435677891968322807391034067661856276422587707473675522460994167463973397929074797256410453220714387099731903149202857857027751846776172238260110861842332172458432351747919575091117705875632383362349824964860058779959278928594949627391127465857675937639259727690404355984611327187086751980940385010668687678281783565101960623110444492347611242987138538790127373332472774767455369428604481394003051901435095288671184723459970208125930342924481716028570957270049512667035144637939442990748031814233490447054363510968614158954454916495357873070750633850913898014620618837097274183935823544534358721687351020670002308254487311159826148716798326345364062727517908759088528434636298320008403400456278460628573309148945675391525462005769071813946492870166304855016244039239324536343414058491694350692946407312880946453228459446658534054026572528134049114560402512563887883313683028889316127207787544673372290421704740377100168737984087031084081551102262911317969113297280580260537606119446308040149366027066737387635066476962995893217294109327685337021565288498531466582434444857334879740478792930112257782145574743927591246507895720792023787999290575456024575201375159350260758759317631040560354564598357317135475099919126053037659414550590143061139708903787614636873533170512344446898462816225601702688302035291797273300540277340893780189227556707357898934856992560647994587220856072705043592238525903634386576935409195671041387850122117958327025510789842060116320787909630289402155467832624392558971847437706882102832246314005657335001064360621577490145364100679803177195559535530247871728069028329219806180758976436223857790972316126196051992192448298249626584410304954228061987001236850085469789757291316902425939689883359669526872700776618093506303483230647457673328055677267034524102064890152441367428576282583985322397166296111778103480607515946480712722305421464275398836077736672515707315257626696452116092627322455551136513296684070795482209822801621439358596550455532986496031154486420105604238685818503454852264926148047642702551463580115276914353664370174883865851466989892940058069520598565673840785740336738834028312366093903384830497829020118598198273879181526901297296570237869278192068564176386670717287148635328705526142865139953849776181712046245742156512044266766685084393126548688357325293462663736813653991914423320057635759601033080210649751777341186343139948400075212021469847112757266904222735878557545260524418301169853562895065527944182082676488893174360818409655415885279664813790540748048514847051597982520339602122387672528551668951027898073866251567869458084571944871967445570108375560820138429115946143383746016213273574889061527883018613940378638853131615176907257684464356738652425854517640114190132570257535957201055528013577468737620572447632780575038573081642922442028144557040951096826778167064447463311182729146562108540835308850581591495496594455305307436751954121152126278883360365108585549376769159504557720879653494342539558461513505431579301116376496621394461144618843379499486353872351683725553179454437072939859356328753529326345281421561506066678099047247038660755523509760991835958421120044263510898139168868280080690361151017749114735623705636682883626312683264050036661598506245798412642487584839708200199859645870278713504912537992550870981311113042503938075481948912649547277732852801564833353192774539183858092599872905652626473582538757319560932974691971349587610758622344196792901290920968232474136546879065505263469518402478892957344639747722097516476162341215311900382138480866438505673752963527751955997170012152487995260952645248154956376848301629293701139592384333016680812259809742217292641900879855349333753133306123586643047263734769370348076227491533631366052288435878133145180301477124103237215811353685550566497701883315854127917971595015665972856444315332150929360305280465371261226843936620585044899943786105015510603274921703262874289858124690129706267972524930871736776706338643193882087438979724600240643526093368328591717558666101721879356919664993779881049459065469182850585715695667299418425188756388713559022511883186358340227437254773526910691690755552410347557346352228529069258912368676205885556962257565871379902207367781825940024640312484863577545180062468110430452842574156022855257844184819609652840951466633895802636921718135429747540122335980735976328049058133689105190725864703779013119059710723217357777551899632414020287433394274145216374707735710297729914120726209783866924991786512524810782508973802240737103950269206301435200764585081323622634768491747740581231241968565849827418848582879085967299903595498935115817676375494698103284117269507554289019611044088803278864812363821641506266922563220173907385246584664195499336711837539706549350949736955638389417918739971561484166279590034203361278845044842953888780831088486135096539377333024217509480421752790567759303141010829185187346635083484630924094945462547558356642636962242904255949716335587749151901994966634145586628680996893283730046946417614018758424475032051912238967931303331857296139225103782681230185538940413617078832070178910659783199003298407928461083526698357065588381959767121959411460468736296315555246771686886925709667761974958196300617677809449196300474374604970363279879445297305968687253381522183344656903704914971908336847725913867358073845642142872537948488252551268717384583413402954219293522664597040336092415428439203751276063101214176744788395971842271245119834135447803721584712976297784392680198568850987897199769531652874221909448440500170627682062960125207001225831224145391672172230298329022405977578781531101846551344555918135523348273972744925392422884977464419370767169307327733472340979215800365071020436612402891309920521757805372580955424408394337898649167494944537207775332983875693731351204599141134922051299436420693594502063050142588021837466703969325461493315471450943256163999863141592826874936513633302294086130835754175688499512843325922707364308140662390392286252233193092335648955417862903695165224928280976023663086536708694520249006245510173465898305545794175682326252695408074592807785758690596632381408003199084715227396750896506102192571100771032048210140767682719848484392928159942745993523802367950897162528679282974611957466147134642081302382240414338487953595288706324907844331441670358279517687842853694587206610348236008774350838529029613976090752416359903750587863488883285635904620310295078094108380910243391381433662727089091246715241914436466566325978551659638620991966306222734292974792578821387776028608007493427906907690117944541744367951514450935593336968804484736229033923671938346319354170754709152004744034690175730960893296250163270698061051833575819396707209237575627308862388054008092151673931229804697185442863413764305691036058653300243272001025784780287922968945990080165332874623642244556109145370697214381730581903344840823900586119011112073609990852610740511282345273487033569636057331156273466738408897106161378963567622496354237291931138948057872171910940219887404670476437167855807595696733586834226892532578348408281949683581029818435400542561170497231625078189064935525661724872995351970431600920830555836092234919533866414957196320054585188693218023133115133764612473276661580985697200331234783211576685668437953930926041343586732191807140634721768270088180315528894583172371876402120702807397394947457567985592879206802390824916341448405916165443220606428138283787805650739066279459361522408802067179470303050134916872790894393691689863226652234062576702190708950670309537560475968653515074379448232317095893542767791765362734114202146651578013250991905667207918580437977422583900779713880112480723599235332106650627436708358363649895806584081035683119820378168124044021831702037788878845731174580258042040375487712690603577218965076222168867561902281797484764975813312934934245322762909821003326564671571973767112917049073676291364411012996574874192052674728344626422924488743115615679305281784510287915955325142147551097757244275626658178820388728546070507964602656161120275486441814596889011927144803689605493756745478789162233959303902177738254067200576940873265331232693396479042605153536928100354426267811094639721265869739175005153777926617529914959261159325210031676657498337024213622249835023785548466662083704667626943480436399448328681944419599168730859028959465700968511997735183302678781315817002836357234927095770113286620275967720314560748880670384705868560085068186299379138350564812208900248819239235314353991823554971518410568544643836301667693188263948593041823413126281191632537992683376757435067563365664937214749872771838395574757559060145395221991184715480933378334205232920875349260497447872540977189989373001542754624518333640743189251014375382735187642482073866067419765313223994688240673443328468077284566642662635286609338473966000596248574373846656468306506294883955728701357306254359684528724006874378606216508352442168822770977599786252442562508904184300413412010794862298678247548926024549753299111967065539134482627391728882004232494489832251342831311675936684042724210087970770111030816854143107989025000650797413669853111188839365610662862024426423777339069848606066820598419478312423386965223795528846359594590523088977171682044196230756454450709226662278802901336453282680491206927094164843285121603914155651474479919369512095592908384332958382167047639570003645881761766468661300665582693190326736670411126473645942589534694424740182378665685886476401254526452560221994727959970896813350754294937875166662372316616442319720015260690986220919246887499522010623406937040059725509556148542813036516894474651422979498991583181420640625758548036362287928136171067519120178759701895058426422430357408881130554914240377113618070500144619851457951619938338095112492327417985881209291417696996323709427645966401686432082187852943100493823090966036340613299032912357797581886449970832659969354948088741817826901256413749205005759656855633479412992678573343000157711599214671727808741814783098846935851975003398310251560614797942927563605559187865574282913757745355472769089986469870350536987059962482140734351363196898313347852380684965270156261153904841931250784077992953785011218294662413976987552541670246213301976567536671306810658009757129555978153830283432795293726634268067964621492220755641663783800263955404995750793693393205104533485355177008497756284842221654444305861231293427127132337684398225317321028366215291110207402447543468475866247164574960791644095498908944728134263080227716620617874444457682375604903735385746325026627809839059661464518256356593728758573998056455337465616829831246194189448978436927672340769222458646181310309836348656662720904977767847766136609030235735562244609990379192373795999560569452882021000221456353529372225914318563889701487694025215902868961508159305730927955444715027839309070414952658018516816338942779612675372217166656720110614667015812253526518007655531006574193146011134258899581854184236851062442711336094178074941183872813733347655672213271772098289435288283966632498427697531760211681919427521038541880518941824138893812129322969248635336452855634282245147175699822058182213597730594466320418902926288435925645768986829437527991724846647597712911759076087001415076741940952206899313786481330392350984998975520528586855470011968210210759086517386616030385713522339106687099487527316908656863061404241497556053067130480461762868958423736049114407368246888056760687980642739197299582175530940078371367895723869969608671058875990418955279977608058123912051888891313088402400585215059121587985959810066112287697344902240389123735643500690667445329279621320243036772297524058656497646438477447905670550545578492856038887293802186513470041547664268428991881535776094851230205539758196957094928073909673588189832687908264358367791016715940801171940578269087824403009994633097098110504546508791892885773499973035300579244119844784416367628461035664043343371450281821845257632086851456510497608704613638448271112019144683226433104361880605521328969683901272699505143460925745469408201471105139911202847497965124919435039287779023337949096943149095841041614781252446002565894421058307601834098563345349718427810249614174358808779289975777076493417062860704679206687494726098019888391493612435132785565698697548002722382230074658004326631612352457136512571043672039699589285428934382280861434253861537365397161451546960449328345262924604052549253177298957549397672667399569231011072693223313777217507680767661814495374402003627797988498092414506675929790676642083542539701288516937801161734374052775860672746700862175555339044141007115017368441378084088731758808267184973443329065280412734491049672113227825523471704613659362714449695510858724582426593137399832910341827551525906125581518970617885713829270752446759863861861089322820539701896046626286985107354296837456755058745186680102780459359226209505624074228039868606429139793443624906892405034572046349364171421550649640580184031173247258745151825494911913218365776937709132215381218842375428483954602846394858573522599509482424550415749259243443435406225650389505235924913326568990003063888884113747985987250745806501200299752109252642264641039026836500642173985810850261579336042548436973558810827363148752607746345478320264971911257088726261110419672417758782458220279337696584019206773628965402246044034014137827591014761751194914590079388040611084870082815532730485519593457421324984449170957830122646982901118469622330380746002236427550445904354341874851492110246407338832217755606423020519957514151421617557471717255199579810256439395471317755839415702955445702154799218272326032772416410006445802018554059032822203064400498460573249930861966696262745893792161844058291750029969647496346085851356724296337150888119476539576929785360543989168166994409087621507883969901476880784548241279257716257390736270848156446077220521325898871479565804525423112875542350548928987008255752575253266783765276677026713050536926019653534386510483612482349378571260048937359668100474875589388047658597409551595156656202686685400647494216151029341635456585819881875285274903836627463353440371136552027906737797269208290960643626501088646978967551291464680914355409515651910338264171405012261808730470899740117835146456399879871994970193397020126607532020126190358088708250203337371436507494729126128180493667435620373940832731955105942430167686265484577789229698816870925914552465143661676631036323110627602116494432196037596581257112652547608128563489593445604931964770874517149119480262251717227158405035576644210771520716198550246550300195918189586043787446113934490002067636450321189296763271161447608722507977679362830078808227364209345149799645569354574473981676155057250901264967930167546784917035884683982474171624831679177218353339920050252598466548294751031635824374173196883573498656188664578681627919068414313630991134096622064166518777093072752322915475049838471990665403954009559523131332087443034115513748505015256196202252256601173523236055216771313054170841137190668683782692741206428607102000632977589096967232728898560661613770385545979598315649680425195784824799675270571530595564202269172706534778319240738642180401668728692556192831784725696166568436780913108604884407685157085422130530506256666336236530017598824843711660186886419722574907035210747876093785399950393309965117392173361313156174419968007780216531973791277453368744110253678120506274155704247792281153166927091837729903944403088642953828136966249652255075225661894840269506339759455140794304693001771733662011757474124824691828902487286951396195249123979201119871417655587029137208755262625867817673555738064923416492181693092070358104245216500030949775504730583482331213595302470115328613949494148693841893225183076291721114725446177247829385299234880823950563476099918049231976981046327630338490980775972454585760922029231796334760179621071183645173231321352682870204903124196099339498920857691092284296771935810536856159471347564365307156442371336759711639385222705760504175124550516611000042123552262414704884150561962919011234566164899915097120675541408133219101030152481070456316629157546822076104051340298128681397487190115203622093775416766969234829336282559298511675779091552344427092088365812223862613325323147597322778115910995209865999682744599825319527072323515420019737280436377532924278694250470395078417579128344785775098701672814889391117147408115319228404995085086464663312687269565784015274746640272735034062905781189970467571199329736495837668705828110140825932618396674345348340333862983644375507514237806629183599398972172604599909354611687125364625118850936639363034269839738202362773295354893451362803087991792578803718813200026365834323800969577561934456588071967263366602266399007636065956680714287477362630197840658479520760689582764174299309987303706819309292523189490124483401595463902728894862193640044822789578441848037290354087200735307674375718562409466149363347710860725420185997015786448802629679273465667066526191331622535743165457990600906209849635977569088414798574010531499069008389334566430993872751493056971748138662887018699441757610661494421981342819248376343618616448970748155128979987307372279085898535513771985360493451161402175591045267466659274987811846634889103170443044554812545154305730688617434769391129542873975080632212040749659435148174302091019623449031594355544154787839504779143964566694924218453287080531030343144066318223365276503396625537758257281243458832630655537033132589755612472948265276108092166721532637411624937328307942319506586944556942224942869616021152546344914302339337721881727860991599580567358747076452096257135932214475690164073234298506933263747561566567694940020740712457199621745011477071989393225612826594816213175878565411277513353954886997043341604582240272222556788854966244954768767025347692840420807477267530426866275682092825488333480110925051931902000087263906625839914805168497037021235812951672192459790867052590203385933339944493943821780197660946429264619855622029640882694908526408262414397645911303199474411979215720830022712368107057300780720231393998385761031227855780690765262356735987762656701080394511013052962859057576689750028120494024398218220727081655160828333312090654045456233582868009113021199867189242586660731314408235195733532972184250244241762583951121079761891080039440288035395375509409739764442352489616890113987249153286719680776018826407815886979372010058622550928658716593926014169321533469645428738877058548853595769359481582591014957295640747539230458953630842223328179492255647151312893393450740961008003334682713314409723426178055667748159295003976978010970746658080687039802380803502196965548628604530591274374553727469081100376778098579482756376740964301932499413551444394867256336521992174225203330648788990752470845982749084865302338971281367641066239190701469707704218823900516828956340199672065677652688166469698333504496510984739242598710267274207525795462815536546016531071272172920198558094613966086964756155778405028266873246308708747769810614021916717973739240403615704747142976510763465098888691662888798463144600309556173571367811300544521687333670511092062520989189202841637357251307501673663344583576589599628424568162233623163514700076051800299076070170239867793966203158334908136875743247002591901141360955842054638972240823470610260899841069238138518171338210458653983729872072954829583107945239155699529884305879591384972389467726377038752374211904236887742222666807441680300596966710851041574284316563565411041556881139558124776979502978729984603949078219603249427019324889934019151534465929247157882089956942202505310583245625512180300090341085112067510584859771471687882488948939925504144470482812558248244661993420004467423501688728542102806153322185736507819993939725214178895482088114646524638278514097436778773730234538854266300641642463787321569461856519805056833127296675128327225490279471397268302109141865788406484640893325349272974195471360275263005004488110467167924649282441060637978901229465009592734953061397270531932350525160884807117360778592505243969174478127874218591649519807729817207127939958462045966007328058594021623641365159502938670260888929062739113033094926534490576071754130363254669778371267776561563186343825518235720593034562886406447984885873255327224713018531126058739159878068621965859369614519795779607732364139944640411161019147465985543747483459599105970636627041062398504909386253454520384697059179088751770010197624827420572234179195205114767592174464482704527474889270107961857100891199777296305532548077703344569973890787896046209757832391074554353311958899854296894713338817393965729886782646106135676676635194616444588969594950727996329244675734662833942419227306184013916991384401684874849051898607586158355455691726159869249020960341492044784949931433624850989817996819738025774329695616818616290434251962031756876342017362282624983397315818110289765054955117835029337681162342331100200862327477832354053811545109516540953689852953480420379678813809355975118523730556867738240610082835907338364944963042543812808218434604108140102650281391343126486731825228407040481601918446910264868053992568171356193313594803432656397287179473282851634671554762471543659162782283293998040589514145465659393032827461173806197779329380318825034898522992586146688668484775207990200465107304583786302174331872292004538757828722767025040634407552916752791938514589125028066019111970684592053132485647424731764055916593836266199563237373700895031146095474720642424569877407874296315275346192006264848105861871624885976300186183091492165238012823624659138776825093353153275993170865889424648603222481514764490157481580972607349049151119136082081581062095126074432113697560132410706832654378293241700092105354388582287990905680107129320145899812433651105186634753076418285418126163476875814641603121974568253026449796783556471582014852506160150980582846274518438770450808641842646483305940872286148381505645562393705184106189354159044657437158277838226104637059705196015592291798285139289229177367729922996225909681800645804863782703306042930761098301760114711038647710815642024639280296156619339750216748700290125736570406796439333053891652271242800049098192476100296411615852176930967332734293227661652340651400238059783942652905235548249224474972055169989921303210334767638595990708416178943279254775323227814451980952908666580706788296381739283482287306716307923722778528211943202336781896418262867001005850765651801334144297483211634315836927415454619561518647605615695416944011088044024521515594380811995294450180706396112424755551192990725003112467727936345938861812398499692256849043535690151605567393215892042512404119072052119046705328927568289158098904920855186398149399627906473629601805010324165390308036990248017451225542413063376864161576870411884929077288282007885693301051797325252457229738147469554796959303164068149508878794452009595782199863872494057480589998020935766489702724671178069222120912612175492528715332523960942738909959815640393105008336756343668481162423791949668133574337341383520507867051651639656954909051121447436181055697324734071696906735405942759491788807816057502403022404368517434701013432581975063906377327098746052561300456084579064381100772258777400193955695558093712553458725009662880604962580957009761749726218967090341398358220938110870912977326029144625333691475186717755063478898898156590374302973590947345513594195834514713439600303058133653744962629317863278000211819395287671126444140608624106232251600366107892937055273475447658619697776313991398357490486422840658912199114593908684116471964203210461663368551160443640879122629913981563676869171028819247225023628315615690842872310245612933539768449159019141600000569796493937469035725034226832111090740206122298915191134944893311437902785372179406278161737553479156506468032265447923318244619140578582543108933785802514950366590502604882965632839529156720884274507047481916650753493758906718095609205001026759256535931907546500709517326144396489781741752342900257374273549790114985208709822223700953552727531187547048055810436648012623595752532478872700944983587783133304187909426610435195810888674496847406490803965823951279606539693421061429051999097599050934067561211303645581791163217297563349536175889309054942950343580665722427870476692715185524871506896365141827305432987968873572089354306608084840697405870959767767435137761883814091740828724260239576600066481913183414307230844098638092500600189050072555614836297368834000131367143060632851671522364631736466849630901490611631549623698055805610119247821229272326045849149575422499757675904094960816910211767212616624552950811766589684240513826285115509552165900299104471273044020198004243878072614019610110288707420875585903826992505605487895355163977404439706485457317037957182454538163099462966521581220636547165545748292614689947265491165606137224467154117140268124695360424823787943816718519400330019006670971210429036282281642642278338601959158233971765545270642123959998329811510897747520067902228778447842688385534609523147817510642828714927062477138728962976256015032512351912243328462006231234842895885266168377378721448629970995074838806213969247960473508917226671200352766814697439392128095510460218374255620349799044699541542369383116635996003941784929656018776487950492313301555891648890654799359637219979478799609560594980981832434501711658695626086350809821108928787943021947180995121087862868015952579280221374425637233203008176530668546387861122369230971485969269430924222773172316540759166053563600246056578661102645882564091208180969039734293790384730764591266226961334527812485142003912210826828493634570739784606702408069854532937255253460954603855430637731229434939809328557970445846342872036495526973544106847378014615234177040251107331099089041089622195789037034655523228577010964972269351205777910786225066663908314018364088136833368899481844657542325464658868938518708956375007847852442273074639756102517291136330757365855664356224023337321172159534481564012753796708104826795978662907794905856939702371177522775993253556971184030805424490900896468240065638212812525155594873815938029627972614722965744117384821969285800568422639075840507974899912142807425462359313755156594820682222733933021894277721472523300233434524839247497969379729185233422232668288600520038711151943673189614740817698896969328497922598362305512662320298238573471717001754936810806079252967055374254872118299548103007437839964924524039618250157785352630381854880011537694925881525040608366438367797667859278464282901325907791023222638464454939669186181238775214743641241780661377085100902463927821800116617957413473795844051023319134213654870190027768891111072833055193268037729652915742574361704345217573759141612993182599005639559437163233147793371302973720785419476869551862692718136560177843458641042588597789263184989158495312910458478789327184990658402239458177383226868758151884790278340709422989430071147417467928412185741341623812495176383381625798376157019516411350364043403760608820393697691456740380381751937958026269143909132269136174867811192872275357226280516663295401792179161570634064938239901225506966630675434622666533722260285115484828079322976120846606255822493238883192271029194013105509279724729532095606620171444744475210759732939121446044080900932803684869270446091186780957363803872213397638196170949300464856802639784993915205372166147595607743735565954641652602885296800799144888240997764125414927344982362305445770732853304440992414628124165580484589507830496483662928152705623655731271954653393322063336312043889694354747985601912350951822990890445328374294707366353772114240350739168814747611338358975546967860507811840633092613132490744379963823600575472211421852600333252119424883675459304972455442986441677628473829802108242118179479575192954495008569769764168804087099735886361596482501679314885703155903205090855946672739536860304388493306772979508072717601306942624679430259678211629430698906471355439303293463638749057006845889875130561663992168711356006724156238148104147785810823613839654272412337037272035552858188722054020805336025715447003334176474032760920395857948664525664675784533466240983774337453868530066308489714729700501644652861967996128581248887804481650750708952909808693422201074234902216649743667412659839650840755015806043758289892881675790446195428558378071774695243961330260111888259584338910426890273282012396798993246004934073306028853615497019799180651968511067697872980976803150264114304801195441366783736386307353218359805518763058779657056598501414256782441739433552977926160251072402324198124509015242276964314886109745652253840257704948732721273582784766156740707111450714364870341758337978101473293575747383040635625736569847393278883212981947273355631209714489356406914452231162210416380371311347734017138033000382662216966794639357256703891588419367692062690150643924303288768090162119502067318968699610529659958183617258646056197334003732108210049096624926207784626541087046563140524713384680064795956110379486468464557126785663114636995784485222479281694430975245669585991395630555294626350436797464629733202550531390679394266561374893655867111173780623067041311071269823015256040360380456075754875624031639302754545285902260793269992749602303109978552583981766218606466743948481495252985603490971968700589503627562298208145017559815381237066284517410229347847068131342306752380614289427204941618451810425872887551248143766796254223935205003045739238508976454787722799356719651812202570857802770157377919138955835220750150991819507613721290949239125294270574806687486761295320843868678142194251849034140806100651912628738380159043427149349460752049238309910375477999603991164893097159942239873604947448374848214695246101964014869103967004299360972470606558172710995520990483855831298071745819128315483592077610985495439923390126669334845048987708320601580178714240653004258162618877086431406437170086318568731499614242767231220899544022989899638979116818679294840495418111767906378705614228647065839679847435761435486950710318710368257454912960962429524826533942218137837817401209573558339553734073954345388281577560025125403951851136716543682205103137866902203180563432704808374661505463137060476383596060175865458893906869382716494852688458892489820878770661889839749513981180587827855334884413469976646698615628598735030065750561635924582111217632643722968505246139442005526134569280106802476106486858558095975535142235645482137468489036578016661434660114635549135795442263201626074601393561658808994824059322543014672331445705819684973192326637123478467606493857981220677991456894237515030356427526105402234764274232206937124504097543358932698784871759875909585402637736391426571109902440367362595457797405051724982578893783786303446663725201995952155026211144437601795941044893909678957283484032082392194094403684572563528616771576270319787469832111770213331531989292777955488902923216066699842705624210371397959497206456590270126298618217666375135925083600013400746505202513068089669976995577277080157622754426800926554224358223673463851032685741455224334784478277748878846297881229279693017775057258593337692055427988587644915599893916959812340065206557395904517328393973294426151044678143188620992440891860682015959696204604693943088903701507225216280914000646205173151499188652558748456526654497619127782812473964745601377390545153137780664361336248525658722706852257006767991934042255178028048476875842939769238575968876027366623890768959381919682801448678218260747186235082343123091955978669466999460322486930342796481727741230206462926900744889087297473937519611930653652271682529081101153003647448231710880284854943810455054840725134565449922606240905813368223124578861398257848061881375875372150778484163495530871189754154346285656363575574072610609260023311803722178693824993096346204460166184151811822847556901457776542639890223657080997460816768965462631593612578090897992844696517120651011300239755453002669076812609167922589968485876684919267979511604630433891977308140556123584144861652922729673764115996418368845054582217744744693760438381590738765249332074065354063455240742340123169284086477195803139594951189109882489606513547887259290145656373314211858912069004374802180633840281589266397827402306418121410728955890250304828697854563761718549600504194954809338244221659044599522715781254960461945001049435973104325086760975660410166236373565797986336011092701462970831905651039074812120447093776415912981137930542225862220096706623576177087402155816434964490874955824142206398124364851564258206133908221030547388827601099533022534621248249629008816354001721572897190895826146729183162048514649284659443071140612267218261712152120020053785410875597488755570472200427254043643495836623128934498906106100449561681412881072751354445314968981557870824214775325196936754133542736042723369088969459163248923914349240470241726173886651645037093776949277794918052059725112133759250084134377851651670063089235548766321327999490196120075284789086333203209755774321348183778060291077424426608268594948198203190927986292438166024856863618566749687693247161203493520219798575446077609782829457641156755708688890818116868942757317375423402279522257115165556649590389685504095514413699837209024566388032365438233624949920094216872941544259063242820629640335507731885611422597117910930661459793921942764462499545054690466668895245384312460703840199436548655364530182586174415918133644785830293401148451105031516449782199100505785783688191480785001246764758009090493894820291429092810810202522894398909002185192352350153656055222219089843722136551296689159881593310621334381855414945335996473248132498706072373407853874871433409531430737957940848775716228634597063181537344223514442820855227003986043002474987794599289879358641217606015974591121662465673734412383086636195007186429981988603147335942968502975964766000793998966686172987225500133039820674411217457873378626005558446148026685418291791757711544872108045929189347091843652623317854360074848943219903469070175454959555784962791705026918240335979246034718101138454160374863832160186328379948316334679297303157650435898276761203373670051026525937621825141924941621123075190798790888468991417843851990705369635240310117664545936302600243854434573135075108776600374182910011349691398242247339585148093612928179418320572896622414923618050064112749518155392319212589006798030399630863358529737658203344858414621155517775507260504283269689875104616955904340904205580646191696260755029887346145258801437455605106196779475648474610501259406457405021211634301384661166810324283754131996313840728091284850663000889646920212453006636906562361066460273072769329314661836132282613376097910934895163766847930270718045179153220210188808711772438162012891383235747500913889660833795519264058829917001641550625182212206634376727643410043848180673836001326900483120092653830183063949758272834549882620571342498417093812958599650665213664048705787171188471806027019692130492483406514978822029928880060861764015069887695203374437441136242266963889474449860195226350599070707432420044781220058255464079846844000053657484179898279825591513867242973197213111810595140200609537839439542638750639387934141319971685214901350249344694207552154541492851194005308435915502076783868871519337932766936605339041413133116036818700740530406328265865132434769327065244101714856546610834067115588463201239504782871078032920587761660482565606434532731599051672774129693046365148343496297612126030373352165941471381054324427008127308558828654886347909947154787568366163164446547458149762325447188406263512654920594431208160833306645795436177816841832378544508233484692526661971658894760110594403613670556010802530284650407524596963519257580709490117025766529794687193421229679642863917164976352701457950842268343410104235442848724537321299056133989673167666403542297446218787349201700454668809302028400211023965209347705201729320652733823703535588706224555991515407880852611984797219949508878893015711389048100767581088407825278721562502794685986972841826535158094944029989640917766931180579652246157983399056445925559889288967009561082399513698981444453140727285136055956494889195077817238487549990240208764962684581311374180705305301200819570608989679680247606864835513629818976233068713717149404199148991129907778999677869029683015213353709030413381077226921640913821962226365999842635550112529644254454587673909815756376676578003738085488209060987066990394831192370580049289456318029026773374265566792916109234681528200446661182113510243218278656935349404039190820704122924040353394713742073114918035332916497644131476946751952095409262032475178318181881968927962091299584808809874710747656163414241880832934183787799241276554506541684860162675848044096319589453952667907911068380805805957924947120431266212359723039913906046400776365556100897098268437275267963385883014406259526696588669389616793813536162612399266243362529429892290672320923914484845715710802693355737991338315021958191586931546856767492851435255636697611935163810025714101186268698428961966032644811449194850242903863413025308605502413648223726154931156439525919306084906297941814708205739227562184894868572840843447773804485334568815957228869699950402660746682700239476332514216099362894057101004163864891003405800288278477791205354040857158824381024318726190149754771211025847529320231461923958998984240692967282383311136423341915795273246293387081869811954423424934012247483111365498066297380118383038789823806793651216206486232861905698703819247008633481157144587729036551209257665938594622732005262006436469889326391395510810557685554545070623836402390138834015840486129635321076595338197238365688947156968053544723076465013926724377870974719894412257656910574008783939807985673974196072719172970990646068543521641265659995339241807947651207816537506583556160551656848304690255353846158956533788200076546352553369623458773109218973311257791317165880141560970801860854579033481188915628332492808635568079559449822966536457228979249588636390421911640819504994009391632071508938215311957136820230600385134574499282444826667908670852244634186150057037256232950429848015920088835815940859807756462331563520581969259116765639168085846380756220877126981352036304340242763880594344670384989424408641378451601538004727229367376045844085804053126090742486641066103578272329659219496032268752129354482291573682773923037733823020070475246539436044572874009953382119415220747182224998474451067933757228624513937863069717054872480982554505065474548190156880750308232425079770151895678239940249898195419361381605767609821411468420883587617247157957020289840274284028235305922390652268732763893437222354963597363116595690096935839284663788588276445206732300300043348417663402591350053416003195087731176653302031689620954708923478424788274559383915678515094453549832449017466187536945971545407359259684672982839685986543153690477569873540658357595540593652831154986545037976012291622671403317465434457303237989645927748599370917237244646980334846696213573809547838720118560225518151298267170056861425318370798031988992269065184590941533538682865014224186439631031028356577659709281766225193045408266347747893668344814387953841984379364054860980919275174775486679304841341554576152149488644081245833936606620075224425180026545150477617941128014543851596425753087210335942793666495981964520430963726951968034911680491313017327193090176665203193000119828610934156399580979641951697720002317105745104341259711199304045578568981540547854767240260621787193480851758393511858924967578523226404997955235016266905756176373834845371298568309204278334823859722027948876437737162392867799398523444094907893400593176416169320054881672203399255610851767936878179300502077252918895832102812052359501076654482127500932670322198602831076562746269720449377255945958035116196759009450733284882911897191551838081744908177306632812828807132001768679030522773837295733665146706451260458301363491943802129363051251050812407881552782136956409834196797421897140408635801583062756472148140135221684660007332811251484902685914385144180918948885162291056469013608105609750273216810329833817223570391546453627530052606219355486416641000572148286393610671517470339528290084764834062221824482900145918752022306706502741322397348924363137230420180579375155776176909654343730546402465521757427711942132188227608890418009542250147153810293969867429421077298637989645060775176076639244940150197739845436359899236349613463639294465613788861304945712837196809672568566887081700796950376196755745257702395082223509218497495069826801731766443819703493483515595033838098467791550610236428215907643101271337427761825049792402513510301719879885290807086729207338726737383004111976531691210073645897504538436723065076594760105502464672461237761374279532747904806161919308081723686925016292698234471061690932703702443900520241524683880089820847278314559157334952665353949972981219353476928103829541033969135707955751064921687414579441547196604361246364923039140655179711504252460782130559474511850346867698696845720212590066902099269955041078146788781133401519166856438965161594663660351913880149297692799256206389513115128963039135475116041683398691289183559826092423398181090219970212223372615876263469343630292990920440363574080067447980437859711977573465714414176467558257169148376864878137213127198540042159019407651214190708306106528446323052221086732114169478763554296837126666626208625080026784742524116239008703109453182238143314448408996579084608617970033193175616245149270544645336719158986041517368692253799203940580266711764498711391138781447258847123774669869689129958654991918361876528483910368041191873269589304307910225796228195482446872278852598032361964376756360128070986131019975409770519755118047658066531133544068543696247684780902576390045946690135842931764296421729145558037167197862457276670858209949643161617884413734526615168802047513526605492135799887316731001554691280879672320352957176804208333699297303190873670086074329957553523062852864178167066061144364632533672880772736744485004676719142101608331097626893909999646820257019703602842784726667024414516908637205087880080816025714437326520673012095956013530271038862327243674514938773102942336868824709741309125894007052751260959576047535048278283213066359125580287344658938270850960706120856993541210832631124201225785122018575339153924262738509766675204432571816010662303102575858500872046183492015013359496594508515928154986430744837148818616317152379579466218265775903094990641067482721059638911853613270130331891565209129095653302266612517359390557214494059529308660323827990880597505960223274661356531280574476839488132953782841976226053260680585655371926075012745735486471234221474682651201970725758320476896335701998303231687624880507448054462831927058545994019092126657553769235878897017259113053675404060564622778435757439999029771644659247391393621807092066969133236939320457214603315659293163095418134573906587490712055844957515191001339722606181297773069274344905061435545466392659239138172113196116084458880837249666781349506840141777101214819003289265575526404527641336952472159515219635304306998676005257857441977458156042472379807951770583561787281996937513260941286481388455221113652995767971161376227444508551472085134833589477386622311992854531450610518394280293128537767917819147653025439110283894463378492258752211461780123185149716647160496444706650359937929137490803003420171264131559411169490286445954204516038228029891168805201200131968526791744969170709471987931264356006097242710995591375593754838728897487866664384039822794454650851595719494146315081821762134231885170768893235784116348327662245996838940898860830416679918103708797259818051303159203847145220971855388771406893971304909546860195398037050165121144020349206075982294852336426871755777155203311977433183858980962123209489401020015361162004588753615382909831483416821802790039252667720007367148112328996572368373749771941662603781716951402036234652191031554935576928571712278093968238869328712533134518651590737363656638560675991174650308367845746315380824149584658991227543825378021430986646664925751479383122633344665925148760198163543278772198576542322701564072255461901059693374778566385403727947249624304943132125234818743395980618950885890329996794446935325325952473383298327471245036034265610330912382545835372665501517078292340469556847392468130181214105998596732704780967270440887447792070845112231632110997772369027080343234706860666823241606925536834320659215106528068834159932115748645856982769752521749052187651284495513353866557098114535131406286831519594870503086962846666492305816440955509788594301133643161102093251639863512591855052967426563375787658150029535753876236865551492371223825944126886217253569924847591161993230422268318648014217276247468081206681310822812274826326380694741841257331694171613669893739852952315716927737561423733805883266420799976757614477731021867446235366740018779322563835638614700687376763224503480515671084330203651114714034871157235236955390479514775961305036980781308155891697668686382080928006860412229162968019270782198538359066505878192750637442088143658905209075940892087416159326497028986532052477230480157076454771416209024346043148458285915562722069563720854220824113050207061686569454170997668246938343667495470668272251773050355147537921365481273639926621112062033768380755588692122478216217058899596696272293219799966957923206063108826904251948347718730801445752366769200322569217550665581017799629990424818000826764491630164558286198584497785309450914282871260105972436544488211204806170052426613746781425755601258999282985321159194247062079994107886665380806031739083840888878719885116131466841469913985832892016195002508778212381218771710782376672360998474976343442824741060777050771361770215216287751955640028460022911234760970089419556703445906483986383465480095746549556825310091270268406412145861478977849304830624515138992111077888888812667501881132038582629996104352067759547592330090313273951755406640729033710556450028846649813977094912970776083673450601527948198342565988623497130002616313220552920061251463399441324282226211325167119936017514704199815268085158968978133648762843390817394006195906907764053992943329328698768682450640865893279266691454644820040115696087819550452130536530562133510208739252394271192172366134609692159000486412009818879664764097417939088743842524599135255349458618685483632396196679602249261881209194180647902240382050388008403714112185992698011474669234243953748176873076538493140097177101585808344104345159405160899618344690111379462916437671801877490576682765176986934529489677093969555500081513118097132676906504780281493034674133297871802808766962195504626064518392952227221287093265587207137575771982479453927484198869278630091120285683328077288841111876433112710452089926250198656257285202747507499032452740405384177286993551208076334486659330442344235647194179503943328437240408470977416705999012893273501355700894424542776650322238371609871320185801645355295147665996167007049124684121644672658025830515268698804580032092794921092713872769743212141523788344796384035015083151577278475770445977642814715993962049214628281681890652132977089685426743311598650063051390810169146995637824680747864739777165681694974468705168538135933521640377189250578379774083207581895034450503379531688865849019339028113609004819891231263539119177693213931240532412246633555855507986661747392603979398049319214337272781669885819932446205820978667113957523348462457145766698520475238402374588125530542825217361501776827552506775172552036246844065452473610924006923307224802650004472443978013800151671489884228670495978175469305635054442544446030348548122940293037541242857284374453999617893038096954632369195221432185522097511685601562834986600327560057415632917161460697303502306013952521209906699866004219909008317664873375604621064835164266800951565956732971366516226383572553673690898152110660036122011212337553312918934180634541799759184702524897736923363518967889833938617789562738869786211966709727140819603814075068461206628796899091107505884086572964149849120795099367224239820146565028744604803404627278777930121483760625918962677009292917194496917698403241528999845036967025991659325029168461378647941707672122471202766984584661735204735810009073210050942881314468528918813290932280030219714224474028130266903234271304480202124198546045380908495017732110781969686646718825116959845161769735194743350151411997638150980619262325996624159878386013432219906165560728983089731530140678924314777942427661586289661386455441692416293608241454925148575480384295920084781831519860452768355716825941998817310262805218277804230327679213416119981691321842423785383156691186247033462087939417597401274165673400376004045045812775133250616440712368532220122830004729577614930562014909792461137806619916674004200776940177498139836909648066134312527939583573569793816436968367695590536397387279341525745718634318402584398051681010411886922371406433170306045672567423001479020162550527195216503947447805719813173871252109764088158520306841470862304246856788109070137455569565345290975011882927763280315445252584767819671815118194114265883059897899244739004633541836068663038440004644774987459673394964293127580187832154947276615831917021415326776908989128804675544425551929516339387465496926808289008462282967355605654430253695410357006763658766254024364298281214360367664552879359831616054034267153919640355100918620920657498289173697675095338426744918752129650923423313556338711801874610830795051193647695658348634463887167616836686755697511094107711327954669894301501571774573922873061132711562143551920519039076846813108024075170702133969379011527056127277332306479658000951402925360209197289920288474934840595770314374565668452157128646138998006484851801454437152299960293847451741868078185055708785896738408122460693252388078076296323364191256137242736666060589999799588022748366321233990991470018002160652900158138234890719056528214018034106407209868648307041578938004156213231861589229910963507660107022734492675538098986625919857697607875613018576996463112416102077007436268764128129107059159628241229172782066169272606255404343306020076692225063234612816061098428079500097550323846072258691815048048017388718218226521998104401160222786707035107928926642468043745766750626227463038246244326856880905511730471496577064307041771696801041115834063978788117467670622001432926668583421825738709949074603968093698408522598970397930904508834439321293878984773793252694241349196638998307269688172724645549461969397821733589427282930741329757681418889183561911371775200189311896640351614109693697474742652154622567247577608854870884263560677585646076977229476872354084717685175120063500103500520859763936736233951669380097265859909886468412067143106425684358480827321394209254483930185387935864496307604544946631001427381070982737049032351623260289595557704168923635110768843275166468973769988603495198967387457552890394576556410346500892667397129873192411444028879243602678994817072519462528420776707769741234791807137210277158040442492288341213041027844463442298356294701044409422128882749704464476225912191591618954087754599275813720980712662389058024832782189959954468560572424684478954004285682465212302802490312686480798317668429727071546586581207064056230761261146374493115107870691379803749821643509294717447950088897153435168875909242717897656611481494986632610622481625251724297268772637310846048665714799789636731333989907841987516851910565931368878107890529492582183277934814740633101326523146188445977706408963164936887209838073099541373979305713484994280343100882129530634654364952828781497400149858228995170089147772331446595975740474898270848575263219899844344397655284841735426979927056681122275796449291045507926703948373620076368511500490738657421533622405130968519329775577476605564009701167301062453791185925576224850931764729680276222019453452781691005448213379091395473098404580473989663347959975495460663295556182299789085829459599001990236593351859883335899459563920241093800151635117169163721854248878907778051528555923423998027245154253974870470515407543052152341139362474529411303075718317598993157660125028557825719388806770317501260600417477503189082874890257758218981294134099950211036690344937975285003299563839714389606392096132122244389226611481274940404643147939941846655883882114065344231016934588359893750564096050162559272538883656421531073853671263567368709837473750922130993882471241358674086737463630424088544696276408082277215790833787123684337481125747018214696583136998197491919699189327709517369745390751990750070666853619831186004342741733397002587169945119869723521791877220159686949159748315187953380743395944810285730504735276039395849274041915856930240811522747029453772421613414155475946849657626215669021686373594896601246743558585507180536167260964046358567340922242872149447319685118558237311465246460486982937325651341929273337553543663880102647881475313288068446124415906261578915182884724596970726598982876198711147526660972134670799125832466059737646372968165582278797839207991903106880420200388499035678667450034046128937446724238459388422725360043309214955537766503335454388305872292440550699456008340569601020770107251051923214233609149961602913292862360613209896933447067120513193270121014780923120121057736318016868426016325269756312872983764317664531402399955813832957982823792387917062223331731314969872710167736529793974738862933858264118518338316735343637951547534306631992889857359668796889945102549262505116952544998072456336037245469164018907371147103277807731897978865745931837702015272387151508483023723800090157368211080561645085481026228597080963275930741095429138154968909575272823629578950451755663344461037754302008017821299767894924004578341527612534486281934083983519298026393689099154097375182698591732135475127488365857867491840022144194806203716908422897065416145334107085209131709022474489741488609994934576589966965476168596335629150000379212950407063535997316276634465318669201918470095948351378309343996831435340444589520592547775860906582738623158835271631141475211573283068158642526968897780821795478601698046035746809393717622914807233927814602477858277314359028177601924736533855002184536949083427231480983322542473356562174428801488756273925426135783383980322803964877018460567486895805614734239874944155380535770874699617490700246787583713440705390974182544497634365584240486660223668515916264439072146778007710999516095790911138644123216692284421747241152254939002255013054824034421207212623173283012523882885628542011031414622736206624823358386635581264589480085408409664981297511750311610612847912727437454589306033498403154999579629124410071471155327019279930294823129635488165198744630501717374715876486861479746614904412732878684866960549161301732741710821562004911206870676426379241380657881694105052323705660509009221669346188057464444079541277352853217731741697347791971072269845813186122806430682256347537287122747197252679094282139737252184121702442608367850550999439068653757090755944677130772791980047256814521563722757544766305735907342080998895312613861417266584140255277529938463853112439607610269411391417240424221820213762774440655681724852646085258528038417955873188381348776902296406524132659733374385162716421180019279662975806592615377294452594675288557949646361117340702614507951208578831761589790586983723294381284789542144188344161179168181229437667395826657504094485764024552226188863442087444814202836160760271010818703999837810177367826196957521188841428315132162567034423157085125988024144653796885676005494492321965042152167631712143830898125057248411825694815449382359444259137896898721994119974799069455737870901324731401674813485215584457033228060595938642866111588444213838970674419862255479537587049335897865079776516353520662826567356853392828598331202492539734933751140417584651578948539469998877160623072980639730652636077368363220033215151314653924237882853033398924740046813551818065416965285863082829972457276062583603444316776564495825822718113823396877029408617312139869962070614904345275039000556363858961627601367389105929027373005699768073083880358748160567888087034564172925642641888902037313256511041501222947947169517934494484656772426264621632222772480969367662014066752510874528379849192282683578968929020579138110575720636693703111599568232408903762236151752484607664855541528110391770822633906170738193132090421736460224594244879795831426093839765143652889947327527709175907573246196323768105381294974271387430280318599429182007382629188016938778974485583266664257006186242120896823713837711971664814148682904561250712200031583082275201151969235649730483898769606396143707021795129146537350316468965658155979996765972537808088382717747520947969546116182052843527373850199057518820632952726951859689704904013747692774108504347568759717341330872333865173712243249241909292540904666200878760660942653762146389004428178302171824999571023693854239247379511634116658564780501512787429539268841671258239941479096329480228283178431021260563713351016094347448852858051124826513454050505087101052543400809669003458784924041035012203500986233631281869456486661852897373980758932860388623500065597228160995400928671730824912862424054654382217816664896475553344916043411373474046177042633092291764906049454253659333383949001721712230148606039502534209858386625048219719939290004972329091598408793734905159326439154607462367211864939324885764140070797789684984474392221615098887809400541370597437246302928478888585891705091990759248532155732299068795468948340039494588439633601954773420766998499255761263355778362371120512988373686264521570582355682837090037831741315725283693769449555156998718746508244305110021050091394740822408659372648028984980606725850070315771631490814803727473675860641863147908058637637230001522753702664795593637257774836526879799683381664503057554953113211978513056448443289628560076468834840551945848177428637136604615430273714724717220236690395614187359151763566670372466507479129599342715674228211909314863971051714989240525793024699850235986426884755538976321840959604864649811809147281674754931361296493295112160026605089900353525638276662353379054580363764544872233308937654892022833979451018304914655151661188317106136441277575057945847264400256267440601274373379679214063741702605306814362894365543457553982104699001491711347448074779790717042316881540451241659531744781418044046410509187955226563215412623492581937490636102491742199259050571173908293453393720840450460013550943667481425385535284680719663382224525677247573224467877079673355763964514112726523994895528048719017187251908953913140343095975815978936844325599053454830404327937501936864903897492118087938115231615673243751875560944285580491584000531001060417377181458554129030839683951354118074942850688928149393138463807733433197247141745056639478773635322553446264517831900596635006628727038658150947478620255105027425199986809811868975706420802641891541673244558395313626185672850071767122333197026035338371057197743985090321879941842933126780814845312556022412135683166994067219374040876569337692774168571585654872895304242599278576864187752355233221254785203364412931024266721390390194683793267792999305071574894474756291337247782370651687645898760585568256858382536937025801908058019841085624354798605779822494914822453082628379204168072657067339421055164033358550474321508555906840743991829760633903215114610652998059270155566697461424601140434168562098138185222795706295123511671258995347445626754428783403483213559050506948065334604202353359015432503584592722443037698224042488395119513726367689900347401184625169950068352983269755601558095439420487685930884944927607799306422567067649269875404707011559368236307145962645945056008092680228311715592733253777877185820666007965765413537983636859932505977592760575550863577403910033903807521511543869620003189368911883934217022979391119613944455568776282287850403077898162872119351413681403823728465345253349141025181982599053437006103719063561766380897613230443457151024274614521272021388679554793030804775968612533805364667500477866458017968088198474787121349503199050072216185648216882306388352131465243740299816854944362896523648743328780780556057221941235176038422397999010351709814684583032027257522405557154428405997022649433106057766359879959553504906014991313253471469330794563214605701915964897837488270935675151644679763861297540001875323309277672660871069608112376560501385034822853541438472642470791257797317110125370689936580750561482482804415999651507056565561589921435112534517001886313682804893480230800573156159566388999980081769468940720110562271718600091526990941495677891889164091157737931366068878106273878568973780187361116224815127112279665270056120820416329099633689110223700131341212203091140244384164981752433898719237135943796295379475477625233570934156740164158094062383009917260151106363857742366748163433698570214986833354016920396207771463351837120080413511440821809187502848158276694328898305759557815711897705151909067692048536023936620734028694265265626859320341352162478425933367556888958660278793556532129674518143310071363106656228942788554568753626573347964407763552727946459239415648583248315795488427845640949610076848901220746346761628414835335318341874790349867473543272530289444589493204507567198231204642944348781783979584938606406341448229213773590070581242168209933073640057264041032623626722682349592710661134053526486356877876574334759530448654330162258333319178667293392531913270938915101474940525771822405958261792202764527730546127928055022080759010639449852644009453801750192717318762764620387403116317330059738170659554578172961423356121689904955772532123671669752106830642159693208859762032194439313039242810126324179225310387009345691739265251867988954158686683443695853965528278469327951941910575575058285873985817032412022780687518727498558760614856305318136697229716886012338999973149814969521654247584118992527470338886493024838267988590920983594044271882608698467609232299610167854912709937786746439584904904398302741523966640441047347244062916814967138767490954188750496247252494181422986985621675428958531288071796345638010022093858524400348186375018426048295863628928640875233769545768552136766896231236232101474015021803167327035823578518510338612287921415693450669362495419172282757257806279123108524174793489812530888368014465807960541599999174088433837776443431619406083014823599829841446693405159124113237829564978956710104542603796369683129399767141784235145856269394106584983008888801163014323808349844709294302355442097043083341594946791612359944889104642297753391237686645524219860006918443869213438760781315745345919036957395087086898199422036016197746003967436218853366211722791198898816735594955511742907840324722462440221072800896312742782888506882619134031789645448019756220255147978991953344678170174276533702261771727192253360296302549662603687766609759859079377239325764677505006214095473962121294453267721307443960737524654069750044832620947953511017861228729948702487763404546256440014811034525068599395371319231404588050147061049886210949462835390814451693817526244533901670028305540415572421974277175685182519186455357367363551498637394529783772551552624738713064598604399057397498501407909067294289372738487507248768540702276100348133663864501030853820725730948185027028422482984913064152123749401912770985707273432755690320611639558207045223122109764507087708185058861285999815165754209992780802668260434321874005801670414185558780095130117088448777788949559608980125630639532691640194765883779938394797197096112993295498134532896226029780467475906897143441306443141015244778563788043253251142172444028409869369326804692533312544594237134989914655257540932472655394551769403690850645646962857299194197088719131956905860718674334823067186427757333366564338931826156445843945994971597065627562945365374631311856310674780975751948520561299388529849363785211672936465953677008546643952914748906641497713516844121386030786393025942181556809116559585194473160590642856412939437660403215259066402452182489742840890241988846603192252263547190713176675448268876588607831406379465469246629650838175472799410352473427279601556577774659836981932723940287381547935821813265465867598586667524586785691205672176880978596810736166256890141941349707345874123983553191886792559589539828741862251995586390222752559797207436330568269031622982350852043667539007864536124281631942773329587018401037365118306719536166696359218688621853259637202923378570826226600351803132437605342602506338166994956426829332228228987691142904090369582835135399234958236316438322136464445494533612967174249991220184455832002883487154596040292233122794900474492485537080653543212913198027694625736343910442570332879421816416579067245101619837415522408602378137834170339576564162965655188070097654005655352762495503075530388241207810327643954780574961622280471980368362910911400173371744414236698009191077790774562131183462234364319592450030023510571265655239024336983897797433738457820591001311494439773031392226326643972189023427727888592503163196142080612910118534133216896485766937593298594359639892914279348005205419816438003863743894994727284148395575795260410329252837256467827207462038931248353488691791865900822531763220481029456180249839918349331230031583518268490950573122685391653923190525482195297068026419709553995704893679309474739010190865423863703458338257749050713417029442260288188436672429137767347543403898017670141546748164653479407324394341336955311071846814242425488983030896701462745728767716684644631670022475963068419679032814199033265346529720589534297533981499598611192269428374047794779652055419992706043604022324188680333536789527385913312305605834321747077001186720074589658635514753882312227692432338494764301078553004419013914472171468017746647537245042155340308629901422527930609783294898837795841543923372365700939195643331979345696637232534720183964496697583088792988061163679377694518562114079715990654234681072729177084106608350284945784264773374029868517326011288841241391965394839612659871303309952734393593059133456964783592486112170185308960277313416333863476377355914364508220531776125866446500350117601044002808512356509987267310996351917562158590628317407379395919508871490714205913792082283717610423653570824120667788453739506678344052711362264156317277118008998422577642730695557903399957354327579334350215155979557532492466007839290985130409432005646760811533688221455807203127669264188504651753843772870527380379352625870918565143904906881346232226907343371330696801319703593813495074798560988878475754522510430594986192324434694134596169609918674451307685621048430169320878516228262067164098474109582853940481968817918203448068471659097964457943180316860969549244601967896191908430139130948660851410486599683148846991764682813201778341555243898492092759897260851355970183213730430194915986546203381910977893912031771478536970720571420362619080406105374859346142597827786099661038199258475478690367672153485325340894597434123135375803332880788342761585806288228896569754027077955937934805097044001356884895240327705961763417146622926035394656353753763062539624464872358049336676832215750642441510232714638809160694836683649741102100782420020359015359202059349753115644251632041800413901619177903255683140109860496426937181332059310841920870923759057850404390909264312397067272212351942643973980105837084787540463444968496680490853912595940951734937295411833444947671141350440869289026093943450319513192760910919262294047650554544948302205495977031923461205611502244121870973284495841145543109419465349575529007660519307223604778505322814555134832340661563661379590371722391008293421883963457429802255093088994514891683209897652064074852469598936099874699644368806342784403314831096245948130437584969938193021005047558971580599905498239731023668240847512754501837932997692407162266652054171425210393056986011227261477873814616470767545436049344249856408838190332240197417845408506204625736638133695022964774340000775588799727979825124024635331211109648352805976421880307809115561782726694898329169033656758651251842973559603116107359872487841373949514064350339171138674127086145056421340285309921991042211278763560953426759416187632604746763382964595401591144765768099222783778277986919741642314985993567132131698657996726563318872345843162338033262256871952961244273892252331459640127162413455885937072398180955865616882492428252552090161256077358407176141889960934703904904016044118122989229272245376189396205785596883935123933816441758843769358020318866012317928072876130094033260797421528117673434876027983144909843490677953937676010747737283629322580919660301418580297911822941558664091576462472640161837305476180864900111645218480755890378081272820474226570526066157327338440717210135096477202246425369679407331858355103755647277406904917363948399540477829453968654226115406795824148887706271504546141820234837115875095348791201669403322543794779624903487734643709615670860466597639589266766480287723246801725040122746407735555188960908291625743968978087102444310053293277939470387778324874404445933646857701773781906026264433712147275799646315526881586937904575375103954926729010253242279716024061586134416867638130213154750931221375122239465271109742991498431697575803984387452652601914492877884707687482164336843011448396494844659914657096572436988179668738198968197489475082800119337220646325362822502210043799525620870098648848533405132353519789753549327862289017349686071341350687537472792854112239669961564022608336443211054477049863969768294571228432264671519131008042411686082941666331614422198917272607126052581622870391094236507283340831319960221551905448885607966398661044708059679760177841568848650907459468202916087521177924357234026087411147685026570662620490257160817087345715797084397879725358023858626165408971186501576749069611550390376656257407637582756127261978067967512027598889401608180397747455256255787979086057708787048310781047944141890969654750179886402191611928192115052788409850092136866000830406509112460802955081094765542189602320160905722357937562047748670413173184682211423142068003075657135905799364662451774374112993820072534921668996284264005320429852473166257671757712569261261124748194119907724693044107735498813273686795123148027713778115887803923397121985408584217162651109104323780413290087404525824189601959167611948116895827634008215703760793246950399032258729626068343588919710660995264980109951202949382345776541251924599751782002537734695177777283726828970534213243814807891699181637530159065966965574132263673921227228286113452311172591336458399682519924493677170556275707766265743128304705302234275799324454246964134007434300916893827495407431011433605141352032908897609410177622794624726270495910791661082577138615676476207592595603793628561918971745407982400361220897093899297030310747753574728052654338320012858429861944087821903718981055611524440987125074996539670065448739041014489276513854342701714489904880821367513153487637875941662216130435783156821877416768055388400857514969766479765081220026440234286367888192081460831051067071183557598542759849926963327904867256574093921663781266984249914491123719190259553536405537683559577654660177310403681046616150736440696197814218791310888761883236369230036210978284160290519414012917222132020006040623356141339167531926971122662707907705542223354813833723756583255332264121211985782713072544946912698264807313094326488528868280552049528313468082801595911361544742928247923734709860698869582769162657224076726472931426067238468047443775064160204572459061200684813262149575134659519373128776950019764927533839761582722638712816996956431578912511035485569387144257017178860186517563241636287164978595401612532216405114308141214477622839317400295075730666030601363100267166473807940926576117966110204054964302309449716110419886551884623397490256544421388984339762325962842424749302674971561473052314707434438955228075566415655370636171255640445666918782231273583907293219736283429101413678673358545141698337266343363792606473638545595357923855378043261416186568722030326682304696147113666282017592060996635316491320461103397655976077614926143471383465772941346620331473407273440417762719318792071902499497973280746596456656443577718356739764684928799933923629087102569360115576439681973699993031079088237737975941155042977026204871296286623399175961516549837421098539552603453447381056169977809026137181006175054166596125736053241466257997715804775596855155467174814079447064159933261826424324575332004916204087756659313399130722505436794705552360194346319160950228978324593962297070014221304210356416266536637287228675406482979642605724485124472109957879524725044823442613047515620381635285882093270963116178370861706370965412451376035353084002219947862593569342660497642893608433983334490708012947895531173649917748977075689138264329699068636063550859285508155656898313066170906270456927120368070526276033953253913179479396691886879613182439228433849458086422044881737360087169836553020440350074360061116823490479431526364180331045400108255957815142242756329044622720678276558972040638359171596792945095856455000454724819320763085812838950311709782200400567754928433149925451539661522280482008692867653828662101893746334069573597486296354296385402114453031821007062925794758370920518712295347408233574525949642343009618496023838729240747116130743832975881254530093984758518148314534632098530574584185486012237715330152086765006591134901387518968612258531932220122234444743334575850991481744197479319006911514809532511569660499263272508438982229481389093298483250922950827614452222254368927784694554771552503118941475083607903995367542748277783306119766934388242202671953836300293877192132873671014140041185203058293204703015512449885101179550309667531642357073315233505499330474498822415869947800840030104931971178024119725605310156958062490158325835140454525358382660698024881367348622956662245793564192466044695407125461134360357792461385664350930365672911665376805764036129301640900966585958518573599806858645998657076043571036412261014111533669915223292511865395323736180031217884955768865451918894369266264319549540899624779997526255555791890011394384572492299105935155938832834411335445905005773224625135593916858850187218693271453437716410311018075610069738781060209184736635028277027859047460529100003088871267549283355849680034621239485794442349954544385535144285455994743461876395630407678043198968723269893179549846335673694707670257399269713382014673757090296671282005683280593133340702380247173046934795068038574512235408360139649225610727490541088219580921365142385843730083362636318041535970531310509253360729791675782065099381540268234571606671024954252749085853693816181930478587980255338480155228302679043166617312347865112164810724992444931763492162468706558109296748171446903192784467121187714874855577764576826168147663070138410753329028603273906044028086169566823958386376572151282891244196730202819342113494194775234553345380256938327333886648869520929842273502218220378899179807246992459184507321549565175929763425045784141737032152740757965541395281704433162446696960255328285705953766355022344437378030341239440885292879077912420137418313462030389578890447712406103662168039178588739091724444716746597630697031202473868051006780651666778326980715239220280843023227122372861192118360257373682204473127904867805458018680692008483732819753736379466587292680118526250255132246465560733260105673111756794186140488515844199509205486184300091447569130519273477589387918690535998679910007550108283802618498799721813048817101110214046185900950254627401502201524027573459365653733728800675133522309137584281972275999506246528087397060148806992343007146665977326322915281339015377212567184453714599424982655201853397429727014713869446646319029086439301432688924373067668021743977763125760226853924550083482223321872647683659550050697051126047287152153508004724246147544894911706727404430998679020862239740790381541111566208103330408287429024856528615819121389835826706661007390484011472030146879186396163550767141139790097999104861323099270702845823191785412417143852399631935686931379637049745399498825832037985004479530766364288758938833072958215938279447544323921617191773836564492257318692150590612431718244824746804141564442468032530119856630560908201687098996409633094232494161371884820073455623197427105929221906845758765981895922788778159504355943184607792519337782688678685160173229702966073406559131441885454315740796599927725620377653475685064940164753221214205798668664890484059155746903173120714887591727541481593578361800382545891227922294731621798954857492671143656012161320618033491362569161289190501856512162456881296550594964697777480871749483442151253897612421026990643367342157820926255402163454916386622229680337891857508133372153484427604489085677407588776509789874699316168821627215800017912868621540367403019368329578522714147920929359178104944202548890281895665627112885648862085911351081615416237668812396126506387246031169355515739630086780417922482271917823431806165758081827429065673922203618286714082788575688672904569942665252279931536237750523430774158292390837416544656663151148536472925756341213834431276522762291717423926094021458161911823544260883622139061785956312728356107070009272751606524005618644374331135277979830930886008978862239210783642065692868851615219145704177875190523518994578237942201442045806581864980730347200921626171237962000455355446398370023915755740620638709408725107740230832086228317970797516081676691404783652989937815041364627806327576499500018156887651010131112523497611413160078846881711912570529703685030525365417901688314138590164195271834955916833840567130967314119381198228421917002668749020150801144039361672076900216138993531022016553668893609671532161785658527623566482457115662606607457943583533795105086787305628277045759392807436372673878762535838667720141469555904879402856303258934104027892059069080282502315348357699525579317477441354921320674135550486396913997397144016029386994405004151137432487271136836601143160799198467748520561059771175755318712682463330270255421154044371199858186051615792239662890056747103990243026776554012756527851420447660754638045378734660434353557584036071666893919855095602843221499217033124225682849869748561472875071492671608497478489610203988402027784338448334193230436992965871771921609310770199070609438201656276527717970851329458772603618327385631314204560314335191122812294795248700419025310581478018672314216516915564807591445595432978472004026483719281537287586272365157716789937074647079142872711282201455434064634580833225907237399855884265112380112331757955772088920664100233321880855543387854544445821463002311933560698885541337150838692671986816845149705427353964775291988877321722564126136582134022384290689786887404049235991010343846581002445001176362069728421617658143163622573014068008571841179695715408383392110693499242085990087091190078188228659388950184905726024796290968403799188756148120571614397295459389195825913548790824346635918422070033750901636674647281551329610282208071742731567154024715394227006860255831115122802659466770096183816863484832992688283228653625617446952084951276630823206334946866204069758277785331125027789671518405100446828355003117015111145332905254344610104625912518382633778968377615614891998553241880717439870336604964304884187089602632492626141056568469589587401856580424722942856082520868990686917763007370711163561380209094800600851584783301177012705907218380045764145072747199902791193469102013851705485351478310835051749625974247183790236007593329349829468855101639325914122745561521349125082495855831656558109576045336925528129856405865817755327419892692598886017420894260694556621466678938759479483720098186218693449765388672716262091672456775069794829193046922916414424705888509170159643351030623092428892983101374512871628772490044580633157917239965251177399065966611751121650507385990185979684243702460822640539786038459170462572269713778520334886044355376177231070393310937266890935456811717648284981693305387318844425942037351594585585153686697078914406343301076912074032962303546713241908960961869546256987481279902295461132172035602255205922567911041590375166425587102750678037590779664302159858440446499059515503124854990821922134979838487542712682800425767623940040505512661942679299796943721665229403822320088469172974103736767129380729664513259455825092682106304888195561893844311859089749774360285613170435367755405613027483055295103876692643909944711985230523986014964073307814694165843460446326772807262561182722535559975924692507997805627987493312984312616167587740270141546884217505019323930228251954078649324658279767061581590045579961437437525037111749267194192885127177895140743021763149372302292701365178525540472422521614964797117844258253947226091932763420355039739614753997690666604893137477752144557373492915063808399656767925090198634033004204884905792100625960983740939526672060383276051620314570943450563482143748596257394035816172475849784770139218998672618965146541957214163578611110803291857714354547747850106603113427341694480771515099331278939825957278648704405306034041835798055861176136110995564013819488079677162702982435072905501075490554020723523669225990642723856187218269350498022776729580286464640521994874727884403474580511032762894587455710763862729521580811863057523199482201716434586272523350625411443951827714879386829150017766102676104225568252273722518048648704122483327996467417002356193790247754029344109857119796185140840312957528244065670103952807875822627139682366224629407238179561110297954008319870466559127311300862894488118159974365856337068053136508345044396681563270261253128891328306076703438729544972871084355232883890193836706140710816434852425993874672825166097880961767812809295725103317891641047354844212679621404441787505826889133445502801079947721841967116028658453168877809977221692923082415720082920938404922184353757254378408182041961602360400782219170638590959879673835776956931921746172450090330615337724945404177846056189066825281188416489060407413529692419846265159622300394485107103092336528680462941322954805122204130368265757231717885988649068366790510712054913752892987070110812998230936004245901171155070462871676145800220731610062588933589087268701381590400117694373273944560708761062918226015881709262163223835589564153367486720803690331020340238574251039763239845231448966566872072410386677937669468470416128518908968942179708460338660631085846581039551105713902638870529365190335429271173428410538168852059834539372237970884110473882632411553141413228348674004504900747592247003726691007498332196536721712113366989045238962323419095995332673629029011399194145689907854329709919725473404099785453734210733879319856396669085442895353854514625226961846575001269550647678322975664719310799099445866427636058008353529033899420753425917649058874413318472047726094333933418589175347610944634062589576954562314832143726699909383547214663728426617517745262076726832149207337090424283550067397909609546011748423269413615458772966931395754216916595091871945948235498526919536992378024275641322922513083649801985786040705542052033298180239093467719570513483084313497096452726649138878090850533316551217191187758896026138949100009132764590940049999040324148246516057939935023339900271798406974470928743006250872694010105434093833197979906360487655578431941454069133304638420730671200975252844021699883173865324489773451623842180299535572620417423753833371426359521182359260477925131072797211577206102428465564517010157801630071787975658633593070628446428331970351197544106753421751305229150885976940270338055532819530725910639776728133343684344458761170431587619414916158787088666855623725945964017132215048629903563821041166160862164929121878818900147391270642034695281706675243511124001019422480186898644514554652905326518641008103793112375476997763756196372066938020716902049301599600263508158105873052177267972830403216167482373266519425304034163463056694930688893580251506321366288822609041229025395233994038933603061707262377251871053613800372250749604216651587747408831266703797294773494089078066764780076309662263514206884544019598756097004942974434016376324650025678436910076844440442748568028603031311723647170760707498187644480209179784804916540294865828620145132253411018078436683616772021593551999878667331410300897607009294412550545952993042408602412300197783368249210218827384931302178933119988843868226808583453882297235099202865249543320520630445273945147034525190742217250762127437783359967454458816807661678165623867963691523468200504812044332651422587872050382805396435123840993653256942512738530642412854996150307719439900440233027315752937434197006374185736977489987986595703793593995345789906167578001018809420492529240497993819240823741233285449393230448828433758209844971731668497163222590957672272942339941339761153299957026895474418184359983898948892493272111223740877306232510949732191071280605865089835670968197681142413972430169887097333856813647280094394639025905236483552500068482340168798889719781053950753793863375898421471308900817705333635989764869449163474851318517389563123344695395083977861689553452810101476216424178703550901381602408548846127001092054447270341845248686976204066479933379874560381025606431166397177374847368630733358027284657879970379080669247134967969127027454730927112722225019674929566428049710763607711650801413222062258166578624025008816169305563699620958080874167741471773494333692882891945198012131000504444464701903857519200734773054683300988174941063085289910299223175926362841809069872991295618229211529916253060422750190711739085669117615704223681283604442346105837478619454805033435643447184041913877074514599634461544265004438250222140531905474573097686251840546797131824905957538369444042020137334485770161248767813397143477203791174124878784596886338670463110686283902237948801876406959619204471108164446146393364183567992878947284637955196424399663569526119849707511903643893901720168233686630654744465956377248121680739621611577661144415680119968923877388666058333430454975380183499184048167329449197555459502505001957260515305706302515798358438220006816098040146462139810203517641170823212478174705105526277621551690700450637816000323713215449652202642442814270586075798326372107615990155801217273317557518111943329201342254488356202219806533903257213002734666386060291085313716750879219309457999890601872873029282563298722190972675495762432286844563089576536678169240978427966071929509826361606285984649405939196986173816899457064119692731422179968624472535284103020492222742792846034489066076562743769225873603328381681357200302656865642653368502925217913130647798244627111793316737370049460177283921610839701244144957919881097194848323154896574372132107784884971764947749689432575202106831157040707505548524311940696731542058075294564767476832834997430504925956099934284033074006672553689148659585669886906096977336802833395703794792658878045200898473767939740272307426210483162663178743873992685564854240535048091827027280180060149086903204404875904348504474655190626873537817725300681629158917124156157849691673393430132219196017999261902672920217508544426202497126386420544988471804610916408492460844412668300842070197545157990959309081353095465926789391872053031542101365009083659286581421769621512786889677014778986797291140938435585749218003171215432570754427749397150175532391627952973727145222713759270614814770042081470737197706571431541046320902823595422368461604293377577612022774016118570756405165572348945110246541759734009568968672173318973378964053202230419682429786230264982381025985699415458667079828497866671088035253141325226666963585790010859549636357333629359382449468697928883364776332895136130996045493693327223401088952106366997651340647784136809054167900846447240711403786855688516460334493552569181937230788911375306122711037708069126456177803757860820335190607277125793138981865382532602379056833576572725187258084488131778698093499613414008823363958133698644490551098973516547652242649554938099424763510018828694729515916361726984685059985561948901640829639364531564635378012988759999985007765810585229155783993100978862630678692218842531593252190604153833778051783608191629763160602884094508224047820340245214645122496365920365722166063363777479348870582451460548520006964918296780809168829561695374995350778558840278013428840520041524678525423038954417815831078618088553331711444344666226637285181386119920435481385496604808069613770361359151540202994909996415115740170931623237048609086954938929481029730111536101931729293839737418468208935230609522927200528477624248396423580574635102548462334752640784335853385555271987455367100500158947486142300456935046776324086960088735545785856742434550658476206037097185905796004009038470575771543707321834551005083203164513169344367913841628780692609413380483150350314527168864131553843432018543357589065758438170446413157888543527944914944198176915512972924556502202462374911649762411492138756905352068043743038466923637886531824488866961211359816755520714518162305392753998636699557484205235701129048645783106441595515428890823144426316998319612979935081134443532131500374582758909364395284576628891482840644729803309468893388284715716598847775986096777585881994065115572718389611402666944438885582208771102838169616456381669047610228010854377086941396234697005080656634883777466163739984435520733879216435109643045660212388063780094917983237490569395627015472746831079587466132366696776021470490647180848157954456149728579849320107087091786420941919558767028551453410809419481695910199594833417527204695691107283143879929278192620346449926882215118105184667753185596946478602061527073718461441685155512718426081414275285355411943945987401119489719284417336898205514811373385281042773599237786118869346300341974614721062239431043603774372823771385918442846918671758879067359988335881941715380390657074272137452155649425521760587103069294132784159398591026086498614752467633483043388986358514087720154857753800806629939142681819132768933842560573875663231267329893715558698981088778322453635104813562247913888526006467722484804772926472184072685518955634853341105445087509293299225396582986271318430240003369654582291798927769208850192298425572207513535672511047980916925846808115277905810810374997465055144096575034220558140027364661113649342299160657974677018528578385609951194170341717900987386396429406977243117236534036182670608091099797638338351420327378011045473248153366811887751698721970243783770247564376088534162869416553743272297254984072142662142712392785309102798309025529318292835490685995659996315253872047278577879059357745392980277988914802683618806611437062483173672141226913357022422461219136824382394988138218314965869849480061213996280472955698090911008413865690606856972309538129813982334144035641777060743104281512659296655875492299284874931994310256508298702099257990354795730256976101932866403415301060609452478550127684330371034804271060227032078205611028619107992158034659464031793418359202215358728089320478795092388574166042238252086451339491098594033809242039931905086807949323461890112894578893307301116094443906581295412355191804820379411058341903231090027064690380233981094935695758973475847223494907588357493963224196276936367475645922805573140536944229104009916371026474559283429152809163478134454359678602131060524816303472807010406116961272817320623998761271277831678336567024313922985546722182474957785878563152182071975375643586178451366637989008776348659819808171733449762135469610060881287672184591707574835959720172262387242993274531576751075171029914874407185915423682299728086047403160739231793491523143601571683107494195068636551866933702615885953010399272751763150891221324314205637369414490517876539066325372317974339508782229830418230168324723679425864054320595571940548872267421229550855250890543236353036696706821576329355498336977482903829284314023143862601272816588395796504188266054963057724954838372791018108399010059384728441336879344865271256033998236373475560233629480970752021679585876910018785593945668722551080880755361528511258094755150396632717605752286002363750064581828996446197658813196952267291115399199901840533258121104922870068562067600742096406473183209225350312776379151841258041476234411294167856537651024626498222247499693895384302184365102052097595704404071457581806131028178555183899929639695541268171053663529436142354833251698814598343447099583586761809766799647859650428515470639593500668432765784114944590422217471748810369207868508885860609829228994455188654746760327310295836840794496782713267035933865540031590335875663876765944300291671489761281778156361491725865564628525361689031996047930736861337886273421295743382962528843581705829571992083768363971008022018603661608980263805362596725339445095914661614716486687391469547692271255326054898002032595011966424326957987895010106707059102993875126924136990769710448461900435089345936608814491555243588039469580767241455606646485239593066607912161586255376270058384755900709292986195959889225772888294154972037796980940416190759579611175308546497251643257876870543252323300107563485856605237537415259802664086765647484208186065210703836439899258341305638980564150468569735937654973251948509545913124505027557564754074875057346274792343450293809834953161228263205249748178190734747865501882652527364516141973146577990488882054016118776609708686238991906957926692524952946747364244358551804854244961695554110687899742833028577445765744876728901124928490563125346203434864181969122084730551331414450046391072343147249203394269202864520283205054921789038993586040038899647339507981516562276372180736251409611931637839104721787267076882168996245757314790095760997837628443411822168969207471986250758092467485970983496555835955518840592759441206030869467694926685844814246576888409131140277275796039545992085488279475723427252058905452177781272430978773763837909012486635406807980894593412389843935116726523877759526763388711111978143041774387899321293481576899810218643944500171696007365129234830159304838635627821730500153780412243537851526745243460177800271781494500542445427635445971305578070677723461593474410438743977571281934511099715584685020013334873577376952435837668538960005143382369236653223237512532408272494739978813636929243718564796215917796019964943160131775152181935296367097377624428244216418590500815712130396447011754184067112716161149183079381113550470366384148509965089605836765923468306393315404251521831800038122046844169692167676970758044265774080635755538588509414454304093158737531691638769178598707670616248889887796884275107114899493718240991986560652423079846000638636021484720316515311762707868273451995219926722222591167373425747483697435887427209513770806429940597402553392564452556713543083223610931338694954197263174769333148026396759522349402316377488854050446114105244045499338536823790165192504835054228345900537374056926164546614229413112253065011411651136289669130471460006368200318476442369776255671533262844792631259553400784197202728735741450226370400900508228888719197993749714924683146475464208017427201660579683063164248029724119957566435028291735453888241862442735083636114546868634691837675398120927095181435044594317670656660203840110270845022780027383107206805969805551283766820926983088601171088716631466589999229523147567422710330909214412363299284620840871188301488897027136319800161470586586791362698932483234170456682182910405392971701845807460150447818071758205526806739177263353004459365207731624584625991272847405314769553694562445687479227643930154240780586579204354628592368244809956839959720869229713462578081712162310607773860250571099949329706599126436257807185597847158337385158927909772866147757657594985063659631136141297343097299805956871266539704030640908383326820523268021145683648743543383007654271150807164356033670695787649633532472004369562718570853020333679153903217238841915615522951709539810082302758408451428554872599097077208999352497121221727592230894228816242362623834840812231818522006901694840300464166732091774629234288318838714633583227156261282689831868516153121657472023361222357958549355538602450236302907103800582803887353338995098467175912823604886768790208545316022022037587705934592425230284280711974567591118487779706081492895765774760779994423708860795247193620945150012724565854993730178216291088557877980160723929499528045267813518539777345044741436734114335582148206170979356518826316150670976525033724830339348040810055880689484886902456325074037914241203896409756355259817929679043010913064446777504382236145207099773840777162050409909718597479805840596026647597333047089619427425302222699191049569164698128346236552841093374114309011006052431587456271058040539166085525013230308718418884024708295621975081315816936943261663041144732791976673863511887637357784877649350253370551269490796341407541759935240708113400423040083640985154727377787462716189643060281835363017766911839534420915732057303431896791304465976547379207687221004789152552956741609858425363211702432611883839282523745419504131220331201263389885542040970486217212891360630267268754436641563540114955638861124606405712975359937026497506682605430701091391145720378911737362599243210582709914575509967812422695680169689213477907914916087434413973025801604718797091340016274686760965052978562162415020455290018290928754154523731352567759043644177443287256358612527120926100071073113510741960624276883685066280261039339089708065518690532019808324785194544675203609009622118848034325227849842095565965923563904570552697530964449409636336732413297520371613826613661607204887859405493949535301510900461413840185631944317059471568830849442867088194645739049470388559016366689847969906230043297700378074033626498924980804191237568334600929923295375863421497525023020932316172888749754306597354784528032563186484824892362582293366738333837767091063498758690140340517737517378827310149858051393629389947458095854679793529234146363065708390417757731154153911302974865930879765597899980618422718391288763861023444096141475074479940947168779701312083206418908255175178599114839003625663897711667704978250284316209521075182343158226011900370743541461830986375817489657180562676274360424027898471625192716619963546525148497470694077706478235064928546581883764592633498531710572759845603917095595963729579813978473931364787682167965738787309223057296392889572947920692599042042870221170445266500312681894586303027283671910335546869904159198434665947656388672669237972084502703733972294504940381817581299837241632598786180093088059018014241534665589371393412454120238524802864411265837607729697833280292470712337962128328593620507393259320255029563312025855949004772486011727759349360642448929878934585491202526282032747237834440470955556824503162829012553195751080956007139573725506358988075309905189250150346759102837888092737123341541790976820484795328798173904063883244602253503218011756153213268815044179047002907540453491993866401733863908523896460588558852960048690605024761604422185290249068470942930697446639684819206960340948991427038803784872018571221989177907172292354807112602144052693672470922739077777595477958519967250583459331673354346007151839302139727436648039985936395192067909062954193705027634074388650655353152863558815821166197686005881344089562198610481859978254324879537443795514985796504386537445723163726172795816299118329279532740120122694689515647920817256905146798844301305902189280428309163351926100418568856855782326817759989129258320264825258022493451015676425719763651113420275874930965172435629684925894911653190734718431731440640667156008587554886846534874996381159242700587402704997646454545224842743888253916280138161848430558868942105260081404734700207198571273484559165610692013970851625034243274862678898083560600861516655582574252393751407738062670919591670066292700607763845094725647145165783878124417231367468621143710587249066693496946947833203952158578856842568473763374813515400763175855857554442182380608091907613513189150219695228197844219878915908813724840338421293935230281756443567487401144728712018586792008322378841242026481869205491328787154440246879916331407312396077431416796572134927459014705631816892468186385218062703441701873350019620353147478072179710155132356946446254272736055705521962357152601078627796267449865616297683532937724362562744548942713440982305544093652067743732567308609564897139533384488444495339238871664165180526064326218919300502102230947603342411905843654032445531106755128428854878875643752647673448626522957701981114150373535973141677144433143727741323782649060215130031853741435525594918898645228189263550176660917913240106820000678350518782101102668271186034652366300437294589950337428769517863584274852351989515797588160509159318630517989051402645493251551011600767055038959646421334869686503828807859299724147147291795561166389013382406913860694046004849914938929274026481391010734779254631992710560350606154465755546864276439584719230045973939499214695596846028898963917013899198502543841673194580707206385078279055709024551132447436192614687817252902894744057799348027530283932881104936654164873681972256163948347511683008278112680842088195163835937140354084559497754906857845404432600250397370364382773463276682311524618651463354470633608991175597919798950507663964045269501899770167750097991424780500549788280748759766799636474081121351017724033510319941333008769508338011518786275445786127437639961993842308041752846320699526233084918388548436459566835078713374767553347813655304508386736717862528726997769030375774747608512574209473842423453075399310248318076352478433579485112688431854489678305059178820756102691088009990408575185976808854671875928708090030874361949012904054888975467577978106609384103323992475239997919264958677499610738081996736219562326715970469500240578226710866405257737368589958254710013067830539565776016683669804519762913366988064681427571981342273361093715552006370141829378239988424821908270330741342890171514480563714307724980730770737043362866065228333786020576416867559715339553579512123273985338990025823952093964797182883165888304065346150025120658263581650802626941768929716704927239302267894786801795967441258372189066289371535160319915034253455854094393192518875285548404269866775611668856180616143561939920069644337228724288547695334135035146223260896995530301802844403482089968007290272279342944356957971849790951361281303658596235745525352303174177371328587966004678083035667914410735276932676014303267046977082814063870843471097112858119183535939880425541820250278272600921580918614849615596155835116413250260288007510573942212799904723848274360235577468169336978055297324686593422754889652499270136815822373695124911887446825175585462410698504601730597184247257860483727620505267776010069257013831238118575315592417036534549853311303188275320424958650081478631692197829620632862114140774293203460528293021503703328253629463626727401143779063566904452225420661770361620266490278210272048240451690810864060227602390651169474492987962031898642287653744167251286107948871547634867877438815989083459916141703628514498706735727985596160226338018417670658549583499783620729175999228900762395928544995865335081880246398884795309354268877932828523494843754294702743619393922973384314193663575210102010670509329848152150650951563566634929319045551664544481707066896698541711727333128287412276729433014760827176621591846453817578543750921234872362503560380452756200164546910882103527603791035040938040105377671284888598336051898990613218012205282176384984694195041143010358634175289069232656636401447167460327973049418124382920013614650312647948929380436927939011909839286634216568363329957619059035881541704180389890493735655067089863340644960367727197826801693667443327172061108693637295416984234354103439003869522012389124303324532029972541302507324620320299847071911314634919337340980996765387106940022155144987068638625843855104038435137532741511847294691635496647033069020857443060968165042627945330208486671311709958613746501643063906570402279073114543463287103603517408958158335045913320233352872477423417958643919278502407982297337898274664668951598984704490769273602164015272896455781022600595750268414093342781718071215254727869711012959173127209422691676994667853541317726432758159854893796207044198033596732555550688573328607747008081366496437883889432800122081788428708854996003426954566862113471507186990768248157661137844144320304029695174709949906282368806203613631586651490302733472077664104244531903774585628657236119859176597789469291537609777439509796388383627505772452119190328194531096035502675769878435401704570409261461905999064965655597335104767364148996115734670202994766110814817122271035535914695523300294226593554603908215874796873698197284173673015347921177659115490968144112250884011755230421676167876690998927649456971772599664532597034139601306073913024617462404689754969272789357435696535230492984009375765087743619629210559016341752961270491534008121632593824014210258245955328368413612474404698588810027477397305788398015076293755895006153591031600305854271905140444029766547633028393853831993753248206697090654447916043886904507820553852957881816978595087246026097312328332865068428373997685800440291007981312132624675114496776079063815524253838370833863090337335909224960118838124128632176071580161719325348857851681308866277510495173320650907278084111179143282815628326463747609576305586593643856645533450427041310915895787897961870847249394121421812834235991171212836469216754578892612986413830356444010776968720855641759206360416811128042129575437429956395604667384424172184782413959986255744112009109427042280437642170137149104666408173931647768580729827463228369015275254373908281876203071139837458177109290989581697957889371129078132553492898898404746409585841039833472688434945575013909941900806976395290083949712507769273912732475452789677002621443115919228627925592049024949848257671065615753898936666809335749688111122341465242192454672588310415285478070995923005341725706108832742162429844208324910814105728107633192545845480248272079859888798644582890464096217755444090350834009007347271485734648333286805166406487243121796126026164893392606972368412088799945263886991782596904612141001579692244830665484186000917835210055227018402436327430990759858114909422829623922448001633797655972772242433362370590715370127943327809018351459596145370399941794716158819840592022758750463910590948871546569470060432651111254574347567946412683318000071026366683202792282928510975451757050514915559404737720418664140226545064306279586470230644237733001466533504839969304418163456318137624974008649029634877031229415501319144254568285397083603846194621055634833981907649174109748289511006593885697598112535971890492172951868381258500401625809301144619011176214621995991151390760731937735295819914593955732495315915140068918419200145951380249930342370455992316966347760652942172251255362547922705916275299182205770861982321038112740492768893834216452962777306581755061516002223195900045868585892787362088099416990595395978423724137446974559890897656407379309896746414968180229854050459294988997612221159539042240952121314494214771859865838865016393290309539128104230934181413664056897001009156464922615858807763318533089725088667219164374779586880276081212253071845658059638755066152415399473595651365126751388191974698806603960463328649693734286552026377801625905042329375354804252696986382502206007953739154038675445889111203204020317830232160316014751560298274013051524233863421921700445810408335437347002345598396536138469452635122375590946094285048353964173841668795731369683981974610850065533290862883003210039551591477190365223071731032690849151695688253443731111196671069215606795981537214298985408495393156286006071915219537124655088964291746442208638854173552233568675426457615099122021293898351518279363718615544073168814958363692548630524442466669696784105872488187270294672632144419738839430378031930454490561197011546924227683713721155002127912073439155921474232389298661660561772910579934880043655816614754071865579985814216987332673831627870584851135312109980432045967652199107958424764081350533205400384720305701906414458050444354376892410296162501843970899932831437803094170398633089813821800073911262951945311447855660987503900014282146755367581387120291801994825558906803095800748584273174792137220045230758493245128222595952655694164715902448432241481276128392025997565460357137953002066292422248824026445255578542543559168148087538505256711446832853262034138843250388902594449586167617714091499993605333268557136206046914630883567935508476144230336001613408748221565795880097863817281962384774143556921384646283810451943478067896695649102314620013851434509820198620683205429023771725479520103419582065603132728405305604381577991259731459191357237365066700095638274860265584847638141303814646228630478127318571591644168544508240310217061895539032717590932583341159389997305452085137435932913008540543795101297565949076173273561576701465634375123329587884225077800169727291741162498149810158428227042491216162301149640828538007289133222543079145136892311032884706123434800216062787434923966825411796124658709632065978082020891272000344192749713871505395833810807715393684811979154190939288998719447789872936242745847924996626315941167720048456828716727417884749645508213110237441477545562372555466280043267487181313511040677262695803609383140215282507781999404251453612196558885104344073899587380495078964963843591629502180881050398049478464387157987047034836597129758914674888036760659158659362361094619140139799457428812291759964358065181653787754052175154713386541645883938326972319082884624252697501411614524425543453045425722035749793427267746448891765102482089247528916792121689062213982410056870860017828746775040592035688586640997023643328311035122916269130618922065068381310311940938438744393924467610549388427958537472379148209357840449010962364619005705453740439374759177499923976997928994439370648674332290553311436411357276195466948313288062796973782997630056301525280823998728320669713333220312772500582249813355627873355466198782958947744749597300735623193665251987007914026400301705068907136343735186310458229493221126037558785354801352536665785411482428198886419724429364691975372160977364187994437828003574935472065917266081050947544455755747329967656444588119242679202988161929615314151635062481079079007441091085145622555617414460628650733579573130610478499402748046185442429715400082273561965159067510088824557322959480865238900368352041218766083815959944002406168102448045787917781216997770100249979070938143795141965195570829913015671653510017020767234226964077628042367679822909841519705156725760951148973641771301307620479774226284360622577525823459321271503900557514161050615847161329508053587643702671508709860104961410906750932329954121450948447533648719152428068193372518533028693024233042918840423237002392745894464735201806163653251343559519914210375115107451802548142115986407856499393880558683858495493029400321511182250182495006908094025288245554736483374348572854635504565738699616300756282958226595223983808005971788191955931972020571849818964904697223453379391270723790307611636807575213467428407599707815586880926963833750797094564654311387138924113142550960534204324043403474016720850423020817171232602246439808513225311746885275647697680279961829664455835268864035037778223636010285412118033424956663001892509408623933002584463590820020906378820469330826936690104573185056338316166995951643885108038603559200706504501332220588636833040507426296801488797431722512065982097835506907760922088023665953762766568349353217896053327014935319682834538119995785182536746694708853970107413228546265072674333377536071732452683419070852487221687450002176691505806479723643195333419165406482414291270476494645500325091176453871698464196308391336899611753306028178258416348530975421805412806537716601332670362593612815369639641532506465875218661627787008929005275715027911644055808890613353676537097382347565660808029159070239273602424588130858307258548565388911769176414012881861233567146476958360096632279058591980948545955898302385617979826419577531966893789614092156362741265732093543901924110332916928355697755454162444121838611630814760654514904622087091120075138867966801696441516277611954237468468725618983788117720719993935794064709903686195170219480915883640009706759262915431190972414422554865342495619243713599043880746311659031673375854897936557983672408210885977595879654625871236162073323518544802044981769415430899558758113817625774528915195060159389283330955903146690143890535375410964041955415962675905848747441030371029296129382977360960315867660303747995632008710192875613857306528530741050218005357443944404679697584623296415371750781674154522474317706144967234091206532548199110116133657591666560309964503382370551101908812819611587808460280005594423989397465400009550609019706363498651052189499229992568437195802163079591641523037040152185750246532077638389148590649252917173507559221430545751594955562900970167029295220109999793315478376439997321739783740302411133930671902775920605458715706046042454023002690600736219403129547008684599709260031398514175815895395928197393653758493024618412060712797361791350078739632267581222613319531809882446434547443863623148714053958806088103380058470023673342592606160554795302671790140173046078860561105008472089428434448961475711544957012827285053572620215613590616742755016090830448494998200380088671452804086020042795425693119564276267306917371381227253688316150596818193627664528716398547682536412438855960583461590457230036798811071343580886021940791043460440410038217396844756614313334711187058340379395735495305174059128012180048984879971765185245310348718969418023353988694125722108459252148420519768730814726451231825787558875466721456386705402115769515020305857453211326468706971339326210861016262349714220335683143465116532363888729533503403028993301456831487686018288160604678733979432575606648539325612835088126664166599686735593810931287532703696409600746599109554340629953440845637996264677335475682469679910231976068862117040356935113064857616527322778139759154839270945364845907624041172720651701042489516000176824297928878382864228699135945255901316552091068430512037862483496680352727303630867829848662673066079328947554254039563486689441190756316126590465340662912713277579666585075461866882911513905307578493363694637741637652840140882284878235736428410281553629132452837685860257247366710661510225332114218137789098767634029610731766839285724462037368126394684593642438208028792045097707086412579106112009609395310844666231253728828124185755439991653936082399737548690605621226860300074567022997808278939196912392554953661210188040501762418450922916976686043994870803566077072123385542787181412402867951660569603988155142880015252892155677643904896496368403121048428671134025318265761778179093643531145887207146508495556941004641552849028026544565539257250519508969556431145032922324363906091736054645162829190167321475936521629473112865133154365464255249666011709056186536966581047392404674251298338946642258942016779429151228011327755386711428559756793508710926133454848807043995881210564308612938798867160246842616316464356899759562386409369998747613410284964212455295259009908612498405726846612584816916356021582998413641651421190226370989191933447673243521046615045355328862414039869654723745669443039061455652487990071785908879796944192059578564554415376289741785340783456889526754841544806987857906742391500122901251159004710753108363138187647982186495276014640106002697950743568119656721648981375623221860207015525861158096690289013727119187152109069643512491490459168782338140614123152506502417327387085308963242293546032006321215279667418618912853916261193401629831555957639320393412563050141960187917819040552818782534888687401415510455747686856027226781506668296046047454548569898429161347990858382938222838313689915535891152824729468157365030014910128182360448954531847743969188662335508727414938347308663009394503540284390022925212565096174567051610928258143549089077607287283688639699598874740264434809257737750977249898507452576355328127372680120603983155867271029948890939109197899124984089410424656115733219431432824388184056469214773058472519188674599967633357022005175844613737717828515772710643677644506355913375510316962123169487386644495400593027467124745668615825740808598171280051431955579736933306427922480539578485006923549031632871354639396573861271868708781076497234314160945272583194211864687620170534350057790208950834524652940974561251821371742821056545681069475857998488080469713819422882611331671626554175868700731525765716534604986816631672260027675000120185231795555226837102061501130184315310438651752364287094772766061649338066776450486060447200581339368597204857224837485689355950385605721360689440800712336146233551363242148011302683026020399495357000065695150057335154242651479392162596822783731641084713592852671710974407004510525110388219107982292341876714171563158240124017417148585873170096377780480681325109747414150632995669105079709819186299087801011789528025638919917648711936759939200957968344363749753539927067205202597007545740589305440682472006451685749589351052902027516467515068610906510092529657126651154210762119062042401270143025684098323265155425144874870335546631205784160441061599538336971914845089672614151850085204732896166830751564131255422497455795439763327202263237405233904490379980984090189621562952135553304075142609886243395699560337572607930589942409135183648055790016180236555607002977244653169489911394953952525848393572079145298365238932586852485455359667643497246302413043889838696594705270974317600604912935125087162492117347926791477105253581206492160835482701568674697746116077232116480407041991151862888551966005408476022382442187802852843383634622577933091644026207462706408508747152660703063448676691738575539255131462011231093680564206108607820213982012654301205015791391091913778099314848123460310757556412460083830368895567722853435728550201166800866928558043153260131957769663624180652320698906221805277039833325401658521677394211318532690484893402201599694981617310280515845897424822509217913380721082399832034891055649108626650300838549678670204752125272145867841648141966326727860642193349784059685112474755225155142766988715261290942353562941462309930201691196173111078676592079311820906400573518921609305753460190175991829588085746835267838770013412688919184404490830871309254032859678019067464337344969155419324136558920048242512492819227622981483858135703649762348716024023433677148622695896554421725559681114858417223305843082511838008906645350152655901881214597132836704295999292606990646268129840949650294475122968348830432910743429853822034127171403228296878514050402048794623320712150726414527291119985236829469099096122706975850766537798826921753042340534096639674171769678474086809384543344263569695751764252342285309909455077954338481114118588139602443735155583099051264846694991359369085463290582649508177011748059827848756686583617016409701658455492996523746590668799566744080761066158700180390175861341307685750086127643314196949526315736927672065404484264189313083331910236903113470062131458306681493736704492544966933114295325665320874283094308916275734836558782373322220890949006433036530721656044309751425364383974966725029067691620274638490987013063750966424132434145854823711213630751369844647324154653131438274257109863105683740477743712890144357539174396713214682781970712915591573144700769063323168780248077392812701507616568938301029603273331009967430336326111558360461734991748368446293013690017348629685640733041098165197652654731366346871463363380493566835787908643331192759749936535240538224271970370127618958401916964138756974047641861782231786316634288637504708914622460639119589239357387380443418402619571112969377866533834980287933711713597069918567796946944066975199682206830041221643468556952248617392588256354387375737858934083055182491509886537279354872504542111469713198980796541869335635663648280779506565279765975564713475593901827813379015594365317406833423454502874196927525595373439198386277056471237217480359842979548438726685510098247089371893448832422520784845763156378146649840840958658661331221592716255966274719602211974394933134149923813762237744207052009731186809706099374976554580714816223519224787695764416297804576720633498899902571483412836442805241573118562546783966637344038234492103220607257982256282068508852519643157794723527283414600585219741574646094291219858112717873250452604135107019334008919794756679438652082336471177046983368786878779668601048993101849439533136522904003310874902827650733854407764737791818512530051411116950815149825978765620364752149741933701064870397823716376244780359470675024929709117606453236020457863974202691437323501920384292632993509832204980970813805700214005571145322516162913769326102673795850562741843004879865927483463276429369797183540127735354152056841998040137762952876820695704923731274028262943078420001828832947290133530014083945982078680334686691543506648687731135147637626805476309367563609562939078058059523984660187731241663071077937202466950600906332800103131390159642146958742025768719633684667597077855229569013491410946776590343726057588331527358314473741230691931975168166067545542557610923946474437529862191627047293357565605421953166444367076763268543572514997255724201360109243638488098372894548812087564396488374386913541200528497537222365154616474207896380472768088527118431565669171435009033464923582303390390180971790796897593741574086954471262617632440584853857390129800924182063614556289406408450950607134656734640265197701606665646877103258722606456516193445947669517243775100572285309289724872135048303755914538012754619843049778208358823309967984717976494652355971506489335514210621335229896130894336162719324317179400592094076526858509150621093175832186539689593877462594058871775446222770246839678989889122035794003053777162853866130196868846811963046592362090590308284123870304436980994696150663086266744216922386625488394209399553251671744671850603919123567316854746965527995145289344287559335771367183048552160490237553626595982977023650975644630285287611519949693590475186786030678135185979421284664751864243075493618976697821861173186780935740749246084087566547097831256044336988529554845770251091661744794718506382390254805376891927173181691579624558788101376778047496988573344036191728094808629515471789838231142340016071050273927299748114373272752371318889858572475394713705449606304871722920016780983092535347435368622803599596727722248211814924887066006435113029453669181718268053331100505868886005030545593156683629791500739026303250899906892730405236232764384678566155488398227338758387390597616337710526259613021394831289666465083609852378638728528391896657319162350940291883890000766507015244324622790253490266154640893365774933674189904843246711310437200543804646045177768043412053062084709322567171196995786958612214566279444468067491058953674693186947936375269343205790318438392251984625595678065928327947382973459298506658623970905220895733156759567195671313074494447001053938230371228996268989704268712985230212629986330848520525920056196816703468110900637126403527437563666086271021165976579653316866970470868718587211306740363465473543300652332717420485968461453021651118903454714650025372832372382973508390106133942646572500095735411081079739206187340094590112805225326097613334665023214021089348344823740612607483787933701980849239939588723441249245286272562243250941692676056047683411705522913420748537326215839844351487960413582081698211738815534230189520927093305211805743046351332664957978379284423343212329163477431581160818987545120070460735863165658102315755484461622307903805226980986664366973047540332119158505395443265360513859955188968313838476519660579375576311187070923306879157654033350339056140605463604978963192630061649830607255912199684540159969228812051428221469681679849190488333447796740192149776210063194995551741811630340649209077666580433262352158601175738641970731840030529385717354037295974079487195271382192461096644628925881229991057692242012524974581150903835924994005217161798148897674998819886859206620422502134267252629832364409374513155705422296143592624444153175961179183839282451489193195342295721091124455754270297803767526066903594555105554202014501085118529065153332526267442395677039953987737240917626782596094433727956274475319652069230109586327128525908079770944286344972817712280356923930380203696850297043039757666238506140869719499592200606856920950792344467212076541731926860192954014859437538267110057619766647658000558134423377638158610773523002336942063534057164967734027463604053241279770749266112084171551542342853865553548382070148818071012242840613153488678363323417946366892168577537701881599449611656015836873030768445636606824143064602491897280141849481341139819155748157888651636038190433314571914866685439560830809457285013396969308709658685053889654741337210890632760372808119586291483638750820799038972858311656530206820520702401879697601096803304747351318331492715324307095631384197983343140600347814640153140365983729437836970405938834450197477135892901266992650777937374943102646846802881870061457751769858677640192026300624327147331151535413650836374177492418690564240690406150354358222386181369283839570827463419703456808473216029240170655407895965793845435612976518726065638706181994373761430507213108550619715953516519659962757339362578786431068355729756190422768542975408277969435739447485840747959647960954535119326117855136857877665434759782489412874671957751817724555980457612272871153425049933318475545840174257792736545433675747709819536368022375898230610545512599962395563791663198665515046988439866886984237680959955518168113362982982088424462875159779998271504636760613265443518544388989467224782719192128762852429831699840216357477350736789753482001629499337243048953416144286917493283751125239578785171767659577249214125606476819127167547408919728785551584438168806086060449000967603038432596804780747472595075303398418160146709242979993684764123868234918156481959058626177746914909767917273772273842629020710374584420346935642209634025396504064767807905848778311709447560442918547387873891285531621485570543787799275194644954199349254328302836841312978923694788524132563784192452910422535356942039370527406060326048442557308445829093221994545010466652469628033277374181002460615155655558242969077865074935519834445431576557203470783351642456681990038056780452783065901732918985796354978555756448444213577341379835882304271220352243507400469637558046634801072581286752702739255254567888867221683932912758841031016270521096979331655325881901760814072208980142348297277048808316639933649172872839286902313417136023776822571494884786497574041845735700115718143195642437751488196079740993188843529795278926481100006764395857489882156442587150229394692604543761287650363278896203339357039056238026072940271090161987270534534048971581145096634121110879445751506445228960811023798266193770664011932038735737921926004210105590913312320181730846894520971849983953090679413955757976356548427186263474891710931835935606868693414095738090092400023178990868966533481565466792403785159476895632380998691076050142641909249767132159113263903978734508230350333816083780319614370783381121751301283509171823292873236920676558883446789362510159327853199813715076851509987044522508433061868170586778245496977814690786971738321337691364725366583141914849424746314512043781046716649252208244852540944496591552323981189632490894095406879201988395667462995348038119172563265173754671524363718976143572001712323216222836302861742160780441572448080897231597084640872718835192426282444647120168985897612846731167104093827928457292871296107046689817852617984932419478108798823061495625235873393501046782755589822865350805667232084171335356390889446914057802945567827652873919762585772272440913281878432128259716177894808153131513341893085961848129514545911149906428447828038218237625511822587773684012791068666117850735278571401181047284165988910031015886101625008837650038289722599305511420499759812064639753810911928743183532795442044228528077019297813331755200311471245997875417924063373382368054196136171824029206834739734953806470466092799903456066824615337271564891809201826136157506698092226107402991064575107413379732046772332936005840801084247307412382606710566769595584981188037805794669366992446543469005513065078206962894684066885779722928775761898642400918692602826555899285089504653927203746086455308943018283677580347637313001903435467124608869696081098409332678101470967285713407693422588155562871853932329820809910723699104079690134115099470181901343947894667688487909560432987092429605849942831101215105965414923765380762268694343236744874081265789886142858257465541012667678666818277304342569920137201201665635580175670899719945024439259849893904077967125884972927905815311802904639609392440139785221355568910332730912056057023657451016311563840292587730692833377601218241171741488191957922864031303216247092611711489878502234175427852943647098415530068331657959671954117490127729556047605177026884647892729256105601795697018444628295786517346949314658105224514334141407014469226578973089389823295870874186977682888807288201056925061025128271069041252923212622764015658307096201135665069733477131426376790227849313063238122429694129969125540300060483275356427767073262308031587944437949183053228930994015631652435344738357240060178099641874147110516171151922748544089192386835728502660471945822804020352722489794653098311108421286464469042800373896518497044230768602840561810199908736099206019986359184878342177256781511532122238912278466706443222326575121753674352977770700076675565987549777846854501526976145694523522707854254987983312614335202937305659899427425587620791639842209471052546482172149877430858213787505469117639056814637325654320520906905865709599491683591907046182472966810678433976652772460218221545577792659778204269121795331358800009043007112885044384742007716930733259499754696953272348979232947788205333676175876530265218197509202217188442498170912827768295508536583814317853667157352587242004708369412667235706479534388120691316262854353351600130038182890078842778032874120023758585208395627536352635116424986746844955735166798533217790707411500372538256601645873601024478693162685501623358214835887059872586442955513260633116205434062293568070051359850360034099385940742711098283010878294710969659731771274937432168836943280944935880438667406356831497346053888457305632494186380791832366843561293625169255850362710772002321955335791009637155165854625087428669289587837990251287235807135894028959298408652694734597641058922757460733232473772732062630867137405556465785967454420142316007756310345723939857276368749773494210694985824186125569147027130186037222557268053942930990054773012805486289659971075352328319401955641162281251657229692304100200128539341246231345430727402492025910537336887870976872917608820824018364552456839122155674338128942264013963283505032536067532332525655864723412970379851360458890685853368934065686055475861367043404328958881872106304802949296223803793695788891704097259903786718317067581072312415690238391041844970257590939474575555751999766067698229560118842209561150824869341069993282311963487356565767851684576182963222409131787469013952918987594244303568463869665735395702173843934891230308707419315244460575024729805418737842486259384107876679624245624743076239884846530404773056709241840772948251038535095217075453985758256332949507242409554968245494231953815212345207143227028027974450229348845615180016892707078887220749775241135971130182871241858783788480121358349867584343219533641079868718972591151808833918664208142667112012349405806054772740921676069696264044452854035698861066076297506083711765033219913281764119876249468821783570392494175761996535241331042967045006626030775931380333957875863873719830930621917938148152289982562733658966799915107739958221099349981261363352948202948290373680552354858245848450015671829099806387867559240617547059042326859721336191734541076197310794468032791477305690066122316462682178310256388645763751891647343970418104442392388195455946584823986831894474584289014712974596871098424873437255844699337005474304959560919032974803516238455329949444223402058104724297912195888654932507959183754450972947163308659000781702628462341701150498197702544386230801792313703835304228765308621145038642975517660516776067802474115210166020397906005118595207145663623359982184828087117841234944273145407752907145260474901900538967544588165483093521350717319335195053323949667955108325726029356685518644210660201397038339883502838462552925657516546320426264965752934485955521992987759741318761052456068948665187979396597533531507471260112920838403934689046005378980555624792378340325419027361926466676765838290992150756534757911535736513148665831190632848558974553982932009010847779434227658233848764745518121349390778813009703274225829895031527969799441236300077309544739617954278546811122539440712777594515138029691928519850685373976899535020753182220230685320858708033953757680596171971069186829389629334020732763154840178459906189801997594897290302123460419119598455074192585830164533782813851355480123577419130970616256132278249557900519533334079775494585913686906901278162526817695089237318816828117521988535262702971702318681524846201629139753083141565851640415255212965260237661473683021631373214971344377597936653641362104130888432447965156635009142762719634399378809080486688619978670482296460393994884616644817376077046361644438793828192691693257704884070211651036484403304672725172516016964092192076467763231475286596149731082100461075189998518508217234520123742104753151297117008988626227978825905755404270209083719303539508759039052396313733235792600351694907635026953773407744695635987187869409488505768669391273572275609524052097857382351961180601435733839258716471545782482392048396088517739924972163570682892238438540993566227190493368905983966036527346369145266924083618192938076808471226452994434156845655321181942467328278213162792618657152770237679821852104405839498592828625162537416204777895626003682628286871320601969005871035184611885844154158548153632678767807373993572145869512194356022491596580385241515552817654955301921120980468624708326503263419469419789209850407082684632280586586433551374244602014787177080101529691674540760353916134021163254290289073569022055296174393781548607843321295245451189201713970750562510538023256463974083302233326115650719249942766228035808645411656210821234735499810336949924844940100341170844028460253736421247594223868151065705115293427159690338246496290085246986725293141674003882408544001285516360410149158757577496317544935444539848783297074067409906017451313104784505705204872431775062623713452539472626704972438431662774004433159260732174195813796104116987384720039012376509222043907622746125878827152143122283448251566306786029683131559891407753770978831451540668068107155293448417113508470095047423126665801053174966880763617916656767934733478842949533057539480172795034112515105744056380957490276439445652811670319887360489433333302326640445735105774152335585383047866855203697178374017424826195500484155511688386901383853919310864400635078416122292360020364046911375688990149831185053736011236279786652712678746868217505423033033639120388261991230649434992053660959615813159080100879321656659478517754779043844123675763276289105554525693892569633451075135112584202436192280972137699753377682758789385383402184256440624833384048676007733166919311936395790093670361381079795293455469997468373154595758523790921659700519492684867452468158201951507531812512412524252785344221566916371187146280918723932713242909678327465013129408436691487306306710141016442656549512805738775880341999923753409413488264015089123691054006868687352399562878939781331342713054462356119212951064998843020376470325203471411804870818706541235819802209780284431426908676107481500641060461398702506442798982705108974029138089543418823684228529783936384163884189361629402547468904297189738377004214249173042771618331300079295503748268852412393277189675578123278162630194542716251885245658988087846861165120792599975812749389016269167088512944627402500405527084356891609516147967121253105151599318471756038297437810529500890074060833781268155825013376587860783560248473566137398900081770652362464437642233730604121528261096716601595995628330249379181235486401406167923802955274313936864686627346045589101372446503203743439304065666777207009387221543677021211383469946755370183411278295776584471953882839520417716234133696001528187709783284866460539473396773320045413836335710463001556034672288304808639297372754610453047383804524548792875058138819728925616259263584183664848663626681877232721154816350909581229941867202069531539145007770064980026460595318881477949273948279103647076562832627219785697266373547014036151808536991749216816070652434441994253718671610227286325423152806286685463475949783131233725959323737732186259790544118406590284089431580166087006000269693686260908483303740629182453633408387060801445907495582189360562826696310560020230976084297487566593256770462954996062631072951392951329001481791144480773473096032162701787849886363006226538103408639291821424843203943878220258575328332436548057566637182192288737393109823196233485868776460426464444699268995903446894636895482579423922156803710770597063635805585334565472099661673688734675922209291675867436908006416910713831418945285795744747948913307703911696025422898715713415664249002046392836236547348367610544897817945656710274123059136764700637462641803484589650634597294203180898346316174126245180370325856609655121658497154061785914674569834587459525236319021247498367531574268600057728271933767195638430637960720505165463532961823653495257711592883085452438196685308045918037694725555577191523302883401611369278150907491908900447161653396298306005838061242874023804548332998817680124472376525376944424467890348593478169573147460474346499437765902099932049907062708084934279570728048335708407871539920242003684459991733378943532850757780021018251668366200703706461629395625294463363974352108989265213454334627053346546282824192166133401670733453842082015095687574607514450242050339700359573824204314102096265278986109346675323897756283638971738382077063982586312666344689031349288052495745873429630676832121590644135462985637998559985016849252355530231416251453910923801402002089415668763955918417922084151589748330684009531424766228141928055313560925564440759300829703161362834525585705442995144409528631299159107018007924025082695582686635503021951116702947605547029216203209492717908833689765587026314812925336263881580096702309273921734760592492205917902712391145154258086247914098658458450415663431377946091348366881010010721172746124818181224697384757032156035732379224293912277256892316870677024623101478018348378320312551670096602554087212470059258551961898530698895614434811364923897164268565676723698775307794433423594509143187323072723095590526401505623807970630705703642122656463786555493578762152187660187049448933356126858522545150127810920100027904795511880774402173470203429440611895723413249059138369619123707342939052122988779246070317420848027787342470253184007614954102958235654285999840506406669682687815161622215553492208279558645785069923781528279984790002141521677068559222285548048635922589853233521093918664425505353111051581833185031265274371692422027038538822422305106205569626147688379871468493475609700542377542874564666469608039773500199827220238866957254844751068262355683645616295227181478770872579803211612999708677257693027828854601337811121162200515255888383287333142789628696274748601185032239340947682408828451202234125166781138174977066398992534560544836177882890919705315435085852456605961975440372497274827937728012272865651812061495738418977035495724133027669557500350698605664475044000692600170883628209111493020036550260545228989309858989025222239456106321468797971157124087237278213104022185247099980670294962908644293561681509953974846051609109103151748639815691137966801913683094100292333986395831413548771189845713887002011867419674278115240623930192878650339834978461896031717648690191731372356044184934979755157539963150011969312500976607524155354841294040552451293047853962366960720803898756521277078158618232144974682200848550374121847616574505030900666216876656836378178643100382182077385522151719631328957171435593311358218257857768962910944454395299928293795234068888812818452311372944071886280610919670416986222968994307483857424059791319642285048012226123184914587921508495743154150219233463176331092468509057870733002965966107982270342613813728356520152475194899406700318684348388217474089421856689167770195459264551366656644118347349718934025263089720316976967063011866206807662629747172628389516428761285855872080964793028904775334146099361344716570417954929265969404603442922154209316919761571360291680797828798742320022130897885919040088152721730819159758490469354341660035898988763833732396054150435852724647216651801766885557061315927911004373857852356282343511358187624692894107290368368804911152097112824750778281661183495606568218515024616741560180061720756590163784873097419194618509057888416670313737516418936602398648460692384462783605667508331403833357435054837423964173760596850834979579681613542557826540576994332664830096614967688271305479193845363998425550425019637673214231079721684333118357055195531325374388256718026036699642586341663975341515614693021659969912915304089347421592472089134497028263011595554891877918549452103638438473838585716048361194597812839819927924995219820177895604711964252208269101111021793379918971715252962948175915526656122838166473493046884776794596017583501694435993155847427839447550955542168041216042787357013755181959729246763476088105527663246193186864060001530053766666434126518600646126335228319088928536111448012583089494005451822760286215958515453703197806332770496316718648205820744285939353453713092111698132125820411268548960701437133246825413553822708203523606577476866079774028805644052546530819222726378305332100111352315177304723055114057073542072652030246279513812190515958948045013405119602060654030335468872520311245694436605936048584610167902668633243683387316476527704807033740906559630349555570098709869165424414732146145111325308294233471568530490903280233314115050342578109118597210123546839783631127157938579050628261577142897073963812272571205664808904766599861945650478328813635853111441866739248029782093067974611336767383194657865086687574368382856780718033752107411025388389721009495685968663111939724383863948161708550122319778327294692939182138878642096460058577247821253949194807337481347097995046650058888922508332399317617001727407334801183396225992903387090852229460289061498370605641901044463480115996143430376611882389022700067148993656744505707054498056632428152056548918022427382415225600318392247339218306327652793360732041466868728084266436401424666434127006046468428704846892769997501026522683724522929590298821874023461059216793491742894168445194929544433300952607230694015971590830545880542601713045165579691950833578016530366701551924289366774141569866861405561000521780329493308924457436759893637418057352703774830741079708292148573837096568620886017624384995225779740751734364148215349072877838722035253140171832663290012721858637459287163672714823039432585139871876979636946308196366286224099399187629932444688509881129225702269243481194530650642207654533802168499758087533717585803630127886158516922368245360709331211091434475844952453572676798552539380847211661342129621528155334329336094725007731933778606014156587738865717762334345088551579847856785948883959405422433490338987089511251608941396829308080621517242495250107679316512773335453324316219624899915340220088202694337674425328396229776399152116736801649832128273333513167171584333826066069015360706782977841578498199992228883145127772904454298180452370278945358167016607609036268875201547649268115914828163452446946582995092220627357358204166826743721486986481938553485490881054218253414145816422901390921617534667400934980104708773290588743368294471459383724055337811146502855912080956634347508038199105077656637365588121638435747507477880082821154109519455575381659504471140595626057470706764419507976491138938064731682691445715131672955602794631207265964111367142930765571151522875429847373668875433332158912648503428272163936814837363281524483461353350316409101969991703106302741909570693761014036526564610766850388123485124944121143877186620348287364193303221790850382737426525693009701644155523455193681654134913260938607912702307109042448734450748343934141460725415354595083280755333795796198663633229675242527508571904163379920295369670721249490118867177210823749420380359452945246883146928915976079286622815540483747512505421368315906629632980116472068639589975634752112522915760572469869966153884248278016986616332077499904914190606776013787327666532555517369855643388256677342729499715833423575978208081260813203353270091730128825275242557201268886095778726256463280766089101167411185016397710958741579598434885463730379072832227170263080778175041272460190334461437177712255549809044519172388042704965241910610815578965844288516884275174966119325712789515676853326663270074357504807381925227068412957497345026568574783403304568925395010113868493434444020972801957317101445700753301443698543363999252535379762799182524691456609513935169409709058426939098927086993318738481805030486558333454304235673762678745279644399981191757231855103164541656111330810681079519162192441854928186081730869132175882301329113494137292743120268549718022179351266450361265400648605885250053604563073933941021936889004369805344287876165603627825905154189270904627705542574064682966279415996357395721227554323741206441795091272194870381559907093044858696875234911576850248059879289490753101342926182969934639442217465786640855689653096104893892331807558456851030679605016973638876360289765314955672298413068041344923258225475022280629179710402527696363094711698880061705488496732695607590803726865360223287348110811011313951741327060258946874053542277524803516293575257188861273722273951378465827805745878939251638500414551129199338594393448122865609121459308865054350620228463679199505522933128143606761574834936218171646610077718664882859262515480503108296731866721785530788388757358211250232040104719960755197850080096301014943855202979358646543032798248845227267385675384457784093750197902204752452185984486103750562279817957444372597968561969980405466305565767553281456522504400101495116763424295274281076803675276088101049758423775270448449739798388060687263815490695331678354102003996742563471095270987500943098271652811013475423366146948464307737495394268159101405968259058232821809686023361270821510153772121518859567247056607451033611134358245285850840944196187924443073265086534409993979274340985184829943714542272216649503226361663488651887968413867783508769723602185547163728393611797398046956528234462141424545492269929979281911503779876380996759039178658932092748232349450758638502640655383150016236427934642199255861384091400364411059024101030757442462738336936121252552655757313777727373185437328016822840880569768161452986806744866101648617677805729293345228502711526611872825996687813785376945584616908253610793312632087440973236950775782730645995346103271954932257175295652500811197841222964410567265998673303231246749496566762579824951958955718256022557833250012048337988140670162638817059459982469552203038133272616823587322158810699718803961046623612017475796707170079204184199712813587282386354124902776535136259403796659524650520912082016990842061602289928042384295042490109401839594163138966879829231452950309036692905395459006585631467039988883844497460672391890067457637907898269182524012913779822354695182182229718925715245025848332440656260466013305915786174866629490854020232227757001744085993531260139822738164178614763003348325107928025632031714520729018276326181163260402688682258928094464887876104606183919532295433864793293918691947347113401066921996234190173852461054210481411925034147105125115338106284609080016839663495909160462218315787547499810720721370427526031409244555769803509676349277936182122090883106528701233802919881766830294104986520887362325834059007728032744163854432330550955820284255971296400687282976042106186314586257350634670543166621138910487642825970032965163095322632621331265035928818626672690745477628860623644343046325682862862893996869985799497492048662837498414964771446454554585785932844172047973211585177978219717967895642592623103739853013000276776490398265508317687136725425344367365693973044750832082983338596281185096010921042825631166288630095369911043632059596762646522000713100498874981317103973112899506622390158823041330386625235539418223416347958573412070835233812684179389856017517939211645154372093342071580423648046665166709968055823325447528387747499655295931748168453663888353404629637266728528092720650233283634274733287962899488429691699902827541589469456734642053544937373120418412935855717619099170474705697732396101865330624279624747610268772583579103141229253643007093266789119148363060336901767539084863754215021196759695456812760495152154732499214312289172053578763166789690201234294304213040839451097430633245724046727506420977051103584326570375949599022951329653894734544973791209272783798190767514240317633924942445040221574784522164551241837571133596530650627936896816376286242582949264993030372049829098504401583938169053422660011550083702268370842276767025113801637458492186418145267023856543091506243567321532916825890689721653392349491104462232212904712083621561149991221647932424294365605769443946127624874333948260679835847739088572860235068320752176680446863261750580618813649940420294890368648356088865277421376199922828981318661690787867613583541970110297274654330735036096037155228026979473902487378178653026888405208483481899954070637476886409639445855772770121576008350517216899179340677461105172630159836557068717825663329768875699156242127019460261159171953643742112008167854393174594958995738534178484316006331022339968932280145577980655582393311532241943580942587784143523557699627814376961290421791057568592830822025078507721097291746389376503242197386009281563584529836569969479164446146000882930942455490602419720100227364886335672258054242253502220733409690251492936454528352308549535501899321620704114679065466913217568836707770412356105963709361012193278076278471020990223031139610080741212027795356786576014390023796766476017038133489252265119444190443335245733080164902836761202688422597796770215250286477838638021644723055680252667642220058348790932804123410493948956552371029109537365306887790616795547390210988075659627822964870401996546496948102151938730265537499313857429217390618472578986733542357764172471060561930203636192061106027600179705552159495603323830604994247157651554690961540843184402572660241450785367885171550770405291952858175977295240647634844105282903279081607327057497421284296512693864700115789732849350325390770631030099459471848484807033451515431116065683614110915993344071952331662610046264440634617988149547194487420052519198605135126805075930046804373767016853757114351268779039666698136424789243343700646404244764999171095369645210475224787736191895708714527537636259701121173809433073913909700957045413540421032499478802151392592775279721690862884295198060400238263838771905179154283012482706027715944934659215041277185159561557350807319776342172640183217518009408224653842871226447179440124691342692514079225523055896873892122032524052915303040575818740201210347134902350665952715733938301423918150555190032738018852562601628787655115631339681155023970340318213595719051876914633733760518615410867461965875251639578636559912074306880925021798015299872803145407819595115406081077842798289185126638715123134694125376516388670546316490882246790926352106757792831641184595674733219233039646639884035753728744292457892283405405833891115670414775667816742517936666490609157274589818490303949649423895691866211454076550992598009625936667672095012298838273029978302879562053874115162632946378544884202906170642898873814815113244743087281204962068889819549568060968648367997966339401241956410326760291013519526304065552166226515231703356497622745456732481735215048835491011768726857569701749769359020645802649359534941963316528608252137732122160001904537191971715035044306905978118602597346135971427196565608797187160811638713728785895644789869784761740165887829406115657651009964547281555243054531302858620818710773864399784996428798786338925039486302604590201933200424517788712466204481264211556859171536293654563034820243655732942299032322101625670231611629013941246713051328402165372120795411528974851464476572513722285743293392239698355184354267705129053377197370997225894001693485797387933040030699988636663892359825246619574406109026886700472021910347858018370601036727383170913456694842489160321770135853112283226694142754840338289798917090581391111757575564671153827484874002164412482239751641557375668717448018113818946124664922761009451768582796792323418700082772342692880051529855220396082829320010614389036191731534028055806441276018266261036314896857310012621893643437443781285096463208981257136538911532347028167826543651400230312335268005056527149021485135259948798031292696187354230449725246894398653107541810371782861570915988681815303795877492781301635012313602965328559511210364471621631753501836953054671497416897846119443298132016644054543859648616099616213460244395888048722218705250968813568085224044407871120617481986746786997688632286694521719868269014347960621950707096036051900726641276806188531769616429460044440502177858900177762534509889278989948784195841772782354679487681026305012961193350223489754191759931154374914039949849548051862416668789456105470483066617449396376830442213865532351515962234503307776964388025904562714037864032048456100304876698172068767509566865899105180168175433620039194454870474828352010438422706786154456967103190814495285053845768624350854317721306136241990806423454665148333751473554511288899488374633643677133740988091847401642092539122957555543885304736996865664120844611017779566170254612239178455972134669762956099799340547240534939078435797617961868217855143467906499604411062189231028604109729171211876147542757426680924595921555991422716464967887093426496300756781676863932656925084887010594553090337142311629570064540231435164644082377216124079707032867705762088160565629709020651659165605166923179143617323118228252393307488001025476217049076296022637171775107262577794313498800611283095602560771953721689003205167577005257300066613219511802303646512347047514732398975956954005643646588019635690135409246598101537965290969409652430861118505510105123254909623018316343329964849121895289346445766897035911890920146203345155708124095048588375449331312997334748919158851203477570177985921254950283063162510797538369595327517457439514994138269627120960000807102265231725502874753554932652769906781271802260762748099624700468324228963496309556940694571820766453632418097062502928982576174125563300326073359099087514237953591415700535083999629873188064501637773297967109504349438534405818278432644316992131816681722631591181399790259263179944177867754542948506512177911866936130795436686360227923500725892512611682179257927739475366019147453865679623547671266967313888042038137837182852211258405071639637111904114547673004211660579534445616084787376279662673331268282281030228945187058956711441941169640572832706408136449886665470962608939818763180671854239415905126152829850699524099095563823433820397991440425117234768049635113851409175820561849783310663556925255051993743825128836423458144191907794238194186426770594311577612163322439267892323534382582215789389788194304429555354722852102809139000148578245474984522193475950078497944227875404885714802271474569133693153083603479962372699812639861830345830355428137563134384995835640099261233446940703968098239416940142452362968717078234053559180789106296671912029856643761199048078317982717119526861516216317351048361190527420302530882883901397252964771738730935614638623661154325986170844576411524736639235174213594352428818914295465035020574093137706836208543337580002767289810059416121807605658424071865549511104944218737725139530377747404070519962698426607625998188650744292029687503769064047575920150535665561039499245266504086655486865309793627424235315900152957615207850114919417609592236408276141633123699996381071690677765785236379486343315858440626470830900212207577252154602386338660456484809497259849385210569978714338665000439798787153220940772283792335159468866147698615140123786263718676998608353972099172449196848855212489637006789695222566455818241155877384592004415539195540481399317544899161123269694861962822517931553277127879365519472580196474005662435797196231820785016275805575007977501017620940297777392290871627318905935202621383742306393375843886373276111234211204244622681102858723914077569907365396383771508085690677359127255030259866688412382940540502255438241094914820232579412487296007290666312413740694447645756165419210862066051447183654785975950754882405890316877731784204180034387363753583926907232870967241844773188559186284448693788379654853295178702565924067212352197531937161319280716355031111337387560281552365347296522330342662057631906477620986287337533357172064049271975034237814119943681660217528782953084992296379764251115050349841051417553777911488815993502487157450558320874861086238734491671983975372035823392102263622381419549923949624275857018031887478971356702353793061328734341604208978817503570340210555029829750021337135270050209799268518527890676194071867510924405086719050835945187554231559584470615457419749959376193305440178152579151707020652907723432242459449306974266241173533115858013628354798543230096259271411036576650062971930314313815084279799617508731662253332549306381394567839099933276489681622790539614998565036134177113344424349163318122069369684115099672803182399225313406885642523832690652389791664956176090499406396043056818828842120255089691885629509234858047677062389801738512362206037951419090708265016724179209437417431817214578088094040469372116154130780246288116215742319034166146570974823171292928332044360962400798895161312438334344964126597459766547814307250188004985730730986657636498288056511030883614080804723527324412727085825009484752499821112865812551563663710875362199872005271891814589647153798826883135846642126017368856530190406758485278705543020639601342173906054987575848776598051577999149547084635306580531380837827940030886487668751787048693065890800682234184808028377751156260958929292719310173132855154564688389884452344780466148596064408755975867101491737897337865354204934626764931972545117013393188786700172168299288909528950416582033523205191723047354838812404649474201727431839786711961646627884652450320601208320520296518350438710239081292256725389775098198060805011833812995185761041164112582845846334195443575020974687377750885702953194504685588769681586914573298993446297614060060015466288559033693146972134802099304597353615001199154584941222946944669814685135261411838363160600214536005687923131700718151230545562724328636556112409410607413549380516566520358293441777949026650305561160425930413113214362818317229560696870637921549869897364135093694475715550129151576238695903356772715767410197895323901719175158921098239282881909925278346342871424390528312741821101636236297453022941760518912084239173815916916809644880331665029908064303357596241753378172805659581729145608037823248575301766443085381218731155262023222028128019602560435643676465377852080759567824518183649644667684368448767055299113781714428237053344410780522691481010885823494584743965867786927878495392996751390264958838612474768051978711867303021425716624193854482823570753055754297113229537592274893744865942314193114298457889623231477000881582532348429201748589404204749878438224361896072942233034983037932268394561931251914464191029476826715117679252854293609255142128264331217032220601261382864648316426961686026844181673172625101282257516195319927956822629286943358687297297478418265569185107231909943973481456177779273600375622718482353184845724141892997654164001034636455969683789658495104019695238063177466653014727901926519729500981163406735520946879232827320573072476671565384735002039326001381812982262651710175200672964537323013405023345765481872011534735618620514640005465608703827407160237044492208513003520892143830752046678171177515881796409749137069291049213695324898457306662857584120727433140975091303056282497665401772298131828383132591469963872962977182271590649826690888269232406173095794539731065670022698166631445828951423249935252381502300885636674855727225589772689884170161772380316361545392193211751207590350574081872336253302507956557355503249081096817417802919478133388190046646756677345634159314308107682533281626778887232996670401548706996525293091378197892187629803857097633183211551760816207086048390550381641179042027402424160204912538602901128272229970476823650394979535522215639029238922847303552483814935429175359276007333904184954580442171967441424314153726795638565941055236234704997879526881222534883973438037702369483381117578239812014557402867604756819932667009724240364371744058427758422723779581844443426309946127548952487857358140180946832961199217016058447793722701978946545473680220145032950373989464675943863373047870860614846967084468837738357858166442479742329158843484680742789765504752065447296624598948353496031411558385108991505380016091989488905427780085274015886571570436583030059148966707353308568603722495245434586680752033467328418520811639368589730412808691299496564353135056905287371719394541068381630798971507200077936073412363342887082357521013797534945492662141106573665976550568959559697123431786231971880282628003606569197708854152493002367221725454865044129525741388937289838073714099315727965443310931263645892359720735933184075668962082356662313441007089733449540932097973358518070326454989716099653956482706208213084004199040288138449381308359907890036662479763185851897950583149790497143031651412249641922144431778775020218046574061507471304338311651655549308261421752049000923003602326563043107550889505310422686221033027614520950624023738984264837859601948083442797736329262773160361858849664526787486310350376899631813486417766967622819082666397417628101735392128781952376047868865530996421668796310652412838624970587873728504517966365415702254885581328614305301586537612053985696217235605389253878317916539389315047181792545836738096428917635968194612224028996375053217802628881204248963442957323954352063861492766414232847908149338878532817938230004312109870094118173254531028699505945905532810472139381269649811643236062918921380290748555187515784260459996117613654578627967851151580435208661949664640116336551671649506570820737336506957103071040707928065511875455665536056717501513454605993823943560667177951322474182608335696663755903154152618359546740780092777429305509098566546470066821836833338818329318886811469378929053467599953517764627785646534088192867009943614166987390336711632542812038265321966536764789439497222587237623700009643288317238303644128829209903435741295326634721632254262382248522745687230750902721999500719726481442781904849778873151031704413515475980904413946290084760348812110650674599255241728060470875953712476226128370820253062578419654836471991584021053120374002663018965356604308858733150357416369159906060747315657942135723927252861677689972140930496054768031654327733839943982090663037120394612126360160228104168533813107641995049162817181640330435305290031010732260798966628459334043019270271687308036372383147286955208262684870653577962848673507449115680977430747194987815867559714771831292934643726864617212303306474817747833396657123637584636264294342786246995649139113493189726789311672942878652645612394811856576444923798558193901223425743690468083557040849507356582438651275962709586505068286819545839804857005250739278481154826536489206141190992629883370093912450160062804086549449148609042840215322608629746800392654631776101366183334634628973308587606389949556618577563588751756272616649395880429480735993852775196693083023924006495910843045129964380831238294143828105711460863895673337931701882977332906113034119228152248255520305912815716852803137225904840023219180758431902455820891796818075056702230026899102535854948482122771804743271541305311503684129931372517448186655850348408625056907644273300418914198794688059865564976678484819177122332364894236785740385263989436367798021360513005090356173532141112995268349273899030712665610042840294008463107868110669343405762643860995494737164363806627285977131004656201842340849241788681960063497694944992628481468976291697321103414716419518696842449812474818295166064379957226016243996318176343972023430238951795340347174956891220902882642077667613178573217890186362069556484960219244854136274901231628638798904618149812790227509668220515680080564148445258495826676932195735241951668510642191090505181506606102770818207028059211538621257111714398973666016187712363615961767597103659691275430284982198096864484388490651599260652859656083105123817643704268299656979159127791922034940965479216614896521873305854179938957261409357633775865948068392003861397952503497908632549676357628953336383408019783561544041433485651527120990067209989201138745755376203486547948819256695426646447355809239277364458556796325410334568265163581534366838861762213020438128992900521050116140926197358878317803955892943944536040666286463462346271872488181368073535681827216665277167578979484125500755196746617960752265723717310348845193960468388152323090756702133235370912595569537907439870799521482892225528357605359467264073430966470451272962218177792571682253723098699113273063690336063728710277076392799372247203519292905769543070550484680671782740286999380527858349358941820557384622243441971509566935931710261902950177562178669457864744598473012402150899287265654775553994148519660709427235992650999060782577208143056477900750044622853818026966713414402740601009074572078343108865602275706718676716690167878172416487776169932253292136246115683446706556559858585973996337387502983142161934886603745820449275343882174130173704471193107476575395863406999270825355803220085846116101052864017497174305219320875954158203448853906739271041060943237797908000576349451590986409496293058798803794065513543641808196134351317525700697527350301064606314427499990741910860043543836940335733914835328203227738032923572347488649810995037533984255777714071589704493141040131082041303370984210263247955074176123052073449463259493228896059401014496354885819255050456737892463349730498676452538930698478677584919592112303076185713550962079039265716392602213541603959642331116094530758894781259538176500894244348224811586310709756327146642372916358194382751371822432787589799971145883342056406975790285728001836981117586456802893319242183614319198268652858817843751124782052721652039150696715318006508370711559985519059060640240557612183489407988739538988450226964006981257234479534272422654472171577311627267849295748939824473054616199585607229415360689863212377907136858175970006516729217023536664751730944254118842040159911703490228990656003943103155188282046841009568595238207935784158745212012216416177153838612290974665341041596118235475960067328545891048017473931290400492757504421502778383710938806080816651075313279519978654009324838286693309600028632810371759102412312717551388192797429677739342239280386588512842935912085308499624384105782287744134296325008815527987640757556542190675454092321362210614070321762661900616577148899173660149833683308533907094049117835893924118787940511787176604149674608571674080539202985587630635835624273232541132789150285309556849416560548802229383496948379829789196081029490784606858901856843538060000233120295067181519166773721196887839100102132624930522020884553019869365243297182304408607420645111650415236272450372752414575186824656449673282889204478091013558304429222511506634816531812370630567450073516649499407500186749985929427296727756475482515104133075532741995186465888993511711328677699370220898440981040985403903605833040029209867442622857548397020681522444382843386617751843878225630756534442362041534345156302227256738211024585709269261758694956999870112872340976916407791186842892234208661679393243736689102917940297123706118534352536457602956732648563995456515084805754532643778439817582012017165595023716934014187368934125784518510045063211306816525770875860346544177445633966839106295958045104237953612856904985355075615145563070587028944302946120555128480198796764254992813999208816439996266274917607418320689339812379245074150286512423341772889787550351515633548626857748189000007643833317193147333457969150688420417625495699840798666090278283664913198633834955243535520937487661762812390628729788114834210514816458390961856960287092860559493526823723130723280835937641292055544752343509916609424603500683197033491821049882082144349027590014904231473871824384755671104328451468166424590444100335776712837038236475727842195435929608129636939994695636490308220537293269338158541880152186247776361796580322884375750925386287710693172710998819144484827853190647027608973565387763379066545685903441756532058468761406571246280010666106511566621175598097615067731819925236652946372425918886504742860696152730113374438119216877749221047362818664078602816185514504860961104965748569724371504452847380368611339754430284140543120460273560234126158048741164656787322738371113577113566686721916777371162766002596280166569513637165525808340306602046020390701323247216756177547014198502227565202544644665538025821768397413955913177760355111872378503968698193621161427529384938527495164624950203511544638460212727138195694954010462445499799079275713549373359138415548838854112885551087589610194016762389059700884930048601463778345540542127830435892346242217763574989514381323982188738406967300217105598640966035196100706266744525222613383640382486123651728149615418753563329505784854577944378631475066210366238146818195011409323362770450516682372224289123120882471530487337263143063033567267003913613171503063659056341635819750543870915838002321206554809937059554321344925357279081538049566523392881104589403147021582893183459942481558098481508331933371013899702466969065616895297188074931293654736677213056122974892413275845348824936675719836790642381224307076463250806106567091840313973145059109525848151758727308153956843264349311873177949830109333008479498299881054590767883029118693328346482125295279359948083159229969650173088418413895243226899115874216499294574899981454382388606613271034497380828035628280843026044346451966077982324843840014214463513886767679302288981143298007597010814152635960657316200262619612811196581584393174647850446166090377299186194368827533686954396793548893518296592687577896572244013969195123627274026999433449018871657923408065064240689176936502384323203849308245333256834785131983759437932194200397177319210932377322897930549548699689687546936767979842392422346985795521629881092553022229856507765197795032360067656876970603083727356615879047928680762010853544226416908758820917240780807179009957042379807690018028979501950365943155500040045009728087252312568241268409586697359900411359430460850492349847226280228580053408350979802089978304272499530450102458033379208688598250696622633061665466643148175154815827901500354231890449881015444315920769012307948649596930722940398248176869445854013882774909017215650472990984292609372354670463412674742010256769946277881791561053148317429036559188143932861716006478559726885128097591459109932112110461029992919651032570189233454922212941954101649543932922244676088788856428601213212286415099642083883275096102858898434549485769373619771362960337504045956454176202970237287528252807548275512675884990883046839193027091349000308049886232193333034761370196500534264745034654604387549122649588971632258472879239276482212311813358526311514825210105535679893611779029405802101021529211984023238904315989233100120630649189789707859722879508417397304457372970409050808329677874544310712708248483231743917374524033141773804682340619728166523842092186048334669562727791641440721796526003622267105396019201318815927725935416911343450365469088092720035675365514452769247720281461002689464905228020903360309732865488820780379730635108493791559742547660736049428908897052858996089924685611134085262049422643294266774029617305670959958743435493038817334619496376404091266300236846575173948895113498691186367464084351825893061767529367091439805377576007834658320757571315240544416925969651080068471736717518321548055756887851731151257068140005428725377786697046983482907515313593404655018964361915970582783420798097760756688185766528007665601055145703260108931255236514255201044167944784497434640875424641154867987268187330956841294954472918009967656241957679753761333012358690337885327011196299276645331886210696328405264512200056828042668293377228999981488758124422137980438444139278990588220890237013077891870401952485798170471535800067820668538057721734610319504124303424744591145723487654946495507658537729943852998637366397618373524335258507335438064045845563409230437197571275361049641862607318889686590298003736055305875592212175519014271126596262171298354127654329548441801414034173733998079990910880105624224244124910320434840884921257277156608345013366632696851828097266860996434621792487084330100239553770917954149048497249353041013176844758297302944200421423760834126467346352374460312820305007021848351345083199410116468204272547241064417742147665265382821513588502656424998470969207304167497290391882252914170725569168013541948411281663218371889729800783812397090397267151234737177831144065577917699677597556825428165842742121577874918142721913450212319101501322598837206378555688765694936485802290322007433739597579771801313680666964366875619232892315641334176166886655218633728894774009359940583117465239560820489812879766236134980460133287339858747767741900235142284378815043052599517500682531596959281825209325362576977212290793508647652303859964569192639871367901038758116609759731577009719712218320464089079036154317823813592142915280481327288324657766593468956393353750897501734281548163728894912226920500513356753183743061790246186658765199407519818953509358990697522821449211476923616012089273825318846402504605711951684367942177820789298860524479671578807237516606070607142016374735320228567935944294700106080911744139180778553033381478835653343245226827202713456514945885405110053192390431795160203219960453553205796506384754103730466876382002077327332037329567379498257957032577602231678994425976417181735034677782748927589203982176370893770077696404492902642805313215847060665884863045401973619978804285487784564888961234520023821717375926107829660262567458374826732646837577875260929736590895598948318898282205950932464071770986301371322485497823573448151991790810148041220621707204647375060724261585009434873363675815954890753828540155175698510938836509489147280593864653382157600461230990770302462260849391721283087398317684272759614538956929206295895669897843069079843885229600575395592280655108787424625869083258994537148834859635956878835921765448301961579352068724329127032786900998001790887896338205594056186872578234131753655738669938135648812317600264554654793703423720323324604172640513901396349533533504712968936810949988783268490537355458154965452237069788254330337383174083923638356689563471886621348031418033789901539247519672868596346453760487833777438834029278018639688903995524268695843596505338473392329121527164867398792829886550106929463036965980248383301606186902712693668513856970903024486759274483838330870917263127056797971541847949595035391245807364652272646896737270507505043459051591639480042543598550402787098642485264225662564987806126507992767402313752221143059639937207915142338726573484194656446571969290331369982374958542388975030205111973607044886677378746713405818093634106664918348044103652947261079349425768531763888840518717350211747252187358402906772639936482148437086896734426725024407716086724564160239139875482214158273679375783419362980343724071871322823450793139918211644853063365070466320895387994302897326180349503949017412528035969328013611127578249788743999619750502700820970119283086760207232770386234950360193174863846264607368325228478324433056188305979326098550123071193023020596826558418829916588882615575201215307325092973799288753237714005856496489694867897044955977211979250533048379916903080187730437370524153500547813651039623629274692022035095911503721891168150668427103789824717113451875401812337153045978332086233385508759111962814525916148122692473628473874689151862047339604020418825694918381169632673709683877072154803726352498229569478531889934282822065632922652454715314919178498561493982411346927130012237274512333932752938930936420110826784977076032301307219219190995938666073913921256571560088739337519069461581042134417454441576753200542787808627980911238591498344346835718777593256865071695856119182458542278938333366941129479898114632925745235747135910084036056329302313151360078256306458365845757110342174736628503324830833258277567395245628756463587269465929784961408756980429080480938100599741547732666212986211391650803347763783750226906784852035486614809226267657526075136628463272601131566501920739714217488209330483934980609263158681979885249352221700578669701662457707933251889876028415397009688440112569013761060382997535807014609697218437019840089614042813414078934755127316369664278151437170851438425516135272701652956414716780935263686131658955253232840268517478074779674082373561622534609291659523651179198434927601538595348338422604313389024329585992256640692288907381481423601005103783610466947391654183170926575717982566832288325407808979600833968034438347784988910608111940839494647231312610893135022889322970302006132083187430361690756073005180464024093711974034711280455740922883251155697520335589212012275998992744346473229300097888726909949372852624930242032550502463857370155033686290850290476191200451421197181918003109721103497453709179428633292953961434058148423334798782885059453462036386587823028446172692638950228671626425214300274937441339003792192160381689256049958316685209133467405805777951637630217327549381036678231518448142842824792234696045922403080824116981154157533430777778757905905961933908897049877306719116929190605751427482335208677529059386839364426626108464784950253046678430721313571296885713440720185028217510867967355911884641963673857184300412383617813143743831000343549946225599957879682865705298433417651864668525899159450679015918495538113402850201067426012592587360500271144070296003925437072083316028598560095922992178852842409516571508672874889830328434564637177381261561979172734655295983016159875326764839754822020400490570453501001221146035669017461956760804118270869494256423729267544294297713780683463366772594390770754154169697217915056646015305335090970066862219971957423182354641962492947554699679834898359872265292064678754779436419896131004789051329181370651934728314843183293132331393890435083729399095699926080809165780176545141129835804097653276021219831547397618266608685610974329938461462570866279266932028376713009114586590666592364482923961152277459005337766764111168607867383395698354713716932345163881304092871397706944048763606538749705454351399541165777688381676088697986412886486706697977213521074030989733179511847897566449227291512615223302450057614273740655689041431231589878314290521452242525975528202473799445085267298977332838414034199185511995418283955692934940155307786423504083927719159420511359863283025764692259725423358689317685232219225874080314175705470154633371778229674173212439796461224496263899064450129577556240803210196222006316264120823489283548146030580329830303165698983567564261360652360721907401318309137243030467113005427539016539244265101978029119314820208250707892059047376381624126174839008703844952914952957495771428640608281713462514160781452365009618872709534233107917159057328804247458577549645379352806944888062799718764582557526840466359464368081827450272687135736128765648844271170833007293718897736123548577492868494493729608231598014310506158640382292060756759341592494943157333865597636165620056772054714840249925323527795378402865032344929241591785702301824641126749487624340615553462200346719673982113391346930565927696123727955418961243790376333039403024598472656148844749469214459547744824160612635717802090442186099219596158613934187489919984436891339409556562317454156373630648555890091209005865775068039375326641510732681357411887428837146519243634813012537992769373076919682672957991895432176574733515896650147209667080976720034921585117454821827142168129875948038574462386026138111941444687660926672180791712352116615035275779762841590541767385645572069119840023568662044576983596059684124472427752023469247252960510709677766705932347091529796974858524567533860194568798020193138976146127257815810980841772246614282381090012178762029449209659954047018715252997636899746670176180552143538259789433570051914399679586991676914679980563028616696832081674294274257671791678646110012694720520240735522101960798009049864789714816331277013431899770747244786780818831372784336229579088499721653155842213439885343278523561597068224229848629876356803253223626978452753423922457831459953685631138056963454411632096049141120191830186294094654965070466400842234778974094322256304439949526724621618772374270877673911436321849351927179989881173541882002409385760501650780807859998365397912223762676486218178553451613299638532382440368695397576764189293376090507019774518329028629690857653883132268916250263496124434388665665882449490020495359148716077663228809747317261362543358506151137762841490082089741712187754008021836743986157992341072746189249778904202524683941374690986206114635699693834841657753088243319528713586635560257024545438488521530576123062930460559373040285587747226627049528450092822811361188543525953978360272443247402267076030268966316790170344129071910690908975664777495479229982505990258336144599791680543047941751259475353088209275832026245595391485356285116468788889953578077471332025821147084816127948129372672203961193076098919936147898121196776386224502575703085872720512719188294719216103717139633770577549808844591316483535520602225128587414046161161985400411715179721301480803158341847862571435788831972738559920534780079775503155740354148957170766623838845179165382506261260325288714577963046758900774404913318492947792199006452402616624455022694569337994856591454599418806300741972512080620612433461394916281727402190326701888431984486385835058153173095715617376797152065326971031715782665984872887927453848790745470036587745937792053364000401092717207153251639691202619616845623952254475734965489615462925813100091634849270646269984297925468908340550794107853754317478696409989553474321245872497439811775755820969930893574593423165418843029664188100005924722608370179010735045627725787000754045053606527627769818686618802009913391494800906746710964480253179010083162171260535901520469966146141836246706071794974165287780815162945201106670039574599340610202552345433437120620469249887377022605991569002839020304024636210119518441474469412141617806540194224330456767959574014885871953852819630300173142023161983429295362127705048274477868633131997656162536734659321794046888323912535225430078467585587489782427377039882878347118247720046526974574626126914684563357218996055914514036203844485326490178613684193789968727257674155542128997091627248285598279624563837403874471285890887047955147697067733648416098362481678186556410154582686236126549774529540637250024342146133996625020636240009028113074188507829872419897322489876310004553653496094689056957082750931165479285313220227682790515362997297794102039564066934926966772030434274593744180769795937564667296607016711150200233849337179447643601066941599779500398469166989557672090215687298873085040205483829002949065628391292241727627095708510449294488595452099472693871289306184086135063129869067895128462598696705957293145397519329819883723251003806809643461762793674138096044117885098906757884100598779938139547715100677093751206271641860732390455043200767268525126033762900946044976574094050961531118444058421356342040881678722448194863408795981347456679913057586985895728195103144420827146770917261542456760920098993286412944689793926334001698428280654616273783885747108944562319873302352064272099308221013821544852363979308253483785249134810702114506084692739450981642746141124736001084956976924618226739827590301052300213636820443729297283502095529749337515116959700221074313115261398651947699958251381861879872290462836764275787376606170925301342192291627450075385449915901340065220597325498725742851469143830793650335490832074783733494852555090564745152465338070914758399744310635805068672539613312399320915851528297030938927131241285014700050364087966332852432027303680621996265776209857341651798914556301695090596306975050145254315503097092789311745218400743373727111746852744837756109169672194224363663003920795163612342337169748319527021785415079866283833504060155062392510155219272751996497166362278047574139168168289718736018646906820084559306287858328721408057806637365322029597761374311414502004993254030334052588438402088572713016503393526868207640133565667298157377248726042463361451556648498169812226340160958579481648580086390943484900655179323736714645324918691147122377109002287611998166392358528060694586242708022031766936659229908949139537045641925382841606621204095190873279320135249843525487065696719868432454605708213219287467137326810184981571550641757965485313347975069068851757146426729564257708291560545117402181565530009624225653121950334459887194761851077366890868439472719367097075797447024566531406565386775093761851344845867492333785536371494479407432934038770439848701667497634584850725185115495371820202286488378330162279568195873258580462625411206648241453149515725150859476641062628880778822716170269609785164981075035512953241072628098824521352601420851382282797327487474954889728012190718021799211099004027718242019364082495001850656959059484929998138198795558608759247572691798364919653099213229028596639048462124423445084436870848244653947277048134783468350663798149259256612925600051471926367403178761104414297617132566059269291757261981784807283105361421005321024659035852715063156168773227168778427199107557806871415429345211698146708624063538762789624808116190607491670550750441594411380542506167097209533710494830618413239039274141494658660989319606790697633733364350024425822261124653501690774539734641531402973766636932191685130540794131292708647678435930158315891335760200464485535360556669298164421435920213677415210643067283163152146250050617834602998466385462051853162817674669860182993121051470567414608291908437556396391487495797225832310969839527061354023077743848711464665660547823423558293767324100693867529905053926054945475407487396946224847940854324898614198864360445395084104975398700443102991802640680931208177981707913032434411442360114974918379113255411217556469507763815668557183855955841043605100200310744763023571384191693825513283148372147675797685210190443978322428408209878140292898629586972455443529457005578653184085425045854605731537028742503094017192386091628236193160245746843388279112515114788277111821367801890614777610224589411504334370941717800931098489309232373637389299309334239703584468924732385066342932556339182615219764662646565606050193716894720162200717661857585206822393520186479104332004016440448864576799505577743377457474578584867866909013620645602008611942109093247226348120812707739703224344952522559920620400079608085523334778885713545559455996321264922439794789636477320785161055979927434522313693659031613909428831447793481909180973553686787300362572067789433238513108590683000568914572814252668104853077299734023040829029103370560180723403770027510196909051149110698314515847517873216867233911544685580876008459475875440334919622121112140889702880418125549071870005438411618797330645292664105689200820045007634033283984825901518232810880437396891265173461958005086817659994579623259528526835514858146164286104505901025643224527325626016191729757146011748850737938258881820052034323706084982826295407107166918687433022647021621537536995753276325364879823771536768588548266631773201058095785524045498930500576562920136604078266989537285576432054497346101545009079567272032326547070443876716572301866679642966544274342689988854073432276643259026951554944602218520439235440255662248897946403266746672858049103719017447862773696136691830411972422659280388058810735690377829433983741319650458789714102653966901599204101430639352725141811025249775447667738214556612835535405147194293370424373239114730691571439165864008222449573693307054969809644191234555667854296846348929401908500752026797730113730584199995218240749902292472403676947449340586852544908111168446919629906627491331248876093379907354299298630708229253575587119927002668913158482553497232753340535018948754117425119790613954062381635113097547750469521425918326058993380240185052437666095565218097474461924904880165154620099028137276990621130247348583934316728100553261450959620558035805065488527153114875477383326845117557221497408530022615707105847484046998950899042357358790107289451284119768046920954264793087347533750301180225441063474069467399740849679201777040435763938061035359648644587908440646919854159065741922268550995186544843239610401369499778678437230002245972539857690816509522059413071099076958351286195634753670142984783849382746847407563465912065452617572135655249305143769444770754442763849095435866534157496260635261435537984501460186457636112185426742153628235303371004795677985987223988889831806571904354059267799565607079565285386266442695984753981262859252533639811705753252289353097758144912253996397617342105219155712727998136684403818995767512881800448285371252525271881663779596781245217964933676002677807682820591021637584566242784823346163069898059977798573535086938630850605793537618706717946614826172765885024359772046809012656050276851365777028576378078783193940386694046862611140254422443923270776476641043166007567582447267216946561032649376409019101898049298304440503172098944730112576852086333705035877543988894829836534213465827983245124775889634708790994181242104472717979694419724182829686074527299848366266084713489173499414446433163478773972758618220804930307887398103270104683541226795662534695546905681048498348572553728349953698629158913172262770746787193076736887613042223378432316805009203328415396900308523389959110292264189335970375246030151537999870530370784126725927826531186653702315165038995663210823829696056679710676832138941506098106222714438901141769781022155656024466025492084191811664398879963703528334248531304659588820964260293420757656723248485360709071737718052935020605175066193113049061546003435105602756472252034151134931935160197810753979086833104951751542071357736377103205068627518392690502688648884563147530498786303788668384682788601354559849583279993243980187664335188455513337478869222449669172883933473079684569298351807718180190046739514098428961761724735411228912818130683194208162292220269178968095971387884818517163020786576310928064036708955318781314374158832913428686013926473724455239584666442088294763149433230419664126439779959008907476485624937505447472725574708795187963837587501011778990349379007032672395443758312039078209230615179669694493637911127265471503769471084870939438622958942397330762577553980555211618537098277245446436379975691825186922657759555921986236495529034093781875184254599035804119740077913796760301425755266570867523380550647285697871435656474557949264099869799556388897914059454666505905300647283827051402598946430100913044067866301152294164243881240015396375331479612828491209817679947315643892843899660530549808342129830464044599471811134072946650388033162987729912389778694549121957682271730332053742502418487806796478659587330333838724291109068990888514567377272293213748094188678117308944726624297828330243855460337288292140620975907093739428735976639345484954341377557392069379527419225238263550922707041711937962198345414842400930965557263247913447671022002764945028383997929598077999572705685061953511747066026882550737683419105092082698259089167683320677580287008846606055453155390933586848216775956841378693091172202631096764036072616339338303313998177600260033718996600416894798435513832022923265907346640745556332719937810105420224231074297769338344105553767391900090555951816264489118958727871443411918332197770123652295570701675667952025195035204526599126841202447055845513473458773161845758668412151892297066453402005755764570551277307585993466577739841303771904642675915385922043816357535086696483086941442319208159373743011849544743321232236422579739194052920030683204883877661201797857395876527139094786600531176150687791091445633957063896288238574905063619399684190649475971116934884322970846209491392275168925762372354963376144585268418505271652503984205125209489579826093491271061709466060804854163384763244901621545095940831120713508716287841439253280443235004338995721795914133914012106420295844484726739083111163872475146418995922998895445430367290737494096517316768290635622333314695125839375522022640287109670141023708811578777626625217863613922071059810964217755471109938720054795954336550192047223304636017674310988721400625384879399098075598921292350008113464186802575742224987463043798321328494565810308870284327474684194949415356092938928748158169592935729516186408690091603843190571408885972229196857815116342262686122480903017800217185590466082743650399825071353980979172543573448828069904087110774976218432104966179327693169751638185512730597070582980389581746470224204088361270023677943453358607657064335683591397677299125250495914111142024153111395847642894445167811448291950209714164648197902294202239806586631345932183663226347080970613500450351612666705761664642890764105142189115516209852278598636831922589388210835596634612097182444685392365556557447223686483162669771781700051607536952336021176074995284776217883444846557772164499958658464468871367698023025225470477148413956694495009620759486146203767075801928716227123376378884057438104495322115446547503610751488407156314845983757830391145687783086290662589126066115167032414417513945252752310088544821729061455760633972673859553609468856397985055616907858962885184355958674337831156137212034827071764123217947275875463772961221098588413247908097575276454253995813138813745630889638808678939813440602211955142246531971561647386162138262302816948423765283752068085889551313442775143170188808407700038743519772041885307652005953254215354578093032743832007417800245984560820920264409435044602571869915933490770310515374338852587679077801390170916567348189496432683421211536392175060315654982301219241942586161793379135714598838330816470699772005594956434023100819671210470911950059429022628070674672150823121167193542819796983474056979761690407029594365594671667506120247859222020418416816614155193343459190078974755833363604593940732067969859653410890986195855028887561590583948313840419954451234257994448484405326841992822023542624574745008225412021353349275694015666355909057755751916944719200994701613155818697801937855495769092324932132971742853703035443014475386914375578889234273405580031646438602746248642447508011191323161840595703163635657168318617164769101258041628809057490312426331726212189538875890828392515424166579370804220583645761425189749856189352803579826628481464364545075520724637661512535706538544580590497663353944304554338546368975016256164146754851041184645831315287385587467571539973406545469090783007871254774247683879483584430544250703311323919364324455120686158928386501500214253344306725094781700071857055153238178834335887562372729415799799014908558297013091151229940854433533942632184577296877705512747274477254708381157049112490061770916487102207315117665578039897852900073095837609773870306197195538852651283079926003044660238117921307126716939597755729620325867903967151654113059482352103939622662307009564136253053385931354155690569043916742065246889712939661809654930633680955538020919784617210655960990805668578530916794616381110401526192419759943647723688405481959615274980070254512175992519263347541867097062887390394182404287288647941021887509440417841297759983558447001805085259094187892431467314969233319557875491736679122606295060141962064296184079170098255250674317325827945905813611320770849809682813386709087629782249516200598513370861362957723899493945816568480646130721603065533864911418586054984877197505835127914976296493186787492295786420025994865081468252027863805167653632998678632226616690417826919243511336657660713595601690260615089007612569273885205629318739997823788854695174607452161084927810575023503024766478466076924114432800985918457345990858287356276627335676036437785258677098364459868668125902841936708256645148003874255007615633227926820590537527308563829018416078868848019162860249563439200717658520545907054457793551141676347769839987853031207670007305469192318036617319378350362387783748197990568660668250797315207327414043598764159241686609394877959192510990794381267275981705982614354721819087925263243396329633628131472377967185616808333055526643050750783151681086469053131211905678289437268969567318980687464041041755816771666539518067697751123674116232439101776253594598495512198332799624459813249590642402505717360699472178080711755913457086651148309348228492885146653596080371718131053059388563773821237857174684181873018773378353335332935258587793375203658477116194576710244003291026269054538760609844979009364648065233915370048404162870004786067134947304645522186948306468733874117039946429295635270881566007443558377553350415501754283975362128067448043663492971770744161254390268605814928006883874548329160936479799832957687978453273583632069467648659223410908525114723317289313732932145471784308193338723493141108378262192130862854091602253920069865846888385065221928431080842348860464927135268335803039232481489069712920753791461886624622756553493297510593427178963148334861023846064842689815208166387273890605306031304592320842567618739372106961451019302785883787868593611434178632506575583094402143414713461212554409645187441914449243555863729800225343805566725138384104411157496583655304629161165531775921002534326971499559116639942579767750407606567482776311407714211168718591426481767465157821273259614843232489946830228660735746534048130616807835157373669780849989438052645347030269960915438501420408282677948448834092643657062422264368127217774345594071916173058416895448650228877264525438059274432093406260718842351244916100207573696542020504176037598817698105509771184554919653519700990306557808302517525021242258091389607840023805960767287725845072099458467971230811480786424833824608865116148621493898605453497889995437257596767156007638087472633801804702133391635773811723141137502175662300704099247508987401491716224910749136573320373545988021278298688409756406635677462125034042880936403620540877889434469851791612035219113360376174000211284650587095357173656243550737644357147566778134905235630630913800723330009607774362034086849590849702200291583120367562681017676583721417368010423256889224759241770854422534787327739348298787016740411108878234826258684997052649720719816746628441736889243280007322456034670827000905383029033054458921186145633858917265822776239989416154553419119516756679417891950299731073641842223664703293366568418112975195205284731362860171706615251567277070441920184158005229936845379358680725407664870563067597739516004920241635610028020910802269151542238079791070592210440118442611774579913039314250815896838879459134397893748600117155040280032754838424871875790324746930528605148855722667853528786496365346674852724468642060667546586542045738102363119732402657875986904889528465693307890951901116830074130888472445243510932828008758741935143565335136165371624776737536771002788689402190109792354620940939239317311325943459554588375774598059173070110741697850453165146190622285773390871833851717158513444020410795188985438732084612025352985692899578312804567819426991965930060696674850369365793800822269751787521945047668212776664616834510934729047699118602293406510371121883193188106264794225372475665148458264122526549254725625635341090850593717119845843983092459116464493297399854722510359566223443608964049031460723791565156894471669777034101923777378063212745808894582635564329383840892211226683473798888626288527876999471577297841211343550614466171113399259341743491114623801675983661345349078040176219485958643602788717652221180179034456610421479272567654796994946716329914883765861400891984107652106127013937643140034059310954686856151927485018311252794141708640689953990256484336994770636143712932895079607406923150534314154943615436465624739977842207988992739003407094541347952668890350237470180693609649365972217709475206529156425078584154173167876851435113510197676423100311083236543952641534344393673777622959683529352775070673391096122241236593330974510668645909478307773500530718745868570279766281613442432682278781984397443681679425756074557153798541635562724482663547060029760996035349862296847203499122145548307134259651449593544799848746264995256554669360934320050955359616534159095571005927581025942045381150723620412717942748933690803098019211099531328210084612543967433926144571791727959915954634881836542825820871398411372204218793971643971982278420396148303041685832476494997291220145123533310348990536807615145011927127243844490933543700302909648319519409205855728551914527275088256743172271687898666149327076006611385990967846657877517919009745266643160643665347975699747272168797928623085814526323656981012744958913085985817544682863190219589074589855777613668858127963122931602148725529661644768782453118362028168867490941775060005443779631178127277691960605580928524664496666866383417725099499865907881346032264587469315587898487614303335905901178234889659639922861989714307196111158995818564324951749544614597374648531602676928012187722116710841390761066054483973688875724504817895574976071128632580926216894609354209188137854694498499742377674046256445467541662399634483085627007317531789611574994370522099501488897146985487261648691774258903834393390648963139791526902030526114189472025807332054695844758721779748183224822128301802492943300439760762528549582640931647612219615544456729782977281327238917691903195776113506390007696483722151641798271761826256878325718750484562954368109501548515275758190272097881967479374130346811458332889739380408511831091536309899576826687924672211676472374650599064633680351833932981320559351284650657754949136841293066874039825722845786809514142746706730943844803373067831019994197749878059702425208954443756881838986360728775923317254632023120491979188113814640142801046653355469601984396782627583752295618992452420535006435006678069723538696165562239515372302840611933142911776967857489572236624172862914316797432333079402727959619925163842650463278591545724047298331557149841912750528734434665288435523963662337804885743290377802425838553436985224434169767960108258611210191560082555868476198494672776988302830011318276013217565356156349365651757576352278709363091999305838471011662760035274372389678865907095799213938649584004395095478345737911448939591797351414415712125145206587976748642170199527309635838368834129436949297740604468423393935601469021866033490313317644264667625720932887258226958433884983731266359554766126967917213339463478708471071046282390620500572641034947904561982933237155794491134635679552850617677665186733885215412000045564917529670133424501995707494278710426587516703208787352845262158830168869435236319014532843690252526512461783717924750191798653729100804017823390252297551518234026080938009363718718065023269728599255462260412856920181679790834529270821446873562979508898992638354462253804536161001530307981599166418987747092873810017473747522443322782303400614351683016017337390984860545312503655077547413572246502366423989730511999227589930991348894314467493553999456541646212079262877744377938847927438332336370647678500468360839435298454204114440122872917584885498143572297480927637201271726623577259674009535607119353101551438615429917830582956843557641593606096743228985903227410710264807299450196637230721074986395460871195323146980029488274151408356435475067941869734590738940498664223954622122168903745983517155837004726001641458446534104905335304742373751324495414143076768486986157986674769994416454792702462715864568554995602403067841165234345606522960702931751198270733947236257244303414282039403925252267625798238205270314474945381039108477695131393394679398672122601287546009169387636874426295667831262417839005666732011206924064712148265451511739114363284974664707446496303291913302982891032422278435925034405328434906379723126180442497445448333265486665124645769406301361856935971043272370277917868961811750296850667348707893801149998787811387782195487003457406943607326709008879422865541206200495294321274315702701134614460618679709441533261709824216193568179526089045473670419865802657734240280952280331880996292369321113948196567992931841092867168622637573052013095935918170755256116155656297459644965716225081070159739405177747233976551329975853839365572657795710273581257796075119231868625477798207271666728603286362612397822060733815430878860338374540257223034563908215246129680009500980792570759498462879638043497392573290733973512519225683045487617276661339622943002518084568100363266919567978469215427294826513270531830674319143782376154463738131316631837556040200332050024050054196825836088550376535356747608211004748677566104280663474449927832822574200294481171391784809652212152959161168709054214526924782242767033634839098793872461637161840047537346750816206513010119463967085491131569349494511954531457952639866244302041370911256833364015925839789578914544233086564445887218183339385307838175329349630069458115403943103152029585720135394404857656563354106241996966078963514480828773068085562477355748415474182448052390634193989555772320891847202312613394483877439692189603584218451249642973704551502920628399738147360476405149484078855055280123295496340827732045215073327263537487201979812150845929815736754701274677555867804167128200864956788203199196647083201863261529619812807261373477336943842194108618895421872983452946478230596247184811508183996429318948079163939241803424724010341596855767676269790609055881813041091948285260870964619349769847340795304822177110437465341237057684557594523934068891364241090131267247935165135485580947853808751010065412961435104443559179293959217315317435141721703047226749392296892427866996971889775636321881529716633537862645101930304343053848442076452933623490991700088818866330016489893809786905734490604935932505424631494257054014641695030392548551199832616303956636420807194495510414778858402111839774041537487218161884645765952789599175417630245282886102369761368410562793765052745534889304787162194417283036181116199805920865199895031073315979764048269302459120468435730477600159165470386708182905048290810753439431702184079269794673242195209142649828704581466574598945585780116944147868667859073114239035576834903410997423765053373319662806111163622880211662729635438184127390710733103683772805215992776099837431231590261791458689235903683678786341142378437445453254207353792347082675490721964085479887068067369008116639194135924448253944318650149261052481876968514772720152418810453565191277097020766975095596262936052079518105675642651402804591918350381530048987344944781276055618820960286063668043763028073584571649597092297313455548687244000175953480535628287380865468724027469826109716331441253237305722119062494167142176368716132754462856837486533694351843991834314458804324949363960413943090008207455143456157630160936727347110672850939850128466661022639954940064295008110151273068285321784008102652611997963616157027835224491253039038636064492004093795622122865637337215365113215140559912582342719497452494325269110169783950802945387814006361003675992386352059082514670334733073426431493623185523034019842153187916814880346404400410333303262832666678737632617606475988307079358083261954708892705435944446507649272931374125418400851738311129682195600549230778612827414306052889087581702362095689061942428510593852557894777208711154876931652220696514555612982600262795726797098034202060921011676618792251495909075751960732727655395259172137405298591690331275727301174209796689869394520413830626159940704589898158588657153959720966747248887803460493638052229186391183812051908113691117424718564601934797157124616415240501858636808205551049431772684054124452374089560168262307758115889280522295223195652978333744242196389673435488262250395632857703367439263299904920892337274621549815309502123298008514374951743980077402511717861083763226622602714970833467557591867188267038474439328686688488906291247625507957487134968320563830795500171519119187069165244822132650297972489282352358109536401146568672002774658522945098833942514871170593271503736249191435270273895542905414386803743924847840997143943931343465966703349407340311538870001604484900418536263082645834059827512040208707891513308564459191802024647175264543824453560439582751493277519178251146286158175334986012595665415580536389828643230249536880239780218863489032990389682971763749359492730959872113987371342206823910789421984529795976042244102396232051431190469653133310529088346441650596368934370196065981094886173170400084889037407221332126425674380113022038509710816106970400377836150289468407653056233501701702461328395430645519726674291061898773442756995026914631115316041205819950501125196543972902958667541475207218896376041004857739557593285413148996796964439112102548240917032601777586856459287826967823170977256920787904078697016810951317148042072169397331985045129135842741677025537234624021965939382045731942857381429433269665611563759993371703842317622762831729918704399290956870902458582166826750121664840358387838072166333977793230876177211130731504947032893528155502717218695355345565190378935499412883205405324271503003346338877296618550696947459255521536231671457482134799480587091801369859310305704241056128255467563531408872280476491371034872023058757995625707888426159847926698303925249775172235722596182407301162918181130907901126312032851042018840842524185521589030333557550568577097914174757653381286529678241378476989122857169947231483311041598297841180262927760823429923649832864286513039886627552436640171084618939611806655058310914346209227267802114010479098638158445022479992837967446488771818806021102285641621275151081211375474388738027741857296445314763958445268109814988918793705409634408003388193502859034964652633992853549337318333939537506420619092304209121110249014294452930032170864766815664699331332768531196031497532090444439886870155911226634391097284893185364283898754503571923440005954950353225300879255492031672116399894018506383062459860428117909624736543543397766806393041836478443424843277394623678717169724554428499896252578468202231098528453524049479181402329036998521690263263898735567546831991775520601273658363604263903076401063944441927964128888338038489509403161568840068369122461198375327829199757236657816138219408705567392871715794756775418637484525717331251218166172179236733168574980162603680778655942226748400981845492078115844232797305242310510667911094661680367814269273303740944247728943508957787322209848495103982239008962193605018532438494785772945548202592381135254815312131806871671801760506346055722521706221677860371649121036813409144439164087757220763077767733757336896743761385912108164243722902199588593318210823514027533633625864711945500355864037354972323266814054338946631044144403911981394075751015804210064199631208061414515818060534998192102626008170006875191874989402549255860192553788624898368945386168161481846356586119837484228262774479392188273892129500831831889608327108358361828960240153158215614363830071175080436196822667989645434398113468836831049719354609258030940574313229121545682841509652353341432754318832855407899246719842103770844601029342860271760043478949539065196359744414859166006468498359257784419120476298437784007928951504541201122271170869951656686382866510212358569700823033177286358914727648224312651466281810240502969164879487838087028700373160380676964739984298251126643410543850801195727942756853807469902624640021719775289946494110198371203207262335620669141464814953410953446120331515724362140743051489623789292132096438514406144759120244370013346120716449857657085718106242658344946020031543483760999778717746923833650032361164525385452140355249024294443226461697867904561083108373441871399660286474351112070535805730528386766429862286431798487503263305677471966234859149404608528163239059570925717712695493502889468128930760843174522276997781678314192740797330717318840658169299803300447034707731572206558744834759717943292156336807392689448876556552756484940536683801188721427754629400599751572172529601017537151850110101762974031024279702874032759952188575056360233103810585905896707442965932362274733453849418582049495250322257557327330472751221166737348419545915228263084982120686502937603069421390519842099029793318283848263316444552000285997091153774247507936791641696616537860196640606727046885173608010930462698348199735164885364634097345263090365748052535794163521000660736453209009440018406515765045016058630671949544217710611577100904404299416036602423099033662345016185022093421812456466187280781787493549073138379232466192123512426152457507539463747446704063228340495372638004963138582238455050887334881701173877246250298949844622135528052390184696689816570704292007214327460363127478405684281482438746413286138628075878906209729709070069720181141177263581194048828974778264670076816763429484074085365938975624130286762729786403041126840101935683354481079459623385596956358326726178618782298857983393039324156097194300046225652967382438888268321465738438123797478067952748433097240698161068841762441617596454598272015652139283541458407653859979188828578996211788852660619608801380525122714430867325044780373913170085601836421544454879610790547448441399386330203372137789459785435003532817109154340023611048832188114454166900208578964562411348276932165084271282147742764256724821810650782130845732483958738198600401426396613310146332771362979210420909605848691170361498994223457601969261348807298769837088841444804062571299187792114985130939266596505167248560020538144255894595338163238194941605189874578048535351874344853542382820370439307884004203198488204407176674556858933376333738754961195978877683547927629355428301445064719209773718782361847792237090024026253651978729318309539437548318976657210321966487666316014511227138345567719998568904264980993186590251533601665722273910202017795888174915709556419242208956091801010846678567520631902985388780383828246885714853538800782080095750806843680783701742538345411981644813550594707650606324101062528053140057767868983623283058102487133902053840013126482897789457678289428117679117474809307176412204397588752481765902254206172637043498210875161803922741407221765066948361318619471795035633622298397629863439392009610013988236434159754433232327315325212564533262785732906505079310603062510411941774362943317541251722189560476183179293431549302090491977171674423289468365232897954498908084811141855529346164671261362381469293738642897879792549713693969261908743431778055680596045730352022423855317331287405312237036970575041874410815672079771029843225925174971252926513114426860045807431255680127416941117025108644757602825881742308459273864147567988335543811388647068792607235568933867492722385488116463513829269503572503398910142587193619309038388679962719261732431640919148338217898912787772955618581818459258783768754635541743958618951302886560662764444420039928941579473448039413422133138411180880787475789492136913259534776785711196041844464019204917704071828327321263389687320826811534617983740197426175559924532143146128783185421267824547492273915583200119587202808750186874487214807082147025447592541161867403231159755033414750045600490244124023114654195331952582235639976096704809188083502511717884263656468099325874233243401629654755133839942061614284049556630985613855855180857844264692815958210642653163616954379916522317002359545813793911859073494725523558331527137994417770868202838453679628205005109999612713731295353451582870353616394685241434077675169975900406112334376549333409524611987789417108129833816422501966328513457548355218258298338095997271057785919373228931567743928657337044380343138761792957936247532786412923259141524993997852131939454959117438443876972065994314223525496170271759013626133591242759401811670795583284228879878062865841183784374726028568760374089501111495025722922626832545621997235715457883616433544584370950099081180698320847913649540644056206860556512268758096439632911407935369540027945711546499578202251561971942738635434418571704099989168094865475123769530995001291676556546403489349299824628256820328954917752119780414883015885450154154955242423352336912129133373174621497186537860455608408408228234439375434636994734462581025386572679139628834538560078587020334321779259644210594203524222471217375423836315341449701466009963622485277210564662243929877632410687293463457346019809574579699207626998023299143822109177171812945127579445493183999603525894315439331658532919109014272816640154911044748601025882404015868529217048348141459474839992984697041221963311245235561216255413536777234107380099376998704285343637571032261508325226081067462391899137387179564181708605098844633534114169520446241688781942194800558054364690031670021610974441778569057144983004704098204468280739118523951692089562099852519802495507996536079792205684326022880137962831345985100911056894690469927815343269054558753024303523033222923711168796803991719446032899714981706327188623277764143855809220612607792200694780322660277326167274701643815357439201757951762092907504377639701713710852451510198705496867256171387932463540340097141266252245157096236721900365711206148342004597588064519890352681312785934729049904989866573683745374905802866695952565592587319853686858993654638456642488396441254163779153147266139093318504451337115240965235308208015963273367260031753129227025343217342595049100638167725430881445679130898918773436069018770633224169131868533699316288887569452908312472484019511830471404852510260234873516419258595457199223006297517304398494319590747609268707107262690689806187122211101106282844905479111542366790798327006254658572609768389269808987852490681980806645561323725678451669482486915428181697327865811485914856164264253601539927079724211030181461147670101106784254456528250214111867657165094331754821762406313541040671536463089046863955388502105885548755012972891786418804878304280375781909746074791789052193568096618167557162028953420683959845278239608909613875228146501644690945676192006821310618925358098962367378018555393016897758516113382058184741491425847398789951241545925341158118601927047442512953149234700044640524420089263292013894780327898985516641721404964373967475761269462824262017038888665626813197813095914822515981972868488608858246074872319124243174976809617099410675460021515762904035545359715955361492277879502280614921921154636598741595469473745767116064324392635191353253698706993536954004699033112168225294537283245131827710770643148524342838272953185139270131867655863282592889617119799385390412029556370407964886584072902649160936310304862856892632367539699126398808243035870872413281262614137182510589415382304652547812336266972472779496022047614178495085139736895551654540244771976996275026438681268131395336688757849372464038442915154606340112249440393555900698018306162314259531708066906357643162473590834691724794300761437594173184817228683446762950704422363322326893903317322046485450746721304202154159007988271745079943049652065530559596257052844951527770323645143844111858064129757301439070095696790437522649365165056207107776607920985986354342348905264643206935593373774868131207805771342516559628587211229894082339599314824948667409013481075800615968020551339126481760805335805644151687911364256156228423766393513200421951842479925080037825098892426478867401288445878622770718158197141036248339224404573292268064996001793909528451111410575210229061062494655056121838983990791707637218330303606421535713591816743414845742530791877273529778374896020428001350068584729258809463396650610772427426887316422352486232948469916679922801226860563233652406625728984131383935638270926028897247968878513903672073396101084968772052817025165889046450607772760604436952590668121601761930369745622401796114274996715061356468765557619323020255901433219718829152370498542693116259914560055124935914542305989620698638752840494335424484810426296174275448767397857494875064427403965751644387331450980131597417848231800973976622792629897772289143057807616913600062888886584663196211058185175438198297500702788683715503141629467752126981489757000127651800787253470553224950135732452505884470878187778961286866831508607509100081526987364244728411416811682639253771641034767396316769140434317352113578924766363110372024672862777195353284378629623150920363282447311851011189363805981195686761260925645159478393803888270236903969054489726746194248994989556866921785885089620879314073506020962092987610974642715166316712870335508855136149782776576925736926648439314429097522157301469602252890577920545197209532645371158036993070321612783783651266595628317141485139644042659494790368301232445165678464441402119226557090422735874081703085443677814126689748769938787503832183021023807998744772738158037722490244350806636509921582849794339054858244220839642825540706886922089985134387997192162911550621001625562166271796889853456383147717591548023893767080001611466613216491660377026309573508638312864578855603706254852642619984536876118915050228773902390108124386267564292414340079861754651342918750580888810090710868220084934242528116394883590075615015525085803882618914156544548134110580022266604085095013077902656159596367983226169173270977486825371387359355653378508982132068044859041548059321315990438391281013897451772279906767747855538275380379238996755482833242327225032252799185674731999418862363867291323299399713570155193975530626477881541861390348447909004428538735555854175664503507106009868384616554573249187591569033280870829680385289390253704179869658577261873478230852635832489543485319582944176556373351526190978241891818460035862261969246781807192355220817796280910693320019749641823488742634520591991332452923581688134848737057949260548734950891535117444165834844579489356351239330026870094150026454666252233837918444803466773599235668428689347675800484243809674279087206116378047944212124329288778801745885073210709736542894791054838876765130876432805083775074864486227755949789774039221053375627289338505322920470384753761417065964290053092192180016384419783509317104941867527096830202000199293119622287998515004315232508668446742649832523813059349612982116467875842300559902579212635771988956936534066483372023612490068658255091640249146035430060118839517090234014336108341352679514998924336634629198624364311503893073711877334598738524225107498749220763732670698612607971746347232380404889166141855456936076260682899758970255968308251400349719466989629095651400216405402931593837027084106659562025498165604769958608042963778182408425109671431509661110260960537897588883034393953078442284609381374248993367679862945485421300064315785462922586662334552074522818754532588985674836429144396197013048138909937970867941249538859913646158677306298306082002989346640640687696823881789705273130263843184154957996916733146313102361832581544914184951082367429475667252856250610219673746923227691029577023381045751119046260187604146251058076659475516812925087221663383342931654374464048388662245896609587065138792414754956671832046864931258545020883072674133873488748290305153663805531627850107717170235760641074929975361687882635937512694018740469529304846890489968889437022233477135648952726357413263791255296847621153674624980182989666344835509236939231680852980810388722121263363491616390054084601406558342075564146385268385968099126669207166890093963761698994910059380698680692585739473288266318582172279414984372879556739066014410428687923551221045607592647511653527636804664330102011491906943720905750607590212434527243645010070706620339853605463663566803247478619079504861484138269355504992309591679716596452779709601505197609444728827748316445905611410651464838293827916921379444982440391956903790032031726744737114212473064017402094108786600355313034144688295228487876601009808033612341877707981436641025193964395536815520710869019819985735703997519725850949153625401169901370371225590058944402701233813537334806997946677942000966099949971347735361322593981915415264044924095997323675891945723610820091224849135425580292389166941137454098751335810245359475448022324553184204905811918246843891032266725127307330902910237993458596616666807294955423230885067445672278346830893440844848007556518025919972508422489886047334141245881564773075925615372756973461400589990562523071114962210678357960892973653503709142615657926848908545600531114393298305761123165774557210037227603797999718383181829661936932927847270801956645230273516616762668659214255133157582226276711839057211830961886627620958432026376337360303989200490394340498335298349132192942234683426420573525111900354157970279128595516050038622631354400761408179991463817197385905220824691964650659608219096419434302096318541354741470649530149459862427269131961516678050850741690716997855055295919546996345760098962521464313260908734388188535185438908995949118965338929320012307027620901452832855148074200473916531062064366732015212338133541112863427630053171252551362004200873619147643849612774232231243609459355113459249087314362294368401538714013881664073710834564223677260042856464951975251889397345298965766967435450182012297115805524818724190496242770240336353857303397701511569848715779698904497791574878006043163878296795530437548556519303913801659601743876716606086930704076013683432395131688312219269779675798724630311702378704577255996261548809237640891240223483901216438567822260801502189999931326536506434840403892913101724239390100272910291455122149736677816129555610965528980146708715131064020240237079558085238083406324617482542677095681788855062121316274440346518138854475874373176253999220652735220501738424297706643426668751970825877745544961237995719727921034397292321934276428118841874655171691110055252225547843078790895360397221339369850114574649055857994828609924762091333459246954458835608604949165047165272072363225797786561109095661290403021442366465948877495225745603163600643643088524726678281809369118133214742100852841194566577949735503504434013519916048384912512665050866902542463652359704561851330461068486019241408493784266905304915463731019633144009120334432303840679238057576041321636636955358072702111821401179092891408021560399779652881440436688727582252839392903901233753136571820853644143913069412791676912244757951745763914596193241914201599344536038601435858178610753216907762366308721160411818945148639384659452162777402969356318971343366477894405148130328419659478484512630054290439706102301117315956635271332947331431395379504886430956385573575267817498307826259851009143675041440792987042198738185721641290404429033106699788158790028970543747908739088089559004213613989350339972875672281613139981998406206026750114681181647296158483103493656260672087374425478790833893784976898829205154703589624447115644065005261681390862679576526636199067454754723716981394196407065136366232135067010521290301337842693014844580063449581844831096302958496045815269329265895254984715567221900497136049043400949059743205550927056552163854706545446784135801079962714759612702740262215269951140700192585316084294416791470955038222244470769131436728030924765948566942704580824377903567953680441980190559908339156807065323835333847026685030662312888886582065010237294720775217634467743590233348108630019227565556647831513646939615385052474381084745758252048293480062822253875650112142824638511543504883299684245767372148786355253334693502407097161067511782482457308839179904052912496131403517378780576296867997408622592086568915611274249649240332214391167726878910731466837808555031122450518471470583060754573219592619982553970791334887687030726631994348434932658290587240456609275118648929839227663852750930079630798215677778826837049453667263992190299422190876002467483152665522345079514973553674470924973329985649992910438241335290975633273559729743615697101317877178199005682007709253068010976961149909503621219019227518723194075751617679315121645206574497655267383333714378969431376582090286093654827186741739480440418767706332660201329065556708828988031113135805529175837585205395897785640457623826247232460328501406936825792353501880517924352996877019845085952219347834865435715775868922500519930057066364409999602674403549244522713900078503832403057939914035414372672987034513845552342358561366034053199307689856161407471005399354203323122773666855885036984352020440452381514530461910046898975967396283452155111559551327651493444017728899703663194194316001500862871104654911541241378050101734162067995433693209663073071589681438566998706777048201349909720489241397547070796992413527806531351343716199290074988259313717987905607660015176172400386743095039791708771081184145324877284364555830650896245725409269393083577535431665697843565104379720536955479877604300140554133095357905836148243144120337825561591147569275655868342224048110251098828635697708962446583425344542883742175109764298730606999770856157596465109591173020531161610991468028579345014983058184807146411524616128984829956130458527986019290438069549447278576685576771668838591022312366389431229599554882260403540470204104668172906479995419755937022032247181314766366252698625223477438190950733714821185813495498587684565485849545287794111821224346353601248097585295069784889019501792801560811349921939338779019157169627452167571518432769578299093142755059285525320699498011621622477810708688226892611821528100521073971601170136214233128202106567213186081084131134791005186717717130389846825915112564375704153462326923073419924788114107677600872184082453956189123195117870253319592217260263013385683807899148882296271190268234416988030442307501344607589699930009842950610839422136263034416961963868054278731208274287711117459154600435628510298195412456252991600107619802990625339653488162819690372174707651865250099099554493872334978852981417653962458805464041252149957184334198968288969780549143150403363624462834003819874155739244819881068717155067488335556109030574626795161171152244774531324211982090729218863635647711156654933396663241929420106227801818777736199426864957564281639016993481575149931558383355830901262496605122580324915175832584512408553590766792100948405188726537545674888152273457543164495632475365065404486318994625549979502336478792631343593290784088723412792870688741569716525942800407687073316707840697671449483587771326571621325978436902625473765331409263254818905695299226764627872809938984410827596278530828450422671506073882595262242185517194698664593880054581002750984836479688947421083639937236170319620512342947310160445539867153956710558857887648922161301534429645573713699012647141458407827687362924972563359276880300692136144220547601345889151834390183958531897237155035596114281471467154247981151845683815298584631872716326802184678815770742527853996580775030523701653488614793503216271539765862018734835529756918833464728520833730838746743002869366356401410929295727346369972397699636498323286674606995551781104358851662495150522448371181253617956925894813155084911411246977488933403609208434370672796290236768215593896172864855024484208353037827599140642677228311421741273730501218699980759195306912866343801808347346747157050554808783833928731592329082149673546021783485194182336378728216551463176952235312271559525328129577485826908025199191192593368075179792151377597240183801915020478829795832561978803619033623429554336045746395012126300312900942986691861367516293852498852836192811822871984543390344742097058315443212255918740317789389040028821766156863551943101405272379861202995781492984089104696051666234343550451968988334457999996521240349797891415193577169861818198254755997261040095407041514276022403704191018824695730301769976435863331813290701869653754328154939803499830626098761292054317468662164882598982886934641092350903002739513683197724804921720135757855748052092981840352467521642109661159795049023728196925367675307338329620922486226883989674137940842145902271981401138903946017076519047585652148288001300307518020781529817772815884346127689046509040707969950817627072058379383601765771471107346984567426319524424440929190923264965077797516603161858401144660889120877827018040779116358530008014407363839660267135950819430038382723740294204630457346845839082932205902674718561772023229378562522029670112184071713331546166218031651923571255520006044251862892473788132131981177702518846093994323018306614717149597527159553288620205777240241011044364301703621314744138612522611518918288583913437221650992694034020569928226365247899585857256932113701484460360777987647391438279576484620647102206008347920880135340535034332107351574505658887911725588414166595547346552801420449984351802790843650222256650048863919882170962211421191581821019290626138535638515971108250414613494383046767673793312251038148051611234117880877223509085408174352315066004692496825379960013542774820377740476161725216708077467237373905959200444642515867400344473225470314000566509308364372572781937980927266169772211595593302764689998653671219670755463868612335080634208198264900859586387360974667159670608971302720374860528842088945938927976659497218752981693687503991969915305603070690278636147437143142629482981787182696044302504748463466762734049440118612410581017603475000197338708653151894977455805654549605782166301571100228333192786690391544417001872433442764635087629136535012195147039476549598955910470560590146902772554602158725438461688550368611183779521063677903663304950986518474536174303767042185789109863731255783078140381366449562323354285482325594707591082813896114791339971866939194810858130406530769028743560117426311381524425205023022483916516797269718252394199391233948931843849218387533594997721306108169647082993744404466899782688789779218265185015935368571038188251375952131316595909912070300194826295852156270494574200063496227446729608400262913163218635281143402550725720669551556663155233281983793833684766131488678395908622719429502380283558009108356748135024009923890873296226437336794605446336913326073975558829787770293574004135168420212719156790748817310306550594656218024580573465865126833300086094269681908585988607199474049181043821177608836306355094305587016156605897522656172302350434360534405718602840729988654811368480881788738002825160855185362586224261252144771202869823530924487800135276136374533866732571129948991800450374140253025703258661018828988311180339234193536718723371566904779907126325726025960921433958129310053110992617648404366147933193458777637047764145974426316422611923252630232471445537808226662904412120535052824981262383787976447536504322419562136208929354283954138507512338057661573748025996588709980733568824645158636878914403113971319731637184432199122373346164499559259403331475848655773364237022114297827460434587006803400656999359144742667263963190399588871655700709731237121664583151315306146062350743335332282433868151780149645628526219218796158741611183134365821750541282266186969661309886198019179550922286858050187577353280527417141873101748936576679876350762306433485668926082144335115970328998280604514766532865855983322001589007481287944107552205988387173318289319064312981414735301560774401492514225021322518699357712840356081133632108750477201355714599125129883239271182889582295625408707062590057044915996389063564194357729294733527394661013211437223957722171267819518732933661925805507919955940650551199803189525214989885382831065275476258462515705200027478909702995012210204499906273959388883952034515035306437600550607758211222156949715791177925705741606388942459238186009175035667226936938875898964906892371639224557365987536785055095889210936915961992866178566693176569578719895834815703613159634013103343824176474870750256036875664687631735313582927623357496530044914065123484220176583130469651818385063244913139117800468599401929756022393716937938346286907375546374843456783547813182432471681376911591532509430340460299091687253916035011130427732799328873860719809812398065553078417883079919623678100989281764944570299334305163243569783841278926404055637614279554208895614027054220912321675643905774989499285383296089724261299491942786298279045108452506230493030713276989246204870631868085369616813691267619008999577968064865962733312212073679661551919640418641943601617349247835738386904062052180060969697408104058978213100316942609915035727474395785767067888565725918321391533486914080065125798103379099795073074612173872134104159498686405163501592565616804075171324860286894986378932466592743702623848854383011940147030179142969536530348596924716985000700692508224211461914559507699949944117972100947652107900895659846955944314606972481349071846249071417241062500983848189451606510151614823827537378586432252840171669675782956043939018712935278431879821728482553887609435455260108126603383106092151820642876650666544232723572653223550236308789020274846599086141821028367384097539997761351115483832099184467609704662480862618893942776658350661499966867469267292150251285423280791506871600281023520490393995399201005938456365738552148582967319894135350073080905534852476534194930280158628510134816670000085618786597409135603475117351002323720093322603637710101614861616871495833282907314402850228240406848507145113420426054813587608614136393068253877842146756645319419505742793763240591269246619020145660852935634093577713927307892200882617044143091907541497775081825698958904742790887298120397478333257697336643599056260682332579382817146660739604298622879725762885861170918537142590823373531492471509062244456622633253690832925358007030753862932898517494556038295360951982487213865932953533343461740431097800465258217121374974616814399366325555885154265731972198022102067792417383202670985334790213658886362967255986727205968783404507150315877051239467337243839915373534775313497610862907083808340504274182398205403319578854732906158495303068727435751920869209879459301714271497313304037696577208378591912969314171679015209747855824781471584751165392900404477550199554471037085714198240127740688292547372450368964984544649074210560002808304445136162805161336228396413978442808643219676483809990048704056597547451350891100426290537598935742458506979027821819429918810144740826166128926109229702293527672167207405711409448695331170061601591292003837692156409848105438430483857687788847800189183034599865953979534169801067354204858166863710435979030414891614623904478989216723432218049107947392037496181236498141917923592658174161405672153835755483962369707426835123199418501624963928171478886881923531806718237268391964168510060168335717130386790959998390188193535857377855660176439290028307702929582087048101384691395736610852846899691715747948028067969176435901110756898494550097782264559377293785460726849995385704257737841401484763218394193678049232944405943451141011764676953427963660611558549662913475664409488805458792278975019641784332097839861452099727260088222338387909773106018387909915280400175268857498573933008744143808188321895931373303915011965178401192287032474464249896414271430180697943223175666648504674594766423665533574395528479501847282539472177375706826047775468691280203052174029937459114817472288524046937218860005991413087153414055224810103523443569373147967132840714337027024289261034223293429792344935254378170079024335205295183920107237313318734354280585069082210525828120925768170965199007450789481577474312125991249928072656316000397330175421177831783660898485805836081284898324726685896202681123316468590988865854522879344910674612308120677089033559755370970984180356359265838386706282193455160114772462130490130450705071728442764022811784650861473121952858490308868710486584510866022495144210663343747338638075131426672127011064411956881652458193714317847183682799221159061688867945017671887670754812718006867497308753805918452309155139238422820311528458127198211638300957378367065100065073834255378184930810892084821410271270695375529673400094884889754038027925157683450900357834409725627938600941836293457927664950091466865851739880148664193514835403644740210387073894986510558189345644065399349736628608520359471752920128860458840751814356622700249510748886879196633414828721140873588160431297642762186076165234434156807985026194632650628868440666870122171875853200075411575761123687111985732221604292549257463910080828677816391560830296388251950764325603892928258489703240196303254820817169292334605932821542233567079883054722195112010876426568773564992961483655964183793553400121281328399193402951431906468367894153727741807306426745600728469384741094765342672859661565079480122763762855308410855387568580053558895076430419167954937971871111324635797850998940128455865172409077208046109204425987638376617098661821065937467378102888413263737750716061058459203805774828456785425570426944409566977399055339371756816312584526943381889579540079344093532347015658271503789667920131706559407198622629051261223793455018060357825712697038802343380726066981764098259937472958365880352620738381369304608033513437484941664261877582832475381691182140270156020338115333240367730137697152075962496449898095006921198925051539728228408308480343658932646523394587977216669560704460008680187479070019451981784145370866301173929556695563125092028147631139986423339460260552215354565954079200719670290301590863362328228440090641704471226799787387945293392058599140339210663548026122832196297157023632550181146800445117747978712446105070904776197260803059590485466297482947561975248076131537519376714628057302438897602239709203144210423559033707571727653972693630085569656737158188878244450802653304532947478379233080400019407750367370268808172998040055691840044569526207514426122945510884147321711778429005275105460414799619782184643123325347363371591720150643103852076290507434237225843818593474551896365840317970286560316784554256130364935529423497973556556871919345234541603362556452386047140877061353544423771902953143827027970897723129380944874093499245487910080935325490227215913242590966866120772361502981654315499971093334084210993963339319746935644311094356389460823201338415578814723071730454709632258959005306450283312213732896244596730402127436869288925679446995355462279165614332413786429242720181060461429782388015545064152187177995546798303965155149672772777725176123026825584081445665329667362665513488783277131518240552047207743600424205241671093847449613459317118374132313679703748643564560272633919116244900732248745329280345263743175552333836903584831296314580909935537837859160792458109585994798156690161171264555809938225749013064839784748789819599854905739052751630434630052113249337180332455392226818391236152312491405561134925495418163854890865743592204341798100489070205301581023939961699337162556489711739738590419161795718739754090804633723631592706103617346931981975558263311798378669419888244658106364360270138917587526976854470042677724307566455353755571639905005404868091936859711874856283986082804195531678364244680600815228257454947544675065344265147577147069472284912111755834774506256705613902310265577499038032807773822900405482910671781755346720630659937549796336922250452105702212912069679203620526130693199686257915809269298724312216808830947979260945561462387284191971130212413372970966897306721364223212298658204789909272982519075925288637215803453007035886015590661305077611534370468272140563693580602764749395306107346357960912970164832847046254545307843045006414345053344789858410759242376022424101768316503543280398656890129800731971819120099095083196808720706300751907217877370697941635032467575337684670540456145775464922019637900304258706495693496505236531702806310616973795074206082629324620860117512918066587056920371237827157358391246874181555731829168102727299919764555033360896111023970917161246522125874964357432749649391618915447777535872520147753285087560235532942583066913870568023442198224279240172971094240814726428531142386093514310312280466040830099361581967561120326765456701610773667101670195208488776686615819740563814940521488996608810603513993833143979119823682099950472593177167914050215245675344519283367270405326850089543872985899206634564265423808799799283142107332446913515288545154376523989254366640391605581118120846043035779781798325091050114886614988811038846636594822510825428569951947516251933055911053788952762807851444055497928035245072610212680743004729255125347749735527819868289639105279547441602420430886013791967375174243103424238902902950805921229621981251378639481294735187293114844157067614074701922833492339317168742191499463362022694268444119555783649138505599052398926850959320743587640602212883246426136729653363844990981101967124531978427632950242175681863354940702167977075318804670653350508769148413212997897947775842949336767209809626273752037750131297659342728517988223446581430999576926622493935527174253041408872351175802510974820740446345275197997769140094613425846708215453050566317645692128730355806156597698324043020362540111088811351010516858003666429099746061052007367710261081203935978132564980046580428366859562025980115074162310147384124174408448454471086077270944237618861822793954073137119059008022919777647881017315098577908839116657366063560848781557065408966144527154170420851146780716334576881592538773055737662189036931568352205794203040024393412110384848442394207514553449205398888725194902767295483774256844680720134374207708781894666725596931061532481767836890007938435430265247329968088669372827804854118800481559255670902205172564392393023331104744896425622099749640591305679176664447476245327894660540482889266046238472558858522442487602748510530269039678585249535516697733460395772674371156063054667507577126591426587641425167808984356153955372412830988052897187466572854329124057751842488441875881729803005373768279414648345563079670896653648092052513394178949650083952873420034810772837986504441478204139246920185312356994402175064646895720717903383010538995753429511642465364806975255900766533573775169038553005338016690524017069670580229199075602261565265430770194366004947716498384438415642564279380610398378711678679545974303791565192060753932651561125590760152777695289074717933710406908860601028190549688048319215784950129911928837793828680517377235951730594977807816706326785878692796016204929860211540551202315383613758674694223901889449417857877202073065086817737259365178714603871778280759092474278749480920761091863891380037453643630664200875596535527503017541040685616869850701271487754399154533793338132597594185670338613499869342700020840797096122887386321155322367419154485902317359116003882999361299997179618513802531448501256242456293837343754477485939303648037527368632527876472781120131562548809126121183204508977636714146505153973350972616315923703199954483481884197603256102572442277511360740358185908783890612735944535548867125585847383599704661342805388233237334357677390494625258213355996231728537872737066679927447007717935692732442663540986902712847970239987579097107585782754566917625535463719403282178147917440541788536636373795660612146460275171507853339419990773855084883468438796845978576551930870492877803023266567633121138807261286536302080064144500574631089357397924047402224264508025119335474197588458920950420300370171785798973646894696110833330376032047553614853678506211316352825170569451079227627799785614658862989850848734262864921884620916239952245790950343412331648839496059037757635653903687327426176439321785386768840093124493608872164428532633963221506677483309837326660789086162270276794299086218255682254188360846293000258736139676405683524484066377568389196301772808910592982077665689398545701557226006724033147939727975626773677867422522963336865077582064747283577177651157921234997326262830519877729563234429037963159955066986907904596028286735330063237731141109313521947288075714551868046318921844556949076764305500684544782263487546993705151052128194727305001584299316720630211757094200756493155411118438598266140260304328876190468946352314664074470987440312021394367812194386794635770336207226363389433313880139636276545321824339593427481253651196727776487820786617781195173314400346262478997292657620675162284416988978473439123607902314858238039514537401861088480742355203356689820725945755955406598536017725724631951845192849573347640292230589909015492958153681112518520189666716128597663276418455364732396469541635467734800714289573433245864485614017183159053596011954437240042856071050196807140192866542368046036139101690947927410653259351864789232079337671705006127622069420485207031727497757242688856384847781376225900024551837625449598620019702248180591717642497390449225598242538456610939844807337120294663691553112276409877122026937629394903668909110553950094156812114344988819072445315302824581565454179109091871016204043492632246676561046271674383064036987066813561277211186269000233505414355431367515943728300847518750846347300964978115475061726167825333809939477523445271334878947484129847624529557500212283218708935612548922705662750332118793873032469061621943796250438952988585164293343002937582407283438965592983150084851928184860951035642364668335818981897116868471383046092694229845678980400790185256560111615424056355818217264388001806793821509127540968161341344521907521304733471445549811761543154532163862567087352782905795619171986847978141880226621858958124127186906039520007884297280912838205672531861484540502914067207643535476479776159736896702474195546939915776941190474063061090707183658880183503835557190448628297249324422556068587527390880109579906723112618307194546642599014971927439746965909592470779874091266853506557717501493486186192779950445957264952330843102034763256261183670321840945765744872831796436170708497500391916066271002488568284653031249486725608441530617085858461933763944894879475886788180998204421030007184894422500353543078522949182807873407968322224066404491302101428829878974231453736694029337919560268260985918427101613333886767063677215343184034288234316394299743880277761483851277789267671784191289086528349362772547730475596664183989287260786415497723825000502976004630845340507571536173143140363814043435388358733177199315324775568538178230812906305297312102529322474129237369151471465167846123999466130966051052641571573678840877281774142321950306527577126804411418561659597423325219746708383594829683463744513124300393101305878303828790975333867958024814953325814109139723511739529394080932130647675903915784620772176385191091802863538119082559596528913283338911857432446898082988908760286055505294788441652627549441642875267355950029028352026783009144145667897790020381836266086909093606026599730499128164539282841775808200502805248721402469615124838313288034764093761484203949953952443795914581292508180175682930431998595250277860888039408184773827981339552354563871656027585432874498002779378139063536333272995453644208314170934132680381215603431996622711262711437310201518109898569567373163155707930098317897682350899405256208218584972063200274471843372839147004918732424742518170586528333822234824125026685029879987023671649990922376164229090915112093057735033920434982323194236589974575047597952358116760446818428753209465899396394049228997556683883001155074156126995718847887586775371392961444087237536222542683840208436196813123910422018557101547851925849270462841878659850902761719350783425414214370482497327494628216062813556765845673791138284670101723973384561938160622572041189913849679641749717669345091656424202845303697561245455822897398845342534536434465442933729617385351043883538439348926599899285205553173137161572386457780251508310921137794676827517932544866722554273988666108971643197665024265097137668956021265647709166567883917832109796085683446463547253147084744242344629026120241353891023707252649203220342052094704507170291310393515021951449654945977256994429564352756859787713430156340234991308196655992974361367689222450329108549006976848728861798722203160387600836462872018772340489198006652112228284902024186658248619560782051594438280775210924143825927355525007951066320460770514762903129948578028039343045093173002671789490742734411186205468651820994002085630528186635498517083998642789797664139185480492109524585413548256837616434169113651608521326093271239808950680047940033205192428687222342435275463561696441844821263557403504920669106357338751329560189546480214077907621164685934438833457291304128677859693718842687610798701226936567684940514914714566100074726038299641207408794805442876771115194567822726471813294043310771390996951782944039703940096621269181694257617966480122838088914794268998305941286130300479017479318380454042632583433289329692686396547365998056716793804196572342988894645844975954065949556346086535160749857710550194929678075462293752709768777047851162073034066222341784172903115640258254146005110007944600761560150563928551679120914547998298318251604189572127627993558333085564936859501107538882124469962465536155646286376304303264915032839154588451327172318828027715785347840119228891985461871741642868854817617800318823165568822028117437692871023482035963207354619124190797043650229912329526249898659610900543933941599332508368907492768568907426524099940902567090308506711911544512227873210441023933174375300157138334185397830442797931192600001375705359344622438928079502037086007642864210206059322810154069246586355745181626331919215456731248223534416131965825619042138644515114922884788636764964245554637207604530293052352877293273116395825096134586331857034189785088138990998309768332427031943154529359628926916970194070666241718122966219914810891115391730188274023964565389337197009246934795165723890909906069879664284248293085720880406540957881651428799770450271077249049355367322838899212839656221803146568871042138780678547219056197515318180486735994561768328249487427384155522831914747732767001558586875616521330320402323191756157708708414328227442860524513586863983381514647674863247228043614312595529263172667370391681432115035524707923448939055719463188335072205954432126640464653878045173480448309068660643614064789856238589925235521827837203976057974959144627367532008384305813677721623732945355948077876818882310709882123485601016217640982347496525809029512689854775377584366848281787213870421709143112818870119233563588092661626084311289170093568070599996848278219626229428629269300073006562440309640657280099060743154612164151270185887659912880198849269123602265702272742187042656302665625036522445904283651208875476116000220888690901605236964175428450805393834043815273337040662204671083832762875208531615536139298942720770782594342781113271120814407872259061746162004761531877790933986153088206976942507558316115587745521372279369085340731887900535234222801594433453603591961213999299872807664673130569376384649047254331274007529352175673138803710934397248687613307140963282725793266237323659394956499210472834576226639475439666241086178306343765589000079339668892059572740217116551057327406721682101677121241488187208560769945935316195397294617533460616952645610910332196516001882929234203745107354038667906181422012926126555730784164514038367068842862599987488180503918956875296550751779884172883857361872976840399901267100803455104255732247916963336841238281167547987831575592266349610169090362061797598576176937305734628344033801047103137691162485744234923546410653395917303844332634779139531451954787856035177224818539483883785087233896201525541174674615026680106091183765862806193107393174487354399782283920148236378805248491599463322481286338207403639578650744294954449731810041807376090788746382483576407512806770985542524457870175002414069937935202712140331715957964536454618167407833748381939575150400324436615899277766109615530589003664407257393566763811195524999187763555576878337591887516424170676422631844365624686354350721459230268655567563867959426490275844009646749217320584757424602748145484607720975020078927293899250183855058019327121918249938945129098572160172142076165589378935538722604457894373799976535444963071667880991981546923871256500426988880971558535928055510180983794689168808117590483844807839280559573223537982576084085656583391260440830126540276298404116742393089110459577911093496014049740197252679801008608191064835272309573020240317262453472702773113090925323570035271821441774720856316689209367247174692422713149873644666229881900260736244009857546179343230867313909313487731689428896393366126524099384082218525196610885728130292219442961939327365169132336916726323261317329991887509763312622283781728590441938773972931223871042496524147896457732476334531544212868046982817416193542448286046165145400524332745896742456973183622181445664444342432019613611340846107050468187941841664525179729995447622909149060651450399293510908046412693158359299546891220819375958847062998328262714608027179788329637834567712910492843506639315681064332663696176747806047885975349738431569625492372887966367803038353408589739695003553350562123168217758245852497236730398342807821282359576926796419093446015940178139469862777082116232797815309369727937339591731411368513946946722505310576795236429828621128133654732869764369640456789623604552619760480824820978910411507172524430612045207083056698553598654846406448208751781791739482116361272073878767017124332394453120258114500966732437879552595216017492043261812143310701328857329137625870982793440763156751265750005985442705993251017000216767093023061327974406073656577592806498029205894492289224641237170191002832553701865302306046182468232844663589466734916951887115103068398399240015160611240624779757635567113981570173388613548848800095656344113922744914484825907771492953953780396594879939500009460713434322734988864732632784168317767865980927143422496630052396684208500523814293706277318527566238922964375573431630629658963539721223066926788555951861671670362787047104656074606791234483438367977034538419897644533532003907059666144892946094593551852401299641587594482146975020956296517324187552676452793841330132459911497625749257562932279248952417832203766872294909484258427744421045468569073522257219970342824520752899634524280458097949194481903495455931358688649397891786824420163150048102220304653591988534585334482972515050212791085445496536732535308435305985854615465542196029932701307661055767654260667041686006884263112694055308968687868115518303208354678539009877006049151739370400242896543284826514705753187039471745395117479094652836384585677294873000277820442235429233631683591819287037880515690950935835540439515220331919953148016545184146719095377015260830365088700837745507583462185239086662070371449187355878006456659351173773369063677251665316628745010807502820696076451395690268952547687525048432050921342574259713274798806135390491674377204123713895902569120568764690380820756056921901203463629865370256573418989964334129523843507366239517243010100813540130207259910034571701423530880282270304541543645052565220751754640937805835465569011417427081053021885645395353668284336157525611214136395843438934332084195778749887014405409357382812302714338187332707493847536727388249533896603124957931274948225181564472080248297452052595799498541216036844970360741589829234761407845810771098954591327428881891521402137589152607697241643749321978514592334145319148129846501418558069548603896191788286314622213579518557300715339965432689387336106239967780253590091725351335803223483940122312085544024054871533953843441849608738098685962414621602955555902497891761312499431684379134475422187323637562008228222484328916479394127090296763888444814042752205967569588105373368267945097410817789127457326992850062110087559670254441217506172360538430723791709461749995097684606273018277824460572870761125373967536813295404386492733814481626695123202853192033670608711790163690764196241585563576705699124491539874325139213450100498365850104095931370231507868048248305516994513624373872253865504950708451761353279629077731909766366332113721518427760038588009994698485957009665594829425291413504188579334436011054872448620752989133722272670927488782935011387213756006696139012954895070842803415643514590063138526778083648201477318415394300679550590208118566288454160816905221021481055111920526768642181561078960728909228367178645504342582133328316198309360962341673496358713204597993546927826568504152401142636711451951363633324357196597241553278660211739556358145294303917714625218867720536903440300892990725771053937388086975612867430220960568168133230601601316423255418554673048699915235791270001537487175420270221386258272213651397917524678003465106299556000294202400314262946962728090901936500537950981332653884083417884055973557607505208307758539641496991301069480226858225641172881825402627810219355260807267216539604713518023145830390076527629921984378421283387951875877518273972163421860445526335924323783987442451423782763181900039037237807357182817768714609981146083757578772350209079329117022477367266391194263798258643241110051048297754577504609483142400009239203624830557595373550908007985283056236281106720489440226766052865443572953154337174431650501221044190178468386399566963283681438075674037389792079361446897592584837413738638378746657069099173242319252264380119015439118290646697211687712662932793737831925895296599032822312921680185094213789915158146017380514517379185447325347630170850845805017020102892239145109852339038176292922545620671480037392802591863162681622268517512647706091497268208939125141954142609439312537841651972333973278583759627282794273858368072722060198915154619743781083563648421176142583171388439048107415047645769465290116624654527467829996113753550385830573437606777980047861829585255183795179006521808086057504845792951797053136429666831509673102397306710925834930472451273981126924970010001555575644771128370197306328002395622635564375142804210493147946540818537681924247405557871087351544660133226934278203507386075056975425697037936781641807413390335797606913440219546127911143224151609483529056250139472185746444134216978919615501303178206545743772942593244577691101958277245904651225371820244475175074746010261823316327305134270966305650105564833768915187204450393874806329774344038855219350869339692921861547332785215814796891173308133297325245495087132401341121160337106468605924062504188396665977904985671169813587872809983049728832021222519199067980682289626815400662021413021676025214110103135187555598063161220705351417592932862256535187369128518734439194996875067158450039599209468678515035687363144193354701950301991979324738709536280374923084373933096975449096664970122204764700868183369128447159232680551277119476918168760141509527166267653842024150798142553818897425701591846429849607903197324384238249595068076260125643404899178094898320641229185869772261105946120750647274412699622871723064266482508436946973865524539137685618702605036535795068464944917686794263472038473693203282246831121596793983345925260354033437019414663036166265701246746480677015583971238054570835720614611045776546528891090708619584690907136662273331641010161107597782733535683257049393103102565757075875648568047792871955124723276873227166856975666022340202084885763265746903840982358976138769398170814278010712260004532742593054133019232925833037057673420484019428528611722954568199642409191199067821485674722860695868127654523854474930627857880067533780858156257773763416671780645481447878221498874171935712343696667455250635985450019785039675527042856604610105449084442033815664929759062236666462057240396018918048705366297012806882602321785753740762933984779081329213596797600138424395095878509313008787055193318483052103490827922683368111711300318405925383759368180041193398005258994019486499662539200387377002516866187870475838359684948231055166412061779478747189719425298640647892002758074319701581636250681346710135246821269311379678877199423604168135458738666053575760159884869622915991807062506341756726574728648799817576391538531726585840274138253289884091924098305018459559472553416035937952945746884056631317950428926979301357398354111986203217690864521408843402013313900694152644383245609433700780338638116282905869459139211699649213182522013091775737097412065611882806116462806106089875199324128191601128470811106483930917069165115814825783118836031293480503741718597677007660928002140614964065460113772764806912905091724567873529661491214216143730514773097919872494567667505690614128503915724982710908098739628353913194926816941649573589265647161654007625635013093363987619729247213698870446305745125332640902655494764567427507458961440749196202296457931807440746607964198217633971243974514958087079007398324101469338376036194973917988527802615818744843378882674925384314740633040300423520568965190287348058918596234153862007423367108456597005333540998538530497355606336624457561552640183535491513098687790122807386691727226476283656326276509418919224266946778908361960434330007193311302555632484250491109787450625259365506369517535369269362075463633441478166269160322952510849734071701072641586865085136826874430239663267304925868254952477057487389639125623861806259261328153681363036875561537092157012584286695674029985933672250115603065983145668077928841029440074417442253055288051235421897568519310783153406540322297559885511231660725816572628678696694247920294399989737717604230478644392613949665719462911316986846678150800360044722210247108944685951983519063709627391969993401859366443030592809817186489134158702390733876413194554911218292018523390306063206566904098965854267561739519099405020931717543391418219545437445414699762208472879801055911946434771223923902630322813454142953818151003673602912081111126695165915135024761040381918342387599222039194928396224851201233343987736301901161534102287399916451601254505079168232120540339924644037121107275210908278085575441976636554448536160906740886653571450030469766721868149614732365401786849839867585231609234992559049597796387787042091409679109199449241137306886490995029935692612641571053639311123136273151532233674811099191154433889877306917198298898829323273505255287256787657690869962894741555908692890768738460474607082440456648539503243857312961119602788350625289322830805344383064250432069959252366268495406820335883346453567842997472493654271866805785623742639220833018218092459007547206376537960796055803367093465252839676356445932853463165048568237829597680405935305644653163340640501139153537036085885777857207813738340640759884388861883387482928752515304097763986753548268787765485710116353942413134646367812621802138845121935765518327690702164714799511806234218033851172511596258030708970981814520405951857203377911480371668672359842716048423889914814826748805746609890505264471996851298830939066946675700243488192690970656768509070746220665031259822912492377798787588027828787939861411340805406745826956454768194744680117113939347029299405145815511283116529319467682625505862283559519043426142329415456019326295251221513896124750661653867409348262707133717186081423082467678928294870657009948119798420297176053606909144978140420140786720299347668615650472499930360709658192393600393481912075895547339418993045751595709826220516957403979836715167547724053600486647234245985390315415805607053970981088351188452120782861636024590131269799221960892786324430246514162410284687008346612172021252807077218847240810829860030501471490766610245167500708417489585192234769138644395490505767910828315986659218564207873413465053875806580796097365834336186175116536747641981780491697790143224448780035784894384182328943485371612745302156234057671619219721045330376680943995235879635025884831422355727770342285258008445243952689683987160113989473052971550662932691838138098908922506989362763323130061717060639603620463618002555266361182863725994219056198317580915676067679960180127068858546782531730788373880516095902865301407006889640901876416105457144125441117813714417932746725132297128382243301215205285654917804191860933276465361536689353908369111313795511756549581593815862025527547764536514452599876749644690530942973972586179799815246891356207345425481246336781116306664055034360949458532356946268767919925893142385060339331268362543284256450515118707621485226436187054875350622108007727804482539529444673558930791726284744194957833444773621076429697979376922178412590590416139061357105478694873566339325430713890698765790489248303967457431664729606722592995719590226587382460223267417315529450861450552064391739742772750249563492884598289156304970681459048183468883046551298171956791043314555435259252513131136311650296436840417176163031867205109674564520764641896594525794987900312488970041213479795002231787508834377970246146917056347508520831710806992369936408206798884194825014157279671305787288253187421933972300324756763515882784547332251804076591268402531366789918451388709147221601679737396857016529843372739690728567212031388352716240662283082472907149547001731852942835132165756017504700267039037852116180737072640337242782411721684656392909134234461294244506435076884639185436142358087941529226062617306193287245475601833620819417639136485088826856713849105233897599739817404232660245942469876058597111610275057338233880584895988298514528177288154069554617217508402504834007429253194147906045440956506029354104367776348039311532749417813492657149664489588951992983863685752728314543644584425898762291043294375411102855011346045184994538400870333133583437794422827373824199624240473714838160698547001161002728460929758422095531615416190746673943395707281580459987651070320495547038021684318086512621605871681364214363673517860782031019673300987099150571034799380945616312723883067342997012141547140494529566777223206290410589153937593041404346524467449149489454069389237851413853366282042449721145630702666616096183730408876021318694001050541267371850382124662476211295174114265223967380843066191137018446108642082920975797320435948649071240090832252067724423425689648468741848916635751728897467002046640196180124051299597395942618945434716480333804632265848582123329995183303771718005498660855097850871906282092925616757040477212000428221792554885989991700721116079838115364154658401989425344012298443806567909554861701352173434772404258986173966745387730937123424606833765215903816415781855029706203435701414857605297133534453656772514864929410016823565423734069489370393655748348339766198004089620469358950768701745918221123148584977994368240763293083953553159094380755417147968750474992685350399212180062113281192759889924997472678686434616948415134334898705934388232173426754925702870667635046085797710511375944136322218078769352480082876987796617536677166742936826871152435095690056881400899402614013775092078615888620204370477295982261283706823297648929901991216696989294879820867883249653874645083749830998851588402220326242528007154780969210256897553332899885580979961439414164408858175612289586969305645460665912462261386089932090449355421872231097243044775395873140839745826046659581913203909424841862113151882677031371989811845023169601972979136798593045668866419226161355442394400115808836557056915789924270044325514652839238041003522961762776139046178249675795751958685153602001571333228613480635593712428216842608092411423067689531334107867973043977625195781529546036050377783500681038346294817153680861018636720027764089718838239813432098918346881014794631464324704383953826395296804326699577521893857823329248548034230374580218884247562208255072312950806853799878596675928762392271819514323187318160137630742989339069379956093384437725442612622935169865325020052666226529377409579097999776604471182277254946402026838810525587401896410130157617665381720948273517189463458622419985435649256553899269943734355453612131973592085257454158007945196332184734224870255885537892706824343155178096032291861381889684279435182417532375805724280862587362072308455531898027814048876152788062563266338431915738015239062946681087073463661951614366094139184522874569180987072446856358668833678831107334486143501457905666193207650482264235837362054478316136215520555692000603935104031156467288120329090510332824545902513545520294268988857498348156919999992052290658719916067833927955690479870540585175208787202826236983973211560122725091964352453062409439551290115165712084596726009927656936165761944147336736101511337980204397285462979872409112370965699859639524663799260168510045093439436216880190285676934755539888564594143142857977254129430670556979922274031543764043030546716313399032827326341840738592937807417325452461107332966042995174274931433879322029269745727754249606919879668208071258215703194257589652738004621992353223515036838379087991331915237094709148307176910743484025842105878237611091221576631037347729490138085316987797292256912657795499059264950145466482366240125461848046560233086457325081363566923320971308773715197678861565595095003918965519557849210888200550748284691600349828037075321887182690093933741989388438569007724882683896365721808688049857914900157042484363063497913806967552918055670823434247501381491387622522667102347464650402822524842897659087703245524660033243527008058211047348428832246117361243868556936967865497435418300112808499393682879233315229542107963949440538009967109898389683319144574935070068954825824217128338222644919492587384375674611005612112806448837492407628778388118783623954188858266801425173031443893283687128295227912339227233837783371041937231826411658458300720232353334925544725776816988745297300042193914839895492935097202980841378291598408936590860232859856513889905779196019658657925591806950965569230009705711819567603904068463649724251536998103259048412005498706212609518253337822185052838131353750652037882603922946791651395989685186882409671087963217062368713779166499381112188780475354122142919221356676955756152604549989362616068415039650146768742013760498093209072889067644918783319436733728031853086183124116377478710179612676430260207905624038055431560357378723290650080594903428206914502443380351123210013529162753277832913556678285627931693127972955182496813161963752347118261334337703645604298458395501740872321442340165090063894577150994327000836514715620214199754324488345088416309509087819366469266874502801768291406451571654977462149666604308574295689200309777888620280060813398963327038311105861130865992016701245972997678630763882283468148658825201031438540235523218452094025240719006384290361306704468903487632694791695976816917272721607424213334643258713089385482667977493803685745615721581685008218991506072334179773204878099624852841519163623042472363828538183103748146245871636198686680776108051039210313540994625209034034540610287075223442780747059790730931584639855435731020024161601386239011340319371759653530396376688785159240198068765879277844846932560274868478238856970782255858484425749312328377579403415357445236130472230649194607097537424985359848937851080639429292425082196402458184317288581476506942912727535151258403131172373976235560556877011911097824349855806926970330113716558648977306303996538040221464175251035310688010297363841401579879103538780325242781204629290114553602378606176173740087536009287452438079645602314136088186905537234631280747056478318883641488736004099086114625244152016385476976691976155279091878815985575605002861583697042625189061196689462371403491538258844990894334927879176802648988371562355737633240380919769232922329752208748730711117818860783034335157480420063682589565231328271176459669169590123048793967997491667965301883530119931430201995694700716421221791982610140622608307780868247285982405504067938625814993519555747088937710906155330356923444677089057836678335025122537672906943735770666570943494243696905377278004495062982638293041195485599929661886954886583784319399984984585234680059859954183460360310801797646058085158605272630977538886249276140558763771477397828154725874701872555784086321463834832114711696208721884312884246938632194725873468267435994010618957467928876081106917042595252572603810261561297228850577641276788483191821383489609876425646581268871744101571048934830114289906435456166141458743572551234978149684634008155167200748936413651830573765833292613039430327678216344463799997800781581643867126712399051199448408496341373734799504012289540139497757666244950650915996228462083878251113550964312459380836065260485928550242459907616617497086830957010511302540978305501307707114963592973992496420108244434887588601521122054184906907990770172043242860100511428740780285547385249678712253990488399852085923927738518865556980143233313198867816511707973147523868242941017365776776231408099489143211991417427464944476256855385709725145162588450961415500493566567604545197061620958040546368208786912212371872551784464014307271513205864990542473497147354029623010640580531838708946618057113058027459185292047005311882517566422295113293601736051020185054772332236597287609834015643415347250340763352488083118414698705955505113486747277953436551193954214308519212263146379888058823228144612937561533284156853643269419568393966914747095297278513591978025745726823153798190428595006456539085892211966654518836872447861182549893692631300133433281480196066556678305982701775908076884091097882488108638452751778170572816518002928704229324260921325816403993411954783251460799917173063942804614035849976331186599903869176507490237401719263150088452005461218698567446163109600684430367924908132699773347440429253981003629480989350085038893076088421962604118588962295633892197279814413086865503621313519615271786751406251417886566445713822340631764220504936686306561839449118541325847407138945837001914880536565008887097837395806598196122317475264267014541062039712397287752914430292973297704047534070403150380848393183153686282256286851351276315669937140679440440914399085719462573353926878623269999506022944194018226393361726397716833863434870426466093277604005816147336452614844023281308002017491038634661431013434447834156646733048084440461290439771347037131518142774846432312894503392920230146288869721313175651280168057844422282976840152658599473266583150405100072176357144382111760484690186795984986065481472714573721132853560091959427571108810638119581175297634622997020900516371789084121404278586269222274032039731755108035716352680470167940223250257237454746805803508824125643806646412924297460303408364901524192219085210776890298384765011445136506384548598279124881175738112225683577702121908832155946388321544319468279023971180362260734271917287422370162289247753569001196308188071615947369738478642889357223796957746151056181135097148060075959118146289620829683751908186255848451707702063879466832990699847666213683454045459957568106778955514076395846481160606760377288618826684653021287825002495787021286278170459822938847021908107231780217430482130357278518458474520247146593642087931142596341653119009724581006561573507278861093415095330354837240423745847089350836499586945414028285305214884982171265403504388960939893756724276546084658240396151602641472067322243231975007541764251284350171085618994473012991741843727045883396290987476517423051605487489555808054969762079220955611648484575133977787695068825064599856270293005075679126693911066683140378580379942835970797417050200990991049298384328576392099050711357184829969237034712405874977935942169623271510647812060642314099265803293912542937369311869778894362788901506736853592964867938877495969411728229360605091791789181475061770001498710858017737101701659961580536675621817795136495993615357040566077055074481864142959331858925267144620417167916061670337874682364228511195304604958590345336880261793024257522894376250604769875657507943172850075329039789572933215573756955067897838977575784327719874762940916154701570408175209164034063073773701241448734835210159217355919847607111418787474334769116843750924840689856738051335353189778290698936380632655980918785751177342457468945963748971962681508388088955147038470986145755543389270912794054191357292229629336433608043897822074744051747805929034109624242853063956673340476804532177867272179905745147451619593672978403321528345402378372049264045392244420214758741589214585382532176620501341060678007708914358003927987694811900263937117320850123724755534945005144526118315440577010013625938595830032233911409990828727774817954765240776978779477295459289862143362087487647685686938161688312806085319002919783477391863670752242178155779695053553826975367323759852458523854651589192039805843355349591251064632049847169342107884972958122005912844112967594898036563490751525430125997480066737672119395051633267808986181247697347704613469198879850564998558379534212839791007800751024852571151113538020232760458984063184919636091762581033293324498475370519693391689340128755498858738359195329996861181239972940149245843194211068029166853473006357329020902838140645828935900655988727737347003033484126717978952099284419368951246615878158377109440100041192823807408608486059666702762935871342870165618175986833229723505054019717688485019264603000577533949030227617794433842979206577780777855617059278730829885272139508543208899582052637966176854739011796741283976674883754458990599415211154030333045676617765297133232941642020869784584270631652701717437761921827418940957895817595511786057555590710451998220592432719150355125359923539085247898624093659761896940421252561325717775923335101163908173114203928365506468010460050309530974026402757301665035709773329230589867088002105611404142324334295642701720770406573719908841605468116874539872139262466188345901804238039914782295936833679801244171934438984626739416172597613248597684909021266604019849179598273387722809407959778927695430614450309083354982904051460726109167263551352566865663910675269310119167969090066208361162994881107735720480185117590263422149848920999615383326871993075708785255438487886812249129120329137953109901671204390112290179679994457578825970421924544587299838129576854530628658319592749076071287252276107449358972096430646396206868259738233930496002846871958205961469656429099539077359093384750794077236069022099032130140857920670296664882179956035484960631003933091220013232873373519940282313701118355249159183988816147016436795963155260282199852080992769662896533022549300047102880912704508602468102149007903155906550866336038306515893036614591460707776048985476692258746289595444005790427935225433363956403786008231418113837704191074849253414278827711412885330335159836079571933646291915339524529209248718271500250080650432175444119701987035448432219710860821968734398390468503841848012315493703856677237379548923297752633070816573485644653166932178227767439738353675456660893142589735958683878274472004653278623085678821413728386018836167953400819634009030309412584593913606867815148726229010860297662826094268885116935883542483208699967028983491803840880568214204744842453776430433768737678587428499346794998442355389554787500785468245462313820644645454332027454234670191095973305028289821580895914475155594836943866780156775554161050413330096882278773516844534067338213921060476512529008792180684207482375153770958630275371322051628075828663817831229648096460554095440865169261606334507928205613787476567996017152774140484125401053421231105831764109286022712281735017091723714282099158508869486423911354778653136053689263489498092274303782636445161353121697807301392290050864382671827345317470169197593970656837663847898484973705392860015176773148751886954197628592754051664026710636362974950086370488436836440558289442900373537624834047420750420715620580216110072341480489400594072399716794862074992029467145483061153431414277477294112685469864873692981053022628027573250422242091547877529460742654040499053183719895433491536154692432353309534376302172249963426819429250528194943608582155499131919786099135616735090738704256304390851454738528648768848523744280935971471497057221133462725396295212807775328325366259993309864714528507796721369062851651956631008754437001951604153006695536966140278876236073547836500068551115001556149797099188348330446040246123034432251673218474837648284601308949002539392284289667310792917175364897333052904577515858764995121748939025737323066328112181688154774399531024302309169383941342248531163816852842702211191639823134908656498722594499497886425956410225392265533748089311954540172691674359618399884118433242673551382297824788642926198498630044482311326176606049910722028338358480305253058721241563045997092354546059634509074440995918533723637232818990141106610761320337818269190848048076352524026783012770542856180289590612360812638887368889547751774249454057506808988785994066915508192232275986400653830415231021331939406883257873455356051623332218096098643047709555927793288692363533894997879044500955909001970397526282842606930515102955186136359192362960350668678077906745164835469334240928514641054476419575291707631744686135444249039844036357994894877479890552480058115653158902575601219661965365049181436678444621195688663691769598447648922957387040901558008071109590336104947135706435069954309401435607316220398664146336022767808556196093640896069275957131017971988084618167723059477756118052505765816498556731632320053999186264482008634151037678830141711076537938245966800565901794336991534194244473195583277367321141586288643345517722231022283061750383709244414378370093087548779094413701869724714155977162575835098115246023141356049560222414377927030782044117816301084972791882507480681354783583094606645669244201622178369681102145361060427759062645347840915551138815136019165367085874483274427325930206234579104013019760605889408145677433738026410294201047903325139195840343037243519464789697590011406656051978069497579210009470155184938820503391610034944060547329299996931890861199449724298146272012444586797208414825438902738876896823094027374313173087994474252906672399443873615434113545286794514974964359908804983413690521393681741064942630649687247125458624509066208782056301305749835839886626314596527418595114303457226120802595115122801877222242993078155046339051330487255096275698358384403581424209088624117501712479226248774230552244180105961847067025626053038600311443789151544269407790595693683130083229865401452416963568080954955078837582178791512611184053157204372632693453838513112810179800709643213786396604222954064718992860447200393053143337314433685881962673641866854199216404332920235562615296065406138646998849622803432127433921282957069572987198502494644182104213431840207335791404692446918950397104996368236591178276372554958731085101797199341566293257172100621998328932928494550900312888945715320149673419626438032089775906595514584643499950651958104884438646074116611954343423797792597603726414527551957782516615331842645011040479221632913617803130281465057182837747059669708240011281826853799959930033905209840292265406057077299989323308776178678796346867232465738075707670236783848662183071090821985583326801674908851427149577072495011501572953061485220968520313396049475223054983328514114285568133169272966242891459798943958501229098618149771741120470258871579701137770215879850404143951388937926590518156652081430136106171997430091401143367409567368135825366035006979249401667564074420709096771509009486481044119180759524349493673072820191796639795770769314228547010166461280896365793453107157552078492856641387952588757113739628651666851755060043172394318408108613768685449672519400959314131516299373283726871889381587075819540627832880044830167450984101802392360249167892374382423313572522810068965315580207838359673255493881606255869889112822147757388372569566673417751117658058921987005327649730688696196252520176542280552067390643754611661923215855998012906759196202847589624514418135214239713921553086097368253243094424110539676399700908871880133548479360583364139342666638152724518222074160008679083156288322161695645971336829260661682492059905710424324846934755808012434416280835562006039976054594608092459044168269848243952238937982994891055408730095132641296496709931022569346909040686565979611808793232651110769191508245441516169404535942316464865351691519636480897513634111349227567874296629206211760601857328278723012890184544806717870449078557891963788876644448443771714751155903455804177705804863708467019192690277437226550392936239319655947456157370402892223581509459893595513994356661100810620865628670872535973329185420810008384302646711332598095970956001476298997357013982125897618244596622698647578396707050025121553184662779492875048939836087957794779661682221876745421752002746679605138775531230769728036120649837589344695340293444876891271212455791284498328030961010515793235853463050055556550715134489247585265526196262246908722256443794329290281298715430344589580960115566353683775311613849793130846124931010407033154828500972777669385533952960880160011569388615548685056436283776512751124840884861000354675939222865717060483565805886469946535489204346936086520700293041981404840780139715898279590237712074953580486069077987374076976856645574495051762824561169788593596575814625849496878568561298290669386935274915734186917707876685232463837533329116425852803230419559365291900812959385364358231789641487972375785058795097270993223268665560804906618060809276670294151657501889402517160975086696733556294663160795516167303922715155215208645636879988560809744238395457111912078177229214287151629785783732421087397937426268413771539293333648148317421359784538492096925087124199914721824178710545760926140178261503367090434352506979094624418529194417958203901646151954120594879729871373765169604468892906029796121180003426411825459627065522970082208589338864722208387323570594111702773840394340673195525824753722233892433467485889277879876567966192053640744046819190194930627458867356611200825787324017934422567092279919012744848122602139658513314118882405479300797096353436154946213523259614695051322568528528267610332049391576672308779090423311468718154470989975691662064079357759473905945129135867720867138039490519290867701313921681351417533861555579902944002155633591646374098259610944388850403954751692578236196096243499678674056999411752803777783347034813649677027549064648467958233119431203804949454182848675642820863065630520549224820555282143240286024187242412817139758128660293627792875056939631575584875625148880761421193884982058243485976107077771206962689873175874394282921477982745006178419840375443194082860782846740797029675857877047688689627704556674799406172376125431674209667153383653522130154224028854547791413076815835503184970127419981358948062096441020568086149684257956125271413687268331824974037452706353022704112435787917263071257720534394838561096744707612300220299690666605951285381175777800113347444673849421196713368825846901463459949170645255556459129083267483245839397059286664932699931740035351573280389329606554615230571333097640701994240345187926611142403101004056234710875158818028613694678535142918085801625834200247608963717039054420612892777258876589780016901472694609518484944498936167584930013367955185216561879139828869535831480990203885426435299702913727624473032542042597272373769587682898840820529362925747993068091516503887048606392783268913867392006058738270405165994522261385053930120595330499339268493836095412570273182752400568457519135930929965422996143291238816462651532130048180999206619472178792134581989892633594982004292710371906463688218050176050263004749488878786402998398910557386581838837578892536146310292026981362352108604298439276549520829766002289056133664834358297740355646162773564303905472933577202539431397707993754164573555791127604419833852531865476579333856799962697540255020089646237592827898469892193995873797137922431709926462239520845560220636165407032661323809417374160728541648930353182372454131932914303131451457562217563972904731765185512542933035972916296863240587754995692372932229418250714330484920689175186794880590572577115009275169679604457204342599012989710389871368886359758217223588275237732071917444890691652872206548300376703295267236955935776547516194932600458449506490305671650879120056633996009987953367652531692494011734142992374653149181409378580820666168682432550036782093427644662634212407137372843385141611562997798551353865005444155288175384465784211127940268697753088852543291625783018039956850318660231514575695138982736504437393190247536226401228031679150950355209641680164085952072167275269737620714704123824895914350056399352466637793871430574316266013324833648873597688485901668574512387834855262017345837290129555717618612018910229280410676385077160903791246947014077900960021688016047625014832719947924695157269404229503076716311762139315640096848007033669983400206678919194708872910623076228819134925815830326289751221471281936307953742864501688075298566359051495077144222330232113718538679198805062207480966989043661309509741509573134680547464582427212515333177453383889807505518505620167920919172976805946150802729228109591478683524028930250157314215032302227139827154191005770352318736738285084827923609489551558194039694927321921798149124150421355898660088486736088538144377942050044841638984363969053286045089325853015958853183951410334215177714230695572427478806048591984976718631061328855440353485195932316820738336192221564291310491906218450752520324035699795939051821426491720763858030666302874967299108967291858758572714957843721255077718047816165563591304488186590097130391934115060324094479711089572239935288361026397099327470292969681799614685072208501227494848155514230732257265607416952085181460143296654400512434870625768148803711756571160713576871778637129671220852783120035283649403430242712331258517216618042094887972141762646588583430946104863730399371687350735432105972994005838317393006790546510599817932029442582477243345096858097236063924434219917814446453528025390685917388368257813002103166883447214482336371636921302705007423759680675905401397435552246817321406638044223267264469265723839544263066254882691433978010028484609453157827050752141154668388122656464264429505198105115744744807147666279393633117266353333273429771388335705341642762541577988002902586306611301102884338313454097229618336088382801951851254769658913221280807106457980169720279183841218058654928376392921468863351553216925704226490106085424976673825601612164821842538814741365297967565836382463215861822126470922153046220149135820091978525948429174546213297375792083453222145224744276076469792388206436350080523561586578351172859661930182400685238470027057147049149493829112622505227311079979876736426142573917060467294582936511403489525958848579579759388346998648936465477674550086887119953321774318570436345834552635315238874820637813715528938371372938003512280827789920833553720441340865178511412962988997143250966902428703354130144527869334260557149836486849183288182106877699557227115777585520384234365904080654916396742017913964608908500160463852270323667338970270378625416019467929592047844430810610842816654536548919566316247109112888904446108495230299280719256690895248296192015961635761324813447027958057874878658439071206855961341075226903360041515838274624004355179377201690798304899880447761318371577630368767321243409101725358051467062552672651647688640915330739343066551675194679510665197665778618944575109068109610660759463081666807240693551740993214330584611994766730211474983442946931647245569223579957122565409965953437482409614751019046562692598792690140728901077747517489722403172898057588868821235395973989759244315275455353186897810370965900938688683377888991682555802989983200978626844944034974789743280864622923170578022741900356595177403688286416807263469807575134770587808493621086315636260541986869850768157180648456108828178714907853757027858816996652935064500128569399994325143291075195173211422641167354511175102579973772535419730551300315157295291325254856112496696190976999291169600924124079438932427141221016905374028771446934983685834202305013538534840425249335945637311236114536845777033446056731443751334567442362638792282488147485701631788459561023001191480647805946586846195720899381587733919822226844969145422308728656049444094736593465955952271451522131121144366498772216129912357988499841840442188028620434765203581749691098640312083782325951461432676803001452771486260791639521627605981599689551517879297224269905429035006509790510177753985632348784258366671792966927728848284350611427266616553327425714861207085678411713076540704329790845937733955927355266728354595682049192061658212959481413664499887372361573421857835458314075229865638442846341825205066881979650992369504638838117059846481076172748245825661802111426132071954321442733738563989672097057100007877828613446654789586273465243102197651613569141373858120769843418797085671251791480827611546904711622416858473157313554502882462034034497265541515354526328161253512836142854357705228090768195552783821603065231816468902421813445479235059890912891606177310948299522797716195823417760633270609671068318022437276043339366199840763064199973688973696923229814669409057871163286827485151765319231587470898930707719722533693603053450613015288940983210295285448792729895187410570255110024763523594277247017170421104263568270180736285850311259530448339785421201116755517547194521250153722260708269410747664654134558087286394749475497203827996008892418688103109833354750599603214088733819616778401503025672975180480789079753489601999012215012077270133821019633130993567032613442987072360625747925133308859156284839074804540916558763885400168452842624543783010538108029871088691043186786177237016883100564454378473672235507055041501027838205301332680803280548037725019647233347749692707398209920609517085573578285779873102982291225783502288977992014761698937010180701906910556221408796297851796413657416845463299879551845744750958652777119098380921525699160509723441592806986152617648618692658613379201095312674110944508289105035316233209588084251105933796941908258179482259471233664471536378976562245370150353244107058833408737798972465321561295931690989809520355244793844354782475387638616335185973690906586876354535641900944078840127033647124114450058377167985526146468430196457483793890293473564068916304470612119165973816825744761814238422552386765050298461039656729251608458746748746230913595435933658789118710889247651021464665884225169700688511666313386134495277346071894332725199064952988042874654223462635679571828935914344892313060923870661176218951191843455585433357495851896794476370462509300451923194398711131563364247140596893637783259336034691133711528431125047004755619293373113313829201784800267015225765231491420351132612800563485665738999871240709357959732611576723283697774199435054204819154298086321268613468545329401691283523739690329693736769906526545447661796543920190154161021889191147121556834771845659956695243215019233093237718320629444382861714162179980411910730424652145670239141359374067398169120666983043786774871522551025728076742445516066198347740370044255970791758063002230213261928777856642037993198501219911445921068989092175406076367235924063789565286486847153446988640303010336732531790373596237184199115022254888390118332272303863528589895768361768923902182302204744168306210249468848323099695284465320356268064331518272564322827567570990398642500613448914472616992185059185024869006722335721339925909630520268301129796496803720703346703848725968397846736280552635222074195950429866971451542036848899517319758485224076847922242567472206989609281059519598491593661580638434975890649232563435289999100730073269180817476172574577287162844577685874690160952396612751807781610090050901644945480892155460411800564324936414054037202032871579071035967216357691564842172616530840510387539323537122482146657330574677481305313916060953659734109714528515041876425822573909410648700891470771339618620857284603100797253215235359271297474418254673943499126166260305082951708436468389728926616575593241011739928476837739842634288471752425298453235465413707065423423341721613969682662697548963375240804338689735127044144236262405674307255830760151564058148067346497745407300701112883439214555840537662441017190585212756893153550056246021731879344973616888525510841788613396936611877425863421481629325153885939905077501949962979263289071156444943467737290722970072131120150953743089391986702036613502289685249105819934837755941570287916426678290779591436907356664290681512511945907878519560638248808831398995020585783498685604236563939121900244527042776820853692139574405871087884406902095041625308741051117995051358065119639012833277648081493474391466349540586288978867217617321867145804594743338257544019783552241683809927530210773953295669712725241617603402365135922426625104586746870110595834405625740187663265257162754863956638126163301827672515808307546595405087699951593132942595052218159685153794704031637567841094175117325464015565577658249338578898981751744976526507604714837957368542389342353705463545102429699684135605367918331351905601384240978677110760510289618617995793203995754706659956489791695483298614692002169213754454532567530272483469804460221747982197203208956340803171331153983248092324694136046462408075912674250424970920525990597838341598185911072089483114279444958707922670445305068125662049700545531670178689535058436057021719505808382679950342094039354781044006510316994637606321980402907000801825256456998448714284000416961502543022051710091537972310437910985358057302020113154243993549029741610354696860570354394332643167415033777391919583991911654915643917393445009609361040996641546239484761474378475808739360789872246203554402882664303945907897769844145733952268225241826852841159684655503739234354412000682602221311787750552109600517804722426190291535846278686481748281479931830051866381215234867783627128627617610333070082912328348569799378024485811787912695621682005938368949969941364986731390644852447945424788848980720614868522003299835114498360109381665592139793720510379399444555077365982950208210331448350910236403694661539047514751635757194139711786076365622028613057882101837842384768502818659754880508881325897947810988193053104527237205159254651539945968346435862315259115830161322838058651162995573483009426538928695809594116481673483005827578069448445206191938715576750016141876238473512365573325954585730652192419646648460811933889926309211074935815387749793540871907974442115023671395920667652488895279389705802964710911220871329576375443118910905493505840107876122183242728611740130989619910264213741384249931913163414418175330237692815837060744639346325997558146465227794808517104228105999476622852804372430615728789222410613732640025748434999055035134075307153940685359372940402158462622681827047669306547365923392829431461249920052091849220686330410966223109347457709393325656689514203046861458511555808742671563635085705852940749084379351840160029375046473055826274606221334190633660169273532770948233809133145691678347822485845877847683505643567026772185491947548765884411019046884139165663257656179982110505585129386717303567761876013241551630006850984938132888986576866178645864504793039740553842291741579395163929731644385095963271079133074942827952562875107777698014662472813245547231165799248814913959817339417904073834489411758895501876136336854100089660529753989797300095421645473857731048513486239209059781231417114622868596652884750773952186548562758940240797308731576055246919893890046580371684083976910904715848437818090783917951493894784717886229916376461414461056360098831376763798252396777019452041542398373248048913054736242005093395217067996365364650963476021639262434794104012922763196446370422686831083363188022254751123366086154369666155076343208537555186066522006928739368574619175323826381726943050730513704024626011524404315847961982698072979137335678654443934336345657130081592090503844510838981518210212510876954853335848348466847076883404960371247275358115783577834061101091118823147977918701936086600708020130836609630100177159949913095353263517978316832843919530054590045415003164672260823224353426004070018791070975616647501847765101050922100014776379012766096998044187154593646753784926110510032354864796219151375453113617463231227023246319817611304620352803270534450476433056095732077599188286035509827369025063916079791675565259518288349629879559865967858816300475221139096161972037155441640984753784457483887621831501490058678522742911358228051105872243380715762049297444255085849683787138765277990970501818027056795837051053944112472718842984421945152722665061511667784815993493828134766711661819870657958329240324483468365609631377148252681164959557965131141886180695378336351868948905586535052084497127345392324406017712052815874783460340664175656512870031152840415251407459288055719789256642239559816063764429997991966322549795038266935316172287242540744941381264683275774582921204916422380587029119770277874436805463369487457675699828122376495984861548312534940137892627596763193146776258247451650448024020661463237010826470738136481216377802810094698234768868269954222278673375713301793338671154638436203004200741319177671666163292966549205220965760094544936415888552502671949913146010815212107707080727956082377693187374899404566870434296169136189498896408090440808267333864024091050202862766323610397187764838233415283306600335596733857821540563514456962423297511289076527167094310101150852651362619116453886305345272451286355913703104912011958865961304644651726599586794281854281047843294441840213447496943639399806941389100101204480193560789046813703697110221621759895925218730559746451894278033313921666278111223264857981663702397249155189515966580743297970705102048888520161080053387529339432153986408634004946798294976864379443766870902061167547975663550419239573988343716227546082564004953921020863778049655041013364699034119553175979876447987714815400983777277881078133562573633480838877676410554039406549976941579175762672817853442813117737634414795864963374131331766019745152105222694140528278439888849104504827010604279421685011186972866249440542880172856071377946498073104868914227120702168859913875273931227460088334130496793015747318466129147607791552065946941993399991498514577123656529249816947879018350789307603702933055106620220161065233023640746527165885556342195771062280837320099173303317083599203797365462982942916582580812209256503870713869099909620221190739068279447770814847312973813953602989474904429961808645556725334142699048616005398112833251827197323644507550829646750053968898661527229717775698171854481519755335388672665009113381793755609092214591543545691022856503063676901958666030830454857928557198762683095799525385622073968502289904361713141403682893859898797656898416634602870765671153244760900072110512771865045688146201383252282860974278800105283946310589537854014933355806899366260403205710244604271504598348723245231808391701575247929980166495067428495795477163952712922662758613826281522375665403835004727234231180022458093017503568424471244067617950979698350243715841218979371605336186564465764749668949643823575706268849848128716078325628467026107524342608953847919604091490353012943638893375466971464854502591907168351144517116583920290434971355135658075694249360131784043082013900697204944082897179988992153323669470968042868257022947359820522730591137710404731491078717669946177528935489384378584049346357856090337151011923177035919133509908584279119241201423848109941400990663988847645214177482032560514815813139688201443759338178252396778044350287904737703902313794270217724030242643356032625718186965956502352803562626214114428086493255402505608178533231981143522075054809370749131877591099778088396349220073400474639863614426373022474717480146570297212423425367976345893521626776347170602039634151365655950563214053682184854750071419794978675871061508357447009461678768613249198322613624179721048569628101182810350711637248541932972110122592151361145246530273360220590845259537357761881565330092522901016636493173051296046974667723814423596790414020279392961116698982135970982792262533368171048766088687158407070003868485893075449128465489365899935249589630106503582359497396444221805155354833135958111379845540148100552635841011256936784148336482887598032957188501437056479421712373670409074656143397970292926141037214313978393730117603661467898787184509126590135923199430065402670143152198632802261093576344835952842884223241089041801816190496210749422472154058582154109971986240227920064515396249011041767925918563922181285783326110621466736012916743643596274264289239793500507496463857432807700502173167427057534532014250978621575661991342893000051725665749762203455404434671564332342032043452904357242091543243237431992151178101283421141478267180041095591712183061066052632938030688269856002545290594067169131266299565128362302440799582461416963524863540324723563959424992886155898791140417585580697485099811618789997470142473346746668265323705527257367516748896960856356202289930652151332891260124987379211520087643417948909242649793096666703658742911617559527451259815268807590108883168449295076154710461038172019958305324558293586750848104351798037127320214902561206066714339146191783219293277907553855971812224082203759126532181399291272644236132289461285462309938363865362426795340373556451515289937392639653660688936716621973619010262456586479426083370756374788086601532459692125652696140177175189971024998556973592169360627767784660672329292168633914077442542211994746598989799533867757952842553665130067797032041970041503217587758315520531643310890802352876701815294218576810469742996997751042994045022590101070726303596433821178324790895764372105111660052341879212294822970529917826627081345227326128868387733549479512006263271202661098800990339457854804948806436786126139350142970332219635654592818223299987415565866716107194319777280478097857125595780829457316347151709636752822483320023215755180631881285481613219070029743382239055420312981132769767686247569922834068252500188485433051917963898622738150588318693329716816550424439908298807436516362596502822734063868151497865627137377058592649781135362286440065768551465039720835410220504398580333629417268809254950523036542377596194163471842063791057061983020214926677893469080278130560892348309862078467041141006163099542291568488197857735119846021209414445495696961308704641225054429064632978807808547353758073595379884512548862978964238837962397636861679042362507931865724170394846730506249485007365964868592937943417676602250615866286773435396149631720945358226361509904743164813791828716045758303406500652932341966529672561844596451171818658892719075244487097671616061674246235041573364330875381550972698197884831868689478892050610461035742726826173213040451172115979207326972738326782142251526377972282261333855269625824652691071846274551959315741950728756944350429000045603128648674671201445517676219126999495990133655845055866045326315695794270581950463128468174773214176753273029902895208245175804792152395448305078851576976075337545426055153676192424325227207997177261460033129840346325056827597686975399209308889817366107659985929092084478461276674764655512089937405316801769868978494971909204461049137994746353218819879004644122107993787234484860206465564798330104500119448865446556548651157183974573811479359084030459758238178406611058966932602142163631519052877947125777174706604567365118061048596807135290250489921618826456183649866519623523596865582608500234848255201113954455375039530518422248756750175150515223942633889844743458950984516881554099177084947908772437608439826656558336640193978527958605063783388503505701800489028897915809455114077064093654118069358258170362204301298538783810673957998434483200458101700632915662391397365901907111867648561598367459907835884936938155752363228443593470065428511462458754567684252160162934214226936238443438825129825779400419638014769306083297417048335137375193249355695108066307611380239965980177500863906606813252457604811726735099031527894781874272237205563966946706323019485462968044243239936289481996408007984049957183495478238169142627407005448496665973567964531049736529017844711003448136114552257367367900028991851457535191183678553413484255186294633113067947227891381044488729046043202529285359520810511572842803617053476853689154111833382845631633688673202509573965168860719188555981509737311517456336796971606997465525486492161113963969624504992629897886729968643404425950200853265738467338248960762399052770917896750943449955956104867373971835166220110681520018551180402585276490744665820829233544428012997070225149967931994921773660813051031047931836142094870651798252104868776819411348163164121318158347263294104676864342177795690034062114402734197358996359866881968188485754580369839464634177012499357219096494871633664699408064089201298066818613061681717049791127702635304299130515616118261108109970304797464900375431984191906169185501690097898241720310399470430896868028797317437325659875159177399157852397294794438651707678086288590074355303326295651538560188750007919311063042744753933474866691745352791343271217799630434178264056607056489498570322577513146940617007284357287264701539574617983537142257748631523209535942922955660343389731406954083083620990112506780393187799009024149723334983497223365499869417931057928551895576507991294367895224162899103672423001503318962455193527100436165249063288733052644797074593327996483176764744800298675046793665404886859969803953627726665349406475389286210560110379134929542122321444695375435633594111574181065782654271864755937354713942449495063690655417162503663456947318547645554174841326698452592408507512558851438584158276904155470108742862450006982825936440163869296254252955934764821927557407707212463312516524137220182978067906894907063405348297476922409890383088439599514489479217151507430603447099590693022049177082801396130031149772238027884055588232941247497710943372863033590608897853942370609326262013226852882280626126887642827589031122161593820786029004193581745164114884238978554787257716431176162243879073908442098072292494410916475574180431196237332826829180878019825964470473155928131293356596923228712930899342861539339365114921376323076484853731880131045739242650697489460905145814585680833885656428548482209244149416999173073165590805512121357383080090149620058123430457711341347783905718940131668631873317344467918474993363018871914884582060594479130230068137564099511766224935725016389303459859793733175614877128670981634111315447271901622110146904724274588632457706757223491900817900096528122865267046927923051788272689618620815927384603401308578648040303514339961196809323061132647808980204523670379723464172161527860489816395550326167473531755319826396407841615995979471959862775400036544555302711292182579863892451340114224226314038293338633240052312281823748248800274852889130358763187508640915118001166356965838722894096405440337230808618719376733151102126063521164700616963585606254319897450639789048588795471925781776850933293766149862417235772590286779164567238240365522695512400093967268138435345635397423292738318350671424712512145356356096861588400806135458692773316504530183662649426697401015138736634148007188134153347268703494446793065216027952204807635500274948702189763097574316735320072700138141648790211907058444060097325747259595168744380509569272908455956511531620046328961977835949070592010700428390713280203831838365257139100455600100407172955755068906177607890966924770387378282771709136199276467920521808207860823261132413535760726281493278505269422444161921989432599023630705250022548169130490567922766241983032578774510934638992204653162882072223922476671393166262864459297483853123941084541757260067296562931300631569870801983726687612608059320473639365934905125224911175298257107625176391838093067409944411974433181260981529107423899020458444821267890322805128009452989433487402352128333423408313523329093933155324944377831863718316877802927729776158698772006132932485972092442810246108626927683485913966975316484870734665154899819406662432221731100626482651465772585933330399380381166445675882125663767548314033775526567918341874733420083302597194142977492437414110404482929263312950191607055346925960119993718370127615102195950683896673692340932390092349099691234830295214938825411683757759459045091286726383995600376127848145360217261587616999281852087275610021339828541822955909708990822715466406090611250053943240194164319145809428006211830174611298961197060151992821038273157292781403803237863788669967403436156541290982354591209036176312947359633317528070842266980089951021534314896480017112225579480693442758529512029113406892618631682405347634036636557610705834653838129899321589408291781064677746779790200191378904206061455368703677992015723778454281832033749041492255906970480289751804370617644010092779896005381546465545463493201758414434825830763898448158881993138717958551817446042546193413208169063827932089487914016228931615985897826869614079388353147005928126972634790069893040571725571820309837696506700362421323537428574407446959854251321135803959003365223638019777700168673843684162044245958373717529592920307559722165778328177646331793846352406312559341907705540233303415070240029674921795545267207371031343534895245404036644417387953903985624896358802797860563768819459090469537203367366641484684124252992131349656990683163085506834138485047516138213236439346305999802237540315449391333961166936400910968766518185351262209131253356131596524246643579930044132086394716741858996485532813581494978648587005231827114600360049732235005046985422112612429355595233290289929036923121615389456618598705676193419034024702770492026410181307189835573964279773420369469810517407513663126595390487774314099770165158646231409588031737358391215882857992076477401435497590629345909205558239859541354261703771139288268972400523481915455264073011158219430069371647765027630151771805113737092036355605494202068672200085587950896595595048830930011386322650075668452403026450741647376459601603782674027370077598838574053863813369049192646597646571931936538711249561738896391026584977973061684626991971794178103798195611067726648642399067004508485420503727915459519419367942005264486505177318765801657493739472865787526023586064510428917087253366670082738942909410325422052047994653725422251994096800886363661910354976618458431979084537172551328217041029441748556873662929062473969219476915681526542948109281041921631943753882767525813564624372361965069234287473564802926300779781090177660970593141920914473712224746804298663967221513843794885979750596662080378369446697827383556057301976693899807700509480936947704070150870513719597654211103448879845812293141378288661121165353836920381025773908681970153693458889046556846508279419296637230195262362687002281637988913330608356144062735146192893606240393130168062028898538127284065157829376314893911461026536488509096855643613113188733070264682603549254020851960906702047816800267805162257517781775838133040749151713698984275535881080860802539530415264996257860118144641266312535127347648822923154016957351419873693614826716452880524150228274461611731488977756268384655475217423287464603745695239400349648148199687528717009558233499094081208805638133199274211993034530912749702826167475960999601754301746161620865652060792153275641724184782992711162338619160929983048970560374255734792449281191220837625711830288118345910344102668779865948133480671128807702730136838044911269745396973074473157812749327642232571439682891312047732907931547601053619616092219439651653451643211427038873671380439697616906249464070687765775129634888062971221097705328622919222425963115472447821432277314030191774433112981347128742815183655931616130148131077936835437600272319427974916469443682318733976289865404274015885454355738981683644549512978432769286715503990930714444693037277591658739110421994805995789934254268986410240590784470300240825801766502888571297148981197242250360141784935541732621032094507968414064929722250908649404171168758209344337081855578541662339548660931581623900323032147889182962383961155433909384058716314697282624895077973400064839031285151948519703227741405694893279158053998385463182184146969819309257888255256851487962773867739025788783281861452103481542774205255382861528134255417113539462219526463462102907582871180932680743784603146804940993784066461869795031635677116471410461954412998041918402488849152223502506600351812142540611038495409660459363432357414201941334862601930521538463431280459238271937948909064701231966160004841095724745716186043122960940162876910546948862811929859421773280808440900296576546207623080725820089380070547904624030225530967826348391421466555312668509300755541626086308713133963850552426291805449933257985122688215300034487963661533043855592355527002790311354901633716222202199066708943094607956960368002011435918201619484433111625705367206827725695898273004795355550947992045802541222556482842023364709417916259143957922773139598893809470262361460414334836382692473055339902897681953516875195024538622040545981089862005178492187672044437584974793678191377283811630812509169970397157868074488098112357716610202393400030844379575507772706532804195773903178855169664699193007197051555627055816778597812554486731322001941814533568107784076577288614997034508218102884880818494349281028476442534761384338396495842385179752522290856956157564805410066229160159102240362762908093507682745132452691531584949001664038451925477210957748423389490410679450390507363471602691452458671367393917154592282876183940059081965038970341774600612895562664332875393300137397230424579408389876504509988628812558914208081285723534190082374151371838546871200536310728225705906398840789329575597859907867605563540885646668087223075735758314590585611997920116929347220827814082822829290333308350464102896181933082959156949440431501121772987865614313895249899409326015953107140383484476658562769690075341985129005277640606060247427676260033050688892083182384362451291118573880569240689021312224709080865639593777857447185661171176494299582880752651519056144882905991019886795174523080395864963728347521185149334254535811245745592641965311637490676239519233071599823152238076073740578625332422264094326062460408937467335383114992865029092370091273299518624980898810451023873284142532824120361489061524315472856400102281040788181663198913749668443954934659087774856474242438256302877327169342246872632038088522496262469476046415610351829219477018899130000712449236219072234225986216196988924600938757728995084200834041047821603205110063675223136356652617056734981887658253321064308889156110346251579622857729110511004948792497700909496395335967797405630706800786591446102653106058460655740954681149832399320349147802417125912057510093835731124540258081038380243325953193576707770479714996148582492248489636436457486418439432444740042556617247481904189531764988157651902960960409554021755649722064555880171192120029871709692625819116985902527811956724636120020185369419907481698369806734114573065395673483130314398869012979820781198543708367189492405702300565928597651381829219963114154207632117605805095475439531961075970761237049761309294180538924932079725560109159511113075813646630170477316218005357574539258049956439289000646745060977822977816266148081672458690939665739946232339425595562787213940049778876175103618689559883316191626532596159665275049461991829271146187188479196280684544571195404115550964241799616161801277754408456647236703140781776209289912893491839619793016022123794462796948490070950354766274101980957218138475792785560241934139436248555442948756308560330406894981550978217556779629813444660674700678181557300766882559349174517010957146872755831470381981710417947664436714945512694852478447077646508952942148859626299315703411171082681538636073135989169900378997174505080560865787961601067657447631880768718278256457302073676507398151646880834856482084738456846712134057902377601138753053619983304630285194146436823082535853449581166365929647299708369419428166323464192225808002261130904023919221446125627668495958428497071050759602635930659229575443959331465159827168145192462665862420330631750609763241706556538928256916782324961426814375477878126512123843259453691507534349699737234649872429838151912938321051441141805844776196517784692085940171812643229149437290280905964137467792516165078846487974247889386459470967219845038667756790854166969875692320591707915347491446905611548797794670178889682029639224301897932766196207869662896346513345637244026247431642058131381894761380313809355546144965925415887791507806176177594004720519554368034918129507089886832186583011762834461056613646769314516583008194386637495425226144964499011715610295914072633243470199775825654096556872912223204415908432569397996951500241592345230639572511199213174182773685590969128101588457996772536077636610586180570197644448427123115853606399207566984905608309357144866666372890174961065305131329819536351845615643338621905102695731972446419303098038039563992186967493544945566620401110357136529632093625840093151767015326363070416294436173209603770702042156243662784524931320423854142875385673608654184461565090505684657477936838271098496789045397128541421182126052757066457757782412636080894843596295767338024996693306621463751617538342256041955292285780844067757250779964205215994241132753343070811745208703318080799939150229422315812060089605191353813802183774202517413268486043680997983038930153586711314800804336514930759791843808175252872315171354568312245624918414437173162221920577115283200861881105671670260635973232945773783506376991829350056788184807250603781554882933516934088973414875467794144740828243736423441080554772616148139370164439818438054378040634338604552815400604064619808724948754643440936708442284500040995428891431082446282188380318576310698837929095399318291954486585246955166369163370157635732036341580192029481458750123515539386341762841210622968913132429717233497126844595289564062471121890011848721552337433106241136698033844154531935727308226730610166350879501178726446906852831454771524299772684221136741431452348080518094951417923022836303271876052299203477123640016468967252641463984279436242937910159152437628378106845726494211035569376225197994456383243249939861631356505908786604310549630719160369713474762855823094428527420639055789482819619918501792921717731782179580990624742845242608102537203558847706898165816461606722880177920654634240244260172106651453250860819597792770219983968007999904834946727306453826800314594777286404087705350488815989377910063724053896806668704920324679620547142107991863713604231227494232405809333171527392589961660153280171833505511960491131418516846211936537085772093773797446949648991618377922631920524752359227504163742266109967920012512424850005285491952492975455177013709301954425560584832902099170960446874106957871679191284266338218340300454037742532867011553201741794921797115343258288808260882717844461267135205816049189876978225009427227708560500344899752193938354194757103772840703981801755102717641887375371229019566588207731089349152549698411916784165102151858080215569842426524167871007157018245445926176473095341718723018576113405804648825506991766389518058359401952220153378241450487574397890548297625804707359492317222384182561934418922035415297301474901852718931673674503476215837807815011285077388586348899218786443287323268223917741012142982189724713313011626147000199865329070825142218359771638087167078051682877129844582736102954715003482933792152701389764467080898001528710694106968310615588062958825723979789490381456463398666579976143480619796809633104292061271268900693613995239521871385087662530434871290454614225754808015404766918498136260689901764517507382089818369664151409685323677876158379932024991779905461664791577654363272390019461679796949081556949328284966440898008187512956330122606859647130828966665285530900897577095479969487831049890258615733817008570111906920433286775398601655942411068887536451372524989843275193034458139748415701027084232719641891825383433950558300091276599505451574647760979983839635417663078717655112663189659271705409608799219920793159943865499930834602636990436507433403222257704600332214146827204966713734903096436530902450333283659449407138047272309800386343124600906019597862656689447119828347156663831019940910908820890860109532789998557833110028183819761810245207268374323091785751438319002538377612434475251737196767212777134812242355023250478584891510482304588242485060764254068792144234429432604486332880665262000444603331558830303089609679155629583936820390273243200418917908257089210982740264183797430869394681222569984780630112746004845781111191946379214233030125661895200435899693052755060097540453841932485575460494584243185147321381753300070603643123215754256018589118113401299194742071819933953687303216998034470784817419383531170047134178342179400444887211133685047816452456911426436756823299158966164497325745400225887472988701535073395565114873972925565742812572347516686881915368538592418900216694733473798170687132337945983896785827509942153229115064738675585023771111936463207534229738415281949124834923701977553529369545230875235509768489563684822234873836465161616402884791790567957503442506684887532920819386224596071784291699447439700130671726722641997799834733111402641755745055440051843125543336179161482222456428411247604589370306591689818695072601945108019467328275191023606535761297427225333455228373731709108170877089303158623360242830775125611104082549425095421610614419480217476888705900001975484982831409146418449033227168428725340077164630712950408685355639359224352779352016617920921208124427980884165666659561321219188995110159709433365762515460444196746546884291857103450236130349766331979375348220699982177330060611997624805741046571500612025714385648305450119196037126365266923576174779176462612088922895735457233038418539286721003006049324283819077728110358530625577908696774968150478919204920807677573364946488332969252465756467511136337279302370358000709345072406881807017259084403741885481622947062674569601496474226033828395917763439496992753920948686772839559185762113636589804927464593996896180711904019069702959272869033958660881933311950032742517846608965000008768622417015105426663948906886379774761918375382422246625422117736620960530449442647735568808608280791122929227109831639720289602274136020119799720004642238728730544560515396804966652529075877509270239321876315403897637018778072530539980330307727155866663836751577085694995137390551246564014079578549205398839537625352795600880578672857066342541000174830457022812763192879656656032744397284056010667009784866413714753142589143522955135817092562178011370323128875384469768783437075851789066906539639850871173792794414658179116127265459073698369637006049300282192024648794388802139022393240028919786087798474976840975870951538873831790356559574535573960031833448127129286954335547414710404110285481980647974679087930703308326516019633877873043005836998852643085271987841512541835228032725746965793608750141032176488250258461791760987340347849168130479533021693011825616369277938695642014518255995018859802453759398420825691549957714634160210232827459720541240280553692674148500944704992845558251131068814266215153776591430398063104612071725670864357877781619389157526822693205075422464090447082156435819059423956651798944566682631467885689840130311641361811735770571455853241440914515322693868961172436155242097818398381202387345377138502307829828148943911076120938378533707590473563419381204998119896796982426142443676933262547548414601433607393756528102039328137771381265222838775109154742578865088217854983011401950818499867710368462046094811482496339732150127598817263445539996863265250910824859134016881875474923754272527385455318671678921091417947043822996067512413156574440462412049727376145563658908454474073666084231220911682491782868308300061755292137362967202615951088978994157462942810282527320560831333958477100900831143642084226029667939148222060555051463909122030723078735390485369352189628995627109863521788844840725320891899063651688452375287683040371813188259799760440841751387699617024192087691221881285144314869566653050380531177103020140649808825224560004606617621857744642698484340022211939161823143516164959247600418159696103948996170780265778193931199155349811896998626679712146956611252056662068513996274703462834676306379235321188275080526473571673809369623327843469679328635224956686970797041822810131257156440782315494119576009696852623672764410458447478031721385208274886079693233735918005432825656234153845965764594315327977081586947809319750685032687222140510679269580656227387755781566260828969882214541714080339067070990773130822614541516517457836290909341954716891217115575968022807310353894585493293792774226909064929934484813986248640573276776568932650143327909829715035490689255340927053486317467684473166550847294404751974286428496284229148729098519665267851087074816602192773924559844937561501110495333745486362287978125517489383593244415139683810006527712594109782447349776958662769862588991525289130041542486173375643910514203736237983031585881845223685944888940137595177768637692918617388393271888676529473681367914751462693951890360293677904915348778538615751176070056828665801149286270130771947663964619609143837162226324215745778589311084041493849048542202630281615873005632281750917411151999600829097215600956339600495156787444448677479653569389699150726864586099442517447492969122144317191900814108149587484252899250468590397311471343027873452040430303897968998631428659415079503218360208526519596103329572756675952652557755681175796923802102652014049559954715157360619511781391004476066295232393262663803572059577078023270640319280952824177059700148727562232493749903239685284719343847165061703870284111790321519901881276095877113827096160585837026849693022815810481572879995932908059646582138385482189185348844175504953733607238898612555817701059281678654075157672043404207069342466601695787443754479565658728864463000604688690411691976147966879398770209926390045625848255054664802530357652672816485985757161488295017682508882529874389802847422402536195892063986440439965143773788210011920587653520060547426767199418674154573545046971979826052264752256156106024957674255179293605873190086680962585871512691741657327984254824457696114792128429378302713837869688173279744489812827655338758880661800929017122265180810771413470906103391849647285047841157969669444730542006855157165765264922039639441193461007590859232659794907630898741625843399512161565166930961408301331810637793007124142141942353415323539184476956466840958943157759148155048635331649856642785262727610867536482138951213095394219355275007393686397403072868847921515151064205615187550285001419866778707095617649950856956226952705985558589681979076937449015541972727708900188212354983947296291313871817451363143031130639179935135645695306649648238761830641535262020748774107892253456282455967442127567421149761197971074737959676307444297241672471446218524408926300359181839639969288332406142932206311210102936553662053538607835631205234305365277180378140285771813596628272354540575433864771164094726377004688159009110456544504201305959474613733310987401523087245550867085437976107522379103705991242251855608446772333989566344756493310061287296496998057386337442799290682724775736378304839508630465511400032146694899612295035789032641462487354692154032496048311671452145004923783716126961381676780497750630629776730634818987767915971883904454297467159481212270232806091091946450346918089483418122449143890210327999509265345545976628951752999928758656928302286379848587051561065779248694131191365084186127649938924105747772449008743645714573406712998631648267985335486481632385626506502903201753571947629202646330352544099110941645472438148304733430161471137561240783749082393409897548956616132864994358926700924591308985158189204681763936057739306719551012116854883443956761571257302253410391707692978641024195970448777000549779266897032002506749322681655168427299630203912497088101675102841372173573435373398558239593723997964306541264654241744058722499192290518679201256926147827642814274565600453110961612821948951447023928520838201646965267087190430123311382449720190573873811607050200202573707330726582712197218836763318685248726702187784145387536833756298163587080365340405261298424329140996983628942187754253629177101500649981612884609117272703634033622304192058674612867369777794466541378045107624639745072991067190161423206632786827028683795434831153668879204502544215611088654405553409714890879166804468076761825740475739304244875402319330886639227579679343651483448537805880220749522701505797043126840771656652034648788928588831704748462011172623856278539845905459321553908291247125958858361238121934441958993256081461159702360308807094186234400885362084891923566336176285259232207205979006905497880175355790842800161328311507902685636612391154170172844455095777024370533916294178117484671968749092864015795801963130774159054227990570701582466517808438992085315380164402073428410596270327415399268055422625299517619093265866257905972884756107514726610983905391719573039931642254309136905165867453720646429251729716718934986149143802213112288670323238586775933483283709460606038844208576083709536354115009450477859316465131625388651005189043631962904228597078943961033753837903451626391618449050731245374806954869062477996576686761947023450343886608549812483385420037048312936425954402920761375952979296169459319429419359540736304200478521103633814332702330460503214767121188401430758506232103652793105884624850927271488184431549371543781164342172413991070523497266777480882423292111816733918736714713136936681949563396525377795236956606877338626366150836048640633356723992358022097642437406785556750648779858267055360617063261987033827425536907695275286243752731775394329722130600849585159106876519022319415946252638270988695041541731191272728455059360171398132158705063509734928062392068120872009733390570673801017741164149904252993804936116183697086921308041518592649828096991762238855455533164736467137558432885387831549359375052928430641181009954132235714429300892743116807112507785117154050824631049471927692512337856348600892323756394470361560970860352182043140912553564871639390870367621419530509936574381782926320710129073366319530904030463793430361940998251004217769519810397630145799333832820304479657313829342760866166367860319185328693627077521481405123417831047251832857788665463131671807576392530190964822938074726917772445811321221508923966566584570855300409192214328396505617348886592788904916520505803588899128573181954542231399079186676135290100717822414757549207627140510961826513851015184920398683949716485429650402090107249025413874590641748270032914888507122645511363992544917315469746654640270162105011585569867852805242989077813668036052833411463018491713983456951950480891442511233056916711336431157185979856131753068936137462030360418838913923462772577901804136959991996203508939823323622062614073143368343603567863379944930688887317571047102594028599594289702531217114441955325129541239778141845245362408178636511143012411723147305665327350588940096769012993508750994163870185307971361441410247412255558355016676672721382527370035367857571603884586621920363353842498595402843070112827452226094995222762572929053581619666847924387662877882664522128393787945432880414429107220372256821904453643125823326768220256041318462977001715970520983337129084831161404032923581236204495938317606018101215671850096508254752786714949226484783847646241293239345176193928494065427226521941023821484074954000354854401015963167423524042984631523324625297646588761111275703253531812889908343212567541162582208520582346688756033553919270892354486659833180204702462398416012072396895733865077494346571719747924710300965398242038313159678944585206322037351438137480106703989368129885242403298379725932391623332441890541559688199284287550789783313480338452234070446059654267052370375465841873893807156720275184064143720841818037665309875799477901095670237845019928771327559200422221585530064610687695647964259378934413671606589319030503949556125227791599544499506258686323071568220838279898591295158524463877248638382758616362894081833175539079041819924508150455224586531501652272418970489199149966499403525101691657355674285848767979008037915757970953121909260830727899551172641402529224718332635269410708606732319626834524191662202354715817450080388707618344740871008236376665973274329266691345570398447012707712479767372257785584202243560083662781914155106010056616143799934242129986762925091833749815207483237216812278529758281068137530304365718907744282902081515632663857245154863622856812031685479324160753291904443235055953452716442099700559928911616206561118481109938764514895864831746991191513370783005995350001328565458421325802503251785489027177208598213972449190373156954831377251718836160364811923657086406999832348589470800547093024945923945902537140847439627223902979460704111691718405391622372709788957971482755077451433395535238358785516739747070500485581268820613894861548750812243542424309286379954407722157534016395703791944427786602099325620575730808832634155684839861662231895708832361256890114051650473353460743979839453690092716626859273735085683105803925138025768075165342597961234634220102952376243743974746215347583470977340805610603065968329198770312715040005351232228462899136697066054253235642991114110708024676232202073731392350812431311158592441935310576221562496537645249430092731459960309329083126581324086352008140333632165203572901402026091370520291274618406368858553135877621646985060844630688407685407147386058529128411727745757138468562709516137729091227113308761844849428588652538138802767549179217250633250136428203782634836937075500744346156712623557164615081629774490599656508018743108403892661321318113018521891833412694913438453940467888243733132169714624128795795753490216870557123944167548987943517505002706069266720915011284602779232868654279861331570642006946750322339477300599322028507416853039127132175616142568398312914393789655081133336660981413518373364670400380769029199344170106838244021064037639967916149937457340018888530438750992698241803901874390777379725079072093227300955139907605652086013398831581068934000061088084534162952827724859006861082224203071897617279309607421780208571577790304354264292153523739418112932953606177863798249689384551311657522268841859731407395074437775015277724698908609772561870176509767074929877020961334593732848471768059484544961578360388001316856196253579588265930377683945587476105541777133290644305699054262973435502817653325828601383372124118372998083698369084532285369081040658032571554930059715950493747136208386593392555057942502624739366277612940624876681167681079187475719554204556831384897630929841712315966135463880860778546037916434026261092560535450959930691211589123041175919967128884942351086072062939445429424439115812984529526729461307295958332232252838539849242916003250566365402869174441482670637953705583057846632518590837209675392580407032770159228129026608950820995028189463660055768798550349355086686346120970668984701302482883446041691774865093437987379259249931725888711110112734437120929248554959760953838157095591349658760763862800991224931108708986942582422203624403736576569343025052652374351080453547218830089272628159634518089417918428079916139573490608185508093255619797696603574021827232770292511400429903852856106077421946186695199424046868822593941432139455525852157593930024519630695975933690835339212585946392745376883222942715550024996262105448883931742703499902633102558001981061288344231153620751201623442726282671036869403918381842122847630111188049973054867963090994984329060095376620745215435131389822418629567112878499108221019484820327307740346407103140013786647073821142378441328453606542564183530524378870379571837761392398429114159386653690671666012880322771315089768377717136590608102391144808608027287214249268984282453085922427515144280547920826194428652991100227161212810649125608462268343326369653146168626499724111334885951494329520573531984396246328859827586678069877240156484890788417397789961370137728183102509810632139204705094798802537992516247257771767191485494232637383372651793932531463530621828915500094393149964725063520773826625945536650506911414117791035040109855118699818098723020165274031896196751734053660638967855188153499427303373820555485469791873469912009527579358859792031991762922454210474718419308531081624447380150259410139783293600596696352798608019299058342414944764177390022903264530758617777594789639637006402358563198583328892803659229674361684030094248197354324075625003100350006102076774887271030941166158105223542490894005834413922263918309377826617008019745668403453921917024463221932620947560335273843836785067595543523970577040197410374752414690257079834322161062969678490029808595286034405995229070586190343605698140833478077866519833628522385611511220631754812312013324465930668898369286915012996330140839631603267728342600191021340470293269619187008905273440223881107322045246055781258531113731704484805805755080921904113778583538130963339433175022942971259729204976955871365072461050440617189841718925041074245954466782203041278205674927262014545129007111405346704708460161201166762974327571624824341792294135561341255525502331293113762266543728990004226699883683329269309136737555153982532142429149374737244800083457646870156303793027062917067112988849514391234071125338593490979300145357092188041514433000519985327621302666503061612512961271014525696551083211512692421129863170832116737413313341620906840998324251198995451504288458601048139084122523908770207583768424668000447055450639277655705937794213202057675277072834994454664868716848929398863459801955753556849509634659507510831752563942011501483155840078245801745635294183890480547338369542058247853942994043352088668847150570616484970441356683877491257500631033386381750170712613424213666369596554718486844576807678162037804469840106189580150955105726353025635898624285220284391699660400666896072186106009006936364878119650265200297117358881313063953489223406012985813607644851996961973846815261281562217694983172218565826870076741103175385728939986209867170239005755965025569503757099228641496443406066856076316620193762561010654639015861922891728608806234945818928891639562335360018608683172271385309783965997559978659906961107870668342158634969570266871159774799313930237091663250049755397048276158069642606231604649153360486446702337074660653031542163611780539898233493685450151176974177985146138582273100346241186177315233500041231978770351367274781554635540072662593179069361807204375290335454435117730750884430062849310471403991185331399099273743230626902679162482451686428470301283725734480314931153256303677225232740704223260348461033535568369255650754279677265651122209432122390978628320419174341477728379207058043919227397552879686545362789563992498874095174635395633369058928512782491495923482533631390038683220722988187910031098223879469286879652365240635929227049864794404741057278679082991397985155077596067575269194135977691827221688217078726885945213659950954440687099095219886876214615419253944701027618942498257600528274581037330303337318276531362552261768751233608714298734217709522659730707955114962031749975813890929504789604413965568326433373117765728511290824040404981060062740920369097791097492576225853541803201026938668580263806518580680158051763086038773532448863653135381818700732382202091266552684414924773267995352925165988610441539521537160764418562455776603618747462747299035714572165619520049031933314530737312328955847545196846107650912987610314083309205955363255677766052832912318323724723241336963779416245052652756294589822656016358838745655908696085789207109085050730184834446820025395349219972075725186887078434061357669623270731536598404684967062191829215656783429648522912939297821976145002224800865287543622478542146512149781010186975809664948431733427915528766052799584238720862093551089640263062323546392009341376737105428492537001157286912643018077095301696171167229225097349285508688187378354071597849776375839942808619988271323919057328478043308330275056793165221366002020529937041058496099275278600748802843032781059839255445864043653514738550227479776427826410477719167826371120963830972365660318043264563749520464172865933535202680686650676425481436844450087561313986171457276312281698420985874461530127999524635390752887271914125725047706114559236539766701431843210526798881016079046595594594442106240639748646916022392735972768709511419688262817046647167639878548034353457079784852801409141822591438334428682270726815982198126293827728602487775799655124158923713244072812646949391767690945192250125429720364027149572790842910580234776753010280682761009573498184147612809373271166225336944622285878663517854863482161131935203372726973503033765962651681780103837267563357752379780410631189001805024678068617773790745003309726040663909212518877640312297640939232536421424157474481876445918397083068224544532942969007325316054975349225692143633350026240673905152507348217230982099693676472257067759873213626755256976786825287796155447965230910438402658145371489582783997598662996508305480049318519867796563677868411691015607453101334126232864138384393892077830100211723704277189609555054907368207056362982433227713407655717113450910915410441814263133175333292956572589163707816973080581306005279534508471296313455875767610860186283233777197897927492270981897831225008847434651173245892676711135113605813408440004378409260324623038970884351530771365578860241978338154947084214665322052251852950350840370351770638876174782018341467696884918972074924738325635820338150009043347305979031106666637412831899440245901164431961304090048873333878266698689943217013984730023452395444105582349117589704066788712605998224897464027510251835091861786049679819094423820919636054146617899789374106615691527835674091406332562339556106376221281893985493377950406510376465397641401457308539725519099230392485118796002275501329423548935757059444687802396387810333461068489664828224899830983015546410422288103709747334442913342261910766165054452323616042479238609773701694175876374306104174832357392995233033456549905009114360424796246031734620669318338679655091386294875369488202632356492670736686613610749851870113131966410473833460662887305261011590469890549901508581849719158126730007773024827413270661485571650159984421008888044088259195673992471006154432296816355918566507270308325609322441921576452848263412147366151864837588959605057408627995351289457364228626766985967966845983655484489161221664713700747882878442597461889159437482781285291218519426401758050751237591905628049313498978851699626543522361976228397602738201186247205104357311386202137334518224172640151339894412165267053582006720002355873080753571500018002320347167188752771012349867335803274296964259806926607977052599302027676646114707834796957976216594280221488433469943099092912088867775187022099118406050135084508160772717000473087463971685639373331719547029447425083725755934834311940593157939313965951835539112200077537880289325937006334418146656462485806424144937502078698727610780293173152377172225415659974386875767198781901944493666198805156029428761938699640024476963911562448063307435350701724297766565889573486329964261928946260101008103618122337388270468145586911506466142864570187249257633540835915329609143493619428781354877310609440444220239181407626162320679464772027543829989745889403181240441567355215024741216637473418183134193765089927002952391937841342011197616436270334174222468372176595556582580175695157339778441826490886107900057782719751920269901746417143412963877343097671702020061446077367640310818258333918776474373804446565944243876974796893678765125914813294787214361861938166707914512880670173490080327933580790540232903645103506688630526474109622045879875902956494822101796809264731299570313989507114223062276775010977386291486619295201385983534119135241777897406812312498339849450224055444829827678876839541908940033061210814075758101290458936058850582948783545220670345739227540005962914638083933529619328118558389863535483615894387630243062491585004864126160054924214934081202110683628755008509978308036598424209942164504619810495612386506554032301992600603827180595267390266757441743378730153624993298829919727142420136924970853853108208539399060118800910050082988795717328188948385853446552097664492383948208096852890279373449821233762245344264270450820610740053990736728300369923378755500418019686608252586695758314684511789020342485236088684319513295938886179097622756658174569221658202199921116226914598636062164990307741024826257183011828526956454573961820033076633794332163909073150874189468986571743794985647977544809216054985550725615560040957170346905585341378203753239255681773761401977781825212891620164618762505241747527375836421686140421596698719002098700882510603955432050283821402407043431788262809121677093404445306295879921577884003886491472798371388523219593669370240562119052135854267655188375150870522305083390415383884230764904217344852752693220574441275715656585965416878263412852659674106668562830337782637128102082862942378427865979382559756494463547037682968277869520068665412761185420428103574891040928996750504692153846609346381938469826178490785680873540764635777887471323468023246906325654301619098624125501193922867717748551561511359587628925706987581444465939951857700951627523470322883664420923287850575392993158118501926527376019931677891197070733961271392965155038386183959980975251132219848870905583591641130583659536467846102046213100615548563281896773379348690633061826307124332857985940706394672644097763206315863637692570418729723305487091553573269462428906222796114456378525460748534986418533906886073324028395709347519908486154838911805005169265207703623343155773638823500389493598757070022951167373151213498037256055379164893755570358840024605979543676232542123541212977506529859028217951616608997273999086990311283323974273863612356523780650432480231977467888357902071724636019145913571782532071768255569390561747187552383580576852992375853102787929007161381023867138171745717898487933020436814638047139287386178890029990898439438657378299931203113866825308083899752941105863923105803905481288296328744087181519172401769205688175382779594737634369468928976728149517963729671373258619971215939438459831497331221054189666131737655616759455657022990224089596916641207562568647698588020005408633078575332312690543677241264139857190799125305084581308961061549142782729118940955463898018653354108011990459073595707036451560194615308083202359959111548575393640456307496429975515154528797912297521922136724670727967681519651229200256718521801997922583500586636936856804200868838531387440643063704196571723942382037276859779963254900374405084415839931858487522698893489747552331327133560778844174564886321672880385314995428666779208894161971620053096614685470665590540079900659660879148372562126744237550450205023719094454556374132321951447588687996954857235459319432277962252556052520753307888843787386521551881208455998502458242594192957467587383895457190606436966591624096588740073318302663119696872341613636232005796690560826188558680266074662086031745727433204966576570455439279773648360956780024658277546767942399616425059358254424665741960772514443468305765637127487779762623293919113427649621675734719337332568066618096604860512253118656392134268723667615154393337459855949834998177151564149479505743557512866966879461717076959202068464739941259277558935433231325930869032681357767121251618222386087395575102477735474140941656881815446815880973120925997590744538769605968271986740257691198387850225698208541695355332548943094898745892894768561400531169605425372830603435801596003264422876293662447173971941721956761217782744075851086915717526882337201168917780515369884173623137549933697629390176606221177374072888172986212816896809283515962750057892413270601035688119437181845522279841880517298881606986215211921882398684604095858338383888919559938905681125370482470508621860867423166228901786358882115863934941173142099758978791889340809370810838248912116174624395943699091174209225818825572838779522536349440549259197396354177334788915389089061272071874032440770349321240693404197602080706588027611892196151295569259600106425120576990705578998771141008124259504157377184085124838905746587665078971036791993549520894472798723361843221097116375885694768588214117406994743107298175440201048385716884237907291492230646264840526010971730301318586461777086499318132042505175525111111851679961084173029867290265231462087750484169712834840992230792313318818490731180762428203048163989924674676383766568825117857338020940746907900825272074342026050834374509829396242785693543542093388588355870652003119219501275180841351258436071430272992524362930628546860628259346565563586568598685218667663292119707033385218985692612348660576287772575086803254391062320153211629690753972463909090313355318653353737490128648249160864836233422412387546615861098922154820885766401805155379743638923100255586591369021843313645831532743037988137837319892593954096588426368447070422852540090241623145765425854175270642014748747669926769460667287780229744376447294383311044755022750784441419683693935424962716786747571254936833531790002240039276941656563683734952917026856013578256319092772976684405838125958333379012067451012555730936148612293168410992972235367124596048462732858146647264764733595723775426532009081490212542392962730366456931539513672525139684372580345192803438250328771402708123122265526058631300118942852854239930279910495649508219872460870625635972661609261114311742776102719924131651307577667760530880659541763220697461940287794944329791560819257824754085616583877372295702277572159383718602995708187997064333487098278186277345191058495101596527235843647195079175330826043807989421303875481395594503706793984837174752154850769569687161051241223501961895156272028914330840427878555215975588923060439940454596769175790681365070204480198148401527331490277379704180793398883706293571101035517732697038027888548888734600490160480176719149682397769027907069624023383825507341228643413673679546993026127019971817874726304851018838953223823266148359937328045622279985628154682353872450818563485198081803522396406831711805224200952842766707855935746613538663703587658227637734458714837771326551603044365789868456008699883710728150203598168778123922077921051528750940935612458121726805296807149868643740077980515579530440389367890588414312126451088448443797749968496401910493939463989098203926877406526818689787985532107881955697183639207771828738895666238103068773346316027519048992868666348605244367401300113489116291633332295884554567157412988366036780461932725380603526336021746136543509129045889881725744768513972334604700208520858262728061628765487187522840731077011921261013999788335619219095231361118516622347824505758275106393125131583304607308977362362428984291500596702552132164359275407926724802408865637032841482522047191280215421181690792243018622918990044885645829649707722493939379425103561142495060057065910648798817872094271825531778584875745697558175673722173430479419588300061951318740915215545905542421615341584062511209296279250308310517854536357248675382512782597380911946897631473825886734841184769594375876180411013345826684234974931924101963280209472050767284007609227133070990301823495874137630822237301290442046698470575803625891813977381813114525512352235913226087248735463198736176574854615504226781782632418844176727136974096242880863828072701558829304914026767581844538493331040186263255590706663449105542168317774375047418426391898514168290300550691584049649885007311233113425368848062971621006997816935522850228896074316640100489718961890862955768260858154494242742522978992053570899530481749351156868490544127559740455678279955827660092150522680988883012686708928455580926837091069253617696016058697462523815006141633372908461971318786960054989866610079123984100780850294836635361554713216861175272651396644694111508543431390652492848182751235900453549343561993872365510926187764547627021151503648377175106502038459326374185954012123005162816399197712079111830154448014225807635666994800704072667843633423431639343658974629849305743376345321432455897271368321711379909306053344019663202374391470884169445503914057725570307627178677691949687444406651370192558685787058126217014009607528771673597060909596954798518588487260223636102103628215359561128863259012753122216933668927527344809191568136388968924890547275825216262472119884402481142093545658003354631219535553508308835630274142844743673406394320035527598443944070666883949629547713659085591565756072917064051901471851646376738597090361144215058715449256408356810287224252259159880314276361123661047769063823855029716064918925492061400351526132632706318084999621742528681423161453387430542060041222499630833740279807568242389994001776224875215228369682220293534730895102344192851746998835906350957496576532956115119146431838593299733758446199975967742370214245219123474759907189458633016260826254202444115285148019720979085764334760866866813501626832991600808235620268745590835409315240738484514630290836174656932683927382531191672860725624416343197126640449787082072931714064166702713576453994574039033127522134198642256079176698026602461685144190222219542317197613109242093817596621964317779301738416706546824316049238328724623678123722595593311155786035771955942294284804877388550527604138495099322719491546793742843130497966241757373431238234870901417545441457559745185768987819640240752132208334889860725020702193940754631447335162689051576396141560205929367121973828560917514941324811207150208711352988350300174601385348864077847938336262209904806486588618514856920842413305844445471290103211156936497680315554954549196316919251952659397304531456964096006777591055827638675286395492705069974040091621014540466079925806817401293885822245882444435472136495217290871490426316205540893699869874292972562330376554711051003628256738269787912078277259426969874576314888936851696793637903587266580012569261658118955945574412429400921444068536812267827006990269635634509799955735741976194596417170269091077464107017140039346533787784025277027797248379104811285800064526026250701815214423283296986026756171246503907213906983445207896323584896988143072758930300245961748533253672649673603680102660794273099308114067491921597164735210610329690382439312700122341624048187807401932925233779650299435643989410305937316447693978362622513087564128041035365639461236468966844914415227088517887574939867801471940785857319235925572756860449551933891175503916178855980682961408398229250569916580207472872779587207701292963159331068549632743171322862269109981913629384763062684834544896434253609129297607253075744977591984836502020634431856897617487187272996657548013743825756596078868894913531391695937706705063242597822900132606113669063597976208577080803750150724717248319943651943486788771097596701534446798091368851955913507156144744366843046389329682897951871804774119637165864023512562478895152284141152405468431512956144219508953387901534713839147734534992540852539674905325526831079647292328906717374999973174970217762193386624185389183738759203306517907416996661503400112087672288432443632156695410249280238536643708219533058829885330899260155139671608491545857807667448338330978908694247688669169584895897393046916914623678345108007687464857269186375448247874713878969429625917916029927913062431552488743054509725107791926661705581238041805805806135473078376174629234024024396967172531274553319943142968853200393669781383852766591107091776628502462787956475387025914583160425654653215490185575354188616088389674009023342429766074579369009757826936363021419436460315700470933166347774351897168020637318049299216683226337700684528255683542699609624587405151903742404599600210888709187981005494613324068878554793893208420212320999461823700780246310900297651878012503497375270807835372362767560457434433455718890147754048949347828449472750835080803476116752098852011508746495864159596117291735112376229889485860497338597091397018405077025883309710346779928197530397871926421064997522560712624766394480331089071234124888578377339199425646737427096605137067213235142312533331132634560730060963016282109168659431494896805645388481234984826671212486067219382253629916358379915585032575049092192985789776778011632873073870528551463812285471655339521355021364809598933573039496941058869295843770049216832063916080859576412820795211302299608543053954688981802727651662899897384799389765596161280010991944112497715525326162588446285210191665451711031457573135430700431571761517226194429627042240001211345265321756044770297422234880405988328275524973179009833466884164711361922396527047075469027010001054806814158933040639295743144464227548480288520356451244327431396046502061663402795170641194714908057802309621670847639413710018793702862470610114918388994099941407702554033969588869486445382393838922041402025052745629707633925671255386918389306685387287819735653775108528637801100193944094140652515154718012974012924169471888965415952306402875023784992845131074611205840485551094202194289070938225651231789407515580563934124191996027705477247419171118044631576030358261154578000319455217691232988435132619228613476783977606228575586817045307458508678238340166498313097900180203157883872177850543544350691246805561640161975813074631405733603835404531558868078029457162768384562848457765906483385674962685310686621808583180390232919095602687599684175289836785430850359387344937330927027131487013431423075294795800875748633375449269973082887940452561504408686552585133317328061699703908123791854220341857992045958457944406550737673622046815729650887067636589184228291155376551078678240291939055308012635131130634146665076946041797741626168769864729716423193812213004826816920020439439831718572382781808583102386829770365687538763026823733222798886880006667077278919565787552798970126929768947963512627067222762542765280902903195682128133989654092861587694798806897751079447249395914402227710136764887242950873639609423582026413436112219841310032907861811082257017113486747074674733633174134346280285382352144222646802785638937851823065816361665622547539233647222713864163354697502088967086586254184352066734213427235157437061238814200615697839037239896688475594106902530602381909644684383873758856795113490850603220982210692840515399200850306858865513678880952178666627354906134413195429838978380351949243263269111352034752532557623589496132615468635132253085643108482772429797488604037094131893733073299533612361336941144265513449261915842241860234966461752706767311806402713363126471685268413465642967275818101134958317020358347114012373389069490940201848913501015538561723748048429730653636610380716142463658855503186068394211812892446991468607815119177225441394722491156525072047112461981011487981304702748788463113013046770057576111317295268904687699398847585981577851282705953566970563249412389970864526551245562533503817743517804024248193405414461192387690302078668931619657835183410491869537178365329387811815299071749601436434573638225196062870048970647426521327727296868909377906251379076087546518628132471241158182497328433153822909798285690287266973880229681052368633974721285380994957796052248284091983230022332448122671586267953511692030923540634286447265538303415246175355533977358819760447961656872196410149269350803536983254058360191077282328728335696153511740326000464226268385927492728259793543455911380289192061687495389872025853898396075989329410975621366920067098941111288575509253650778943182481425182579679150519472546930402896267905142531374291820074060366128878820999685062572144586947744155042731330772132101436261876538231601970342815118957566355689046654584598589680953308575665265796945411862682248954233520480191159210669278323091896713330206425699758476836987309304005617707439934741671188496901189777310788764412808500811232977904110901779873020952451614133627878221084156303734172306629872166824045630088150230214193123716466587548577901915311635097399114636270539221048004393133697363550531771612495058666627143923398691373955342925813261538740367337294725069095207186223852897713498361831279576131442002521425147045897975272709875951266520091938085745542506932236021060600213774824539584354353840385789114525486822293724104174914665090344730399477334184955461047004002083915476289436431411532844999584380144650122676767578124859185539322552752935034296929692435057678226856580593085932158311630638892675234376281364361901478024606777364794337735658636971944772989183042732002000706053930872552130426887004590511924742147451293858600387355022912002084025077749645953539165535043575578902104485717369126836874280805397147420704464871581302387221740283245639250657131332703862114195428024576880214311819434522412081089126213287940877502246675085307620451454455461248346674325936385539747619353495851064406820593132849213899763251617890665946057691807314722400697680194819155171724094334360672191721395028921288348025063776487255046456831433548070384910261478884423476273396198177413757737801462698832550614475202132518845274760879066521801224539959466246234507660632831735944815689164367630412212977939933409570822570795307973634685684454876873498301382672307099918520003678159951995840044010097422945250426184869102762360200290798919903048921443953007600949309707082954556044030530421232062502694194094372468005358159238692370516205328602920788211753082637301997012302732392572999785292278143994486734372573231745939189255458528033667185232605500564315606630366886193288622523507656736271918443053370275349888797058373661844228606848762012701964013576458984161946647090218497185226044166801961273022629892104170060309021047562358020376469838826404167300811982425715428441520817174516878289205379033521692496710372344625281505899756959715632947681339309661853205737580272982722145491889148727334130264778019749349780535343553426187952908767365733566570453111521268376214189094808348302201983959389730322263510310580044613709141306643000666707754277022305068970923184626649111292837621103019234430470588732598679130462158440891741870386207490119550430322897990601416823668189108984166828204156647192843034516347525173141900458605163503052104682319662511596225022453688039059226933651116063165815394148658886773448728535581394904195338036078803757419539148655344749608755273996706599619269085650362539497670256982961736256301883575509653347745093912713829236926346192495248346024166586227609730370258472102117095993603432797604071389961107889284656578623516138967499635816815115008648575215725914941208320365363770095016927015715045773911950772638373528740069886116705028623491085818050394738795321556501001419837282475529084254239017694888242809412503804801609813329052864915989541501576145208599464740401927149635641049995412168285316679764687243806360574754968398100737184386662219928397351870176779183076163441632140649838303684711776271005305172583053281339392950677530575988897438043201347475100804002902260554248150954085351772315157370802998955074626506440745618598566527433107744333699643534665206685593427114345482070193767985612675090054658098290056788487898652885177964636379308475532464856758409910212029734323288000389465193540509070038966316028124153000065912853030336345996834654059650951117071408239606657325723761661520250900078027343560889691467312787354760486047950233730803170665205514022265418727550264985685864124875250825168822210174840994588033143191373981366437871557014499156632770092196801603437333475284545142188556475027251778837882700426108434263393558321652952550758061551018986935613237630444589180955862061168953965765474546427060024528551877970687846597147743833079135200742673177751309053383481417579577297023094490475266024971879226353745772179172932380379851528150990132570677422145990538000193967055819375554926811886714087729742887516071735637913623560744461384692352395744014864010414301337882177221569460327330880765456980463151495126113523664978837951109747680818434349407776452869890812902448030842506426721363457440407350186517844466879973215212487895304463273389842356984052354307660733008214086930210989147544867870326375803587659563828788810722997555158919150714254623203773548349113214968472398374763367246802550185808681413174094676093949721502092834786496492112420963894165102964510774913626322760056885890061152640568330834835560616180782472986001702943216022014654315602509653127494242993887323179546297501875280981318070393666149882075823463055793416517756513984550168519868956769304916670465107429161444397228867818629838062437206337410872271900517380650898567929894205752394691240036775062501810805076012277759581356650365673521802286712630188812611653890295844081030561915419407708831949783228461158546014924589100175194897099990895945016231007867483405638304075338838387869998822296697994818869981744007256314058093157594333151850984087082269363343267390151610570098765291263372181204549710611824427845078367295434009736946440764367529165305886336956681684632895899755875106654664455187116781897815257723437304176967118585954392263205392454554844393317981849821496612720105959980250768730224603201804509153979054401341934910167074841936575679366932545635562432226764055949748005941881998115143750773449545731956414961982237512395138045918041955621190204807186128774705701691526000462094899960903212949711674163630816300087885915368360900025282310106974216802920849250150612228847536845915758751398833153452193717201035086773208470113300347487087329241552676249152132255910303829622170605677732926749587662188719366015582214579886801808797248430991938999336631196589595786876848055840243622267473074467217959507597512135057201139285284977601887442588287474646091944486451529273832783027512068445170304285245585942065804929176260344474699522814256526237280723973221337918414453693662060287877330041033539830230741588730860237294839640931941177212173567812525422516059191272702070086225944529321849585920077955977409646782960193358822455144783743131145577491754775083524475031156230832367433351878520164323493884956534222966096481187871479756812539223872796470690148089329057411927800971574879342013858963872493492507154052706691834294040962199015660207597410606677066183989649841650299630465874551104698221400985732159047036090275595149927425221904807031389459513690432244777813681353053122333350619138099966430095022224828954896582561314634229381362106733201434729775055528463676947681602162902880299837070471656256737925225819797246191725837169399639746811249151770149830233701727748367719994579004619316887490795105359636083984139964620384360930656981755678971867015945035516844972283671914922886456899945166567543365718739004816437356289238257185386049742888693367941618235219259513869044646031318009031244705703962968912700749990149139308410987219866110245895875923609105964558529070712462632524996492889392465572270807589835132953689003780516460649637575790758527365401175359411556950775868340973043971555229689688238049558310297498860690366821977276430618743317362439979328588065689095819876400409529788599095202131335884176414658900779196808787376954294280274298323301081477833473351133427111950303917527733603344878863301159497021760336491168886294921624200288792778035055663313014996387655613523058280514027469355296961610390571929124131217196029032957310922011571764446959470482971795759765796590724555258616714796510632989236076040110259770654086545312887270603288292181744782755640167136036378654576271619775169057645133815799133025363761872911141790676846188967772820203169968892260009259208809592963702874747844975295214332958282754242480637306724402903333574174769480611592758831069347819188881116485199982885747114647684645727349918359168755403415586501634830868392023617730320720021334375517135341512527119752986032457798494815030115312585425608246982359274461946823978335248369492930509135580405750861000042887815155179007869594709396214548424551049109558948286071124995771735128407623651353715582099547611183249492602371919750090768147586525826938037692018990154352064450969728666277753340417456278021962892625750389778450232710107057820363144783300681303941668988555392660425684311539896046364927813585017015006770861815812459575925289435054492279452990064122610206576160469621489294346473232173222884604761805415140642175757715830600718425093983937349789865196321189889815557531762297323023894156773231027043200345627804266509077869893409638724851795118742782018033630261243245797427310463632836410253070754718136704874349208332501937916227988448990356014071009637671307061368744575444904967041799149042207622963501619381712061971462470964705488498093937921311849514375640449109408864239832562052569798737146030311501243326495840766776231018644137135275605702506941744514314378382348476543137018543350815861821333137473910122297884729978013017413397143222530246880891299019911858186072736614986618623609160344913033310119534152704253404567371192622382076120801015765401820442989958505512660766878003120144436249340431182457913826148413589679726675193978132190612801520541278127287475957173785464728517050225194640053050521059983341083518477121569444453483992801163993009176103264716539221082566820178081233969277381289971790402040677513221662178499290786365593352649288786905515310981394940692780614826450315354107097470716151758240871644716108709486877163604784046279552273170547542294370080056174586423738397070912921679753971660085328833388270355664176370490299846386868282961222367565322306263738813678550541331978202233509492354316114046725788987984123904473596998021913275015248778505771747397150303229480911817667525212761327383158248778309845788076955547403164947837611827254515731926400865496617143184300998476665247362626436407324482541324135510822430708503720009135891468899613172945544978425163211230885262305878759254985265574824814450125961108455032491669322643355019854351667613526640539624262020028715716464426649828132588957360783578063909044320700011572363717351151009319834445057744325091081642640791530410942286938010337580643952743503464786134468906136172334833127865932866533669641514164249224744024399199318156103330479268821953960066528997487768916744386245590511603978308943201067499550241500548809702545319746954072758445053531400876470939128784807634881510625480993888392697901989600320510051610731180109134561749136003257585717252635603548525145893732116806868316302736395781940928865001653358711462589759699050080789428757897260132032505241233493007806809712238212908953361783201700711258304860223159847957828476372647493324453847901874654492526926811373059231423327010179574635409584576638680245755243529959920403076154081493571935991995410455887394680286147064012138313263302027014350680213352504328491334744858749953929423084784015532565360062921423602540380370979875831671789316188189661139777991246870700153667087790829848934383486262633708815161348686549754509707654303606821221559847013673195472373020860515854489963237829141217862260372378906996565188548942934859000396067794325083460772188761472548728170629435013017440778204193113238221117536071478339396449190349494903268871899212364922217043428649268096153507035977212638367686212639506524527707249893431153963647207370379934831287802679457196386463021603917489413268069193374424872812066029441783528692442630767683984139954126306942044657552607384411926600128667109671975086978968418106675116485010274231626634141404155640015084488925740384941979196090864893261887122797079669816576370668884664851799267447628391548945456588588713358079690598453448225102885445179965156006893233359151622038667267552717490154425933690000201849570943690276614882871574017007981362378827143012261909432874377514090395412382039742311305307056322471079394606870854028981083400109414844667512973202415306073294270757237746092656304953513540498556454159261602119237623941685132399078135204405076920878448309058758972892989537281512329347053402860523650757878889739955114883559319123080612193250543568352098994721984680570846964064201875258767579462135534183331626180578259977935647610161588502061767584099975744048167174591260904428055578904151679085864294056984062899656723537239408517758710461351053616112867726133152692318834813822126651402435799585450327410667675470904001464491739000776643007167512810563867899807251739884071565860734794115836956012282257913026287302459274939756806222682086836417018700170926896431010511956941406318267662765442068662848462107532758116709851498835579095122361618671451414720452726598259324515400130179278551691232156809359458098170585741607004301112492854774704260871746448518386634350966982655154061751377551236291114435724319781401490958026582591533089212042526551309196595483074680746988810281367886235257243131367930063318515689500427040610801200669851195379042742050168331598462713903363348233088386709684153582879098552879118578223483164321693340272912260117720699209467754768409344339716316213896134785895383697938272885306457703141481067415900609434401024096519829355589838190886756676498350617155632311329734294693242011897556707712498887519645867164023527698038942858777320151121086976359423939059169640893747313520368317629657435289910287915874477843965252773751583376419558919876047984099997529263112338290019126403532091320769095264782659021646663984029782949353841706427953967889773884531634147289833903332582130957538327255134936978794810939360178896394128830476975686249939946729631598410266600043594934781095921701791951106896688928306952372769294506533194944135977335117454667542384836204014210731354390127724339182900741856220417512796413302057692660065599794200427608163804207892890951381040258211599469494868008850724354841930950786662849351527602550443428920624360850437990705548107331700463722286383869875959690802461672785529400157205431827705618007181617540499253114960017543904674498717497315709739335202674639410105037460646438943742832565685912598764841218544938893883452359124988678261180203404050766997217579639708258400874425224188787157006830817748174098209063186191617960929724197978384149095642460375673246729511609003463652414984818350302916067716874096220852994241734085740376602667432702745424663211059794976246225190757057682984058959945147695038421817074453488216010524577966567955376978768645338091857594011409430976261695044414065638556643336253965287716965222968841500060002320313350737962011453893027603538941837215168104579825064992423158521536929044098393848589213675049430969592282618311982113182822176663884928335456552754913498522136310603514989153354054084047885102347585374086422401712861037799033657595417522315893855226705252339962842917408780704373168024599665319346163986845227574900429174584514221278867241618030055889405212694340136173057490491941049682009532908738796448410428606551782979833124326533396245999378887206898087480891248517268870252160235592183591483738903716646388108931379398491184269641996034268105087722672904442158000847807592499874749472478124790613432361244967599954664205922928611843942384920855005452849981562208423734596729733668904381909257181311546325615812557220550198293899536116581861037263772068387949776351652753587694092029376457428122066005712759639863101315294453191608395011365723485800018963675861338290050635730446305269179601545441004663648975496104197298121700500753617241746250258693074854409158114955184921055559206110451589198825955683220047680699812616181751196192873322456339066720317636698778569527661831936786866977515662076503132384168798000877608940063081729257878554037651489111016128675912541094871340979657664617135235250784284584084316708287742031110720324034002702706187155852370049301698239002052767952737189214071374855297745728140595941841016576567796148388692519562021150166207267085454379001372337191837857014193000009003321991538495924846148293493009074105333649743907384856839088252876549710658191391537899103654866582975522850859962316473439604654133552550426452283199668114130647113404933823423763458867196586487373641174841466856092562868057478460088926887853581242641945012332298931810201855838930175467598338417644111810544556377825387130034151229636908319524401882693735597970326175474585819292158104125121458124243638499178194478598031804001384163151956482173552889569457467742066965165302286963970243766858997768149767015304299476434697071241373272810007044169933927974030988106872695054521577401926029272812436292728889089623177375655317088872590443645248209975382684993224764571082774560140089558659110915241507410686799024335511398574112154110845430055550927741911408624965290640496891164927703772696435068823601008326110162418789544974724646224761724715546128739064014928784652137148308012665182831539021866819015097306788982836075699492584911737290742873545290471517997161152758266073189637285225014669842138014271084319168691312310446494709163397415504300383589738563177549379555420659903519183981144884700195168842959162794425321630577692512584878103976955278342742423507536758142298521226465678214219664931343153054966828122911351714098675778019507550457824310985957191600509225652271450627790365186890424884555195363445629772867504895072789308818505080234574418339189695155366221460350143395436568631373620295445863907143074818660907822152386770830155508731362985287551825437263402974939677764036149061480523445589624887023253086758849562076599991721086375372379873071551736584484955232434118046865589198608152300456415697399100115383150322498360001836540392254688247091024078902276269885059352022652867670980448396806655048663192167625411558367856696376621224896466605443611242344115391856533157584274555423807231572581854051788412970915552059958701756434255767076166653283365578774066614239737576707607710980510261020316196098082464762167917500647161964910464303858358092057875829781651033565673674536756634264693206962683106855701366411578306196024829452862223610361494750199136834058637815492569839902419786805924067481262932371536625247466679171535256973979996472932823125271325924674607875363642267500742163405571339269335638383943352827275695088171874511105124033017390086072604849610357036535252843029810342350696062345796888224923090633233434596953273549466297417564983429560411491566901400369449191575852438694205534611677803960681304401749083721947807442243847447316384348965097138182632805158437342897606871422388018625093516425551791482760866188558230052642737287849954295032849177213351382626181250128219825362156345361642479548607376120850185653116060609981391055601526956140983605969820314898159375826012919210894416595417019013294011480158203763579965207403660438778991721361687104789999731966934165337881973360564272855975216791729644266811074460523101127462676336836754784442031451718093149957012206808351921376018059966812961752319790286415977692667955476630257061145088680355497013279899026975662568452090401126398971762591939064576860014312435618843501796813534037437884293268344743901389030895457338161222317638640053040937416999022840215068393673222062404421559857297881412494946177352093350500942311557366627330861076233282058224983475336816672290795687195872396150617955904203757609221544772339992388089003356801696591775939150887910789130081619435630042926560477512120624726407552618690935477488233197462323003689733005902330167305537781448164202863045196896769552216078609002783896764056673464881626118241161756948486910132709549866925795893002040725200670441508720829726088800846302843799109322844839475196510282469984778126596831547137038749952271816657378506990553942610425477746763235995100114234037051259873588955747687366884476682981512151325205622230009302713201574999343084036699737005192881308125686813530786276644420965769001799025829092535725118214832011540059659510500762611715076052068441087208421003260307544949954972499745846846290287132833435936677808189607662324353889765516144976044903314617565932021632229608390020751504026069458942373604018719309966964454367528845348368541056332821845848317935296051205396067493570361925216511244756540378078662256444617758166199145325421650322848765684613458617101556671661363584496384286676481722999773824571972246316214190746968640379030789095992060904326625939686154931886081603233151382550652463630643099695900956348007941323972449046384262334110436802502022877771977660238076442837415475924243278780677479209631110968347879246863325475536256470522301359570531340177206180833144529845005139422211629283058328664045224633988243535282639896934323164610492185379865845832868939906355690824901522945511935588370651888958252695591437586393664377962214723784754866745286126367765153025364617214613900419030411995190852630373266235297069602500127187501608147481537080572089276624224365662984757747300546859327224988361044381995159440338578719280128814480035713150097952147159905736953086182871045362814899511679156212534737048179229989577126543067395833888019254143478524851545556314039357265848826353417686325535355653927584850049462393891213092383300309076487760597194492043323559588527540757252502716054269391711464962017192418585746956063100841915342195417262693811368184843434665617907549726428794669946944848812608547207824330882229178349551464217470567829951246717437771919303567026210775864325763995317425476620847084356832550985431504676576333050154272983138876497196554737727658645108687926989069358245466743010834609912465757840610054301548709568309706647745824657924629965274465037829173426723698224851401574661649315497855804560426074385136131749944729898659851597085933622280847858391978391631338809068181607439894288049719696231814416841235899302057502012348502086767300647546151074273562129400421951196280810965404142877341959957626221663072256949212876737727841631401531034299073068785729384401875839169550584300730936274295869987101641334291221538933266503203296830852202063835901857611727186730269086908540598662794321192522045052316436202566572763286776276328376191862806823049954225731675976373658876387747777619278968577823945427633588766681658029191243049950855722832302507054131833697452150313676216420403396516061974442035746974902422319492313905051362485685092684173799518818450032833204563431547609229816984258249387915452002168230599170473735264414046158564451265814586816528766041993737626330833166509451151122978605877167280992948022335361640240125761885401878566432418211259805622470672238941555355399098569972719431418625785470041814996236266723342349560421041017497263622177214038745130518257130288319200833902124087131684177883819323746024463313664204495947604205710937287020385970890156034492301730461912807412384231519066648595821992237930101190992796856737806958577027965306476151043757964748421288301240608450789891157924906508932609669484399446042711617408722459030905846269986355514734424690576255795653460635545473688452387264141375528577795656025035233448063848366878787176023056111358350649824040290413146239033797062403635599859669325569134374983795158321999446932980685278671045490862288089881009618573862034675129723720209090150131401113332743684789217586192882550155691886839404356468013756791532062445739805933930468480350438687355061256085396230331895961814811069287402865666795339489241314911145405023112722395308025763426303735648086520866082580215515578527674544339962608588897139949317448289085641046056884890725342580037636398205794209484039878706056018678370103368281771809026161200854577149654865668799797828803818266267090192586986576408402721896789418320754192429512366988536156408327898205629905703791116580188637197172467046478187610487766913800741512060310344850180644067507790346895743157122479403889840043604641111727115214671456057477259565487321189234341134390605923785931136875189123332359327163705796863686522781583606767995077554346611434042707518029646576440191825837680039365648293639823576256414391334936208195879951145038476507393341510614709404770252093384536923900146003664566084786646720230008252957547137498684550857922963376373489169092351677349370238781145939969831475065187167276313125248374136540689530092098393649454154141239402301561117687612465674485781732615385731561389212435765225783093445934241480542998054116063043052436030389698250666995687122093739375522846610301742542820196460684473211420108318737100022772429671964546434503120622762823569794309900235986969337858177116426609426275208681877832892976411100211303629319795266218435315250544310582962173195377181193675668258011346993201396178909733982504927103403048777758215149626282058069429907550030152449168830074427927927485298501652254075530609853688054022904692418767150745705140093280267867825396823660130331820938621146229579402025791833569458605689750711887026106204317367060419826708255761991229325696182305140249869423169612056099711472649827617088421627462671543405888004647149003690363002967981170429058627587057557844421842886508047574427265201519762210441494091410721497753791411076359341672395832151194643122286239306699184647148554669376060936544157471885546965973363726770905556908822482519855793412301944705057296364535267890328934928465170523044000949437261367512740411426096513898078068539106110089119105840816312029198143031205997415646200827328332748595597511793352011189718741585238364693677852811181376720507947373041321923861837489450041210180259397581201293652990706871123102318181727985546706644091749552724478726035475077619234773413502652259765325178699023019125171820336230645948679659124080665591301619195498860006065512216056158213431291267177095054993996615207699495142058833532548890056200157882318170122562102606324738616411485676653713113849380688082215111452873312434087175239986016783917952912025555568137633068974283680274355642450539445811914039114490661719089712823203537547220359825846182694286469937017607382925045756500161482746277148207330808592816883413451446598957257170371436531563457513035882008304650834324300461475179731642878354083765974492384053281248737155058759947605645526915354689542452661152209073561677170454103329819128542627588976334395278605918589875394798764066456231840287016743226344037839052876627439954507794222525497316084340796419049082364212715615573136352902530390366695169964183337564148165794958636662143459731418009701796852178757687243846192602963014231912957413444351133792040296251376901472583768731473810775889526463364257538451329973046528285519176413692350400918473465417378680510110983082719276257139312346988912633640164640074956408387241451164875839115536710517372564086883261636180492906487183750302235797493899394101112232336218170697118642802114684447922406931834212199055857681818934695357304521363161981160867874581537349714413516901071401925269276805107424420648266682734508619892456881648250405681057904731706869925454331074215868016426370003404033243158560863714103582446163672765274545218523378766436826174323595898172577408708256385588759584392282910600266594133369301029953065256585456012259998585177154524245379010412373273423573137469068993421012736677666566983025122937494970643569245261306262013482311604141315189321779574915953125879475768387580478119255966411328684553116839269052127138454142204558197776450985148934377043981310045787502730655997434135380343806851022587778483037988314584212778407020244855036041748972096676645513233067431285572912850794537442654168339299432766094404524880669364646500374089340282684461308171826922721635118472390314851231182340994456698199113461361103381050472132845325546343382954843908235732056222298273201628452742521511000924656961897037133007232260092605006200510978584561529971160558454643242058202662385462711327512703361219118006688107268987348143548304469631040947079238940404672716052261236210510852904385344737628815897884588186843725756321651705033764985112652935073271531481913977105515211640517823413013644022950452263112001459875327456792092348145454314482605251948188525124017514507675109139562933763815817280862467464845085034959502415251705405145297592094120112751759188580375681122831287135127100925499309776142354461704321439536754732125983825986979393334406422542223783293193396058833094609850606936856323300133411979990905457961290457212697718144418309842263923759733971949785867254857088531124686334254605759040909718248223188255865799110662403368029522650844294271948549919734541354946522144633179262174928207436626383326057586815537103832278151513558290906890930003367687745535637368989414766234464022264150176051750066560535716739221248376456480943567200143960945075344505137647857547798881622307457477218378447618139506703892029420079060597170271674369812813734930470702221768970376522998509022756735863402852461187965047528466336357111870380535177580516025520484830177821227875662002046570979840336371517646989455267898557551620722650779270152253694402381362047468097597070630529365573859020712417667070859718716326481923977176947265329835329227232704092187620367861558457000925329944751456322137454251595725365503086594943620334913838814308773235442248611925842029047459740366722641886401265641011537896210860344573725140657274826432369564977479939672136844777338939776461575538336911013755097506324703321089564011770767380371718354738670476184371594162769645389658723502918224060019440637932312558530737986296298653002910556053633038473654741322873047500496236285053567185635364200695210313485700284424309736467752454364158563144206460751302969627619984295541128570681804666398817489972344763031941843506016065784773886748916556749827632561970733320250509933886359537728032840885105276135725455191242180829720251889516278877935825293893244621638824732633318187073261618541029642653469806861171056034807750074065611075718129187017227088131006469603241029809748296630269923493660406364595431246966201380570274637182967232108090152768806698630963494613124238283519358762606611134963579704123484500572603923662909218406848484021127928559027435940829144485271129171307930724436819400664631636546021602256473383458770358143666405636116267048297946021335436586360783476352856856612079905821558206474312046455767486637113589836269138225157200245338400941472742896297373747323990601426781393148854236919515649754761596347087282864831790364292263275329788879793213554943678724251318182353756123598546713004971874658715612672647240654826915700875965315448829405188356734035851216317828257914190560517031140213649117692591238340888476933581359084334787201682809380852829079523505131844541328924291272008732445654519433699285366556997945901801888493883349078569526594808698106344810604033015809432849222097141137635273295173607667525483019146688289862745053583741003206606249936034218119480146995871198811060673233383534139231963036561266386096352690110148234785091013210707893387015855763447152927663996864004273759154629495865873603936570483943344184160228291005889038199010435778059553656755577121870341247530972645163647491571000359761760521040350987934626630690458305256663764259770939893586434877197110991345474447101022593477226517949505423016939131633057526849735551172798441666769988620133145122123027419104503403535135588665498220830508233852209590505440253978177813325753043615245875504163826712722175893222443099335884610874221654679132415937274402728386396479094789530944019465049102627045459626438148901978117398640936503372467586565344639539265729401390165783264145699949768422214129055785489198613669023207469604291774863532154308747215385897457345092863446277438602041432719085036333607659594897345363948698398584709531804914658360382785184281262375872994720859585681600510598394004817347475391854676922379480993252334589821718648777044421326564940470978695402285759694461175598460081261472747442430623650322344416996347902030949201955455330224568882606023091121090496418168746762901415270197649015525883582535689923010356631597764423779285969498201502424776527352305187346959962323163997279241150599754731060653966075934180026437476011606628987908076023576034790551033555239935080442354556570871988978743846995976213869544591894058538068007941955594825670675796828635474437736461250914088275992376571003838380927578723394683903274733901245069577516755550663251399229872364817542182269987200782569817830184442946589193640964589632041673204977996089734596391683121904831938523757868008349555094598352857063432118247294873048055434519442470937044692999117446949017150706162822044666319159481669170515006494900260570831683249279070346696101469364038746282231634104898764949349000484603307701120989153335787605833365425053587648940418861474636754348035230149792150978626204948655525926233195462605288363256000515602583513762694824714253290750486905721197470217253876767422948444167750024565516146080431632671819904290085058645828658916915721939917842440273772616098248093739650480422367463357307202196179159709247618101259635384400591344450022864399303694671076985924333274239562918929395985609572598320410709317560613253851739963811397933028835543132712334682689081866770996639139697105119867162171652847339194220254712911031981999923846971169564647244276549917090068794023623550535611316635265762485833572626880304457029141040414250345814337518792738138385039937732153392986249905709257987574451163531044299246768548318895387371182659541901821874630306836985236608604793036970702327870141980563543467248332828775899596199773510629411547328717176802692007759014822849115609655268908529165172478990955812130058667940001796500527344975552962824901736338466392898311348380240360988206030552987379906863026094343863641364903815849875944762421239869674796214767747397653509791295031966629538379979892548545250065937721774550139964485524654677245001153299421254683134528223043826445189399009286207310896201172920447579462466827428326251561404781281658483424877576350445186391176912238177830310376292412018695950932199406500358068982319386642259296145120728320941350667760087906366811860393779918928638931778728635215316810239412870565326512010199794315337312687839325010086869499929219219818050902739780457870597087324400020308576985012832598367087582838650732868364867324997264369748100412825253595377772822258879127715392262479499991583075647298432669024593488683720251283046749583987628132044531215056136469328847375835020444183966376423437378195022238175173256946450129158200790212192092468760856899416926200432863381940285545411239580415681056816752590284516710642615788421264563722889013408133274912277878269786383491722471005184871543355333719709261416296226437985618348764039635895925705881431387562827324448107022547383527814538690339013286506112720631745801265340243489812620647619037532828278122518165731395143510132975140753724586395086216566964454182754788258147639880952798289311548095344128963395917509828565000782282143412204294421072955716771297524108635560950745218707385715136719221210783333063779362952556998737083654375840116814648483580710966633763812571572905276158476995322969735979218299529150191921261299492886709165808170055908660766909643692679891972745978727963823929459872558839662040709913331580713407413110389447399072825658056267531611908002176742206778341361178403430808106586414416370226582437654623553153517319999967619024211469984917257052588713957372929678070799272890703612418286513666902476024583804592653812832641444098095907781393231006565713545207492580302316336209343975120142546217270500143696686354012637466716406781095898264447327597218530954058820487294153177344630904811321213812589438645754361081311358580342413356989869987068840939576465368227383957683549836207284671447172302152511794335690618553243442115735088362743382169202078689602176295963495743499760001938399991763721718719964942772161866246877004666631205189543120800608595204546278298599294979393084862546965063845761612413568447180693538106172223600351489348659792076395263591724652983174975481332926250885692923888391911747144388518940740690481825462915907525715470420585284386131530745117861791298538510972272708982455074370089672488518609364837212456812595959923563498830804127314204504252319387537534230383101197144497082566665929118017597175444661216253394727087594347732055639546759634534231665558553009657871198005103601077804240656221936759689160051591342330188923376488848117318622425743076584277523434779653537027545917213292834105804845790442553757468512760679676238634982106235093685320648410916372085013535784757092005360190919013199847116472102974993681853830765695046218924091570179634184613759926482919186320292221433420963215263104588668085390220802102067723932388312300844731328371884362857565042315828487204012225572221175250241336719025623640567587710713900794113855517072671323854898398657407322473059761974403784236280001881682672272452067703746787776055434440886535945930817033461429638697751172056984461069855825988347357484887033500458630287427247665947846677578937768841615895548662488559158648996683808673036918380749540726591875542698739672292652459447727156204547937187525265840344187580797171420374497296876041743874120346733990247254246912486887541139867787605812535225446624311042828517406988551271603256487135387148555845010349524677855628414788297518125603627799756313616816510247970314092966167312272883822096017010779802830774207707317719277772799937653928958754227108631574311236318981626909710192824492832637694121362956642096947565698814610043004170280581855927769689608308145767114658229894827097110459060182347716945206889094124379203212482426240980015668069190960185913662352803877685475440104443426054198266381815322939677134415429257597237809332399675557408834231978069133653435507234687413216791250622051394383090191868120412598502010256547063410012285083040502229544391607352162517620917917002613861659291588285395181240841554175422136258252792983853828790240990082615755019589539358286016302467806494847512128581001718261493216201128604510902652856391867936883526486248884536117470941613815510477390859654901493137479446913210483557079323770155475535722590966423753964237410365841991656479237360652499653128770493857236548667451347413937898217737710752096167198340042115850620885006567948022198765203472207453398584941532927173960810594103469550327658868925867789207150070939888881662959795487989015671945039480549061524841661341626701811273095364941439252463868210097526042577460612821663278600974703677777686503686146931604309391618510406931644127965714574330627250319440609043935280217153067566411816891748937687745194857841019593725173490553153310742066085036630851173100262130997791884545914672285420769195302372406301592027248709298388002191336760155912680080367757190755557786934239787899963895921415965598123767021811113018102483900919589217290025384231917168185193847150324634181205329467759357632536670342380749027237813251815319222585676179583407948260982645136679771287951408427266356065823989370651707625880711396710167814948219391997329386632571048222774737321240935295583573823300384094598943591973707500332762528463817738252770528160609721657890316536808369118718538597979239454608451212892447451299730929643722124559581007803086982957934702693827375943570702673716342292722448434256406957050580445133962293207639296039656500292533623792250110526392565276744159716597731345347922451675656070043261545185698004001413243465796024798817514518422436792948652179758971129006800798549839652417183651795606048582682325391795645229447727342060089166503878334249737581412802528045981615200711466235473795764424587181947723550158309969202813584922376878622317682209886975725252425231871210396597428782024228853618274286069936116617258356513649748177568415972393200777535887488830338422730681947798635676617912351205035355201402872367858197409452836932420291975626662957011981073172603502549185429306402647999236497838928111385678433296049254607875013224015255755294652127266033976137778316613464498176553450791686380940816324394716491161002137184650474501699638856947348734931948752759811860226607394202389866196072118107935909689951029451062200419366805658249993153904890357204580819527012612729451297158099597261020585363520726641337126962207472780851054216952613286387891424089221389327146531471158324445088585865728978184643659889013333174970533259208665414937535854192236111016006877101406518541267507897899674748624616357594967639571532746383550475794660274660245640799104253481127280871156639366549449163030818646144937826428082097879468464897544011258392262513243105574795334675465738996915338870250887972929207526908134444301173781324655615432254299283820361675573985121791693921263522233620807004577818699874599881818882922533732352322054625384909294060972954228296699647361963523048147078532990758603599209193252706089893588905955312874067091206870790196789348527783284568249337035660105959231459094833874642381229211353532170665393982797557081213499595621977034466926356283939990702186791654328351502275572789177099022661252820465811280797916876694287041539557486747238862762519674998744493073284879448296412321899140706702619941665120669946000333647071879632382270375161674253913212984648380420891338381251711405887461311446238246063992103945823571950143734383843146654971418308374981494167760850363268740489354643324686061240600471069358775678975711613634378313538564077965817094660581223393155870514848686978319995287461289240288191421047096459010555698353068812631798981881057135631698796420393153772014604520256599120806199178735156508018718595576502565312942384356000609668233084035986229265135844617036122885799893178665280499689437949720704473334744431416382717157480849986989311475683410878215462123901627943326913402592097350367979563948230280334064403605334665530309999169713468530393943440926709265917171767013607155350524445119841038501961373457625819584391874701095031011976780858400049179430085055745185524241157904423272523542235250487297260903592614174208974639090075244107429786668927925417429945982277581878039628765068575183605230745426214274760591743743783807406843307036801450393131932699025849402208326042841271982155863856971215956164993597401567690293949168048555143441977087816177905426243244596597847314710102022296637637008588526054310506753861225747490719772581569793183461793208206304507486489109594576397841720910035877855521345746065849642778704596801896968092760164188745357165489934469323737510628990284197767910417117195462297043597463005249089817462296160091656174876205312696483309140228522045528854184451868140607451213394268597134743386646931408119435022784649499114614944782452976018720721407818518943448135468174992034659919903382566592017108182367907766518796631396639620786928258575539679431050309844415096958600884709370713256587043090057872829075765144531754535634254198546262919940613004511373021179441444334132596077733025665560836017923882852378148283596294977990529411562012746851711245833319878622177124767340779048104329297121933620660527369123732744271176642557606219005687969229762358543155940212287654164908887272039111025410286302648609709235054622272788583088211622759559204185633931517573750794583086033701167942535391624520830035515737983420366132034795211649345438743351017084527263069062943274689950366953598689450111888950869837293352205522387864626673286391316338622783091472346416722924167942779487037651901365177394058948121800324166406556204975841616474196203871867091614328606588281635956053151300095168270696199633735873364690858144209036625987770077920790748530846819929424235018918467553138223557411420736450790271036630394027128933927098502618942636021979641135545961998198708508482101073134722220731680193856314466199474738579869811080099772382089439980428502336258500537272434954648635092174357554202881815032396332636058886035644682527378990123639778121407733027717178442136409742716876122498630242947980603145932634488471169566099061229254901635107618169511762173550887928176422353215255332800298401488958045949641096946475850630014168349271434971514195322039711782162757758734154366166479177575542395102123409677864515932180270303022463346521612139741975975635096126481540828396097451324461891732868766596919408519840093379638998748758018215010915167406635543939392628948543966724046750165023014988644293145918257081727407582827140865706116739864329283000005441787966315766953382527520628310045705249691912675010654310748346130323690109638399076259734789505282044753243793058237714266953173154568228924487299124824667592340375767867676214107425469497724176611872807566794922357064224225397311088685480526340821879044725958795201823611135829060619261972129293135552334634502581307789934888006613012156300492835661297885722428709743568317598874093195159206741641071141383629669122325541162178390385249153773715860512511577302576409978509631991928815399126518762797089849961622872411935610151015363697492837698490490123836922941986537018646098470740605909947232702153286187354246655227861809046546493972984855903304390166791581347886934304008520227023269533673507474258905623565195074482537116790983848316115730601452697724818505512233063804027706138077662026459916401165147171541320471128101494472790857112428375104802308644183669563275014355027062847017965621456654710026899388764483070961687939911056060634346023795206781907641702833638504825284985619542898755507477857532651864291729026322166461039534935980909847881960254412803045657683280588254306221931498054332691450457563038077605269851768307606183020129212567224414863506994843110802873101587319079072728162057785438707104584323209737353717943970089634282150740584913416129184455435348058286978642543771559972854224075105414488862475561781814561996539978919546882587281029851713891459459633686465330895739701549465076296191744223963729217769265225036612501508047257767627458721585570669742759582680884685995359054361124596846439327570772425504284952510364722686567667875620327756724109067971987154354481956987426981920162237438065583254412808623219813415882384959117641094036840254094965728100504858928973651186510678161443274799996581130318380498498706611457862529536426503386789081869573183965180376788673041881676245102196674416063418590011344123600883716433128269776503828033165150593111385038586835974946229633503928657061022596964609580096843439622215375374852861854300654960229606372883898813350966216416728478390129891489045257438379730130422986388268310108738511279040127737160453999932828504276055096718733284418381943098540206485067066527135803479119806917995581955467551221892182810433959820817841575281223115177223628834855559569331576584000127542399209167640107355165587346853833495180503931256434392577846961002208607466956765997369082004446509403350820880350310107450900484092900114754616726578322463754645271873528086708553956971031156753988479348153882166539699256779738794427007100592790878241107946503485828262777962268034093105222354365328459417611873232876377351510810051441482766035099306362266824520615864154721906838266454511575056408126458663087741701656927582615071406289593296845892754526851180862491015663809809563343376549500639841537262493958337004796332402510073717141925533563312038029772095446354805414205127048257166840080705876866362121839040070826147984835210352365912994857014244572004109680243356451110360305862970747688405859189619033460766157639046077554502869500933668285240908207127253585636227500602953931877935735855685143266631359552758458293728972533183674556694011057569006138871337950401173477716981529239816833597910625990404701967944466319903514854234566249685620902353473968215226596885390470093648770826085295053193161878693708119674769162025212473167151762179756096702552486414089492760357808615638382850540194416550525264996936104862392600834814258903727986014368516034221247558446820121665870374311644846485217571259690085081161193541454196575255850497405440826233352479497536267892997615568565002590365493270581187596823790265455610357223545386797499568448360633011675828201285322984929418503767691712076553885719375852820708159225457896398164067628025218127687942912513642530118706941130578293527077541352171102757023314476897488610566547060687940260825730911723486611268418861828069095397807205386275050365826568435076521868926776439109518553309948434862943950814721390453787427606556896669165990361860067624700429910970053985591573486167519130457874321517191672425371259973356389487145543971211957721525745854111922571857726458758152920232923474664552873793412367333031692710585903437480747319483842496801926604746438455042603989220828381719295990302774342101473923858918622558635983663972471360712810704121329441405116084853625657931276967341457591265883624018542461379062899029979517094044408266670612033655768375493689773815120230599993658254573923017579493702603691329127389767000905500157765104429650947269775934035968941718393228889231342599138574611336184181873753795005194160106714748480745027862604893919059901700578000740381439433279733931496397980388663552695190683095438662757724966056775222033372710967731781798519450190315530972372768863530919156313334564804416164423029858883616344410878181867659742667066289279380515651134436962071835780923202611927911700048634852774433101391786430532972363031410794968899688800864508581052463492599109612251881918632851901463032513537065668784568382255267079316323912670489544275978735951515517523505355597833865212670973220588998760518859456360080813168387546517793600168991193951921308384421227678279159311244225141070434482026530245135483853585687020812982631353387260439694709417439247521766204110511049448660606529297952640946588774536280008132804659870504031532969123567923896406351148937649699847067092858061912394606720494509223575629942458100905931913799882393733514470100726139207764382740771839571243752848154037800869150658030234537457669701222752249936289396040158257235545744212479001679822583648065635795218299444671467628045492549527654294067801935077184967377538741656239961022677723801188904002371465144727124746105407372489033022385375173589460309783104741302966515657179488387817104634894798520354180257216531999301889735016650003822685172501604579924044255434630374763460428015966739695674254753580496044928656886019732605181398889823034983660022545568318065256214552212302355792927381390540231752907522325202284221314768555462357724519870244322430678594281842722939437926451829971843422441502644227914665905282072825823592680356575101672749119716964700824160368460233781621059305403631308809823429602822210723224445875843805546509272741657533087089921166825681703351296001897257676073669327525832377715221634610874034038971139639439353361614043193148759919347126369894302711977091177955009515488496127340682639221672953506603225127333989247559703577881467575669853624113610876968055076831316644523965364192909951845812198316390520780345593637784792341358283437019128934284321912074943039195772435201019663997225024824080895169199755588200096283134922259501689990955830525332060982209249317938129687068189921076189722508268548666149173614953924050838847477069703214948109471440241160557074623228007855304663778591438602623225571049998716257685999612954045467518458830211480018738513966561324869997139638188729565530241144674191733666689582991294207040727335976337393417647450204658508399119186559490853748261429954285157257063730575982947649190016199099379554887758618393968211563218408075401379720517441303287605237745554745843989597065707232268905712901277892902661222042219820275938930608925909061316195276092924188881595178067504025048961095094564747357412446287746052740571924886234969585831312681059994028903784461802197316315822298265604574446276818580829975767194610140966951586722108345943108713183098825154424097269022736115717409153064421504730111395755829448803559410781136568239419491010678206273119805714152788709618908459079861409814819721167532779296273031221666827842077293135153394345587382889645795247090553077198751370544568476656430988497689699366339097451089940585398360492925804695414951289048199095115588858289743871513380082221500722241706851282132501947969408900475464220853255253711443999832688354543161362899913197404995362461273261485849041867598667071608700736841648680853327175045747611223406133536496893269306693944342342050610481421991046488554067530727833072909076300148362027570833101302362570311643575868881102312268648554787217599328882445962374299769650646253629820434652318687179024866058654833477826063750434397725553492535207351661522560861278845263802671643210557781913504877141661548602764293780510242536034160846033043195115623164868277989159766702641245103290841127832683568949251369443001469892286941453049022773901708919199091642689847332481309283245696821357086534821071514725581965785181599419937086052642863537648411973388071814790894938027405462546705584071885411753518351165568504300162708602898768773885553150166709870157337675801995422215650722204350951963954284061934558041485889391123384592974555090468802710265596692480830489609204948019362276599691842503550504205665836496775294355352628681177637406048082538610471346736570858132922871837064032104436527488858134892114277124833430125992406041797608044342718604906813141539036923042255200726184941278638761397279043086525192007297924907327832907833844770386367947159603790142591687909455163942796280238527461348264239840585520261995681628760316998903304415821402004790800602246076180815730047983770156502104827822596574392572877178244752567851453819310642006050170043385944558971314669133323283277785602512534936343717402494381919404701585492862045472234668812615923262139875544606049082569933250949011348545910319600326257325622080983506940103833286119593501671226214153304113943639640245736542903581618851376493033591116260484249510348366019197234978911053569343213285850509280861442368391927714239806023498903012414769828542933570285263390375206189267164681106937744837842709518761667916399456213400505195354394655602518979179098712934409877718780478242144320666881725381707939484441355869862686193373548221355926483088094556356234736796776189469061083590277131722049973355498216593957387495979848409596861675993219796009395222689219424871231367466995340686089470395930649260456099947452618483665378490759786456133629174259543891578168002471665408720684062843153923187936014757925484954527884566579797425028383232513780994941048052983999070441111030307820513270934595437257737159410775757283428536190948788369500837591736201109667198064130973701895848246356486798236841209865712037584735069526597351196686614873132809365915092858005378113994978816233124552011827439762468339557033878367467377872694469239247333420234237699060723207731799453339908592590098934933787669984051601163675942333106798404872193534392452633851451702447542625200316294974458854823976364833593023113306641982252968758273119536031780911294386647726175617972583829819975467295690281945271957708880720794302012089693781615445912077941975720658867983438484371877456450119465658010424247199399898943493748863507319750539136765060990538338782550533991523674070499343567332315287391422644481669365442354296914559360882564402491767710745567101152428940117842079022216710005801585917678850753534767493491340255159679727356793456792715988730342271931457186266289639252722844456736950413942823468928745829067123016325731637002615237318523668521222251771798778559040626610465292435041708396423517249497001420020411613818300373664140426774385489651723971657300892285514724411869403820999196559045594053791656391917662876374847501420080727856771894806300958145793308823005913919641642910428830364824536835737467579380371510353772947475662328852703333616735094930200469918329403649017270428389848306987271826196768374250516456805556931496659046887453184180607246020607930265343790913293501064416780092199511714252404124931033767703549317161730397485142055098286930362805355097756557216340566243913321139427704261483679122428636617661504491315741396575474432551650369181164023069814276525865128239769178733438625299815232045352308375903005269877342405068892363276796309114502306297062760504427162825631674386924773892426928178159326208274943413566765688569923097153714065521904658816364412952135655002668477546791449737584353365172968031586431458797105690397651654160320148553352700518110100487133770751277572184093519393952671139228579412002702872990104993873199520168155582746650136371769887857694926705860712242613790379917444008545513040405038605614480637089039695591953928680388553758623187918943733970775549099011725594351737491398335377409591952195112640674274141662012150633540988075931740007240650700207265575041939291142831026858757777698422318535164067286884788786748618173713609558610586389787977953721795794922099408682824327799639813077845202098457442505934547984063936624050597534014759724372114554904193256757247518978293417480415776075604476269393908399449497858016629349426920670726891106081358037494750317691293562260723495415681402208315813351080177357028382761530312096895005005032114385470059454087964244452440515934249162387648816826871753861448178510909041305837679108156825293596305806195695013603377593439317110293827710759597870848371400687846476389217076876251941666757432691125851341944837909501447320390083345115073518632461241056061019745294123053966066071690396929303655938357658661743341731065413820140802589632440518915648860907147034043662558490792153871754197221109456987559682587309531446171539113140791411555227415244245851494199366661070281299120012780210945276876880698002364548621472676493956185303235456148115900028325948688678907174754521924237967455720282484804249937711277650310931423957656333775032857172718362745603507485476106788588819782459583851466340288619901718506615292816257349659203302085922845760388306584126372973341354353235572711645897763155309819910353904314688766127340838910676142633562215667684819696509995370224762177199594722148521971779969666727228369485858464337666996454106697532516737280403433210101753231270320826699085349410427421924323310175434019553148668117084729602236143919350233975310083167325143576932624238791052818925998416377341387521411888831404766429764400162720380002544889931214643504049943398302076717451448720989879449175151415825801056316728515384866978737708820827024878889723251967937673441915809864581292636209867745683582098949073036632557987272804870116613820860908671898254648014476896064131917788722297094269707317919728548986888970310966572592235139426733441757760334249533276998986706096314450415501484023683457634535333085085470936829888817591218290977285227419386404974010529315087735099564481410275815464143702009297864927779506532571715759709361109881703510867756313866004632956525488286376187875826350241406893262003846062445697061872437494775751125078248683482618873215128724412346462229663384564879889691674741522069705763717651646957667372114627471108356744633316644898616271955330358127995244090751121020828601795806621658869622591746068542884397214977441515851723094194222960804531204098912708850242969650007952970818997135846025356472489492445438245380845763138483449965304812717792672474024254079671411444567486797853246700470991286048420691813104777453989380128372372110698263013401813724811021384099706459484212663993833260122747539106095142532334388311331500209104677090598513990662127661702700446046187530759257445361482527088018933308062588437960977976309176647907783717618909887752749576353586259425989384155709053973837763647404188506724694422467710041844145693816548511911810506069237972827976807360916702582987106387566429232690024363504799945831870692853873981474050286480243710081916834030998312025017034734628828705104784529365406565284506253252748414157250066003075692309141236036407285241377824728414843980510324273930983849059354483439419840790773364027688595617477320188046085427186225588764132466353573726026907574601250932771424687937508007538891037010694633688020188812180469942448196488954154323666368670815036804846176602147876342617230996408218426676489316015729363684640885336269397076727643005449866983820597564082829807058178294581849293667392677537165285913017686576171115210254003752461165743124350117534266949349263234713325610591001796230979156838050395505864696852717315366256290313499675123395741565851230875482346702409489780602338238496672227973971949024009290141470783510559781933351289050455745308864989391904586889102833330232859862157782601094767084021831019779868216459770613269027633593368312943281081179097495862764985840665947348136685816771482810746107170062497132863504386351031648908648562246025689510441648446371789183798809072261339001161416040695842593529558676577669686109323222455558362955595162944857543957428581871818409702398023401533705109628004162312882157645684681520013298121511663460161637055525515067819561414511808029750925166320685039604256446358213830530984673383215254178044589139315085692832377669929725158192557257094663794836789234209892025494816141582573592583566212237180768651662355777063664031180034362223543477570288051547204405983838966212257142841017735584550761980286051135543108718008524178973829481314254737562789591683986721126812969748924603574346426097364894230127088090220515272568933824902798402422605792245740636301803552370210282414335553189088817126299139470056637555214079940115906342827561168604373648922946027209396680176820393012602024472580914125392526673038732091121754859815825326196203142084695761356596668978343778758459004223994929885515962947468898562009584166017042577592565040509398856957829983001170256937665137565101681518700073517018813868563175485401558762589924315465925619827852677658135497047363846259912630024508164546132663765891652858300183366717509191718885037825642682483188685867820983583874605270376549260675623512106362182100372489598205992092972189719093082367075789621682368993699195886202804001625404195856070269075193989210177221106517186254226693834281849643335441915221798826298358319987263956395353919526197613095819210676643153405727228348423098139113419862770056107955656215555649516821327098966955997189295872596690231414808774574108449859579139692070155472608250602502835866947458082876430061082772874535957589734461430950779548077059666954815975173673939015709106210637541006476175225771031635399390647583806561829362298442998992779882159140869867944888322766395185110242280518256803186297816252553301522055956438965467346132889555111357704892376042676261900619847714642000609413705776390614461166072392788624320693172657237143066046683229836764515430359178038987756557869013209054223819174381523407833854184102452691789024083807157099129186332539699520396175584171676889609529865077748865939473659134076883206006616640092056677856562869104702212609131466969478633439213484463256423456205380688462548008811329853223652501130549200279427516592150228413568661506456663096385085361499316997915162929384158794315409913987031121161425814372573486146593876335761054079413869958030007488758032403732580137412648028740168926505164229107531398970124887838000348084593842357654318043618532021527044602516633683681635699012955477853064780810440974679614644334869533636398004664577595678480355501358224362589140977038754148051063162965163916855408586006815018924240681158116978912016282300342662626585282130151389686954055920269888495097670286607215121585364108608570769383289422503836574168015741972946189398440058921701778812159758020005425323164032892505423593489094501220834145074914648841162856351001821166221900546557271988887911963022887741162466872873391778023249390209236052988415477205221974883404157111563797574192797244209571546659240659124465741410298728778111997469899680655477599878288988215688381630055390574712190461804491984681375395591615597372973973370433755596552573085361913684902646011908561999077569655652525898240941170234779917056475382852502570661943322381739004798314061538474078092356171693918899699489200851285719048222910710429620851633637713648423132068395542412718880239106616094386074312697624772023987365874659187926473847489610942093142718523408247613905927509685836183250088011215621930387691214018492543581987018356521137338905054548484991014157006223836057342175064751176827883863765785808391994469112578617184231392188961982741013798437912681771261919779447801187901157258432486743401040998682697972564169566451548303990883884805048829783191847820048284582769565689826103976394629207867956399823387095054246109980631322057679709111724490283784568232035649231198696238632094218973998841922669454965946298992885633969595452898325721250777989569104549564048430011180746984630731745357551392599265080924985958508060335401063764569761226111635530835401710925838719234999962064372286364383730586543721606948071226808339527611466523208432537844648941330484564336546566025640070641094880795686923467379900059221466536702767813953559146016607687555292993603855295013698801430289114683145718926630337382455740368561034061684009635400457787445399933650553914523320027531007291379487789955817963318406101631824064623354922278111167222482702822679857254143648388089630105053296068323536355606428020357116412169160395514442723445281776119884060332102573213070592028010108183408341187015444305458158541002098621547205518951748501924570702059879126790701867725628477454741581719621607519125900327652823485461578435022992242219744334645455430617625728327437830070557465229698011657787022509615516309525987976325836996695090243605717232806414841296167338364061249382454709745365754878124286719610235466633120670860604770439071334447293096813591149783400118887892859277232158245382850804473822209398701159976920176667265256435531101002705670843132041504089591563395485095220602495561335626892972663936290412209407079987312245649251720517560816033280438281467417111859357700567495038152513935262793069647447966716234016235751949735485807348839423780148488200975868506005718123758494558482865369901859086863382740458991831522409134712113736642972551306525411766246896920983254811789398626189545875225484935294501286292722751668569593560963267484554062371093949770340718366771592046556450118656867760108961350311680919158500405034779162634559783816476052800334412043169440133840788402565494902888366013258896107278267390700996468720012579942881101051120465873154692496949920039750281447105882775251324536641400945238801003950057715780773268640319092640996003571128898557251129401811181217681033287523615188115750924031452021189177269453462902615937457454622024632471725998908215316319307230243596185820221291928736882300584318393522742550628578367462893187355543747201095899302827085549278689711261793713956553025215181716972642992635805044984632821084679496922412994676320409159461833865187481437769828875244083867056366976627718431067278913506036315759142742838582465623315245750048871489858942557381827929272051449190350095354383041719990567341806575991977161604396058000976934795911350409931663738555932162758720933701112501170362094624723321532967436974247377874222141217675203904722116901775528809362521426400852756790010874460934008948270296442115100992103959261235561756094732363784970245217247846547227539113056691563501831817480454087352501031436861220964885374195233792774134099494115550459719627429024381500720769260086931814111377877741765761048867208745123166166029006322109858052541167255057981926376616353309097395463010180647927427207988319525489711901314198229759344482627008835227680201882688972323123369096310724577822760133951242193645312883960146577823224633505121786538952162834976830688133362929956710855447134518504666748110491898986641245024671916919611780288418126430816866015223556709990594182046440691591715824274104791204336083120252308844262633504751506920017100228866647265810473633583243650199582840709089847742218077290977329000624251175882542295622749748400112309003021055417801038323820227830190267686540253510641919791705187426000714848927621196484014497083000897084507631449405755762833308544341432697335153482095721428773172307664683893321198618336506231958337917319663621755871589518544873484474544665284193611864417076131655698935893506821581703469394702928345149882602221535685150070753319559021106846104659670412710011571893213291344496114987656953391688705733506100339679853085169514450917301132785253102249352698922901548011903259602821791454432398101386771199182289584925581377634834236741435901192846690166302401503628449522274926652951304847286188372865792113648066906115855114432470183182183729509470182107137061559752585340909108970109454567677416533800268390270694572433699329071634630164451630771151793247946257657286170595746694406644803402113201239821163977182199319087463904071726516998813908028230357298933587783248149527523039191191496894695487753588576606055512204382913750532166004942835515077202283338288802116211999476667391268195397456414572988681908095814256566110638590861980582563141885723398342758118341592681967315377410373266247632365496410820740731524696445520692124188898468547021554874077931287263330231489708092848233430157312410041013347146037515354743392002916584221769892523469546712979978303018571146685248249017686015752347860346834355868632890649844051423902010285681834989361924438793096105463399505819276854693968267465703892181886183236291305619914112969098777162049175041804585002095301064302360848420210287421667781716667870671078962198039429144351664868469207539475038869023461055433530559180231361160993583340685642122849038840212878212097641303352572144625475456989697943356159784489074808761039675836675895223973066569831182553631069385686381745625802961527504715546716087521759413276631450801835944517827351406377141971156710712421687031750741467849190531596786755701399040439003409162605305353703592609043891247380715458420288180228172993556532704872526271509672881394718453529825176118883344128138224796590038413971635297254635129902769460237879064923221893831615786995322380184685421889060767338566842372412584278423904511927301054111221459494045032109871363386402451622516914616980574680129943262790843754260543985446796395338887592850798861443693541016854834696179390536655431303488082617779005712165005559999641930592116760702633020196174768174159089423547608539152851722387754940878239087716348228778546998288746263292005505264543507980843432565427558399486884296093113520644292463879607368346194920115902342267061576390770667576165553958196682736792157039637730660748956864998731213303247465217247139000600255987466750194143820015578462101513337375773379513103349229930308687747204913499398712251359201551979755351304953462191119635872181725101031456014210330541492845314808025343894309048080103514374480204902186053215110335727180040469926322984615079648064424133870651218394077566305206906268538028560486253085202046954517835360189420334566928148728156422717434007776854687742756382462651722942040852483830352847100202053466023020381356856552188124184804947491858686590447194495950267178741218484100540623101620934628067673169235794083208281303056494597517555346404056117921529719341343426535323755959947470700147447837372887775254018388093566214874520298401120182133389753762627229265020167831446083031393217537585335295030747386980890007806751697716501332668240091548435103069497076788142937419758210671112352242292257399664410600402930516837706988700499734381247194145228070546974154906988824776722560370841790344735406947645087186176433533879147393336015300822750269193472291990329870051358740138250215191908246653641442233345504833015150253736755436575861133101008470649330818714607107111620060726984228407532427100438539787382912512351560923810953533857284976751752347818680707916571318428447054541707603030217285137872576663437366996460550254768072157811724860272458802510443506127731429025747136324036488383433975041991982320349322246335752962422709388907659649830760070982190249211081184867339390627376479498527064958793365668236728952556983535938038312759471016222056062307819227181007674211908044451005759836004388823776568110115631296565366101206205476100197604599917415090238091603367992972681980134603944550733576872362004981620404342704780798979160858465339291387034764247565130353495487004500089184888952443464043375775079882199530914481077607686067805732885912189700858071281530042252767198939502992192307092787180445743617998062689123201748498607565360718131140124691961820470056360305337726185814402621209792459861518911300845842496200847906545684923326705503623415382167100628714542803298946883155142379127610119972672560419233839703980814677177824115054078630252051423186885234159615348945331612856005826926664012025554137763811803219895042880223322281415648120018760859446818605869385339093041516948678556268333054687083391116029297465042778739950830812039788028214446187724175707552853427868524747139069027765774336420425636715602305153544142642678397831914928425752776851666625902372669885055169186795214804187189251849225958231078304649135394889822567917539667659328906024056438313523604851663061151858718429939904435098535217054894556025217098491585856535003412118342352233446541848355456014395424667343310373528423774755290250601789960559853073772132141249465074827111792209105121489608858084469501018587316403416829530884083768189492399079296974824903745165015134651686074765817962737419277943988986130452549611003981605705683914098207892287981855183211040268179206577116811458728126087080234265594554684928591399394100432684572642818883088323083609653113819826183301065138655899087293234753162738484756733536577618121404875897417281449057358815068294920523402322909027185330732561522789767481379134267602522761056898598936778564150587338684101756800525213559620706137338484963946215977601323280647709440537972278793729331023057291978209361226951953539232626227285604190536992024817165573675042766120220541847447239361649553878214063613650772594725677139639218416564814657042623315112081018278276872972808287012759922001601386009965651900394621083514269963764317972524543279724327939321088436233175399399645038468979143391377547132121898450749690754909027301575576320058194577571379892512468972332836527130468689550939630307708959405406281054852378997500402481906730971616584844549549825243283305511191177818148825384525658807194614855736953995204787473076051657098806838706228987453116970108894619130612784835066691932492836685019318957890634505617876531921495506370875864120737713180388075121887081624360958063926808389721544316482682117494790209316274786412711494789599081541897779479644409286455981325803163192540708956528313357855270042112408542592509567232393582895519635511538234589514397460965066574547509106933381874905757664659743959463260288445691719709714630166485219288540471517668181797031222466846766907847891386171097989513434336463926519667241139304978092621004212565536059672317136909838247748428281532092556529532362040393507207738211814283384243188717350821023171270180841502368395244670384331172182740119874942897412347826598861425384590340076844767647719777414113881492598923276461838575822535722385590693469484508940505047826334587578668211774774118935850819537172622759871319806240293974868718116539297857820014549778174216928566674277906401469963330194692168557124398856969460717134921950611413512863829331981087342277645803477347662093930808750451752191186116510811907649730309646341293381258341524616658991787575714947084966044535990214241868834325964258755076705295522499975505336041073478101278961177520675727944677459680130661183125438949642365195507191262939293366655008053733733152270998636040928112727974918133369160941827197215498896241847383163493010563635263765205961571341414274507599937939394781547580130998821559338665133058011653513835663027379475590020485815443252238340116279188139164725808798592539188706695905244585331846114016147901239733425863433302120408456755995542190342967491767891558127337667886932480565564075850901422377764889831136232563613722520398815223621336460833575297393865258780881853018661658306712179681522705090796943925151327154964704136451625490482654168273615233744381743488988910096158832356343556670839721214112570934017506184100672607845627417021612726784947717210284148560867987465275893799049404743218039203358442553160792944235252751774530880530808269342559971544558212113954241917755853381132469780718681594829717750791410706795554459625052854387714720035692797027245574605191974210568056252835402177490081541221213784485334770814730491981218337671101063279944855284391317696699415504270722558427305878742509288860868202354885069807754821349871800944738421114725709529799929405409968329392073520169871438341244160306005445541686195117178655595052950241129436848261360668629274037569143987221199705203854429902859005426330888789525327542841661109520828168977914306630531521291117869544801692256713712870839518489034208151336716705126588594479636501235331821872227783243156586102260097040172140195570322097668503293743871593873083528822956649049877772984679996285790530441430818787617371185173966447787835145066383145796095989874552249749533674309363857514686628670376417997755564844205580319753864536916929515771849651223685772304931344359091111776822792667558510085643182618302237382812254588061605914598343496418822674216173719124958394739689602756603903871350931770481376551547589895937928162073585778536480448517199586553046091296794839650250849507196341262707387217640529404204616157281623634618337956962551847912857208968042970293009423740278732716272728382926951655650448303461346005339055295334273028203442625884739713553335625032535382050185464252178336356153892840387750011408503165248989215518334450330091749361968180424436231500403156282453684368917915279704008708347889643623825642450353243029190175205911200327960974393164904679104774906200790573541583113340702202277671215152714941308086052895595517642744264292742465545708717560902314732762046141027741475170486485729932507511655694162779119611346153057317697537210350699061360665701976284969230665011537325942463553887251484743041856986347019686719874122151565691255997450011510176270157844256872032969422618717795240214275154422937554162104773483454699484295485529751846793053883401740293547679335763711241396984181219175694708627864344685345475522236818547224387035883759121049673833198389280408798905864542675289738875004268626727862363779236360463034018823988452111961157292162603612104684651858432170746435888050986674370782537274605012274221159371750080731964165331611394765520202675673453097772264389525979871366772914013190757487454996937170003362687469531982616067828848778892827873798315491136191934104282347438453408257639294647697572476604093974872198314031483997071061727881324075069479590105242657070588781890126981281790503353260396640905854810992082297891552822952225796928461615276434534480870717260962058157327466226648958280968576031351056903563230607945085059765223514290960227803808435254272379083726992840520573860680914377330593161400344391110016911017342476327106585365382866272279248261008372147223314017383769437112538341288852287389973454090504361932039826683593879805218345048965103927301170748502862671870253798905397791958630436505664164261710882176469261976255519487508869141205927865549147737174328381722240772466965205999983652764463170159218897683917282783930750498493371995763275464095016873773482501646556063882353851223158191103081660782179171839307643393900591277993400395587526674403017946291814535805920032223863490063766081789441209545546658332601564385569673285388885202644771451189055242887995601999320452773171717660903233933839746632080399637090520627603664569693902241053615999054274218128391805688281517956599287728483779994563471016466457426667872265350292609021419176363057259438875733235035864376155523208688447497945343321722330923454953375946224467914491614248202940682460441542052294446025859425113234726800207601600442937112800774753503386558247798509550850033255315592722431289989268637351024330510622109469616063489149552353989935769935783329715247450318350260066269226840542675056813633802605560952488436427484897933441756048629329366972134836444829931058930208497376362641676688417972901666313759084521275776176922630085790280725045427310165331280715729502535135497169859821513580740628140327393197305467884662624073856115106075429984856131421994747105859994810060884799007292660949578737957864496906321245882022943529455077436128343371010646559407529985132875296827168581126348736588446745516799749813135566678126311536386008187670418234351198336492225423952687964598794479849101968674284528062971497163331152030710668784478233912979814279090522453216234987872942403176016174508587014130240496226916813958251788024786095225274821404106953726062461405667888621362709943479808004820534326237972118184187961800338778402023106579857141097707335654245398424175183924047943820033957561440186215400088842352042558101363471075601076926475383593039658258768810237703448071562203482873708599772835910306519548792019128271136225382465623840486356819948213793220727943534749581750896303154157867959736406653003770813957500967917917174571963676702588588575822679407745854262655997786054822669427394378633839912526735875827967169204003297002698864542562703168443769638087430746053142668616157580475702784834746924319773708874310277851088071656385981772837755726865653799227962810923217585287955346592567841380367719923113725668418427314505578693805246175418035511889512431863067255697524842020925311890249948790829240258405427683951960990503920157896622919257223688665173460547329337966244721989868173049977072748977179188602977066929501676859105237727829806242981772822987868275670960188698539421460434040170035364600586183235612578521495228150172620379292087707594844301890885503028616616457709296969132179208890497202351980179594909561225191753146462969695480088235409716445880444907611141192011279358759831235807331993092467829455649021216755013049388570654525183877350203532724818315343772588076533587880930598483133238758765373604457783890180241695234459128299370752075942280616250493055989060783710629551277422057389770659545367837546055564108759029676401249845266695048552170736917294105890460324128180136836731659911388580185992608165059445398574544420918080027226973269914654194316197940343900811920189877016507075125985592390845341283867093325724445839630691416689006929200432171777379529512907655366510012972080236224235314766166661781872994099344038571941871082485047050939564384431912264675884267131172153011067317134088293292828925263449309447520720030608983043478731392780745653412095488524237599946025350979417716734288154452609607190873778922137406788267992615956581945305629583702675397710600169349868050812825836559835277238201269857731297622790966316449477435953567220918853124124937556408185710049651382455147193350301256840887537028968466184481751603224943950769265917101006930348474426999976674428856165323297983179331991927423798237464727476302850250997318630670603548875705114812673630944945708765540589097578731600562541173669169718238868902086124589167380193513852138131395154617700424009228288270080577345323657482039947010434142333828746490506736442386714924266374320784445039599817356922465553581035280388085014172443056041477043457557363498562957860293238877661129582444745985464917584951185797956758507673691885927415636227411958346689614425014240246860740548592648417075072550582671115324170543029842686266993278219658900027793539894925880072434986721092607699492519819268025365391698296544788298985133249772680780576667118935094015640976993477431963497402003982707696349709803737726428542619785724190949892209625525003273965908874315163539441187405304656610114665116344317914761688891670539603425375600902668035730476633741032212971378535251742797364794949545856904559942714685321148266895510659233005209501032510238092565323912082728873068770983670007470201463359689171819288978350408161894237986676170816823746846515722621000284493413187691852111926248630077160007204830385695415795318456641521903717144755772121115099889286747256621468155631403539207995511095707377332387275128452698633289471258420986424297120267711774906884263675084538612272494538738416354869549998955693051507285962175890581545272168718310337810572811124891658179147195789906149895100489849422690742335829603553564331805724527495374452836889234844873806913898064354057416252361453120214381414765923563196960246268956847944469436387262495207237271803484565800147382238957634258894684794161325100400511701345207391678254164950957788153315518650282389599083946507618198084043270070982162050548168643665839619084368757044534940895760247603569289235247081495923039169585202878844845232918446018594613005424810165687672939898465472806549210750427825935948081477197844311749416942124072268804690587503365570358684272266738274514166966466556407467027704880693057170940140366866247450519293965078986874706315126371087861318807385414306688287201612077588436561965611289590054597668017829370724117580509244493927145798529344548807416399593393083071720816115643740995770418487398649296038140877921641664885695967285559302489166975557062514547798342481850424071319521399558364221838889553965821351076110003122354457601499607822360801367885173069719935285337246303848263843053305088249232023498836215673913726307320088194606195716593371284329120526814388508098571931739586855888463032664251704849236269173969494512952033824734216937481945044552402129515562790055109183473432095189731309253611909488849194721557208597544227357472699228393980258776191935357004612317338351268163595856847038053721793943313556610311654571298513889550499615432195033356777032351913144859413261212361252851742964864428803007306306330858026933805411369173989275878047674911611307944565431866341893596173786897302639696942504158627680760604660738627746319335191629814621954771789976435223122703514017209099525909678924222525279755000004977556217437745689547064647102621371407334997677781600778012141801939003782084793955113890614059420034338396635319419074483316171283559466245027074243563803951613260944540726599249227121807057580690540537104805175646172409225546226458995884944563097164587470718874780877181713702087828523764939429527512951159274684887465367512713642600430466758964392403082187329753666822646921767598834105099897800035281585330428558419593695264883933534836522788768482617808760665041885650175220640016874877700237345636183470675823700457200103799005200908715688321735620936959104308248550984114709200585724211363437392893966564465325063875871469126055279728756878036596762567515037685094781850545542739730881327026798223839002946127588004976483042162469807674199444426039288764140755466804301128102295661074617986194499418872158979149510463830388764399236019080178612735488500390407192907598553191507441511275365609514831228200119475619676425353962070345156063625587135456175059880402635272261832292874456856253578132123881653004777890996510287525185682025924436721993108853783504386114646525056407547677956917614700560939304594294230466207804556452137271652935508254982380395776203551911911010617471616448641619159725690467339891587747814214101677049621944645302387967433884496492803244408469354600884352091743087565834771917050258155889716753219086971005090176683766367936328533748301741925541055719513336652250205849754456347856341342833555159728721356581527248500100155212626950222144233603730293193315484233951450153067745613628298397737133904155109199012439682037148468475396824973588617819481653755879897059613097889967459530448504899565000029697591437412743877061781326577647524719381229370177226664402151983345834425745047783036921538086961515339186140006485895318365565154961330603999044600177825819384852566337239898159350693736401512885679661694867123484840106023948468900035988069014366496214021422714984007253703829975357462771172151745757059476099846102106948680539338195311166226089902402022523618946192614380966274951173277585635835861835986693315014437547003111222432490691169670271611169419230943718257664423880962674236267540516412232954851653172979619914828320372320764077523844259983549678525653506580092690472405918760309894316609819876342133295487798772438268455944174878744597742635729289478787683645247872284422641096691928988244239798960057012251768299622523458596155941408206261804640057240611067958071168805105780025507270534603880699971374486978450267720249520029535906980538620374006248926660551209526262378718893705043355883086131293815513659081474223189732543052405122376344141226880895199048932477429316927851090665158814723721449737309349534072617698951223200886085831950573916177653748482053165269980280496643547629722156699222143993936728196244948705177645593428333277959943173298974856144249601743882453952847349193373962258592171087021847544094235059452678640281809977817613513468451348317686886062055812714192904455814410375780968165951218456422387446882534345776073936201487634022668372556352943432406697480734989564324168632546147227316857756861580928725876516590902385427681842530992804284711845817246774130365117912282060153207351205367962277496514441541967523127194990175323978553071026103582730611724537522782786293764068381854321237040652503997256291999391437421283181612556160331303011963839345491450212141878392883041259094055714073371028530367493609271794922883110587995703141801131351698951661907262250733582602213023006033886944593998399380845948462803931094094081396037022661332501276369919077096153015326662190296160061276026379506758945661994944204123178181257424863032849227378232366833538499025607493796538995063736497340221746957719471060101922024141841145268640679538099545298166057590583902399823351797604250051803329521878487058869414909848099695505920013634690248408060518540306763943514941848459211171667627555835867866333990603887070337449127307071827058940823920152302907017112725468007198527408595792604276435561588799227276037988715281748438397992838558005396986511798215342388409318208067241659807651596648248914865026161414927858277025041055304526951112103970853219924827226425446122159020610297475420857149462206185447637163521621273615306616127147340932913501840653914453306518908241520980233718910460468681694605981058320226911096611066349132992743842523200857904329924408036276993959854675732214954007241912285564666180919872902386457219351277978215163103201614868539893253084649143197922300343594444271579200327228482553847503061184555948101022243301535471664211869901912289220146659339031769735388906034289960028381364755182972454583582597209512495126092791715413302724488948430993981289554148899789672385632783466563885025461414956397647592808115292709909759283285122503962733596495403212801615757531427867395732650676371545369434525247301464220432560281833862795161605582788337767368554343017595068532691624685891411081831202063455267731865305176109361857330392842439739689178842770892082451843902292286153826507522518250516022567038873344689561232207344558445403804644399087640773181706506213646117000361948607544259988796692733273924358617514421339985991586262899953236777357866194984537682743129406795589454692464381653058024085086302362446652337346060422848938341407721346704916256205379582375073074819761778566389583507426753329031405495913823950007265810779130251241344979887267659277356143240913160108620839671406353817569705987093930692690483724879283432167036771761540735357078133913328167482787681286624336902826123305320229438107769109367166023138629330445019358095077376854324660018310471646424563607983156942374574820774021590289647859086153528512825709597902558844963579956675623183288658155683730795224574306217721373365041250867490318619559391561845311497635740703784563351849499187257820147414748526238230034894398569863421121336121113797964989648715572890179896495744938781577603693420969985503033893402388445814096213224964175970607846655709283310283938363382657274009233616070159651724307790364077895267543803895321751777953460345541958391074643631482530358882053222879038459947436830220235036613235152444230496530325843759316719650606945407671810640471441292038938440560873389035671013244847828036806925308159096893263363566460665709349781521109223580499529818869390100422582093240221514248575898049573456660543132166326998008422077999923537960193852126076269073546795846934232590634170614180395527253952459971707204273025322758486685880092936778373496695126600674780915791217695855753767770291448228609011039083789108369688385464329665040407561447891182624999110766958951594290308073404618586540914593339551634042537729914490852037518295083643896073541047561843472060189660742302629438719706766446944406938614577050219285446647920068852393377886148772150500165000583631104568284324441572489843423636772073697356835440742778371777661830615850486217200432054823025314226874676971767082449072802028355912549310326186605065718905860948813649018903718824147534991132094586410549487125942863407197550443546377829409066862763735139116678262718269691158844026236426330639259820567250465007347443011462823170589085254858538653568681586359457540499185742092147711486036336165032811453333413543667693215818499939352617811035435485158721885308185300672909009777055058126240085299720383467626420302413116463988144087661675039296351703143336043540409279533820014434623039574252179720961026522684562090219333897756187137186804193398691413632448618795717930973350833134796542680980321874068716492752778430170138266831375473331038204777580881766576932109611048259597214271277941106381274495745092018035651569155073490757603244671421201999915574129975991059261861486265264119528265062423372015446571234754119033386393566568482515116141163097218653930005270565765358829058190651925896762350831841573189149764954063771663642082062563468197514808643888130751266774953454881304797710426654817793040758552945500155759966818644258043799999412325902081450398246787889590855917783598317096122199801716909063874816708118428525792653996809367859774020876654658779001785716731001003151044223129371497372726436989846292059001222506339394614318512195768195979003058226907119475211023672661139560147049134758670090462277893696842400261521839927619725204765491565378405934319225651116163629008565880913622570022270794055514495861247486099177161746622587820428176691784488534175095048798391161061493690386614301481970101485587929498488449847781325389922888564648961066572654327653057161049789346180936223357782759372086966255825095581370080620890122584929579038159315689336799666822974346860350735104770223218924619736754311516622159823082347873269110765157414826975896371297930122688197230592298915750654559836666083848674261146526546402225901543071300000870856808187426258462062183435353788123907761135089794431472123936304077295210281498065576644285742723753792796211005791434708311726502229620302361460398026804009915961841668673076602736960550629386406962214787634102551873226491821563854103212483734913698211941869291014699419772949687748099391434773270205739028130997451310413987784311901824327352496965633075914381273032821918850215360429479439901130566070607017654358636808984042048994794914832193588501390905499625129830319090578261405064772922109076604394206407453165828678082479080593434803987662504682902424658408651090890539900042845034628132008762597083752562826618915711723320686002843488862454355954364439373174071556971367769784955867380413665847608145389295443877041464720630165997364268000378194777890679194066378760867352766787612777408425755897741756127528561636236719942769222550110851198211339005880646040245521723635667451511917101213524374572630980595369221431547305805487200711239444264312158050626637176573257383393777891696814923756930044103976034971066367234349807407932809559947436524073231327576229531224240252670518416157265184086935521939578317017126487773735045093846638007474328500861535482720394567150386228155308899905356049462963353578201491429336330330326734684146943177515868531482642428746718821533629385724336167157547591253892163647302090138689552083190344267194972411570962318142304420606044919144858182244099625563942168780159258880471503530585830385122452284075923767230904602636585049179178390062385170411378239469562022812621955386554770424680243644474454113722929747048825342130435775643412475901545087201142584626197333073152259311146038568588095664360628081059241658338273992310016594619887554393919861846341250809868111029704750053178788419826456758274074429966059111864342980862852343393398318415157429890523873048442956593037557468703441378320992072489246526271518145158979450056415897514278584352467111727566442370468433203796257929284685306245136910479377909800360131102652377294690841603472371424601698314760680228771014187265907356504141555377952858116915664922981133132227367511335408990026299360895318995312380256272106444379131955664987737213083661813894267540685081889265218356564881289347726774562508570017817144112919934769751627321928854602777372603483165780891898464785831002101666349093582954811608689153372568104742885000112910552406371298737730176125023067875668108770291189478931093403468504145190284816041776180939233034253407110600602631564312537464682063727738886300217787643298696222406785403708704494656271902584970608430309899123957062818192017037254909103778630662811387997957068143128159319941712708236191932041504911028683515515215776361035819889131886265908767298960016955946630233097506735262311324182591685475429213674673172510098498398729576591523146891439052106578395156596654286925185896687044200430162344557878293066469341495892708943266001354618596992254635920704068537933185140573694726081927688365276466901893554414236812075582428024877743280703490648166118994363836356134971633781590841227381199414756397014050653487017400658500465911891074477497538647432093935378365639815152388252792676876322568948883586333372511043952850956167832140980180214537752683691999844250791179190104386509320109741314702537469465120461795445548982417997431837039463696152125491502376858951328881621399540707645494255619293333074162292015322050717629650116572877965018778021061005888329031690133978579515353568205692946747977487788356054981998941880532131890950483080338913495350967974601102538883496807573784799397290337939338979531097117112169569651777532223335606811537530072276316292475759173450632691204906302896388128820127995004408445630738853399573486249934851233904899030007965835219292051476063306881255967553766801150878512629957032607846342365147937976327181339771850533567079324943499777919522854093780899628170831130052391322673708722377526596537647202567150170487193126222620811109652272183224795543622997558074230696175870248393119936624269178452260949354767178753880468240190354797050026460299821739581782484374498950334572821287703873625248274816586670615412357000558578468573783701057606032054552605379980502539825514725496143701632140978935715362226772261396069428455027449062502303505638789218426777960410921570476081666141212056525904961429906266636948761804858497338705697279237402085898573543833264953378848455770325433458138452293834377254315429439184962949840316204587792117247025504761674016235481115493891108330437743928969017396288386251801504482827546536621358187886853529266832478403727633806937874125384095353213010421930145341603316221222970633168053644280664425513876168548180119471870590866029715103227642187146069837907717253123050744982067149201191310240478809324118144440344482365284908586070210148742135041997394757742295098640968704291661300040875431533230822667942231199958341959225030850814777519576563151780457132038471105853017753992729566160823160025576057921346378570459069924385763676554749749243019204752654022290822218876143178206618594175631368999311520400259020360885707352742621135922703141071956484834142581529432285420341574676585753294647186139985013174913151236747541876790542538820545667326453484753437917506474305619791937850805740221678769454511913922466355051320364562017498272234780814224656293296868763193499982037075297870987238160866524591874650136731997052233338512442485483467286830477509481724471526707701521817070085917838756317467208806434462579620151667961605612703689141229694868313115475785257683022886218608846901816955373277880578092373350163928884521540184582872886088508265919201027275033547759836560712680955655432352771018156054120229384635035727162187927955744419335088122849926623534325409114700496473989596887430668477534801604052713516046819369586523179973805417944485078940212793666218387641999383523055576121306023755387421530431137481993890126140245793215640300636692654267972667463893598253108358540336799570407234427381613855744502337114919377706752934875014473086008859006438251671580267266124108625929423394977406486949740878500578021733351237881988440382633045935045766236667317235707958768246271514013386370982483527839044365962665142473613304857376719770574016519669664477311532655769972545176493020047433642870105458227150380303898860237300604681797677685863803242615862569355841948357858690878322860688384294523001896835449706822923703153585775913309077524740076256277425155595811385231927422654739269740474280169805633836046293658862962569206052122950466171215137343383142595462533207438063801152752910295063551065027513012684581556167991810721984203421213913102458542268773781908395074078438940197166957278660772894552368242345643898328566586420279927205693488624081547219345626857746304363120608215716987030069850596840529611451378545348499493299677357129972836873446639964902601926957607708259968633975862308894569469552469749793636660764290408702056623691387966849316899163526952399266578628932088437246612743126931311698088052254594165500856627100762229735556778316533817046013598634289673911940094650512909640740071805831854717649507091774669167773806609334507472042063410125678875418748209555481426577213373744404677488540967297351949952095849646449372480224535182878794184757857698160106104631905751007675520128064032063663013904477690697432919573737556363510239988556313405368503572818188976282658577915742328701048394918541552504706937998369300206761597881121836685558616401069189089268783740462621448364952595390610023411792910917211312376322325691337807741148873563985443207013774967004639493107414917693537381954019732571341590966121246738335799652968081887806647941417299619338704805206359876499072741600256332879694761004070297858354711100973366513357546873024047447920530966574597127253933118496685653074589114946036536783525646188444550944746541057468438210376680723420188903529426956080828748921219101007005288977055166077255061637078907326120788007007083606013473754848881377346177709037701453173528034143968969365812351620719786761707335675837168244682193163045529869218378678551672138023137700064432958173320129811112907598979775973938239870310889869910796298390315859110446481155541081847525311407292538478957123336587449244534164182577347900497296044781739496978369510839825607475788285089890742593367708421967661506408503984566069873367373686207064416433213163190654468906787273947781552854912932793593733086655012077819761635663896491445381845385241132083824451830262413519520979160480971394017601172425872346898624043624387246758667163025417225152713387714524930664208764429956589673136022136737676228432419143277256632723701043732415654716726816313047291902566240940053694402250336101946758767524494217139919251066647787935321070934231001618001407625943516298871442542095315517229389247531635474629853178330608324577614537156786121955967733304376957014652898221456413320077675530630761697251857051572350351293075300782514327860740470152748400214080759068825896567191789526283167721436974760446151462720190545780798132484268867731697022800889302771092583149570027221968968610607621491802849497249410544826274443007648628930648454256296625787219405469128820157063751341558140036149189524342774147894942278915634359613483046991454143171362690277724702180102203406488209534298643576229279346351386150890747355177698816128876217564215072780623402709430870859331585759768198879921394171468025393376774119925006200638758195230712847978112502802988027765735367912378249209632787099740830535971297080584585866215416684252720830085780918617656104749030308551624444266913309674454976526697919543486161307720901634123344004288511708010463359851147814090943794463030998635375772574621151761848272815653298307348699000092218011193803054020575198733006927807068642370337979107574939000294287158650822202653067617428489254358794690742838373238223221051326528721360569679713703456767654467920964223333091671078214740837368851499445831812130403218827990178358175772004125644018880686484054733440582697940831535825421638144170540822631680609765579601559660424390501944935276050490818254979317410176486518290066644000801498022104314162371065391716416485690788767227367010283011604087418346924762933788238130158267139424382793264788920209083899155199932128044757809054913252649799914174707528240073930474857196214228860293187595634196584833010370237484054346377952164585902035312081715321205683975624029046114676479142954591428186486904860232091489537671574461228111742028457748653137123775693216536880564992582213642877063205759431103758623881143618162014448030886438305311875353838719450364037207159953956989719722469573695423646807136817263415342512885431336340322083380692539705386700854938841906185748418000019346330269179722945911773236337511121681508596242138326000764375065368308766434427494261645453488074457894117013984923330150403129382344277997963570476673771972800998814597546878601758098625525274870683266584837958861530746551542229466352877682003913898501102155272503214690549882353784654392800978333630003520170071571519198034851873090968946493220791830641412680099127991586510162512616540883810085841060933683765565784061081534390292586893471147768148702233848892629034475991338428881437281947231988942723894996214511700373542161231322092747615414074640366361288224296509896678605422843910622687912440654417550722845388212280559610465155743359490557695821373051704427833886589394975524425313054026491442778489704221293807361004635646572658163955900189684582297630130121153868625183242307316011499832434943854287909794899595870474534551505391786829683075979205123074448735103324137652099913881328729912406935860863214900790481445695321659380398144887516621048753953902373789551032248748998833707533380891657107465769472127689804186737889083662162466167324516838047292239738334183945932837848478650221696913630143059334035247444885590788098225744971424493093713054325210732189209214063356174108965478001749660960611363742139317384068870550459420048580838574699190102756901023764193802038950896174854799191097863700472201729926985918884358247540209055540763274706361128723891647295289350093465989482949615600514097178398053134293811690381996425772612669715906023420965393928757024326148662447487584475358129672575658642040417764760830757786234537375297143307613404721643729036446179488248377747079267736428846644358036770701292761743492760748865735453092093706950026093680181494257900114691801633039945052738179963049293173686342594440157574955923527149187835183766567825426582471241090430563703755990647798504511665366939815816369902404639243196608690581334864719024849301606892235015914475053751582637737388303544644358880625778930834193598825144311305410773867202271928760250404233452635916758549208994925008685100537841119126402928500678321102017592243282689010064392142996364881615646333656435560242964869461245410342330751427658823069918605773250125478369121383251500040674066683716724291711512577461570758521735874621030503709751605393716205415988600743670113916885352760094011594391579595790815183560557789002579958850365714023679167289589560468776674150341064167511294742813226191915691579896701767238507277466074847941006182182733457915236180819492104975413642031656204535862181473103143923622684704208623236659188664599043776516507943297027949088848264310133654594324062830937997778500799453817500783328392555485835659589832791075573699518980903739901778230446561198009415560415895064478973918053255703763346843204048598775502288738386576676883997594123472366946591231832494219197623442863481814440259266754106699654532654793283960595122206833367808738359835560671972793024230169338772105411618262464050972295321258141414207008125304268940040010918267226090260055330285617109742476950487570937248626954557515957528802333152272946044278318381298189576225617087174470183665402679119516111434097487148971437014943324132828362537133566558650565575004187987039214002140680364256938597973281082519185364098456435606250172980256463630423604002939257224112669797466273447658573163118117031362537208276483605148383473003411282874245694770028153582770612765717707412328045385124704643144362086715570022024461445333808680947848294187760766412327533405462442563502936995244875964849944654228588385717642716972430453527010040638605190180614298039159739319128823798581733023996178315700709079432117368995970723784349705958794182531938883111336183749479319855875931253875352011175422028826531730656370313737371124566214832842172653680396707445478027984071234303378029176941333851847480507477377888506882231680496794031175511462141162541277890259806049139891527557808317920152921401615197312023907098635476424288408041657290995673452589734700673723846485604775342186683324098857571950428358056627412046971924572064796059061188135832880760433654844156047712931475321453909597261748939416927009237906841534943267272564635383917489274043980701301246826935522080993775736811021673389550159338090366937066762816649481033651063294906880560216185329312114091748217148647247908090086226438555923758821043149718234898083551736087294721078659387945194554974886563684149191931310803023582256940354097162276260985959167222295282382255740310915666608003711942356436519872885906265286708796930832761295529859864058635633723031626273433775577874037853518999904335549712299048683937197506264060622799225613130846631139305894418677956664109368064577001841162063247667891799501914103116118666314779277706924130853471668828867582945209815512742693384139747706834176374283404317201283754204380538157321348957193547827609535625590288090183833595594107358325380788190977327179920697364601567328158214498437151315487258140158658568932072691583519424239322438915502813927067511434780704609833109953013900457215403670405019542333781771673030560893743809676965541428166324444354149496702434302967544030399225331146110617292057717816991553171481653189126024960119852389510729615640441306335282481573836042086099745914807860075230857865098608433961856623103297585509399074129670601360795833570052486691952700637734170428273738620132238432164293189103052349459547121152471967267544348943288370987899970069672527943027880220246613073619815221400476089648255811637347070963840721315277760257035285822005430149320659079273422028177452735832408556467110117643222282363259851531752718027013061575581675125434253623852618368634883009518508723076805554304030959637657427314909410687978817441680407659753615327400712756910737782040547614556521980148344413326305084357275204629084169683474605115934773743335067671790801011305431469189658495927211776725263533556241431137143408526702343813541226951709274431642454024818202323515539769350706113234081497305977466799668587251575505003566260726832384600275103342596042478056175964466085491980261187194243638949119215561065369340521948512953251722602915759933410014558513745737998341934231270831647981607808015429385259925900238484493729727851980647779542325803867821562145027244949750967335675970129677221582939579313915777947113606192217953329117234496934862427699896173953766061872325658506296111650909691623391297407753103002103840253024931835350310223409424095283702432799072006685603394879108887865339577875117093421875039858777754299254066311466882916128575651740656753013240642469977370699572424785677911749034785041114189232231879451058974848358911185390585406516178643355794390083051853804033402129793674331504219873759456745329114230841399274438536090336172586716095456174860166644852655576351490112447345477712310269541396440611839190566140232940428531388519567360160061487043759857218779983349221043959095879275349915086190648868476105853163136201065430877363351495091327005984735492193969675252441284046260752695802853053059843678517508586516814887068015791394734072964806933314300522000464311863027558455673567181702922454265725044646437517867214376155896420123879357304767106686858372496281457676835580328021124354350685738124424271547384377056703184646794087853705450424994189241029317572661863427971701337760852281422759290986062878986569993825319195533922632159945258652788808940976776109665382007519155659847194361611649897805702131288208093725408833396971566822231154935559706030728182870554097136393422380480446168687372353957555690330282302622931749406702101662310076358632091087918631095747245484519876816059404998884620045996060558598263105617420429649104406396608728328736329540064059268379687200760162828215676429885270086382171411290574066478644747112277602880467796363976265653063365797881797249802861024110276090925804619563956848408237211383264853583986882945936464128886006692595809620798349445106594385845650372290066461155014282743766843477877529023920318096422706908688513799029484643114093500974235991210218253784757103096790790798294088812757688217471179609746139445311724957498633390704501253488913301807981782148289061507385973903053986477920419825352168748730279077110408102216064326553153103086952946804853076144465970634250108690493365763101773225757995596903826186421334789188681548192909911727734977702834420017991986671500575718356168204607610418016159407072242997189598635308524984028450125181342985834318448648129068739677344560456515360962015011558807694685721474465570347285212040067402950973835999850878315958441245459081304702449071137609022078491799514626704267671850928185458269024207108345700140290161137408326472509872456374919040685347268805206528799779446759629193172514669088573773933517398804378800199381486443139727619561759196293831302297561911506987407779141838447819797567296838587836565977457819190368580955932269599546884883494863752459204780650426320593280686230190489136062469067576625319933561536232261673361371457499195305450670538310985379706850062955002591276735781487556698543791059726171364912013594678970514029090067387620705952202098335330254806578626898496809635607389726399158323900833634979223205461295153128178229980549795366236938444300959471980464201491055871354327661936812758504326590028891234183225625059102414785970065132287327710096060268905244815062570616474214094442524590856348490247481415939902836988408231698435985893546091180379218887885295985438656696749135996686369489537085915365195014991805400483793764811793269094338927841861273548289822248449188841580064700322011571159137496070881258155503120243143090158366548752208068709247243684552865654942709268191162163736819544757313772882817773864962398125432030108476700385884350607536007405141589201036005764862412947043501327779732519909957775345756499221948458643237668354545728071599546323840226596310885261756560228457372660372902562624549785929211334492523174592982479446742363417588417193297999145228894880851240692633583023577645700393220404539260048006318844860991101252797736146188320186281188703810774250728854532942346604059490336311410856820029248142107985303270025647750001551037306873201538502751209208745077660171888423324768825120300703486719243324282140536096707711352821454977818715381240418574479686854909773790748671924112110106317473107587171854888325116042192227146848802234656911657418926045870301717137687806599505913475888308160835181354202387596919104727268408753337228904353246561820639558166987364140103041994700950370929486810604022259470415373482724516163512796875684402288879239912602676662750083993589966795439671545552974867790410260380303478414761184876095839493235828818170567684702024334242975919643762673854656455995478080711406887755267243823017333238418098797737368816786488762657300896425825111548713494518564197346357617712007128401421125359283733943363015432443920759109970808383231433281369727525815809119907207855781657497487711171955166280211874972927251482833925301470598926132776249186614950029595174301402888178550660881829905524592592069448445206140864684146476182194011066245152452645413187642598959055882552522570526100584748681428349808554223403738739702148763673194098877020978624592823709421969387215298501894047765549630264308455465561203707554385225546618094479450212994654208587995741576569377493497218289910242581643597605538656128204684878133459901713244565188166191375760381477512891446146767312834716142914618316406376873583367405002377819167857739008664899877090403537114659938196426844757218617683803307732844492956545706860931772895902141836126491225469691493857231267888520624608225760067278937770869639304152720914576032156801438480143743911467702385679717117272207896182526900510068565552808799073177840553379386839258313387078830164713143190900516377158893806558392784944435426748389353721802189843507685500579976676209381406059075132583386674132790837705046490679525150590389179678315466496104144815698395751464266542211664310141628082267274406439086710199115370934168069736711085054511783671782012127548301177869958632646997592660619617907797497907704171146768334605807623471635456554601825318188803351237956513866875746817461779248217896610765041994203554176105933909246869125336205744975712840474589495501355314627006143307924440731487816271656931182025726897852980833791857743482656248451523209061398091437213718639013572269098563741782979197291927766712638993139515553778186368418634665252280091291059247146249363991014655059975708364947739311998849956028144045775563634724056956955916879867326221269010690212800292621266719039153374614411230821861504578890374425094903945758106007134630370260869618326980491076677154498375456867465947681242501206794854963337187942857105274126302065636931314635777672130133110870901965707409124938617174585360794333467305396714848563518185401205322343538484689735767670970216348085916939634847642893814446479106083537020857304476763654902291473550681892893723577513281068356149962928186120923436076155591530663724194874365718267889036180696826766408526069850729029115195068175647154462858953264390131346970112036350589367602832362089822807571435956912108651305572074271834542040299523234334548368819294260135989774232308055742888567387499240040843949454749743621119928285966488913294137500452133388589874102777570560627021563466426191189471524410576654342208708881581310940651919256664316992446869656781553930052576083133795426729117653903755568607553797865891734204061722027608820262364439337383586928390823465936807778057268836982461671599282326201281490724128771320725249655505991739916182711232858788747429932314902677469295584007106461477489961272865057362585349804570035230266506192294876588030798802389084284485245112822604675353419003199689314176654906056584697477332913383251519707098254853644140959199837963587388324816162105706106526891992333130828616918003395224774376803370004860865401324583518844241571941489772274760271612048904987710590455573970720667221368463978430781507376726801908278100634005710757839004704078595466773370953759975271530296792787790305206118079086254085295794462574489336404854190411252502900140801455822230197134222479028225081208457909762138977198070429098033450861429929914575567907410654901035522265110456996372175322850524976247027553184411257815338691039819971628693478656676433090562435483552638537821553776482878773642514288497159657807773591008005800304562198011610093725135939671796540340164345144826849136424552891472800600781202508261989778629840676523062863757588853849300494438554214664575351640996867187545528267686359037245938951572453225596833239815356566146097300320593211264808534680551326706454994617661755718603802238814465046828390647643977679849827612427152240525734798377813972591052643926385794317962639559851970912276806939223565228292314592818168197197017781556901969605633526394109261655726720946503829345327238955377573790253683555144562131250365270092489348307451781581944234436828171635620973256919941375545811890078959793290419760915348250505848368599806404223815021191133670621830722885290226052196177381595754610643248106306850864655874515430441031896518554994610363411179522662355134047745091821097320776707360484695996848526004649243355903661491100329548769979736551618524578212225594303731004686870664401739531268446756374118526754424136750719988366466979179066503051706549600399894118864778476880889276909317375836944211118601654521293600770660604084021147941832072372013092566861397422058673195562978745860253271571163839098138914107693617810129584387510443669586992918829982665012371976965254071587861728251278611319129427201180428247959417868438201037176478541319518372058532613468156093026169629342467574563228719520729197630659395260717627021387087504068404141318286228619907366626048394973763632797426868382394782695110804050880245079973267081700424972716250177064716086227391180525609440738255000397588121027416353034739712240878526508342982879444682741015351751632290561608299256011666268900473446412751396284101012173294189673365403772471237296362557403496060370125824567240889086557047968181244249916466618091424575610403955545864725719431354259871704642559083955495569446083472479412417422470733685556760373021224102371480048139173599512348990124674988774721796430772626799527876725170689583190089284918328039155160168917581556460146999550959560564522227421007045744240312521570896044918453536050312325345892611043699458683392758448235463571049292519928422118645180213120016997054548475677510907567474199184117538681094404481473201431781406180276507526224043221029204846453775167154039269058927650084651008532683518717693768098822465170881673467494259757265743602554342613625294290498170268108157818888789777608107191583083809810731518067795762293686559943592809707893140302823312312943160422846682878561904116441172311661446951444684954763181795382407232347822666567460988063681609726601065655600204771570629847319471972853679601540991405545706386985011249563575321537239342610065525744098533896278113289540095749003471273909123755428126738089922292680650501031265971249743314967310208237414099667172233400227736071626071435354975849243754348496546095826113342179201988448021676874000096943449614431031541522357390450277610884000492328707747944470966395016300743535210638018492701596430205727452920568818545948614477498381141844173154924248567355532938660685658492527988738527368058380408389620566460553116741619960599941050040220731012076898958106298093892434829676347948822579031257917116574818385788789230610310445424860199202641909733432923552416413142325963697849400761417436261915556691309133801143179733250663911876701496069063700318791771201953726833571017773702518530954882787182995363407024400297108744629458771166735549451576727708559015400755093647712267386717308364487339126726664410252800620810837420321770032001010244866085911223956855013635400004530704902142372277355831661737171595047632530560408631927419190964479339334141595211233786977528121867123127815803242407462490410590994172639857893913621698389173017498497049992546640499952686879448083886959936034419314965080798319076181398721550018212813228509067270410876650341720823877866534070913458423602016016914543162190800677617556922178302971039687317989098253890710842763719910455490124331323230852946003806055678203562249026807165638717992390106061983638650949825102595985721326079614831004256952756834282777052449406538515917341728324560980649326074794932076522000360077812722017288866958089956035902865161375791680718265864442372443627217658820832686372466884450739679128124597597267545016196963340210265858269269856550512485180556695018514681590951405522134578030697031636865281478366221107098878373343476001496571762195189615411402319842176948086776224006754128631935561084994570923565310837273278714897056340005618604775330228986630843727554113480226883143649243867384278055586599743978700836180108572454426396033468182177109684913509067249974917934441477089851681800333849628045303297208567050224599239287868601504862664562892899483964695746570369295621140830824849277816118728833717237904501039434126429954867769505671522770764448863685940908192386447818967933884676413668097960742644035914070287136967800979265855793369557024630833203400108415489736428362367063445800787434058838785692397703847230013854692019828907788335191519390487456737846296530222089872754552350430806726481786432351778175923398048344621326073298378377417727256873422568675534749448108555488752162998765154651842771200972802121223804900619056077426465352225848905640654577535872344263818890382032149040690403808086682301813910818667058927129422505296520322469015484551261307020826759664412116363331679226560061930762959108608295021661935929266509697798298635156218998307799031888720958649915460876401124097050041536209871064372701805969125157683570270863449040614148542764181946250821060183386703766194466192273343278281057783041947330644228649400702035983410473498429741316971688562419184626599161867438701234062909316206257626553071661766423228786610195140874016370015222149304534040950418856182768766904920241656202956313092201274407914593608642508032057886085949583715948121350923714754461791125564209681971641736617280276767487951783593187692733061970209416002245031729157595483733732436993995302873904859489272623498898167529498272602666760436400654357566622035681687357775329836917397201384687411078159730008289846808016795132306248328396892305106143029754874749323965907718500187290904251038352276644946737406414772555494257171170547920642292122789414170577964659276878677861388212754067154406340450418959746022639522418512360683810832958768577838402404740033636307394303928003299589911871810478308105803549337758557997701179909308614198136598300377172652036254281706396175210459370013968376042813959144406174956542978412764527541436871797301839679356013187087356857123990163936480377850424242822059281250472130568018019613056618711532471303292953307321981856260725518339642220636679305996116973036752399081940774201865595456436005246848353753120334886788784109643318431707269374678421576551195916617351872682943160291585287224613111450388375804664519750062246255538327465760836135376994588945758915204784589969719340979620408140144547276398922933212430194956248192130831855874650304562760496696045490288934860030631863897972071717725042673005024183435536191875384936090513699839929060162689331892972305724914723635798398076351462549922524342232646948692834638834632356872610904322148103898811181216576208774099030761006751764644665389805069797795589764298832282057815985878374867534756190199022041337044272345319076253336240213233267746824962432042524928959591175661187357377824534458126943764628672127109796431751922051153249000600371903029168541373375114283793721830415492787240863048001848561250749403248448370374202244937790551442136376695330531067768884124204189663374153424278397196801670610954234672200389257501543723370210619069851356254788698879202333723507106073008083854449409904008214008704189021435418346096596483792022574201397239273917878249167861034052037484134600607144392960065198521126476593220485892747123795259776553550414003727733183431787114772855064818406650039142653519842731180937979499210216326024283341174488129956717760458027999010548537229012058708405324076332026334856050394989174513520758975525971052816580252976724628080818598423921173533313080303057720419507221841905182611590414385178075463127739797737324403263581809982422984085532162309687038318350656496322993189659019518301984767108157814184216683435972725693798720613617609770852065189810186255040345121088729385135734144298760937409511156428557725707776906854096778693874811441688711698830751555592894078684901181619251671624674245866900527999885984819140196263899962621668873362569164453081940045393650581991096244990297195827741237608943895806914508451412411476995609398902880490907711472253502310215384380758231530512716354007612305145804935041856419325827368903986100471586441767746881101608730566808149444927959104227392572652707822600963927225715492507276898400542953651142212250860297990421371776716281176610427619946356632509416424406672082704522978609218399777557457984457029594743383368365676099166508943483251974003152851324977461084321714819803830459560866157517214624792080754397737058522199400513278198489144941316401461765985307912613142589148520879432999129888219408436931041791054073048198055720399062932667386457874381194207402535074001062745584294901071464648195760591408459756187665268688014734137089210481441441946638685745526867456635361182032515844464052245229128488396204579484350421577064377603990558272686321384456794841230168331777236298265284304259946596660670847970582042760362200216112990767203287212760946905533624268609233393981836644174312426667396492956515651456012552779792783664380592538282364671154836749310965113253750381369204197808156796563198902766482976933057296378706695293086033364615817418868357689270751982574068219343303707221631198774864235855789418534843090046172655993733049339041713728648674733856699752144094805062352331155994820899701482501220458850131062582087011843866664067805237295285314755140068560900949673175723482579931765297185218889618571581453752008650941402312661368113559474999685616840146126618810070966585997022307718954868906413991466268274529751730865503258429850388045348513662729484830055600703470240813762889909938711769045398832842468172920408845258877967612906773364233323136014771435147639177873177436602234255478284857160097774615808506922446043502089908344189190438619349726282888177894730218772375568185811158375342506072374195525861443247357066836636294085643817278234569304837294073733100756034526824780751682337426729780632863028258943475229024210367612481781488565893524425333275680224585749567405424501032232328012117039649734270715936658425011609564212987059207564149983868259438235413295997667172105454284552114444547587562294489638894696242218886651694330090092041999932770831806356892645851201731011433171545761295389435601303960535456400427340348574190691675955971532202133451557635390193818743349828621345596745130118549066193792878362214417377102884999591026955615074782058181329084664471460512192530623532575966344528825273888556911189669764553707076045791624774924454470152930935038819563669477430891145454957537459035994173601995074219593440725358595945942704367128559003072430128442717641345625816932038066944602271632528945536950494047704235828218222979178320671911208991161465406351332829014116985905386843625613634886972025412673346633205558105334373107807622635449635535094500173366722370172891866218546424616352979945246068597329082908356562799797182409197469785991168872557056050673548575815806967265228286319799709606153218509801012990083030730210891425578850576546925081408730676697780064540299826599840434705232195626217268255684579786937918523844406953603368488978665438688152745765281122832438207381039085399483093987138378515165541632036307287448883604914072512986687937668349766936071146057434943966342311606740553720289489047519029512159434949601749536543350377044195188128813967964485612526732696215578258513479219923678928120830040724482870632218313058384230592471323073392798351612006727781681892568854613689239573034944030188083426395323838579745314857052895112711090748005129784393561347765346071339836588971260442021545186660819184453201514296309106494469783484198188255267801073750080970461267335386840908386723130743878989250794740208786756207965222046112778705240628902238249126760012386936973382410402244210569149146153575701286134913237658171952626384987092563835806619877793667311951568472376949198368624002931908707879396632164979960886686493883327128252688318463925174749240309983208611572766156172855115535238424488090585437156780950567626464260622639649513816296838353491336994523401988642678923822537312955308154243436179949232154244875026099667353506365315668248928287829223866036941765160138410871474384741582667618947055711115015789248417082792708495650648354151376109604735126835947827305452358661546753235197329286655546240176471636091523024889870471665167003536064368570928271057852383379104930564881187180551034159358446015447784031177603818553886285035483811520630183481144144866883343534548234276619826455739250788269509006799378462627170871308925927803259698343469578316565948746112678761984249386238598265675300371424241140955515626698194595337141064408334194222436046820808881252279590845807702166895349020926725311234008596807048579613918438568932747686936851692186980993324025899422494310379190304687707026277220264532638806538713042804109009619625479864303322472293823578219422260085290422722960809694147422417568278206995084894006711463201967985823607115866881983455706654181001968805287649436897786810266307185915945750770658108866235237750772830657207292953542969498814667225274812147282114633436941706265719896786562373476053792523550325491762233454149274335113676050807883347804461050646556509184960761477219548488983583070771238938853063665300079908775054369076441456895681788733687863835052928006468415208557702505038290801310725860769313941006844491869472822860933634598497664009785462557300713018624937929497375758202706825766265260016723884486717582120627614498496900947905411895531493007920953396461824476257593489409163786556568955538044034206069791803980763617310880484794185037237399928023149267762560084778444853199873345571332579549532255508086646864931149170501866942465816811416951450791062090804371523014981366433682510148898255385190865402662214144437515208500643644622358077063040681621407771095675210443855376608166735535915774616478235734508633382152951219841980005228345905137767807867126013833962888974337277895886083691782642176147916276512976407973547102398838143455362704565079347479673070073795756891982314440377298398640948960838741208894125461817024301182932272861100249938583944136306846063617177095944772822760158817862954640142720526743941039896049701147529511033969508192683097832738589246860766243254483944008494431845891270686315423196350619448207451157667329330850701018954984888541774053013231516229605857271646344180516705636280212537175509529156370756079915349012705182532677690091446122841911103362027847077928030446798985796217102827465588170275668236378243080639147152921625240067326111407390172976193548596433243423885451790532624542227320073830037350501290824385752019331068816709445762146815258024755748200170807078706620249321023281957504969564522888129245470999737872653832814419390746161271278979170932576673863519907028202622908915126701432526166459206169610035605581533535302579232482153674172661688050001111052984360329301880174358047510249795386599335202631653161736065228174784882006183740268006792600125401282330084219491389304430792888150108131594117810642570205849683068537875837233508515890781337802340027529655746705157321758522334116061221887992646868564388994219823116142723232735424220045744266705749747064775371128582634159981527955949856726319010936870564101021971797876126835777353681685137795019661491183310771540345267115766922458206337676757890963520850869229490802074778049040850193964106163794335472332378242164546897618021081193895348613294699466748360510748180909111386760544941257757108047581836687462818893741546169267870376165734148584638267842903912205560803591602039455559551850130135104922548562911530166314983564125551339765830118269856816890611798967417479004854727087830431413750441709173364407755145646300255154182445119882982624706407005376861447703399465545088699685847685469820578236635468636512982024384529540322946042174473553797295267348824714225747600129683030968683007435984510857707419725740965121625268463194683183360410391834746454208325125180989213225758213738783832005137487940850021591525666374177248151444883938745199289538339131502067178815130106828605654214626527983861564799015516385914670708030286676453987937666350554561104607618428428834907547370511819556202403301224605912849689921021520680911273300520992917072653567476650983837459339191440317557092363364953984144109050881936581327298791343990579918497941707500484885288055197398404339250581592960999561360510061184834721699218877788915101455545931491499652781348543951754352015215595074515319993115038415454404189211128869386716526789675614209663365849301491116491421561825405241835395767384120249237493951376683317872172577416911501120207994805521708524930730747794648254244278237607448636550351760390984652800077773745011213767558768387845290583603806313570391014971717141421002907882158992293199626070412295138502694325760465522967348430636161354079733006764407315127788097458894194861523468075221545694141892448052700818367770990382499329562474334960354758303386505447296498418012977208102594093771386616779022654949612559007267511624191381466254080025908501631278711765481973042871460994998521256906622894682693529846045358255142267629356794681958870480019503560301920695136454323300415564315856229570975807538942417468492438036342819195753887055528876350576042859954549347431193848263700186876243355032596472245775153942954941547924490947830129310525842465291157102424094972875323997559117808296555882363358801603840903086536605125280445204036677649631989064207922432380109730856856746375169646469833875469433030836557271403606083704209496733370708393840963902293639226816133206443556721456265863576010750650570157246624618074169081925712403916311893736934994804752435931785126313382520417285215783520229809715134398255832055814561806577054545903169951271974057187633754142877292945569442244462337348581303268851772918864371393623257165717787122118131565909917049333191133254355865469350265862581984836710440817693238490347322110243848969120634815187692062141851798974939351085348279012791196625702972762411316852691559767397095058283263050999347500255838054738496343050684442218642302329599866421298486255925170710725198024152610771709408494559813294895923451152966770862977194671448077256893881222805500900774959136163497755283167354032834142285583593441565852656174714640647946102708676613873764056303805578024088286755684827453494822267523997709457917842245762578263349235075718029946970120782368703544305386684076546945015855618060079230313236855979499147979740841568083183720156227074639476882758180779873420004756535999268814366552583463720876897156534146391026254769135577974568966616324393655693743025928600707256802245774854347836335062534232482067216565443803248311221732485956929325501017913255564337642910703407843151695147268451146558456757721539513164804523504846871785311833331147034523583726618745675771684784212720959699928772367547948004105238511700762180197808096946545093262599978260854593834896328185817277569114068149161196618156121550154793211392183637969637938829150158411222095944503946538728315040380866999319957936372805862565307139011627720159197747511830783464665003392385271263730036313559296768218224647820026963840029128530498301375020179035936625078436214344515969133168400500471178548166893660718710648932297665097937325904890896595056615140222704587508413068273030330641813753949401445727127292133803266804905327442085811918759004749467086488537030861370949377191222314318296700101916059075444595080718602728009532653019795255538580533077721645997942228643086204387749199132648165521938752683284416863710000120867326478293504918592650653125387125985801544033378194945329372801973648887762250879310148155331902254415985583556519535748918851116020140110145716409981144925424430903198200099295794243281500573929136919423899186974854124874387846221739712523751751379578100808141271761266959017589528638505553232346594680248650951741304902260947129679597178536812687006238107290791450982276985618062765833470086628004697478467061472882925688958397332049128502532649816299414144068691750743328526288914189641182682881852187588298407500650280419890633120466409069483560008131224692447266389692882307223016897874816170398197307277062328569088610712278447163434933831361977985453806702766819581147801226261022224125708203316694708562173011485692215706536073895993339883143089360680981243505899506488373507547473575387568992417507779233886929384182888609293553649152545660984540983234728506438038192950470682653766225867873380090665962623144701712815164429245332800907409093820416239194755658566598334262705177442560513058895969730516211752887125454611771755893458011156639146218139769070874796458375768247574380121134230974585468446020905991328728320949289954811673937523611610019936188752453635030369234139480119874453575927569393040758604619806388224725223543345798808997228661882338454589543384096035596033674449538530092478529949292551144188187137657725668383308116521949986747185788461886191502169706483730959394646415705489027563885903278585463594789530756650334646253921207230111908856786241681408944361676660267182814390152055159555356473786117621095796278651938173364605395208019270858292341738736376434577542306552599506322674105899171888617544431662418001664157854592379352371836053668107992885072346128298973430329528053514254797053202600159946102638072520195391479858134310332467366400799855203085521625917756465735751669111588042610451050157677413077709401849791641058566709007893268017094998811014211096384376333789074138972449841941692269560014993225565013365814497117514116050171346192595339878835295582657864357487491075595743217511363844883192178800974549136166846310858525858541570121595067656981961994836143105318919300426243309544390059346691965570882927405997847371301429605928917962130706906015552189832372806730905618903656703885418688431334037866762392689483900907930639883508001269676597537172908917368611132896538669463797791668380405050798384372041576621545451613580478646566626174790054239357194196708462304689176753333038386668697480646661324283205431904494168657296592891993548076302278198715388408802769079459757922146342619586475678252902947396942214394873851380994540965052728684664005442964012399090064666425038702410428248361736917094195965388181247365505529757086888116275196087686711526822342501806798912344802978547971848567685004138620739959998626629110020088014143274362226603089603028928646251946967492796132056908274820432646200969925236363247067346966835175288690050497750570516675999207560642891758742581200540509134754120172595177938212086582040123159995967948969009081426260954517067939987432361065595691945484534933315421520101948485790572587470924806320761100825701629228673167840981374576939137109746642727566163667790326794995653778279310244949375083944113971062945406598135297054439578024540357878634527845939351881344765804799646943155081049326912312166895300876263732184716459444379156738100175880415009808193122366500174269078430106762432035383902661916579787837307320671863153892623464768943497171406396773161736592568758977507113124039068257904122325017990771991312064666187735987789622313998499859133045181523878179816614110560323101896430148999733769507932379527106790826695116540408633870088706624808467387634198201919703168128044106711073360076006396529185091318506933072273957590330445691667562362032215692699755083814912899073872829319803536075625144791369320879598803501459410030109603985299276637579910603984747154697483053859255582276293923989498915453948320607693580843331885012761966319772395319551659578108282322183414721077186312330002609308184424529856390211451346437069227232034043682964709827067613800970961758030905910965240466197296319625877874757370708926752200287593033046250695348711834705775676385774298280703743625228467332217045746688906037553587007594045169500322770201052401108998282843024698366127901683171391181702650237774166893772832244869030735338312429711465380365830752461163823470477206922741397427079062721537082842367078515053764697340053915423151014151881113956415742888301665678503755770608279323394192043617638858097423286224915044870848728393383430025692906074485431679602413158413463368715159102848382213660267609770819138771922266047191961708689967746722228299802359276536394490906828847674253228155765675253568608638294058231573998698952628333081252854211644840815089340558791597365569626130316326323956678034823132165663089554384053516638483312804029732414870705191269955699077297409934038700401096573372882305926079856617781002103494546904043011713775991105140100259559017622028132559863089514965102631054279649718958381971292881446369710364675677755235237526711573868904197596728965990876019439341962963926355907604571620502000856460848374744769218357057261634449442135951119289460469861002562619451190820065558482252011586637024157109399914024557125718171242388642619317487190355594912605295869480034917784290371761577814194710438976262443045649956517938056454210672891982903025306962400609440247589928344480661265062906047855207145941448291208675653907693704040782318739496573143903785522095731487045449153437090518048500939010131173523091934336311656491291983897957247956331528591876171736268851597589729851232719277020096737580465146097469949344415412544097609852762208937428380223816331332530041351870197450180250528688292557551426505233817728131388606794387779698828820903598293773908306978241430389453605939871955276740633170951009548178879928920699970933480864345040098093582848862489276238628621104859602285274625198181174000349086538859579795184788900040311132012497395728436446526768547049175940244225114363112365016043670491191612081200839154572853178494205270025177535875284544074875805354430768947686503398064940830536913173704494542632427828044429723777837852948248029033471563014838236173044241585941254802401669310050008617574390552366304556142453278773780192995016145230532419741515592036947631661539728675549384132187458152268442904728250719370300338057913469384133431780768184783714261880329387747767656279425423500315595217005683226554429601743330912240780107200760533502015321779374146662451357752320084170332538705148172538286249645263336887572693904888226165931577528900106022128818684754944915427994590431501862138112775315964768893533212643505858226070412947474223844290520681303151509411872548756987620618371047104224441289991814034209247443881306729177128943209787913600122319658234733936193682162821816352719372352046988373116651545712099832356699049806689505359358188434235607007966842897634476021859933497297215617578566244589738750003114958047053932327686620318939356203919478713624593044321419672845660168378210081095250553486075161650545996379755098613057073581233738248518260978575669330511064144352173455760328509141903627435988862940648579938831797473748083640990654636132180224912568391457902626657889597705198234785123829555483441061762660575098073606658788471964682251679118583637265443113598090653752785180265521097477239185273341301594217060789045936820947908781662464579108518545340627147375519138069565783364206534733572036872430491867328552307676800809376608250204051866944734676873091708057843734820611907211692964405405994032037838610047538874426173648102604910238221620856215268911638361836060816362312814360231988976525732284516649497492361997431614493158598471237787450262219734017086435120955446980546484793273890734372089704982113869763611358107833616499852490828245564383423390282644916134220088836432120156334252539055038720596716179074471702944506329543399523464816343753936420364167780120922326399492735258486986175920464812249426839365073070480918056607218937437878249713268319453664949636344343611829740489829531866674520321438983972001670908275480194652178385062151562212251142265310875302707158179104443389447824739675017972500456129429139895475906374378382077604311153386449484451492377635273499369852073118351614892539965056496877729402046184265667353315631826564387939948081736136154436571804911629757182177040485492778575976153163647886079737007352272348330990162624004304608822990949773399739083194220877267874912089299078987413947006318941399088153731107870093322086722858073354857870618474489996889844898638571747524916471590856934853368184952179309714176348905500937563810268588223082977288696778858735014728805662941443756053433357122619019138957777638708463543148046797186434358492580477558481449501350441089726911512513344509991936731881125491715430444072168518434529932272203978840398506922446794447171407958781283306701666299417569173034717872974592468549315553099720624210468008574228541634799266811617072482639536260596189372651800564711386613525254436806292495948433052635616930176087846815930134869314929232003012084601279753912010096445932092829168738901791957092321471081701054964075148082409393465928465509532721803625031092036014756228186371531797752045138226845388922998098675037623438001035541309074911359081509935417419017498172127418957295850750158258469163857197766871444688340032834556825539918331894200210976261051387576623094807657417791662690585471357270326484159707149831220402715172417284613180381760135607787507763662551819773103175864401272623866497308718661993850746643024009472181972288794736885092008176367042441308423373185445227320596247317781096585259948022899709269549454092973448547139222076073576457762117450118885270032697349004551639500740544436619247596357074817412183074168484510868534358379103761994203833336110673527130964687378627186091035214923767881388767197162870886863758280149939191774198128673969936854076834762426890017438909820425489519580119119107663046353594295305843441933884144210619093903675634399327192710596204366504880082927074036706530588505802379991442315167574040715487284289669842894711780724207060518687562919915061227454016616176816679933968870181812416834992058625251014804456287628584231686752644379157666590817439213771788821814166430709212446669201406508166825501047842648847050679330589527290310726356539608688710916530279189261723114667157124428953016254415805345192685446928055407221875833217574991683759075650968616672311280962217071748498558697603740957613112186869686282270378909200124661558857692415547570681015109476663226684436931840474892756011980414067712802744436981141097079090494427335423687634870937582229323941907618276606583421412689827753104869069751604433539941678493047291641166800868410478313083476338354800732381350648200901554731734872163556739484723158525182822957055948511953387710124567132365120660321069237558356781108893225947201403704061861768085688051094637010486551996649215556205062421878576209011893600981531429480824332864883536303822182226347556682133983438968031954745774167254181396565568891990508179007400232243896853226371724234677416597316627008178952804456151491361311657108619151383429953708191159105227043309139586639696391090355175127193633425850496620527350330737989145403210021086110901920832148788276233906925518102871029968198120359314073866007955300248366862958620041220420580158690253459658342414628692385064428263120886082323969895275554056754189991427177898745974227247745699661711139932887507506624514738926582583269659415889523439575973967176070364724163621213168253959781003922701824126863763950733469320521278528467216832685530923125191713413269321777112796845398177684022658127726360547060230385179059897543385089852219283397965243939035577125710725150040715655581726878294043277143958480200733638272415170506587725195728644092940742231621924446026641854953618467996642460431992545465297030961874113193589980623214491195837338438689929114432476403345810554728924423575010505970159144474729235878776476604204384639282663455599826663910621585961303183968280948411227588476318467458246018759608445152810874953107161205688657285481191857250270954486826716964088063379907097846736294998488835196595367691298105724771917289555777659052297247958154729050660816055476018173344314032432841523589871302799712196948495474244576065237708684908072749877811687616081027441018852193746496804539823982961791718363554686329888802702578842372594954119534460775560279444854579572055638333648654137616930347669683917826230265471647175813488873767550538567768023874754464656812380238154884692580642979560755865258197390137920507398828344978214596075006808677245320146127350991450534544039097594044876649263894988710099373049117555760659339446159998094400452300091287142571681864350837525463457875093788019313085220576259546369731834736411080826742945824036206830717922751327421268035665831233037429121910951513785283837461051317725364301148748257716882488572016556447256377509483864135611747053988771710802146602035769062533260519828951628407086471596299626709465506103179187238222300644686071988584465400680488509875995017269665256494149518566679346639667563969717452288173692103967533006092157672936620513242787667217631631117938618512789432181389982295052589094344759549887061963862397238249722903754123876405203221268935876854836095112710367606541872929719557268157742021203867082807338410869780649985677376447576556693867789996728028341256809203003324612636921293065089931331629595760258383588924187005626269403964493703217091460617289244724813825590051855442347237727868609920706922862436534682956618134342560519575407340972059215797930959693990456321884350672665997431733896575276931989059002135186662343458215322012562274348587461263920843930597112099692731150529511962023343921362433396067589274822159717491521567940406347941284697904822532923265075517304730192636241059263963511075367839298841318504640090768030954608257331602723832668544888091183122157879361465029536500161549508274007604512689764896928964369840460981417001433785020532970790146629957174426170419154257632822485210067707616806991648750732321832746832016468636855909155252458629146015862104998627371111976365034641323825143515141343415405125805172146700797999608562601497306862816680074621297002450318448916587818192536384122737351980219872237747322539909963565824409349176323446151926722766366399725106943588449494340284287732488006040776084957572057660536478640373285897575572340051177011188940425696660950565728940182479386755120995306294433345545521005298594347199529325682423554640759570908436656683031334793533369328085971505248590551165700726901094726643000790666200361342516489637910322405845499813691422200316373396957526081220245040538528048566452717797091126840073276189235151984851057776143444348122210562467771697424092136220722803449713826416963285476098456344815237954946597799554695425375272626060938539530945343295726745476267754377312901731550249862848984887545667367720218376881346276702566266907855764342170998303852769610648665710249386442987814145835750475756138205741744326598571127163641256950599463085581654444209005070872377174666532124732658954765028098255276406333763871985074722729634581940665241341334404123829672165293296826945158040928011027059852106403822921939308553300824463315756347857818729019474874811854955828381699659137005553753483242808697042640595240796683031084913430073164230483325989093078461773401374160528410209484311746087453791891070784624903342579029024399509928395664517415323200610057875009252565687707908383303484133293574935576989496210895173291439055304182503084764061194054320012903046343807174992915907517637734674656093566294511906965685410214666378384865493581681191431091488097416062029765867871446084361261909815063969778926251673379279664642009762028163550836220220647003627312111516679431967196864330333494687450306105504001454965465466090282334534216556860837206941058538347982554826968796823926540100113624959787714461103220472697752062922710367223076983121532378897934392151443585499132249244946165363971792512545697097017887144186846834603549776051263801274393916693964310349915799510205653534298485794709530311621079840944544223349754959357963969221916108617336174501502799982984995272030576178408623968736262593721102352064843620269677907258319564961801602244431331315993918527085158733762093041355167161324025879611845605934752074054197848045519032684563150621388455459631572521883443830443496213481069230086487320717990740212779176912921231148951125166773283053449435789501068953402399394819389314076098826212322928185840344667096559505286374988073026826064853582272451062078764584937874794461224254459589771698454558895961394884431308897927118797109618141862031346871595818177574882975088099894560993641090386285155823945401955185961510651350003695670013636114963487304939020103355468681931942487829131485844956604856934778362608861296425458316095578590639199609482650667438837552116863329416678626684273101248479136409319894726469087783158600785359996042671661063912792139069665904103616757188973492941895203670927502550493549730733750473895761955651557108948688767689733138192461307869845214299862854650166780735599833927912931338013460999078954065935898349225286405666648241542117319457683554633806823484807256681370645425365777504729597259236737740371341401212872816665742560288366685269756769005050049607076027188479925957522325461507730278573354097047608100433049887032859668220293665326242634191423736022922349556258167345406284753735202815002531743029529018226562809688173497520149583516641574031817271987327251454735297805445232517917543386835013222901196155454220385315901381906814456262788882988349167020020802029107383874074899078247552897110019996719407633860017853833863173927155198784065575534663169807069358146965484842788821643277017091618448107289590641710593300305263336314605848946401106510146119384418176967160424359033910494187089337113120996595933056803931435514100390924497664523072886161084883195196684257157408318042353732898184347768973989507561677640869618085842634731636446141490352821249526891310886024634476497068707002534536284626993325951354235170937497390133029611472977065954472131555051487637732071326071162944629479421792678981617122223690599343050172587502834150887885627958972081632366350896649222723206884107452334264803504918293651111687600111309557747686894841370929424531142138600651982000689093609808073879774336223321882171676401026277853310819332819810904193516903401622014511657800855580701296604778965718283768399692273624137485471626255709014646426852801509033050939444293019367720546834725605759679959509144788085601047248558307021332804197394705592871172909499008174127724214522419171446984784198467647011463001068850462992345998987401817957607905365074658302328126603117972753994742366950377251838379953156376487762668224083829265250123314091231372703884716274432407227970370803531824989401841690571700547179781468607127466016517999622645905582436001552500313817971773277856581406560066617304578608163873831946524221076605350899877044550729414074888986655847787718983016540080015701398549222453277491462461665837754222402513893769554760682726566965429838467860426386063987163196206646560275577980214700168356988435116722501495318905850130794494398765620397874132117550610268062322730444217572505758606053900218814043493602056843411615694654092230745589361509856434882830106122830596319551661389457862040119308412084397066110578785810452483663397035625176116353946502665352953948591546123275793939420391151370001188259292621221343150463403336921634465491005445202055142984185960114993165072943139144901941403645222992692131765730656387659390835503446968304281295943766167190018108750391973425951915193718002682944206578231022799937124470733215562525433141204132401452164443573188057733491555090060755112341261572006849506267197542903471662433070814405607364018562170605691019924101887133611830780512541054390999064704518605408490873771779098593829926573773399022106466018419103333771739110436679605535228876195349739495077167189588733706428604209929855671205703906446868272604527380278123231015652272781530168123802209092385208421472308334251919616679519695571205861568528025679874787751190930494932974629388390002537304715214380544039643659824782389742174704212286075178634241258304477110497634985042074620808058346066691859459621682391017214821716172983584713010999681599540331910189056775708632636289967894912465865158312342917188727769735285599789847415328143704359390073800181019673622138585428719536282160024110207657511351653731966303393512347764779396186965137396426019724513134991335467261421090755416837274413972662655564766996557858417747002211211347236670032566051446953427679904660267488213509507106869115190413435001760062112590313312798902938942397439048516519594160731522913685045336626264222508202606656691354713965993437027789410738566974494168541571397050988574420324123645772204929776003390871847830223960317336831714556939571968159412669807869245345236910392441860432542172852769153696625494361524091988045372831785313576594818985572026164881436649519304487770576288694327805766383231210725945863942097766062343735146521877018653890631132188965694314097673106863936588157929030832951194963190940591652501774394201778473883359396636272185861876978464285056781230802634120166661633524692777241892231674517941743990587679570132169766248999494706439585592750098888026418135579265374504976154968212640742708893153743711851870938413182681507489042678848476795068739330603382063820981812920120453548608392300995836260127943522304019133396319307266259154213108405024535884741728848671644397100498626125786803020493752822877966968873519062193261121928846149729536459052649520167663142267575415773283900669972439435316417546779767440932764978649866402685668320535077286388964965317954557681996293075885495788671428352379513976188666566211080258117755677302465389961958884037774063866342436569387774404019126782684877654275165089814865446320376053853033764394814240316813388917526031286912642295634590744406003021259656867922383638941913556990671175190786284413979050902550691064886954041263968855024428566680441170929295553361686718159402508518608947940050612382668972930091234380951670920009923130187237634683752983132974763407335493198353670324200480539503453996892746324760307068148169845417731784016981556174038643203259057161470606163333608940805220810773553733273459299493230962587186773895608489736390584823257575816782078684626513290512906029521092015167207243439980467863417448414280516262333511225425072088286585036672253267693491909031892855914517456826338236943398166868334845994806075313328213503344711308202611001996136613764939797570536494799720232568710163941115513891781263488842644560199185025704563453332396312673833486216670030549588927238132915958162750395305941889261384706337192688516850554525318072213077217579371363477858629754762595860654559267656203910600484864221456138245703878649889338870947897522489535343872905169706773121721456114875142297746208998044934021687914703369865957252094016699509070892217966938720360443198151656941181587805993424518490975296065465362395812715555800574371512991893545806730257455708751931564233461699021448261867222312785223159653962742547524430440322054770077836168908756972269999978230502215044996236546472912699566504691388536376726259953889076454139380772892366051480808326953596363678700114598815098115468441473886926001586459238932358420812204250386399935733571565862848004201844876794906782934432527204474404296404514984911959086529933835009963754443435325512685528932505617584081314464093443508735555074438354315703411256758494683717273450016545573532248267021813569461050926867373506300987427906316735529857205666720390413787881776717667308398065384358563804377691221477885894633994279393038221349373763450412307428352443311862192927314353309263948864924055195520463588624106519831830123726687974044955569463225416203908789417116926379028554972260669973745546940845504060674730309813702273126863835356140179831232883770760787906972736955514737075893551070099910458767465537253124618928568447196001495542212797644519894535259226099381633531718624817570212418766126032355770847879169111038845594942953739017487777644651772646455093387479114744869291310060789058019618718396141904903844400199365769954236664565515384119071644897643391449973840002827546301103400070710797209636741888062656261540650843726821733880743989323794041874008982021067649517637761344218461238821345707632030822168804094407360163139166830823094552108028605799695028090174591547871341144275000774941254246956493459943684667005215481182374643878484932406477039830960587451143448851227013530414724079664210990954053135047555473760191514624313230099139578532098699950353369365098868405150350729504760327415343604574223219346993285799246827566015311437693307337278258695762264050398157920375239055562873202341891873258565051501453116737025521345365332768194574064975303831578556725167876251406755049427209043826186939885871416945448457269229240038190829042323321550296230819943430516086105763454899881187003590802293055304477737012496312599822690553420955065831283746101251997934883935000629631463774895043688648079827177283790582519369135704867900104662323497938375555073368987205033876634040488185108622263720923840030129921805843096566414125919052432828882303138684131555142847793601319732730714746118279152163746937463921722129493688518091418650058914887258151487605616601498977718104407860230542398853438173163806641482321972148028404601593312623361489431796463896202026082026498750948374237508818738566420970557319115532277507310883137864394227978173617118442874387340211439101702428562667821494026154963478129434394225286549965531020248420317733586053349571133515651991166746819770795892320653105785448396404260347468827039735505116645948360345209823023658548410339417987962518774868422490437034239574847219634821893103348227989843120992143935046500255999081473756972910206449197175070020487755935260192696603660334422585813391547822511049448362558782680294782220078583162350179193106531805985265568207205376538495560611703759253890154295814807772382454833264202473278173640936067676132596082472632758133679557625855052143261424167065024921424205456221405710288785196248935241542413213673342851471099426199066208518315667545981451025218631606457082722025694122470375841280645211787947632343252296269845476227665576818978781858979571918871419434923697490091269685709696945383505767806825770052732528022266461549227406242952960358925090553278180695180890548652924091408769269585892788931393841086084038313772188486750597145400025031603131265524302239543455326645564802359673123575492397879759888390475565295669320226447643774925167726206880010755993207961040765058346828633525515196257844137564512653155743652033690620751587981905818441684579379710423741634106640557069356389823125813061718033977872638921219318271847301733475500373906067314157653894738970427794851959476990732021908434579280007162371854755948723017759880464169770374669304687123733886824403994628385957264713556419880952675083616711388635319536240251497901151987382288474767814051003447385962508628134062721406076848266641632555129443117430532365537560615629460259905745457093882168133379624172158914902634432609568921057780442855520259185059442311355215778190928503783917970012673490033208775275028697949176736034675964355751107018300798946418599567392588531986157552276954239326173883938075614048629167353766413763177497705567696051588176529778994196996977796946355174291070004068394274345935089144475465927802044216269657182077108886103525852002270792581484012135218320706513025669626723592298711711875574405759996167905057320758382982345692813840046295728946572616145878309323941172217751620460587572757570122475630338150270252523551724801649327487073968871258338993574002321471567984432610934703739503702312305552790797835997537106400228060711620116391910680471100712318731098060931738098474306702110581377128738276171024956184437466593842500928716149309787419187068358036087846417238494041588474069878697357055394270227888739408758741241263971459376032315998598591198896102485273807830906046522077416584165401743191148749406197770446309368893351556008389046834403360213629891533317631248743010965522595408519357616280524119331920035768849365638571727939373703945651691010350632652502354833936852319464279790836596584332743494037869776604558648304120432949822805701508193014264891795131786130275551784382273661184064896012860874202706799343333527293726433952335161426368797238809311295692202195112616677007173590093162216574596909861066210184707410045589612005597234006777371922103086736997531746474424010468227727210358389536797671829892236345968938695283921747736181171655654698797041407318694195216217303104483377198187131903184812883084092189268771651782723313385090951756015881515034359354053344252102789623260825090780856738662296046756017983190090061620620103304623421322167303514209767911943745636633615571302847685282581396876790627260942254713781482682880958319084406142554181950655698870295519230228774471894093000426837168325640111943741595635084638173788243651022102848697447021884158860039242896041357292469248598791563877870930621285195822303905581419496056099449397321031743919239170909392241440899820834258659395943017339488175536015887130454078922871059348541269442933637602257318932145070615605161836305491917531877414206075132686728626563482772992069714137072907920507833669628239075334361740659360237499436033377715690172321572372406533079732301674834531478199372950324727941261460639920254107486206044506767726957803921088352551724334929044644229900741251687506812346500389260049724212645218709932210892319097341105040918803727685598735957314890709407286171943630850835015857140926124743835224190542325795490501714225190416616804552211834693587092373462542905967976128130774149028363654108683121498696948787818042066691735560602626306448082700035553303312708385674674372295605711649312507677670288973016401436327678507826900656391077737466947898392080444901233571930726027403690260045665966092350034246871333833777832160027001749011145710621834485161517392267243657969001763041656824653947130179126589325318574273510910509911433517752916696607797708898379989332231533164094843062543021400435497226927003098924644545368574590815520449586559654062369448887480329888629191998628754391430637921421916339445256128701410516165218063089363394813781110932872558452609321737351154603909368221305162117984437259110818791185340438801028462315246860374969453732733237898273550859686389435036088409664290490602798188621138337587454282092139064074814848240137913250844566233360996258336178228258266070698255609110360659909351735365104379107940024711476738483623363418834647993900061773561008910612957155898219551557580681233774462873282521068788325132936067308552271673302676455555797708462576493937198501309389414128929408338577637505314807086890663988981575877161538416950540459863303585301482083280565204190080799665576065523522769566036110188031081186993462184785903523097758192743718595159917332342772122862058660332301855378473720421243375306273352247449909048619664235687390679468461772439621501574116353988954616624324858040045426479690122093421577066299641541825145659696656360432656773262104361371407762083445450249693695536792206628403587587265000778437894824454731065192334796355668613933123178382772159345144152774844102893183530243723903839741171496743660662060365949949118552766443738047398233991476108515376035418828709037324370292230559177267853206460630510618196933085137576649317525420127434289832736423011629652768456271418741885978669382394037383691674875170828042085465895176111230995135734883492307948315132089657121537914029037820545921090446272020096274879548844629706626475289962392597275870884756485577134982879718418639326517171565051148359890874585509200859078938732549437160929767483058427161602699947579780410386657434076909097878237966809824242141465829194027700445943334546922592344699648289534637862267748990896760960880158367803537739141235260321038454653620242838787674184036864482899196743443225315193153044951372891739807184922369218288162212203644571112800591086776200875509420753412278966417988438984478384637890636353389050693384098909517967672891570837726772308936082867456340843683698300025176684280204942431178033094318100305564133339679977282272934141544895677976795041107400106111388908518335805238193047243902946101505875816743116583175094257656680886290993797663482664341990093354900464689602638578241022983050804874532627349802900542555599679067719177794116007635562427146351833267659212282051197130292521823966215408761067747129143514852627803484372106617225135123222455205646237539676090124079747345951278183245731797623044392875660887169253273276905613314432853844120793591967385316336900839766951399287097550802110265025999154998889653238332094216192484986490973841475636580718240927043777344658776802786011999898956482773989355547019027534329252303094226515398911174405455265053494798240810109056126490984690812473289343248370630986730994360421684888760391664982893132498795442623446118976073092479569720388724631832674673548012119686408025997864934520835701671784683534342063586854685109882996712981849634656226415279489029071854520313607021776425825216324878481207682362944496755050141927206665206507251445117084215437723781387967284376649960910122003147269547799746802419446966573825910103138008238140090823295974590206465916802863410583854876901603473627093360058014946404020980761351032210469241113130233792423479833890907976856232919301546925854988023391900145181194047974384793216553501027372989195067805193973649692747814426875099272012104086095604836148343003810083070462740396483674500067070498337164464578932375540656060253236250024497343812914507570552724195935096160787605715091613894894977541016835579568984399108603364196160518150650765421886430575140646515727016096268728630855914471522133236620664218755540324908122011100919308968873022427345094561713938446434456081173393010891602384097577758704677186626529685655760640727348473922836463138976963678087506020471165189714550710641406921587665875887130109979350745230161507829324014737144940428472040305195158439230800044027020982892786923692262125990149937380713317034430052230759563210954308319251507145834911558952666845054854473019983123185692835207569383401925218736355883896538977520365733011418685666884680346966847131939630838604947615231945723433873588069118864513322181471448493651590620120157381456975104738106300260939127031027500403037479489801956384301992991577292762156741673465608124991061073009448745271723725185112592399598568435421749988849034745894846109875498014278317239617867141477479470111440376497699704808142643918889219778629978983305602496328463123132967377158435578588356535674008351561814099831544291234996802851960388099027147133099204805348876081917154523697720240520209900000829675149680788680630999386486716829526832007267983640872964104003385826237619284086084363172528710004298486955538365792521446953396507067634745099732160614459006009596684167227610292832827786288682668433133532994635641308262265320399937083626414935027275103581512644230601025585229059061326679943061267215344343197701016263129336912736156387035053937078362654691190962123442989465951816173387881509613727202834237016534285984487718246171094492137875409619263693081510600938415641542169125695011484059113714923432963913358562526963296900536126437449698116830557126960775310360964496224204172106795256611437882265612745479270093049103202233148508187355333564664351793236348696769428715907915489035703400927727735867494816605377323135785648651353908016661084555837702433135018225279790256751258497725606130041253941600030008443349540200368908477073863310101081039512855490364809380435173062350494022627288098853881977513727694622680446953623903331768344828427634647037828285052152975686154811350584157951509159222221775506633656544235287073475497898748491006582499185781680113183956796481020957081985188910352489195109984942045740086457307719658622835891504493051929768855154023527564957475017330759869307017034211085340351497114280882522188792882017356142114406922513087076169748918121810235980306279241604785639067123671833898792924568078257379513498774934430134834796768964078723163288874177106280359793798717569687985974147646484923503812161842492232308678684433125654672337547937869506319378134349885691513319788688757342594554967500264088551954067865687604090060033485759984359417362757428043377395974565821118884816541041169504172042379526292755925947733793015902725684807911415025856503856808184075147355336342198875092436526861310526972130464895882944762093088865854870377522206659215898504938241088897471085001054858067536329442553948995900781011760728671479595693474521886594713742961235094523078768807858947978836641319785544356816122528206918494417286751132893169788116320027106511813355634590829927692146732311880928752721824896137983657950836654631649577347643350060259769756502109554931952264203293742099299748798001314896937908491407653746460271630584075188305487677434492761119805823116139509644919504350763288978578836450205344042213336563394578046985376203790864370934542892333925234571475640338739864558742435161042607154545036278023912794053737278485913170782005439043032542523003691992075844589007467265196429963657644493616253799187800403220047727423306660003365932899971236326513998020245499666280050341167010765018627612949745147817979878446909796838460565286027653001816446396923505157870800633951753543637206825416737345773892970317693760040966619323176310711185767451632366540539111673357038988064209610139529434912667359458242207169656067305328779138187736910866540247207157534488217747046847486883376147760751622969459213296537919553035350706634517001828781530162550490354546508151392736803749708277388524563804125085073772011739671251303804689069116443023347044446837983076582754125182172632741275079876351560339019253298254740020484926492251985168477445098310172668922828285653845477643845546757739523465175618757183128009046560204643744900766741687962757859512373757706944773095570832420161246695863880945934986862441963431267059891885695378585920004500972951540194739991704385672619235714799848589390230469736164980743029878679393088047972959014064656599771657072863482304113099091823693370704751095699633424377740490125782451681015819243552939148797836016435609401643320792072472430171951378819919487924445219880357793946294207524055814152150786659152190697611311036493928304655996938330689483355571228629049762145308426877125030913575516277235570555575835520303408474771111673930705593765413062978502543347985292644267648601302445280520804282505717475182451444812273720815051286205511317227189026764996051300847784549435271132159777623849361210153190278688452743123883969147749107692802246062230079827079542257510793357409321429630955831493742873560677040433485078924557357214557057293469619790593043599814148408683581616910456611499552738583508851622861287227249311195974611729524937424358466333799853423209872740779287007512025227646136374127479795102991162008850415818886107387147118451988924901715453633461525055515725174929028044333496496100068432780895108103512970483000575875614423468772955042930839425443820688710224773269499190262281675546079867556350569270976693091696788869211851574414216467353192791977975940315683019383183986902137345836406958293898227439572193063438704339810177086699441297669984447392360179509182756557162511633987968578550702245903444763234468253540768559213176466083387468773400578051666637008072106232951831176648880160291058079198310585691048440754212311714150299891837333335873115045466936673711739763697925921347468223218209708398806635742049792928357747404463941769539029849808102808312571667157607229280830167903537463606252048867277840496814112978870769453723814930790686515948824629905838994806939977970906782169325089930250170817009785122566265574863623071834622339598683314159727357730933100511350615726553288317104609511688677307135383268303567607862222539229488465872683138139796054617965051827144833300625062607906345286252869947645885638772367691223315459192169617138761720667898663705909359992712222563713981029117159905312091964224407305125973119655479539815521403499730946061077937383072621386398714958031976696557982316634828559737434987862124027852702907228261598249385512759066637397883518857572787897853908917558834269202078559622211329439645135403842355404329396915751900423084462466852601185794658910954203900444766419008661576172607295389274194858870530155439114420295254340276688500043532844502050120641703463106613607776529371598690607816579721758857039341374520680881232996923588303741953660582165469464559961445056259203391278626982384755760348461505004817875197195651489007404094932020526047354054072408720302832627532482267883314189692343602087742526044944773138317041448954165444924383299910653263794734803873724279603334131894431687756150729040050830512981637790386497685774814520563979015389434931972516409075457874608113121196302107286526687565911448134863353020375976881111328495421252064452420054621687532595245219794144336776616727232632524866959086243302760366637776893952293721246536855596908709141140729994408632321931539295793458302630582363296502966688252044846684851958622432119851630111869657864822882481158904942831249591006588811214657065452728563553566878609393132160762122892985499846056977195989800217780796704917218207922787918082293656613256845514074818498260139726893210424021145388687486933672927365193535918592360990133929118549136782445175268882087378112024563992517692953283869076490732368400165271878867065563936968196821133123062219082059518456165270099915306880574773461432283464616298204589529194931435026909113920412790259719043804298830668908841429569263430654338602316067046453791157459542368449090014673853551570572735831106692671633058698485298866093859356160362076054230278912443883700291523526919209438804379888639333414801160715537532597047056407617620154060506537398459314792830628640541864334907301087894442731711479423059244098648771549472421736156068214784368168772267196177599980449772907107750837802377635637302179290601360759732599332059614568561993634410512247014801424303508127084387714906411751079614809727066072663725983681097561667358219794250860599995128016591968120720437749292943612965643876030757547182615024823007706577301765355385698842002916321248337144187892699218317781858628664269374761915757234737980258951931624237826877899991913991730829584676063320982909311751260303202822613535234954341715424773420264158661746097511957905191737157865286695266126588381185875156040415823365972618975753386928182138308960729225935672259154350176207381662889524303408248730782320171376668288728171126611305956378935761379610811534015006431284738284832637751077834619304209303814576134860670191755795070182850715554409190015188789551058741033238234494047570446537283546998548737495298197820118902979997759488592039065695411873303381199581905638417118995363277606718134435976680713230237299008316962470269526236365564979739296870941360007154202508058480188762811082859589923404997341522057261803427474706488202077675365534035025515892890504278249944415059840426430780312009530936865353771197227402327022878666975630083073763099294473539622790937518866762014776206763808553027993261784206038427393502560140704732667550083322541504988237584750340260813259349291952477847832944873257118675762395712737919363784113467014713721611534442519474724212353327597416829485020540554298759905020741095860682590874617480614936951088027357941291544507398366979482769047467425940995595012139584773498312418564923628189301113852825351086874590056194786117385310880113334386127650591316596660387643221341910201988348117751528431103389018698816515266886260108014141469474900783512027343688750264010012772664446262242773415016514463652726535367184730906238427647016506560260147844271865780602128750599879165563543473673203223338964791263972419668867737654721531130679100224704565216486757946298210325664003722502322519877813215777416362036159796564318830286406902534793046887022920260792440952689902802550259029190122690536513203769645627739500456342080012132924190894591545443054798486507905626047047404026334571204030546752035857801253932119932610056932215249907097448473699685739069018189632842549949147683711491023798332578599725578144950182932001392136491412102796525321371049969893466331038588209173820849684416833487927113841849965780414401009272538755985841965561296693883871641848094275754038106581066423458822410427523547278689167581109638305959730081848747971776507154601954660842656007596536014003049469161228881014843221188873435041929367677086816630664565348631758809329396386186335162263950884137052528496721588051272222615894789256227345461880702625938621620114477519400141024986454212319649295392027005792165246129256848840461323052812276246135115315873459452929438525153172263465635056051900075379947122493065472358866251444844606452312143785757162714768731133438721362801444187871099598830179418900298771181289644038446291428748319446009651010136924693327232802677022089844035738447501194461764696304892574367125764787345228883350850169840067841906450540616908238358696868116434291326520056630820512313380927442315759970397739705511042187741090934626315406743792629793142974588133960271347258862086857265616200872406246402521984360464618279958441354288972405109728169386456713624428789972983149161579497693533396065974026207602528934151211049700772495169928707702083018954018534330043817946096477320495924572594304623004804575810279152064789023088208349955891630366783519081367851662108802680269335582862874854367248376572610698030173762721768631916780391100394043910994170212032018875078336397722099880534005922932830965416744363350242856318657494553301034815962945194964202288088575908992362866388772975935837472420016594647456920745508939412964061394312318183343779444635665677015618482528777248517206071904563119308832742250350242397965532816909369616468362842579865526836409197209424774507819397983499305244782024431845501783765633467439618831999530386960575208719999923041050128176751356845998516906386295089276315767123467140544074583632890062286080590547596911478980659953920076999667437603070021261689872038438021178223313273517238615042618503662770206915188562364528670345400479698869716595069336705356547303074771295340210204647821221921396410119196480841572687513824375154219501538493054719601281009728613217619650120620213339502885248586393943659105299682655046007214548826000631722539851982546910184789703420151801808466520514416192422692534465264102988055338156772701923339948647389904608630538803707746936739171401049954252555982201979577618978369598772547391007561301512812679991654740916872244092801703182930608031511993250592913041046918945377760027136024126689265662602797438987759690923857622956224870407854365665665442913465059397276867387366681895193891291276679356747849028077865841687575544474279029813045011421027925328704530302933413425755184393277609598547182322886101194618643958966215920883065628248904891025092194101351586850469385775263461183243953859277154562031466521050244549743279784612258778117133597220003774484012299417640904249184471713482183874085476962396281967668867700374445031702441504686580985071281877758384029312390672597758651271417337227267037266769646048451993018531160201203926762479885855174743066053350182880071632393547842898468013358890288806550876744307331817307342575552720560796898905978173297468226771617779115075987443650709006859233862733194134672662970228245547923516268857904018750640892099147452037441788808648911739006371736408945590331301343997118241458117912232409564704140334995114944489185624110985995225554910992287348009800039592861417490051887841213188322945738159999099213177774829971108067723642920273064164877948699471034075780005557104938645853465817210553163544258035855105195376274634739279908650307979890759608395315499388384131656181120960608797639980914443952269129571740825152412199929023369384471382893263733369418897663376138948173776813470169546790489888074697312974396718890724511600550338305895410182207591328782183090528107238901003334031924426902530331612935325729257397606700322475128585953803687994187882315498556311690118395222656237098793669689438540344474906285738871168340305893539181204679150983986356136416692046462089152884164658996157679477346868262113611883375141308385675306743307428200063021563434851284729499899884344215015405376837055396097810293280025613469623349674824577097597576676042984244817322931050227946202950352539697231060260833120942646111316911264960222197598596804409892420119966796392226980231491696758829283433869483724233332503472306954239548860615673144563124321450170030583704252725889339981813745961650781766562500103181033588977085214748806315975733950689587228933860764306996252394389426691406027605443624367681763938419046653968727330545483599283526388730640356544084862583891568748732157754118032692482426820854631258553482391300685419454511450697505106691417029169401903626530349203042619144502107755507217979856082696650545621769802905641103559832751344611910740546343390308916385281709561046724842811578829147444316438085727805720170164377567644536256072747944474174003311651023091347304165626962923454177276972384670268292850053939213356917572153250047216770453280947073588439654567120943359620490956429653357164174975454307736167260736381024588768179081283459033876397387812954355577555790389277360688881676940945854938001012870541722191224280225841999886012065122305340833275119922162842401819661821232388234679371282960826999383232996519190889199819359131304359469953182212833642327846126556180690991253883040048658509304521098162648733291920876112888291004107396565936174282173162170961892401233428702750320001862138094817080029575972751579531116699791548685695885717916821626450860171358028395057040841252900462557756994782851499689851224016002252794016284281656994875827549208144619630172960965875155307444653954434936223726114226791341086862154972644824714560742475273184974086730433181659140426781073550147773862741638266432926903843899500516954721737291735990059439666791583202165854527328135205572844258901523967671096867830941377307188838957571313240318059695146006974519136479325606873217017942642322670420861082847437699543110751223328177368708993719379610792800373670374605094891314819566644801541638515100987713096589703365866287981659889361546995227572217866181654855972945599270931882230187932083464348061583037867118267845194744412447752873863808224616780811087263269377806984489246093024425370697732427975582312284147675232170346823348409432823102510555603250545333940411158908117442814989788467921097928355753515434742036883614788169792224485909716256269460064768449509686504398476399818418557924326357233680606555757927473122072361013460245344448404478602022649413280709774366207683193878804205208183322736758541037288321423396104142759747411267418879288127592838945391955267620636689562599801077580350621182521457557736557359895521076659916532828639525771719945886327274012976276585151714361199606169281595743782486344944461723101206525894402190285679418907132141394332933157931041007795220081932343097087710099892146782427924255186509222912561785242896577637072759026249272940128663038520692530912426224178598382062011663697645965798760979081823193151439964364171548949864071018838877527121795926037066625954815944899904388374269674583827729853153394743853345653383618665599134036490227111460822994790706278922722602193085239293518303128016139224060936078373400325931731902223306419445540347877067408269271672658018534886181148211832465228563312194597811562784703453885268408769072013069381623391062141713400894365043359067535067724514746974551214238950347733475762937665462707981621498689305435686680929545748015279477176556075710844313986174761273487371187456851456373661771367006654603804824122328216530146283058026884044177700020230743313829024260883499234086879681727730546245247256662344991378667073361967139418127424704382847488963577729839150769909572068917181814857837402430526765041116761600032613138218175853926613324995495051750617384633746452056168564530599384956418710701890111977580761251566530863741293159687560124662934558732162158335606878381083442915140699076580196541680967331643522059063069132912670349369293546108662575798572853791799410327561834827866914799743353017860863581526085695089901333609408378154298646243669958271157405477249178079799753854903331940871421221445474374332691905877686381627977338236713133517622050594349012699204693133796654336582353094544101034032003648942445752479519740905603547306702888406730825390951680231871591842720356783466702364787712670843769253722658172148032122362828083022796004453449486471020637439544979534216487649513534332454172887396507651735195600057542859643805435344759987192477249693957716282106108715913063755477826086845166573587734428862119011496252616068285757356392671299051067834425319821670653641782007968908381419347843724090514076541131233969987403926877737869920687157600186638478317614193034351929262443588776763554602745139232228875602899526783283249923589592655545769291719269397599600506711874707033327981781931033427231785097299421197589035412532258513413587750302632931040262070389855404620931717814142247016378221283700881412403797354686256082176315048097723269915618506167396764789819469551428777284111034318408460057267198223796262782319779093630049951295835925733207222087020501509798021921249747652520312468107511873790412159293836409248889157215359208574537944508882920461137853133756211458656573140660958161811094007764990983580583938592807071675428356877097916289166813463305739813265124371688802934366716668430159258677968091560549158717725307774603989495623281905943404528430634941220205855929062585360273571814663561467601278655354491476540099552692854106639826796143986898162213197741606891375983793951437706370647680033299624168650702760831172064503528994107986036697637069742339989490334330415244747559094456146638332103043256318939626170804663324581625337031354976414604634045293315691519971536745479638432395769560150300265476813674937774307047612505082541853680342062005093933421288663632921261833831654794961114799709633016450418876012986837232813392929515646046006316815704302749716691902063094279319048179040610682536835949249438561812443829252028725321691145589342355646515669187470878776157228131585548921560754050986250089414827186151162363560174991441836558192227346058306334098241263023943423802268745725546692847213317651272587101481732967764193599661283435954955503779619002044613793523144014469726835844641257491133475834940250027375766990092605438044756323847972754123938883292679081230475249467078113833478512237770180294383014945032695463110422020184202338834982407973872294695253718338455460344725280283174495004751683811799252297452129658058984848834979738695130736351784936528188019921126697529085494531922719414072221674822958933834567882013253421391853797463458193662812137385293782164589060266545656551445381606690565067973642464941958757172916689204428104745469355832130245198757144177533069677011450980220508866592574225586897725592837872385237532090813322520940949210852623042731713891974615343766588630636576964437829898875967897749918843233654182672274051309019213307498537521902306362749563967843491948876831767394119530711829882523980797841046635021368736440535357271227115380806082449203839468399947377102396886494026528315687687544976390675250171564738384194474486542490852282595639740144543965430628556333795623032082818077927628532194975669299122555032458627461921354247781305421020334887782661281431324740641569642885843328669520444681237337123421832616824489768467421164131784620966328237555101811317980528379812713498397246548410759194790757215587486472728851509194282853182013724531150441344054123339049083883736398467938579418971626352936114879699729414680084323735567116970477836696682182168342970240876786097012627065547781717078045132688606225950838848401471242998920261892429610715385009234540518401997899490055054817444309567943592018204819170884119594021117642929223845921641475694301383961697841361760831520571553167386874530503189449628198668409438913355766994495626816966776849487444855077332849270337035228569951948502381663034008378295583771170166428161101152279941984337149915621332961605008313340174908229705769079087222128046495340975959022861980628095291456390500515397651242005566308075792403284977959051040742426945909800412309730464876078547774553685417254947875451509170289120896327647180418482561158989250277572959116599868700312178007242651884916780403442215871360292450791989615061903185109907390325939478905465380085494855173819168871726002744194685050026173402070021127425099300515556343628390450572872690402926319743679843480545313859883872659448707941653152426073791529941713860579630598486672445933714582433767550575012585062945217564050517216797058873693794659956680959803621176236422682125514164832635969185391892252151216348318309665588174285219313127528732082787035637492994402824522933895639147514062992160963026160935977542926694679037989874418451999489840804514073020636807894310430458879056389180224584216977104744700838976593791727482057629069290989954604027431351694251081186693235511295439165415973971986012317098755322527946541218653462365296535116763439151365287851076192258541881188124633420040329540081876588589811398893471393733080678279695923031626360184147084668869012571255534895546188551363557871535346928216203551943001963376571380468411377409301953569673484480483076338935089254094703149771614317929427678109792828706621127862309469538392533892079441854438762848084615341405677466514408663254409164078176388449877988103556596462286429649806602079468051767170040485259784191045327125852288807908706400239943189865434099309656766341249081417165283248226337367893915031838761155738378300639457627707976753835363323687826040556580678157284909062178434123467214622936852405173347142742904980624503755992641108571304673969232130569314720864748450480814400591832952236067528092569374950545918604793979205570424185754827284674397667821047929979802364477337579925540526613600380989083250284097019783746746978816636012081313113910373606899949644708805484611278691363859563750955582301968491835700919581173623511165691875213064465248071352286586405979636911347961461517914783910425234485579866865787340746553246251916660535859184978015935615108317032284224283669549111447599919646334408262056753550335862038640660789354819843001934696958536039830252694349017163766047603032145622124228906549636588704340003756085998410893928030434319558156056042025823461754596246317905358006393757883392274708296531912306053059252930555907692075251720425405948509629196923072016906567486601986255821046623496537732504721256236511595593239901521456652173605417166421918244317205548800442260982925434083641158952813879555165497764746807419683029576307222665613658227115535022227151495633618598851025993562431258087767691036564467424634722063412372243812323516915723424812956206938570480074975024042212293053217034056298346129370020971601295758636671925956743863408773247302148686671053943381650010343124180644062474874763585023772959715046839440938145675902735656068661392973945080046050910044175087297897380621912262991938080134083912691354564755545902901283100974522340562124262342831602901150433965825451964665925859850423728839080547421862259770385536110556189225261918958629800507020578598040684477995322111036128105074589288467107054832047394360756995121030832084134662068602430422748279630564265867573916527646915006149951163139241519009474094378355549838378638091303551982475837428886938908398966867502677779028482102078511137072539543359949560345986949864606947476350270655991095917937285526276098171520668680272267847018617501695289809854660982497088043722049802508216941523480817162077831463887354965408830737125049524640362513442964065650502296301699289980196186404395773224958465978976003572645342931378363352018954713479104141212797397009297578913250575970737829458699800445943784070387249437108036278223302839631523557084748255005118663173297003943460697094898123475896306163845696217464019543903159903140296641547755518828610677410282460447681064981038540927459509546345238702467841760706831130121668099334398157294814787138601731663260616113785694779796456539903824109054664635899142419305358290307605826712164695515141242177618371260584460991891069440166477064780325515797431914941769396019006195935539267126907673181982333450507930494139788456685651692721708293277808960898078681895893370746397694609432352647659660213977502892125995846991443028933577154758854566055217776250974615704801016811352926094658250795766369670504785679612546244428035162780551000712127108668016665823630994409429463445440616857082258795835772167973548198015131717630644531620859712702906570285224629340993716291799300544386443416569482204775238920451029121911499100933359353982322350708520137310480384653046817068476553248032488093573567954572105656923628033906436797421591782520234412773711640942763771346165449789337199964724659106407677904452686258060688875678147165899792314664308132041647550423975248922163310989502765626931962461528611621166956734471990270753346771189670149557255267366560155785571259597363043907882660737039047072140623546490640188540473561426513843883957397224599875587940076250944280249634192177119173214776965520528630124327863386077422368416347459210864766825397414893736225627273619654591706514643787869530000335046398417155237370776231790555987920132820396762080918241635746538469330900065269268393983149688677691872065339524702560177741459098590222661466102303984502616914562319658015063402802715032154454785306622296475403210524470854542540006473904531712354493983037994747552693348619668902753132798875315818891302606589376809815162787732826460151755135083441682222024376342752603882188988010996641197044280230775657543005496387969361464250673256860439979530998740197728492445932323744261636191629016980034603963859501570268021186450878425721161447096504005559719220143909215440436040565385228890140750277934159115793157272713102411109630287488452959541181053469799746122039117101145701855627652080660456412272819803492581897663052393466736494273787571460915654074736631825946037250636764717090337752508860438050639740161893896767495994559822350945392001765799540046862270113662525798801383767232976320749431635248953623640731363804355219928395086025623505310929830091515242999479178482637549131806885551795072985688782206434986254365479977516724155405451304718065098013737065144638417646521739916207922432159774103968075432312748631528295825811697587705748500851237982468601252333912930081712194076651207801646513119150029924505799322057621844696814001391075178834817270472192669608581385161417234590536454396419034862187809275337762720567884297206619351262048045000913004057426738294953554334194626698964757078724385987701410302493557677422385378700166222383762650025862946175304657525032815308673807367704602217617930152665019828986997686166936906343680596859136983268692003108481754971785342316724278499834858475925639633633535489447896484577354409929566971249576969163027880469419569827746355972909017256788360682543147297053374626644934989228083677368655282113997306210378516544495233086709999091064642658648436132719898361179157109699226510696659792925874926417500306593410669037227139375671239199351475203640577038253409912630790315070859540004040502267607159660844671333847823960544688789536056118536567115678321511077146094236275745316459184452361644273261092984524311072185691574296311419480756409356527641187541346143411017345477911245752524842745149489822691173787732371773952575949229583747029215585136911986343845078336760808193895561976434361298223517312986198473854750763358193045899081717112020723524464127164258121471348502634746360756658671542145576530123391622501167338358974689119032190053440109300607228409141505305088661084074485992601529675272380072701987580999735002946500563339597514838552374749682088773969797895601564753371059255376710258944544472475594524954034877847829770099110521680359802280702333779029723594126275481484192381055651863050486773506169457118260877088410577355842330734829379579053591669604231298654496181657810392656154499277550608132293836936332507171325752865004804323612357511436762675126955852665008579161110581444312250374469417670988182023753887299399943167810573991755722353242236967756101540848308288344379165470251205627100767520540692267189184706417756264333603987749920187883845600367711282345530000933736264055527787258516280488511945543731544167562228885832795841387062642428102007299884918812343616159737035806423534815954232301553236159867681630575728178605024899162923453202533351586196044392258815539703135262925715036046289134841357345984674177411196232067309602204399019810863250297720830935123437710930153178691126234503957566102453698674537867861938373372794547418743208539086285209331103878592331253133428992621313637470825566969550338541973522368607530866770101206826876471059612466716968422816404680940211186924016971778093914132813795245020419287940779220829417438553274332883267551033940379732057341259670878558269630219804585570900984306555223496767944967453561729788336657128206589830421765633378137244281446827050204076135873915945965368746703251480605559418145762803544512051163256046870976879527670335706710710190526449523904151731431582448949562221225247847489321919741677443490436523826524264698552831260688599595750778002297747053533359955686143448986106716270621202403454375242697009555915383042199798312223083634642695910751178868292151496230736985546031559457340630410999497335618080418991533499119187464046345551137549996803712469767529160597627540171645557934041821712825605974762605674837859404442776702239443497344773037649573685659341385125251538147660882773740480389150028693423495235554502315750122168923204771515297280267257959167395542191451641703360178372306105135300326394045657958392369326121465409339408967083537361475935417062186565190841607268737267736145775055423156888210535511988822684803832368085402273313206894777583318953627612114247198846351279334622966206240482267844814237985307732811351374926278383707701004473161765243526994557447659332202887763402969518515977158766721399553080928718460525513500902407667176543130965932965571901467442068290385471308781239250636522226716626393579056029286736150008559442196928295639833083020073082191928556075001201820466206304133700206690105361274444215620307794704121212598372356373380713526867132978070652042890339101866087415188045053358752865609766649165403857344835704815046381845885297633438779177992503632107550892333155585626010066654039881537561325023229504626545972894536908632495551557007438508814160339928779871210598517317702645388850909280653456064824279420821723163928138900348653016145235723186190378805752199847831675437013388617429833041352421321508401890473795655907847921938914293920198218287489358787796933739782567076511681565188992005175264325441707957159806005920792827453275781398182526777245206730399415544901817839272335102212730343225770706044881885785408637999245901157639781756354883783651311770581103920191279508721018003125422714786860845233891173991848735745169896524023689053739489429896380434623009009804693927838692406313548973707155310440223273616424417863969264388031798679806654582829638002339027432956183590843642280387491676988199485403543350057390391161630278104822030035195019834687783093786124147388664051301676356091006014406293959145873705641316010921145942916554512414531722880220918124689231396299662501293818203299178781736298020566670160045423798687089112424990271411176635263499916206468292962668233028459479632131766741633767669837379311539145975670746538921689177578094829888689893257410863164197380351718975489331800766601575236946376625624335045378679953992738670590762118390391199127201109209878610741028593718398600147000606292404487657791493785868432346691377366723683210850542898885199805106364187456152607067386800758287504784719521486622097754626776216753822322626128924318397322743500403483312406996593720392586928776092857484047093338268667566807943835172441465069276784300226729160743060083730598171188023893171007104934069888960849458830858181021405545087466455976603768929441196011223687266449211960391557485490291496664114679079947505789521997816203072116980584051340333960790711540333047858839164470615541499300004228699960787208444281549814122416550566745318364250043188181573851053851574412950507802999821256792967912059608614630790854929805134895025979199211541275266358120030102657647943526018601383604379170704519444400150897157479512416532973310998369108272252255959337312120428802414145271033051848371231171780907977616071213087087117252310917419609321713614607937650452945461948197913889481506047361796574605875016645753802851571161331783155428942192599446649564881165784175332238303612087799465766157404756586612468495674283545524299156417575608419209817211282363680208271263121947711033777100021466742068453132977083182095655356230345330774254596255411397622381771456887631592452412717705170688988989587632814400751477160228606921570551467129179548488134361378527364904379164336971887542032864901353138389054268636515987302123473397580045072148849290474443347695987983782373907449189509373318610321085367858294476046005155802905496175880775300324891854242875773071538515515623952075477428406628239823780210626796457292800272454161176824863160055622460289178755620810583769756438824374970570028468508168524347472785973263746289739225080603044960817338403370662298545545474135812954867486499995946376615140111314780207332195051827879740594985092632508970976098841964208656996127264604792236730417627422882184760464270549741948472092624616529495323658747291296734358485485431163016976079043267546094627706737052911333570033716776554726083954800637947652737086789488455677636014276720594454216852146237220858007445359610184617917528987872352577462551578407364565711901087393688424776149947557613496683378980917693412581064610067566759290898956346097548839407989617869361787661144350853320574018262284296665915211287164023005153118071665697091169608695569269431560119494774777579633547905403679865457321280923838861048788605086167007292253994691957881485676507304936737951526429140718361500334105188950711001103949433515181341058625426270872442680447149937069973532314424690524432927164589169103974499799739470912567306371285970925406742744719447654962875288926393015575806825944070632863552968059762581672406838510025622426165390044969350335489545609228191890709217047187492399030495405041317991439966960920309289860424491572234810314569774865361550349445834404352180123738593981237419889214780821157262683409614365581088864248217922366954983801084726632882778479012376260632213288662746512420841979217835127020318496109157845677982382374090045485252596519750339320560506181959044177835985129509395949701088567990062236902809110883959511723021970908836537024443033042591838612819393037877895769204522807310025177611471629304711867810322377017808965841205084409125224839820192664793375439139984545808352290306717910925493447135565449431490319272313189316318676638722176642464719270404222964181907045049121015338387760663241197662892962199466953340073584368215516573940483520803022974817622161374095260153755372234409376162885091952479173599042192893071375605802964591094551548065580835462317935896844331943466516076106877034427394847482925258759239732811028433542053266580549728727898891271619234332935592211070511951664456065050729031337047766130328676196895727804637706764204240661217082324267833005102390513503135618418365670116347860267885818978678748837139617218202642269152599829577981168169453469621681167821338262273192748456964514214747468611741299026384966874826041115432895116201046593152941478082168691944085326187400580147894892467353954757954213720291102350793577957469270953197056580108938781840375015839782911621841487584083575441820285393177538222116140530950314408955881707966384224611290932689593267843863240826355402995497367220301312615835872054104906565908383528725237591149729771341351245659303680263624043349143822220414519945116706490333125731728022888530398264970456579720275281378288088124379146094494321928995472970206524236438445580783977486232410610991385439410092875204360371186808179983015240670593954579958119669714683050208749658190197802058063346007915747568967240674999428522057295128443447574604734637562859514457382987039871284740452035559209169796549937264918655707355772770141811670239708300214444421050157361046567426750136753584401642525053515235849916970408412427788235104084229125945104117078545512967466543024973265512479710590067714820605411133217663269927845958108072311145900300799070396742852537794722910610646009000886004351304721939420070607728048172311246063647154395709269462253836146990297734841768791593449510480561990860851619359909849736038448445071771845358776951507160996663547528315245043105808411038122097681444740327616076513876215286529368741329513836195306018584139773950233360895523642967097798753121001367270367559279585701888898426854721086032016220122125037072561817670522245867077736989362397913219009408369098200718821255582710412891719893967156622035714524181169656051775776997245928677640665396870290281136525694342463069096164251187434940166651601329374324933735658055242170901542586528481908197796524995622737149262902745804935682325784592839132360100788617763586868885655174169315269978105190146772316623255929152520435902264557244374871722756372594923356889086169539871108670993585736061913576972957822546754420378805553558221961644622376745883002347859676003076007592647101368373259954893181076994422479926431905692996004353975498704526018434003731890211916483088815728700949171206378183110193533620781333956168161941757378696941011287551114269698315005773440705783716800210471325665418921233935567384145197411220519569559836842129099283131951952276664982546818848051959129612897596947282039559396509161047942537790502103618016880777334957807736363085841208692316174638128519684530838800289269569426735085064898080604310396941104250338256706156450637975804451049525069559074534173620369995992095108615121442505881647952208083900627351870612147474137047967428986748066781006339099130542702415023469306154042183163827519033556428254547609695609246214192707579393856824123625168709710518541941200634870530533272404667962433520849934551819885104224603311258992748157138744069004149193532522332473071226350170900673031549960967052791893057004003186706684416059984520556781195061016843231398214783732590836147746634631230879344260143131670720338781294020986178103890687013130878072251754825108708982376312165321322685086561107147422893805886199753861108605743319427903544432177586280270502910849117589112681186823337913555928349984957514275369946823255991199390694328834088247118765275116472501553136083742667262800763335729843620431156898122944984849012642306691736012852478127247367427112013839490030898577758540654558180824285030244336244634490478793361718245907465083302906801012128868010003752075857975583239169939427401634484581116439308573835520713228724805383015260639124361982917927664962016733545999632790451413862785508368182540723194570809468302346625964764971742442053659476883691898940760871942021845324618294337110247324188630299127701981107155122122076064772886427029176387117545025286017691779000119810518047925632896856834237259920654621793641224293989752286507159217427552394040833890780108223295393874066776380142683776249265293315772827312733312943861025588950129424941882664193301639677637066099678042156035815704090474603742535553652633196542586652111578137144101863836283892157162802797311919577023637684521350373785961356471840011999531811166743273194015062951046896463764984700761660653705547690338379285357142297240270239481235689334104855073550567603020233050927717747919961939952902730813731379823329824676192996152675328562429796914685982122134841204386396621220270059412318289516999349021831596677655046493912387829653041950429013533542376872431587617995099461732027010900892338816762645191656062499135465374860793470797628552476847173680935500554424578056234487400904164428725226408922641200740315574519183501992547579869404160053376958236542193814571111450221712281073474718031806863188729875426739413293324522358164993745113284178953378427812743711692291941269901122462663236123435689288722020217061749387825965989033065598764506404358823906203050063058632892733797617568166447272998916600077527903767135082596173165974779091453023934015469295168974644433962441226935787909996265399420797496963153022641101235124760232948436844463195552944509551370962714196628697858900694637953559609539040015208192693288516315877939553445092827940523472925593392626466472805627312927460754781750292180987259396712755908843613264284090348291292475739285612111726572431849828602646370098555701188749958459435625047301812794849742573591594374129375435392419948811731227554933949298673753876965056129747961150367538646570601263054278078691513979410925999979851974485416980762688596476013974876764603520593977903263359706239036722876861823108900045064307571968268627944827197137965004434920956816595550613642739775165330176495705117920709233585309145351170605037642231924920581482299670036747292046531512830182653778808598830818381866348884232970204374489604656027677601365383807024722848160304120671342953239484341376885756411821661217845590341891211361990486733972317645378635335936793885509191597085139566516402176032400491379342874375303941741727371050742226398198398138518383868345327562525112697240664543953176081341723385839902411226751865005189816467767519957996769734875660048483796061901499685812616990450278473580254521526126743894051333036451070464958191888454666993422964347401453537116605275397464657675531314912023843703938729473769918765501448388837495538501705081022286025590262139892240866238154108104291340973745951635283580630842489764945012702623811053859478068551188435341680212764022670078312758117975020555469535069204361981234963369418354213673946463269404557762923567532727846727169169347367231648350695627775238210670364995070992639441063959385779089650100045879684682450975501453073056461082278889264522768507030939824642381297133306344738317864436707192451825065884620860186076763381971015280648801824861586755622676893263470542445445484023177070765723239810768599109830135150474487756369348416117484184201964452608573696188161241290965984084798445926859438835431738246346883875524623284930949237052723111805220907767331612649525650194992996460184558881554228370437680752587967081374314482785378798224472802572995994737174676677486551548237375421035535518829589498491098923497780427008103519199847700389467258428792237857790182792927415698166106665258032357136963602694499035904902078415563160538756023009779399617326560674920864067198308113079184692965844267988281771384318610528944449917372722753802290718186260209401256251479995260832149702273127108901452109594260464706659014514833450889575792211585939438245270938076983806775138163470368728977650348330409314569889231298152466035347981950504204529476370409651646931202616664121270421335424910060840676958656627477546212370963878478348133651032693298367549072383615231485763272813369725642075141196109387015918580201717480666120881953689470108538449984367784664132855036228523143869639694132817868418598732015765407796450437033322010192210841774580372835048604903160589540537757479173765525925003544771839058463328958022635731607008124352518330978111971996945416711998804482602616600112852854349512310003619750413138883216925844384382760595737914655404214190971436355365089037041805699011621898790041016798043687490776703221159358198092015940035886180285391762294506215328897705524474197561614630824496139224670282925694646763723659966019363288952504225590834312039936011517891600241351998637560416402861719191092747916976728597579874766220345957606686617639059380586314103563755517976989083032485105048040351124284508920222360778795911999441738305370317394937622666178747971972680835706414369917796421159172360963055423126658946653109355320498487669540788695315462100840400848919783316028931360597551189704503352944597680473764464098314846306738439658654749775323868436743028943009804515021640828044617407340192214196316079108250219252536508608400753967188123898842735235707090658889397836983772795746404170592827372312601282909609786988390721588842388602118849186236467261043054958313308379762108706423826048402918783344290525881339266371305809509039359096001921383573601288029851559195671822171069413448311417500567773147849516228779260341537614553935563886140158376254789755093901383347885054351706367089244516418901094829916436673914914873536933838757376697339886605368165130205720663847306204440103666158614446003019139094027122169584512810215939085053625482245935899748140716619183075009749323903326138232012114627845024714920837717955992897747283090895979109573822487189429757204629047880174380445148737317369171684927275734785793805740008287384330417304821828196282394769957749832237636232997798943504184581864107010826750352424004440922312416535582775641838479050061652731276879389271981557460440930533712029923860115643667613833965476772686375896522298488620854595679735110472500590654396136246154772109372795901210298848193935018749085873357887776199253932934332404651473084706506618560963153670665197414773036110426809296477570091490980283753256471149759102285555068853586348660213506843486119412469802757912568756644956961628491680629045491933811242429723515913296278959526791918068866094473283655135246870050366055097775731190384271822799619235093542857114906269385451053775142784521170871116079911153092615670746711392297748534368796685830979744143631290321402942832302228340920444888971854435315329810028693244157166208677424979085558723919643191400497535495095671790008561913165567785858406610980454200758816871814923990267554492485404506855883422500342114046926368706303110209790216749324828809034235947442772391656558889736114439869444021695984625517902720904012267757498753231188670139223831774267008589369523148241133281723003242536159587131620892513188321652690381192181905200259835267454713956528949364394077090703718667615139007506516761018758398152286001330908912362137348908898651908889412233399618090962800398296778179635669998741811990322003122524437631536082927988159624892941329549622559604987314623437582345868719521481530679357776662039634826930944231365132825772809490123615576478709706276843704337938073052061213497711960906531642804391478041699257170641533686833907410606853901951954710567550734917794002022711433151517199581671546421258536260030203510111275211151170477242587487060712466683146570333637715055738536818870937634586912791189987571116096606410944935186978194076317407399444284020173262817935225471648714907573110212036385547428741562456711562420327335128682233479523748738572573293252638620341113184206346599500426984323460159754625247019929901367415007563310798241546965539583746174501288014034899060181861395461897987994641601110443561863813439791026628752324069232684430227519878633094115860305358369505882496699595658249558492529489694194710704423526159885328113343465591506606899771272200633044521578873072103121109419377293122448278391310942474166778219111894412153524432863676786125428746320509283380091429407927280391456665273756353666924399926321035519164195150514414563794175577990037994617389082349673508086933324331065569620525908652470783665634324512112125871315730967573641119325511972219787363540438036649900299736439298093249230739273749580652094486752129333593729144208702076247606784740773068337353072215450844785934549045133274361666152332788021751974196728615244423633570185811164862105210650755827194977981400445064387084060554571470091039896477465314015849661367086552111906269606839594147471356439260152728668218389710622104959405542524829344116048380849241855609815825819835005072815681452450669872849913359158529415640567401851368484432105338874797536516984288330598539536458468870505479743408749655224879559356261797728594924898610355717678112102705323519339964434762620887350532351027198314625786537329805434249028549677060102089487597404255646468380551319820173925072207521264442515644312619606996957167756166406079645559859876966690808223864184537636739282629736021188702353091547926784287605196159135906499664995229310428402931036495483308556780405696919790512878056307766854851889655239375552242453691293243275044035407457594046064960213933967013209496544705106782235010677355095061883148811434920193995677780658905865054826790228193221085975135665045344337159396541702914131693613955638036453343072265405149387624358447040837859958157629989407173739952723192474628552181690380598046379575719696633814286670262349410096589355534680216670582763921118494591430447332489876524614871760183129176765082337653925724305107827494176761021798472332360087323114841567625777652139427920545253626419982289212291192062058109988726403267183487527922918842704527390841677868951055971059573922691709641615584120256406910750779385702666688373835769546601274086105251344203424567699992556841512720145366850734497384009130550488410071721740794629609594740550250361367013949490361800882014507111094066420416852838508144710386468254343783645457017696843695647189115023567489860223575506730884457488972877814737857575496462281618983962395179015657394564239801410515839856459426057240326240100889765993527641578250111683407710776399474647484530892972322556093578772492177686619387784182287550595424437194425228800147701406126758501385467631877472795466953029416812316360834277093003372922641240684279186161604384211782789692985841930287744690777993430156405493183377875539280514114042245679745868320865277747049861031332307330184350832577784710378583359036358057616153843442549264151848001975782378673380694133252752347325022158810831826849261535231803737961215846349501438494672811424508161605869987152988604443030365776096916825489322426508464214007944917278666948731522257963815772375949590639029535275408634422776629445040442648953311253878175614259831691713891969167764993594760041198673159561080049910440114345766565670247317759511405467505878766784647618319267784005947505646679754631075094013385610456582867663980761550395768642266751157465050864833664907407472388409560559450735839613098148419808963279408980167266836711147466367495001175694317254199710693336496839438779364985372370214002328933009438610838889744702133591489512712769062856518476074303317559071156684764917242215117883212110327727434363573971484047648539323347124244016809886141965283713648745594633256919774976460850407607013414837263180276792759258645392165359612648925134506878011486564700457986017165678679919846859395421324663916062678061142356189017568840725688470964213302368711308748636485467058311760573374279614547358014942323078089415264985223647076182859065631517651578972611562234560619668658591673204300033298969174094144824222117215146360373550040731047888028817834879248872840551915646597364639730660540018873739018022602304357141846607199418290319440550252150062081320837561627026988534413854295208263152087388817700430057586008969414727844401752043744258440612760366054969522535542447787559817883284514963283052266181579959765413796387909432800218471799706037811445309640381165862502417922554953334718861930036696701369302473429615862249121793595135856154066892249016822083336787994492698413936081651905992195083142545019966092261207064025958719474944046505014039294089678689555317711944156976118949855551167446837190116279213050979389385590848963124257373673805469093649462306402841064376427177340540833688488004752960859000588057760957551814015200626922018962557864149333676639488671781926859610371201894742272444435336209926464779769427185112034043363725286900514794900242042891899816306762347176612087637150448287582139384463931181691981025765338757641318142819572662599046726055805442956245673797580490409707630591661056357630279395241418423437789695596115079825743850156063162301969997223445055341461160067466906192265363262666997755104981503396335596065096549319786257738908240614115406602963135290030938076893885849787427789704022180547601177662642108619132483168754043751399088821605818438731441507031490501476905480948066056942993452997279379097186369694906717841885400591244335703219892821909248439305733641502503789545685396833732381593379797424264499574225670560296185391463229504103775838984443040345257003156920086623785194682864845420072826535754002783394841821273377827955924354147685081285797175340841396079361439733299886210512061545888735310950915950669095181891087285490733792623835053646264144022038549841641632623956477148340508074714471008329252619175869598484550927870280905397838798579428969778692948601146557222954060980966695498797181599302353603097777880952746445606116484512351848825255006257655378517717561922651346678842754736678173382900238549354901725482851458059530533697139280424100381800161566581308656951239944251867732630252336962343865399164840905800312646249473630727678175200690527245612267634834803551944769945087193554360515347495749997495691119219564008944148448391546651644607995457789430481472397967468564354934494824819178701097515185036484619691604772585751676427687915908727074479940007257220859405383303455674251388755506712715987445293356539179345560978374508246479129195445042382968526361689493416845023539924358555709649519949606005874763766465597654814788192694834592528035423639120565099486034611335913227675947048218460530862325941653841255266236410071008567952733247588369768433793173788604191073355506695493762774773847634887630025407751545612109624808530283740569080954570837765837195353981469352979670058619287694985244247368230288895201268728154139111197268470542769474006724157865465924690892198809427151426787270588419790433555526173712719551773674374440610750335293939397370565795154637539195494680366501766525308983578602291633372686687565970262220303020145008455485244488007084461521316559524110711868362370549182390341914832968429781409565405635295787449854724347223101255133696866774068055796963020512003713530639016073300096332093667363078731274857958424953953890455037055160207492960540239205377298003069230283523203739253361338627548300017029529909229867096479521075166427090912381846622131951708763687276182201061253910955055136297037091888543491278166683323820118104921062399892549274880109887492124502591350015508963636460804543169739404922445108303451434651143162846387709918728617443229321691570504880953518251643984369559255975605141746020308368569157975239440487879732247586321892678373898890580234331704382376593841901404234969649573585047366621626004124454128221925853331549923131409564362427475566280302897922406962420694784716660217183023616143184068820568936170437327543100190269649146763984594659906690798579407532769525594766001419933373433509049914075594886727088090586920510359305448475689224004142683943785896838571739303409419718062266103183612122992612107231371058142031065027278340256301103312062934629509570181559306757918473638049842443286870492854176787645659002246797494691877528839563109895153999879053856829200886457878753952368269453446187846969930562042568318435861167136555507919140090143580069086635568087771554206024794233059619861713848482524853434363450017955397106057010760924372315848567561756627876383132896150974761266120989273940429472802437347086354351182641290785020298887942779022065369772090021662978470727670728287846185399782971773451184890192377743116649024794385413323032050833843022897033516697549769779867854064042460943374389863215109627734659438199713400075194261567920536825820849057092310592037155073704200597989020438998971915360306978598768392750673867103578733455181072366571547730488804173725022965928891500530254935045807560805310980991407187288360944670511032195423845761889594622841002997696013923912387246572965004536999734271296666821375330780516289390657704077321852281393530028706274717379244996366002826770638929962677843617385931466530138136791812726245717106373683017703254785431292572021743571932242882244372185280407262671090063866873123858068837207696145199866076748182464054863879438598356152442168645595977878530552630897385424969436954130391087013679348620652269397705138978204023403642790188110860793235977034867298855692675974976023837423875069537171495201430208769989820425643697169449194438516163266768521493180922220933524317928448226860297205410387245802000949564399934233207715931040977577423435874598794210899818327914597623769955592465457337501209430952267135038631498995268047736315272522012008676213809735990726761893066509527060099812212068012402502504240074555274818725398446401336579244168209876775916318966040501536853802951082045901548280776805227899503021092729591979191089314206768670127729443131063088068237204342087524500201907210795707255616315062306097939224847517926085779111201799160729456066772738219763895700664099182759881673311003048474961819655495667525411799403198657326567800458483918422885089129250320018686154017079926325490675769931839793327558715971229693527402528394973625805994616809653354700800429538104149553325712842075970540110183918008303674154946505037407581118774434033107889926228486855678213734721622297051173648877167972503258431764066616123588594818778897723780106422305663991381680459531134392622758052128793266726940381321882785270740979238973389034542795342762921870584908297089375355557463075653796600053140418144124106076594895177843597729244593697251504805357590762169717910058598475794080589756457083031393600822521636076943167214044562516319709861795016831992295662880718015315094435757309553143499071838381784030483505543676458352644540507885524374800401927310195687835597061587054435355936512132047798831310660826155683963884431939308766830154819215872612187502947016648487383014300888513278650954815385949445993201126143010045180137844848470114575108758510563791101685755642500481671272945795229869623772445399044070824050187799531873784728680668091065603684485085571480228777274243200152007040765408183695267228198027912471376686170677294924057378057260891264977720266423179343641833907962806877729291320211579227871218041738362414804592132012947420627118441106671858773975446799773730886698321207912581407643110118345256988960324829120808960313028194931316820074254351572980549311409964177433572659551961401532559372711890520252121096390122256458063854083536257661382946560487053293898793735396198176674157909377035233228803857725042186385577512553604105395609390987295225809273633290526109664436300456435859002718987909427619570856404879611799466573092857454160365468851803665498909288745384892540092552668797413458375023437980278226949051615071360037645548941215769621610612692696690154032748366505962000151617648207263637916606782339420262397789862512292130499326058908049909009650369149431488473552183337798917907878744488702128074077199360963956005497816743930582078356672018596936948127568024444253107416804329935834797090848796347590836819481861587899683694210767569756610654834732770682936168451188103881863975595430111472063944647291862072852602467640591753382209221151193594026063586129532893345268379954934327746467423948346740702101541751855933965858464109328165835878946559690738709786096617285986715170931861513500151810424776239397153232088134978517476367969015936498570247134014842488919378111454076747985493354379701810155149974502674063310528537343509418740169364958316356322507179754376748418069024422012612034342188398861500629244422399621672102743354445154399787255170687649200896030559116832659163273795196369292283784659601913961964447847302728674840938568281406915066474328591864256905299558876079504008059420993628448896134692523651119538873851838464610493417841920435076281167395686920129610346294340648426171181548124374771657980532393962997046329325429240277320105393241269663317609053916114708319604273350714408278431603508521244219264395952485029731717245604579851322851765470603136954521359515673581466840346584522263014750865887734741775479796702666086045990081368922774587226765649167919759983598184901976548229900383029142023557890704858188104625866415631810619084003418749341906081482719768391176667463322912651065817913965827746626751961829065791269135452077464368682364098886685450398471048644306479803237682698690019867548286534320263002255040654602142460170514956822088827687499199086097652660173290210478588670091580199333504850685017188041050086601175941837795034149883913352625553096193993742180606770770006654981101235738545649845626324675114977454709491015366043080467501231529835319377895471506060420898103305232228394496359693515994668321734680014897852337466057327608775827093407707530879530614051921624397362305654296446218026392824114253792511363889356324776788496585821508255658536492021561439330839555495613062760368281703881981930079932811589562181744780149978290171694155032076305119860626557760495285900195969036114313623394054832228541608253442998146984595325768572446247310255341330404567973818922262960674046807052292288139736652583328552393385252026807156167466798681871705234834742097639209205867693373222123489365312766726363895858848860401195668632347722570215068831072045418456625987569307258615539261455748891500118028383586075635223476475838491770871765097732499035049822091892419461530096743290811325760097557964230175081603019487383901044228959851224974167771359417819892612839968275545451734729416977286492347058970764602074682878500934193230663241756237764730897088003805856701925561981420475310792024592139704513665463824249422323806074591567863228741485948025117759271841671175100217151979042742136100127625167527393375553370060704609684345498723020948175234657668409171472025152212773129551943059049113826525041585354461993845439835680741756770981648410294772421304862501220369433215037064861564140247831518307246146921439066448512691557577406372852890511393126627636034841353766014645638993222573206996162765524181442212612892886142219512506241351316112596173559112536910668620512671770395562184170753755612817867393650895509624502436419212578691291055753140585563963067254710305973021587888115465521834383936677639062569822788993531461673466858313892216112374067691495954128206686497715447402813320095147636217022484501906396965348624983798470201887115782436946931157182106829665344264145080559065933871018139196217343401399102752972767327246109070335740818632835592479742449046502790196814288407744878120908380787901230600851358002009960447179115283700342480075247450403195533550273462555978540306874590923374786230409078767773460037076385131553564630553936057422797213294222711670365197918639249674697403005698835840597500123657221885452170361292067767906031432166803893775488492975982891669433264054375613038843913072298664058134064422380464624093284980596615735423982928284060079691471159071522203053242233613306138448595434005812109134364821798281118298334128979432786490224363789057049355213699862584425456578820212311287213090193953656648529775615664456432381442682122983914571534807218730522589570069593224096550846939639047988376780512791663873091721080058286829664686260520559071120292702035945600004492090546724367174387309846297071415125301175946851408606287799793596385336557249867772266354797952633109806843811601264980611975170990130652786002745295453899443538022750475870885602826915092762008509235342468161412537352270208753786494202241321945634521959706624968456292794500520728921338364869131339034242773023084864483580587172298209593132574316868939760614230661717344542342181669136876006073475648295531206966124457026786236800671994574350853960000623295150439759764241391748189039993841189016007690426068847719254159097236649457386475117335876434555690364846384117682500652961953297449002396866331325896624798885127493078450212432630311358326384839212336004376484793870450586014049855869557266992826367955309051898406201894202152991059469773826385387115041468844640915257427642910828627270682508678944783727405625760234677444754663890234113516833074957121095653341653632192919335980325559160118080922782874845262561519839909874017767179324328958648834915906487444812148581509529361901155444886388008341514232983016868284113384667458192049912595496499992008228690835554180015732968994876037225287270602585850778047779467917039117426138683054871499933447883905977238322429685707229901754878218145072722433339603138164574148285055872967239140876361405287161717566455192131702149827428630525831633645510212694323178029576981992543703721195726675417985904611308043808116527106863449306358090068027316862322842141634301579215406283321751803042731827190070598396232240851297310978591426685176096484773740279207833612911462502754267558515066295468756281467356557121027330845337406328518878300126072234709312024897384373993742964428831174968767862139642429068771344982113443812830939050564356743002863199860362682070641356467883249036931994461200922925275410522602576645662435416716614478506651737261321654610080854328177016523447945787965785382179972071560313448543992376645901190890955276615874321722139820719439669923176698849974756366977013148157605701390854921865792741992475372805020906958641971462344835074383668009046444683287330332676326757559478789742224622075708874058401912703444860565202085487958746992854700480276785481248666244215783960816099719217872176118820850482427952189367332209168781722489832122446820102226924483814038184700016219043746681820231659909387500776074953103083387249013215626679843656882764597100712015303360501860564394242667682922514990497986439059592986548390910391875095649119204713962125054988612000498808304001075779102147896431004197535637688956122185654722784908507485304230835684979598415827395394503810240994463965170017390422313913575677659159893973556584627193426191413822868225226132921166556658196461656538226401821897025465368314142705833275522771560359020787228839444905145601638581424476531106797987675580594715988369932577425380619797175980839945133216915448410634030879396868677514791683036533709769459145451518348215070176380475998408185027807939055198662676717830529159178738900084644913054442254094989719765635502329672774091276033854756310282514445367180814350726108247344668210098234851354202470958536509415142843599939388033136078788385488520197379966574944896432380425903490165804223995604510932662052914448599324744017052743913691544008349995001187671076271372952321790780328251747075473766643131480035555801380557358789550397742765835238831116447246448971550977734992595607200437779432088460048623337921570195138137408405812786653033842645534696857586989115282815152733815588614602418332591112674146783703189810376503227412238263980418990772374615016127429538607353606913125360442349171541583445238477803008342672156404097046899521372792653178869793398750442034101218921334347733951490858576438570077638382432316477525575282391558346015500601054869186992000986766199287070918191046724494254917606464489299373055562287873958031227841603145420739730443109779108948676675514413894393449063006114433495979244810783940186309254578147075387906929105665517839319788199554178002312400615070573677744175872455384767965841387734772524554708315643063462419930852440427592558792429901364136090318597214456914664417621598474029861555042598928931722373995003558239153778805840069076003323504168042460425593976420517396156513259342412797256951741484836876169501986436148421746504363255719390703569610094565677467736782284612471227871660019904133496462774554198358094786275320550116599896863847528567302388582905836387964770762869169633645255434344169851100021848326349278003021196663516059453922292249546176627760937151012047476493835016504304307223434873356663506227912025662030675225416090883411685679727756919088999851569264481647114877802717295016015628161592358003685432905930975348010348386660701075887810683550878496803164704883344761701867733224136804508384666323100363875684307990000320601527172320702217598862574420274006695223986441149180015831606248197917450227513811816903710647404503795957298523567502667166054585368871783694361311631775147893574993108994023426965644784323968188367010377729843124740794548551652983342713506816148200959474997132745471403922215430769408067846990810591924113428662277598815515496609371182576986792323826452248781977264789547574614978120119570190094490053693178771831273151974503006413573190877139496470946722045359106848087692397626074361602028383443370268541620040920475724421143491550587526203976384511305408108460110260871624929756597010182402511116749994952898096842895154344861001596646450450811907977003330271811982250014184203645236178549592934870939140725077420424993828792666636671559636688213161524436307154358343275016020498596386851696264979780670886509515086458318571951695973497784929161577392180494083377513306069901526050814311146212336115003830500021101350661208378575988459225774363240726246121418204450387168048982879574909362656924090367416927143228291260389307492911029904469540935076591970602828448119638929777715939058111460410329011985329552354535622679826988524035696902052633806775446239088620754028322881078440471736790509937306942645339101602173366363277991827745999305345345408462267046968847707503064644477532727150574925142673203961359317190725584889537859048330958067379303848089408561293007538624692449901166796048141736285773976411524956688390926742335548974982730544608822922743604088219512914348047364212172638661038698938702795378774061995496857841103292046258390869221136151759313248977335384974667234250264889154711347566049053712187417827119605368212816269525764581602508780418972146473547325045571230772630807126021505431147740349647132072088197944901043258312767023459640305223447984780687016888037083491533894926615237525490839397118968459008513255472621641136850505155594247374083151759442331544768591774206073197508809241108272213932644756659302638846140422056392280753162843437801608806691323691329284169770342201047581068799151309572098453107788918568854296992413096930691941306181465009661020917113868275268025803896313553602927850342675376997859018890485597357272207983832902448797029710412578495900883692763168530168213306210434243223985338690159349988144668669136369792648996688773713332022335886600204336220496978699751488029102513692489879245745310546082240683920017916290043093831775248212277173242677877032425377200448152556249008299038274883149221274705157898953080630213333379922810837496963654718398966332097639282177026520776562505166325908302079569826622319919430696586564929266516386628787454703507901864361710319009619015203141768996458347735404433738594064226257343139251215324258882890487132782425887840930914288751341668202542803553246914597374763573356245007418564932884303722739757147958565820836752667678869664906747218535693919737152670810640155678804382116594872913104354472918660251397083860483123671108603318589673263872913156827755131718474379481424895631920330568742120249851011114129562988314919419406829367469633792869782506872524958812380494499858216856969148602923194909557330700971154521826897472423173693911537914791980337543082595259013180110446557106200202320217396397697080398216231281024138454668172766636554250200305062314882973957538923828870813325685178353635915964426034412767588988727003607496263209639738004323421571120876903626454192826097787363855526496323837686536593904812777260653727304664689361998264555709678178721025545356263889709565305071555564204634490399461974299695993614044447389367673208579080469862179055414471705301383831831480544226521985079091635974724360454349150295237264400837548986347936736165247325036124781146470697760075316573313544807205802406203065536814607177484250024481479620765608297229566200138891137861728147814517795926828065686999476007435478646220617892475307631070850901558960561852216778787583931161353920551698032745104150325661761095527984549996268080285069082829787101851721742859586488051327882250188905087414150843487121603043122844622509815920665801161409826378993418184817135760877583687123961197148019069096656263019324649415356595178095613894286866235592969830415208865897065639361792288736562706814310675207710473925114775050999544748814742538296120176637043690618133775935055871911176838259866440731189502193168192166116383376256308647138870459648764996869906154048337716767615894805234391741276446980940954959588136289603535299102399503979082757366164702860110038469738062610221831686094580561363165555272235249285819146498493335988823163487895851188062170167939692314266635801793637050358074349594172535295022361511787638194588391292120834211502590837908734872267378379326752355653438111623128255238123440909173538933562516133409596884428768918918334722192988116908955605190327450082176870579426024434705790606750462311407191387983330709330377088614188199482781739518196279046699060578798819905260302064016703239941583056945078623794782039075674793628901575763440979231042830692625054303737896910917860659766622444159768883923589972122612527559668729637130168221143626044017459308125443962071765165719872697087481068097933842902573351331337091927874832300497374121572857472915912743544218978921400881886935213135602209388967595616451332745821940144301309458357584229140324745804293386544655986829550402394738302984716976357676792728302626096910940427591739772588504821742248431830476408594394638828780122419138189173846881161359600669464453071108406850804471100431833282248548124171814007377955651553202442944453800920033450471589661280754800587578653926222005116245117552024467770207017179417008082090371427550625495311935886914405498098690814832562987963877588421203373947538205708627081999618399907326748447850869096735481647258891934159236975998937543922894374211486754489227989275114566301659312427703443832971932450053261319801615013068526882937545488261872869891254049661991036312621894134914098242498758961853224698655259993029128940412600219589746431910988790299854194853724454096635222152692282978855953280997754256827352026546999247541566337449936469535246033585084113763910373036990370559715260315025457851708185793773122954441207125947003486617215598978830584434571734834665275492783363445678533124750973363770262973850684332322194122005010996853337462726508043600826039506140909533881892763568731540102620336479439253837401825425390271792586681691256934559665005944177272952633477694417324199279922139980903335718970809717538921663972458869056231028012863147023549540507544474583809229665189474236119735711054440907410537861321326647260082708259832345647496425868675610374045665430462944765752941667913360604342109832696930745909954113360989150822536621764256615533217272779459614711290577186144329035036747104935765525244371526250853697832741965136740534418874726082084828722044203430811729159301050683417130436280994086371520955328082686262719381330855683570394856974175888762197967849996472421826607190352178719743065387530594427002440524685489181447699819333153706094770681156425234442390780276396341342846048575443682652792042445513896433344649098537783848627065595374244879283853434694909068810394121851239311500574136396455035945503594356051187850142725335002442204272831817016301034153714037489434646939212849953625427978120440612082236181168993496907581998624577859994812328289148189649538958365645874859602428567147662558266620165694778919741295271557853004637076034707342881939217823064284397892793770174795440864808132330631228857663056320717771446525138866142923232271696756570270861666098930524530841204460468346115948837047062167533966283787068411089024110765005487611927540156324409399893743464356645365716461470404519257827059034643968150598673466888609335488116487053826286850915650765002623067415666885070245870120078224257975718483201389292285015877711169937863402891364281672748709003293944135928711998450955653880045481001858017821039858702230663933502738926251076194800161055578998565784625657600956014546913472322077334278536425975132123806574360974712387774517894330918899385796018352636770135275631307449741939779204791294309899254514013859922059874680816003775932655504937462307503712040009626777677601384018939138555580591591556040071910438203093214036195037961520675802347269616864734008194476173221389237632415260085020757460202672789418044208112703003251174426714566850102560652437497581129200411221587338925296782905704364369794334703579883222603694909702423504307142817263869813545604578818962692213053869175166526644790716675492942056851530435332997565222185397760269572938246111237996526844963156173654933828250218945756799058678462153801110367116832681959126878621999815582380190770522149775485418504890165450014890999993583666359607711317536076848755067225445636918430032411094269534379005718563797717295116717026486931832946163010370663054117975720997098561796502824082221621970978212530396969376328161284632780140976407716101722595557408323172698251957961074438710984795887335761031507282947427220859841985934001584687152176997286346895709500142493039072255988018802753631791304165414052881847241715155877447032256092856383757201463476131702421265000062860252119900470784348335946803407259775523281266696170235099353659089276490358989343542108301726052038337749284225472978832177194770634880928153956638466773384244229123953810081524400086626577591637447040257254242280891051135488541891313519431793911159208863529728426890844262303230507220496236666954692058065808930378220511601317694716758682807646557258708114343345834599877852945690171641493133297900930817520370778097400562724204836660964867663136175909523068275415095282133358029986692594982853967380762263872160885335814812981942237896417511570891753947990931942259006517690766969343251433975628073919873679041122399159479350366141416505333068302540210873685681455499425222459865790342186524242041814439218796294882009228611710633029731367022316289373308596140213850743591329670981202716317457761170505347593923641522613835736695660070678115188477321539650274679852164658335396978715547474574742820381459615427782515766510136184394552017960711207443318104539117150579902226900595898198186605981821740402284953102992131876257256003970206592415998167649080914809979707727485455848465199418606193129727826212100183132713076505451409456293187893981849056511452700056392401026249577059448866198936729441289908786499970867249571354221808787530392391116381323628696406672012111055734306223468974701109589900839523440391557602576621050637676661035079694531848100706210649262987761058360062382056967202327857369173389121889119478131450748539733180411763893090298699325777814663929101992349156055675673608360061483514669681126435301232954900925880919359489328171239133923608798103188837285691606361566166502751204671656296718237021422418228468548713980550638713837371945819264771508247002721601490579852304732318298856980566930542463097693768105025220053767149259153876528342689680449134042973290763415302756960522294147144258076740284615326915918388838949459382027162941118886648164457592711362276509588693360082916982062224822027167068723991897858805297002737684881617992543521535953474529549021399651530449035818715911297264704523453463092630549870279890368415996187682427085565975250112749099540255606906053681163940244095429713610157619116884499296422712968805593278659596534526272515216039451696694442029448227037636379333790054484607907161023588888788996774491301448204463856297562101739965995874339755523035275312296274922880470557715507365122887217414871857562039608660906184876485856870701091139387926361502365564199526479814473127506104138556359531825516507726185672287507947967427565560224609907609679865454929705413316865132797821139103804412724668908951550989791256676961859214947438385170015028678269451926580330961001452747368246371783558344041893947629451565739833098488882230791474581478323240404086275114352710255299589015855894533957512303387587638467623951195956511373386103673960417078982624366727334002615794659592005823679285636722523481645491989338841626970398854799740118339683652586753659182400546584274341211623231725516030843632739664443037538916013543627034450264690532166517762289962487496959270344606882028250638417099880822229230441184359885516490706323816673347563313718817632236839416283881459697189079769208995177686052225405499445613763354905855161001688377989886087824645580361005380999877970232469279806887470354187716864530077350150154837759391410561124582386262529639379389142815534340478507924827186470948857061532898597928939262396593164762078453822643384406582400512884756272044793721956600139476293386667109339882112197198310729602176542616134138471182053503863583885929352913486664384205704316296610821603953575601028656940024589516668165859314214181459186554587287887286964061610578843048287655983279142446270508819847795876329038695216787215603579375748241216468768051578845562756086095665153822085924583003490178240034076607993541714076720814739846774925154129407133414404937649896364796041528075734060354748746432372332491206968714484581874430653408386758350592919718211513455470247341272114381496337058950477350876586538298349476119474955158171360433954719844198187656479916368808010159088845291258035821300199567073762568729750862246575712964471267245573471455387195005960630910314264311332882595508758038941069602294266846938561695010485742732524234308687798122993588077592024839656472012835182052358132752456095639179559976397613844323927398754819565421066189451373471887066775679020786634594461924230730413878543998287504680718265582582603404089123310729198444012580854072247471178187470846148045711414852196025398597653966950548700397904795399785254512798795846583175244839226708982301387219059859720054951194723765029601992726918245578453929149166921033496721562781233946253698335690727350345446767154219571144994948197004623190566120188886038718108699773638491896355233227528579655125224994863941001861524432843809082524525393663865416256197951438156576205327452149204333569460539071573996303912024863068014310352548805893012703662720436363507379266234274008501713152849134683673194559020456291732606706654851919346811607970996660991831550184382253838546260669810880111363958514578557519338733225340198438466122139679138098402826501273222855855154638216361053717315586258116641474130540917282029756237334555787318317607570078942103763561780109150841080532228248123443506959995318890996810599006627757588191694636323834339047932464079215675042069217172266945063723267923785986331394839899128083929269066480111780205165309087606656127054655850489354268414360507844764595991857087751407909845218260457086742332922712140340458079678332294575433244810086563714986327437927262882443995306928645307567589559764458317846143400905098154083901944543717475469193610643540649147500104820954929188270296143031366341739453828338649771407923524023574204483513939530064051730916815393999990208811682455283497581995201123098024946837910689567624764034974323739689082771034621185893332863153968841687077419513521946178285933543437492440823004485364714411455284627907531245156530924953869184335302209309980886112644635795580676081573356199127468339501881360281291162175565830830670502714358667046157681155411398941626500485728100409957067671851644624170440531339107156168004577520415503604655574625055524985443032281234067205063957032513880230414353925006769390162150474415957786443444686532063040979802939054971631204014340249361876734791524002062623885967522645627674286730972740123522374956983942896814998705552692478528398603714749059442439795430652025328354296187246073886077668251473356418987363565516486307095882019506429744953776575366272889561527946979442780382950778835276084954800732482354297336932450139596810973540721388733631840451393416778969962689504105007909148549232415012725699605894510542328290856731041832490254245991929453138746026662080684260478810614381384354576536514236033815459369874718559472432187927860054359749209139079203591116740513941576397149231537952607624225048779893876466236593762356709033134488741856158221131141663973580941214118620245173359505107477604104469971050790767102833854131147290779125092563549116254596140975728718626609283194002278432417788284135696431237442219102907302641196002475272613443244734174343152177679826730247925810027147436678108169396385227548743234879027609124700038860148505143867121903849775827592158356527445605142508941744321918412182761464363240171533165694035950721378348604273880291245798422862679611094513755077727455883102529284903581961231743509198289816549117019085596428016873852924066053340790468530500041817120196045233072520666935704910687065458255231812843595729772362631335516736348135325625808865261413064327672131835447769000075373583593286220846239271928851358915862765614170192280734751620246694287851662681993000189504599357866485366760411391122302476663582531380542224997126338239553744146932866454687683467509842330891483493720009960643735589541756243245028075435762842543949335514772926086838471555252755982922780900999046102674624306631720115319903639674372003079136991447637889035379561463155176222115471325670348425038397183398615131151697981263284344546702108380675693638344517481719172808672881482953961221526012097959769842822669056028139719808007973827512659707814868059380764260563540890394712717385904588412907899616045316585810706069724916058043758994131152458778164809501007096553260374890328294639034701113904145642644547852793326313890994767743134438486606993248646093270739779478137881987757538596513275537400572928837126571975096621188210469501412891725377220680829965031798367253715433301863748988739417389334235197488515095089588302701848628027524431578993272899911732357208961571681581304681789581848374108979832017702364625434616477175736500306089333180965110152081503311372778599469319863185272985205375737806580467649438812188879134944399441817676216845365193768692346165379067418911108818467064899725043241856961987968108519501508295822969959613633440351768577465188965544020847293899845428892789382123935188918290326025985588684691988296903696795252013359931124843287692416308204808761940912972214798248318162316876580317604333485769933913419641933992881978915971509241215682251109462295294173170668796117071992385572370268523250253917331277707661430861214793059489917887833551940106388114558541718090335017270101805201385831463887030537782224749235887857540617636686022540502167484006825084573752457196017728232203899011529899594035324556422970168961669259880506068545551654997045776317676603498136337308098077882774697717258478528399656539883708343229170564181384343773406660642017845318236145562903604121259870424827606989143477928851987899816642130742184715668084156473379591215933014886690078626957478779078149359885563367675748109222345613365463246379064857684302491898090378128122771838168749391644758107138422480953248804751527910496699210146442997396757805468745907237489694895763346229182039720127072410913086470531091249873933316894720053257087036728066015626518202310084059888789714315923772375109204418069086219258635175084498000575452079105440511499151144589067614245771913556649169638786967379193138395287226226035160454901083499305595607495548146190417691874109879254703045005334833622585773755126057322574980113804360319972433609638631603010620916309442888778892425170380823182775090795012289122001823986571542794437851499168424905919532875363285467311562287370539654140452873750390214455905050589066729553068773870100730366012600606483816594740526823823666450929382770416113697307130752478553743584176055858170118485426889517702669893153879180648628270186501341969986208258597782716693316544805502377502619224636442284539050355407149196157830721712561077316181189160315434899979030999728678557430719807477680127033904973594997475857350209651659358070123476690092003071454510813663783810304542571391725976853263773233257603899186185467193623032818660479936605799709215235553146490907383760420294500873463703260338805828339968583689585987871900189969180412010523400651338543259176522936720644168075316124946198415327072041065947045960248423273921756326552646267059811391044603735797308855412397274642983193500685691453008899837646006246127183578971903488995269244186070293776753207797258989649552836269233058562306436385125147002336816986315891790573878909955406036818023968175814544326269018363523632251040262639374121965715927918749758733166464016464308934641979618950059942634293241930444822332055463313376873002621139430712962248712752719365686708333032205347091977758771671779406522239747285381821892201045952009099575919050896630316341400506957479700908780233093875378239615371969690429186149404448472447333061402017307643342267971653158992137517628561488604997707736342237755022217943591641688437908098041744245851973491590035756814447580873229496574349012694017412958700051076545092725892088286654783171891119232230727289309964819343170008269174021283696811831055048930749176747346573069969259402490329954324014256400647323700649929105470645788935021925362303365379251677568479599897524069258060692849284420158044197321642162326739340246360941210889607160016234504268484764986033338410920269235192723370538640140810408339744004661426115404258596091510385654984597350729403406542545698108214010617533046238930781487935339435853190871449516566196579021811502874954241915950637103113172371512385179843207524488810338341351249879016723320324134319681741659337791024331736100231374738469339189799578326729270923384352678979054297924090722819845050322116319683353848766596393309243630590689945931288324561146845631666133352855855780830507781898033334388532285814306605099254449807140174271498237676616128199819032417784274782620064110990421290567562521947714030389270097041196696912680460488982026517407831200226643857124195654352069489725451112414599708292994878230456405524813169407111536781709568406385348258987822164937510382998233715726750721233668145545932144617444454802894750397675549209940775174413649643923154438158280573879420303094515248320394300481838902823357009309290708864039496873638768211777211896557615037915316811549873861121248019948669196130062430469400947274150413097047503979153957157104932330052304864462099152443339503283687558532023311730474600167588125740866180137659492243507696750991925095253257688234489314242849509178948756568882319720706848961235660449159351810919679801767709459894999422622467743046094396063335579953950730286398124784254990075003627363053049474927301628704468800296702488350057769001568686461283237289696705494575259566655449099973007902535354525890844708535224460356944324558488484092210902814217594078267916465470954448306466092656658538697999833622315571013291414386272640459965151576856541729982846713194549093131042666265187561851644803757845150132652152616980786614061726428958900855565094646569015468636858525839178273258095112601928611977372029124229673700580669194002628448172317164713450990069911046419311202977077027380027717579007863702202396507891141196486528886022794972512204018971404143487748589247998188042593430956245996588323021211071053721696878822979700183705883039881161482502415116991563124287849821011740664146731866300055173890718933633000734438761702727340423682522431673219227553540313812910836250005196879503728626596229239547691540557347373734505464595154899835881745282028031036257703413043238407128877003260369690063351024296316866010085613031251758997236562212985705511867580127292931254754592621892771833145209800461139017656315609593527600992982367530670255683505717036352420259279112334155130350177213243680289219967807693702894287923284803230762085526878515190901456383742390840906357271190825871307299864831566540309615188876815536200484601964242073323726955295736730515184378919462672478784984752493123195212627389529325145792408711703411460493526981137148014414582899153129480803440368902673512143676328388177238024441594154293418050096596697116605212158653672489050530015026193460825404684285673098395727081610826080409296867695981065698061432068491253982694379662379131504458332093154762420792452939807719054314702091037314972134663395173379957125171997589485100162201820399298863237467454710471965887820603262278667924292855828107635052472896750950916477868869466420607324248454023613388975438363736238016534260168889254833433595167052703901804440071793188359527813835212898444614905583159911305816985764425378280452323173252410677895703236457147667109817641644958219603900563336408057988853128441483938455296831788905287727781002315531506838770058849383229343837211311868599440358724196276276369602780012986741125640098969576348136223423622332744700911692707627329369396037909528941854389354822785467151412101200376958203075391919857594408599770272858149792331586645274202336428145353963746805635411652209187256741560221293032940100613749653916693568398651421075197910614242641143098367254084935224787507962685120763595026883105453057589517476681062875638936474902004864748201773400345621586766428357339535508852395706909958822283611643843110378872608262993781459524961954103648589924888222283704863205221719023424103080597274433465131076797087913797673231255623753421027416029568286902947733533842677279326625454931894284754443929008397602382202689022031504792868252689223832286945821312698591979591992059610814740300862048302509517082820633008335353879279981788544063292052761760267403599640748546786574090648105037304564284481764603183039566107073462729149063268306840356451183914488791281366161756592247094912433430663829480422582284917568881313265432579783422405418215509256493225548324944454486166478062119058734936283853838806176823948858486022730511195041046080138724923059038304296562917122059788360010299361143263939730004620742670514415553025460791574590112081812154618312870359513968504103013243437186507913664018118917891158606491157971144145867656634600893284282227273306767602348474367941941505374524475746668820924534354308109482827704867713482945298098554790838761870178386427581393973626178899185266200546304791185752741975332824921409214081567384772775395018166323175585705907622887396752954162100619122780033315026537613979809678585586072847871658097395546998412518472031734295753360358198357455419467362902382368878032220057142612335151104274144400886744096968946376105962059665964552728856717454349621713423447287181562133602190666251435403027222211686857716585948937330532423176989225769059829673288640632995537771764948289501691703544991535647300255184401083739911586594927967080883563120663437456393463664152120163281601003639733731974107058139106515871495626152789182796657529600188886998233774127302833415917498128189321460578746260709183895689443841145576943983981750457049433438787928384922046495713530308469073751622521515104341672812609940067602744810037282902101776134056944034612271731408124994592079535048293986659445064422267531917219230111669995451647623909132402373231385991072231392342146709924356552653862728510142410606190383502406624928056715360907552482716868399348481910063236182378251629777482008664033482733483277842463025091823901766045238644972220979628242085415177501276021831723150920991720899951189727238848077710938661388063548241621561095708036846399950624518574363593503397971536248487470052733606126825948520957425475634814482005633880236198154818983851147056704304453770178606993531406943660521455092221196500539821566958798835404554010534798994842511510153845759150699818001427213424042594948224567853929280676419500174675963102461015166171147069207284954235025419993716135362060888087484116774361409435302278843725872489919074266230809198659914958371153195320693502042727244132485574570549067650076691545794205730448356051595783483545013433018250840263024304222285219135528338837700125073711346662266883990381816768124648255833571871291222371384329993541458864888805070460078993986552558061613470874172880548471529168506910618595059941536550957155866894101824443263493889542605347223234242866013587248168437692428046430428309104453282280080784427421195982288561580973523874070371631316803936943981093351569372443296666965844562268903959860432822320280199789630610401746221880862315282879850694150247799481660361171096506348603931838538875146743125751371608871356661544403499146476880420950570728311183151355807567955701137778289637422294521671922291473534882280696226967103138677742313348679724919399404648945068678103048722459925458209536271679929675570003090571861937442358270926929674565406878421053722991624375443204024187209588754774434367990995500191336431668100435251927941331686323127433841966493708293223308948364696527293247323319458444019802263664162642995201990865932209860072442307264179446306096016786047058039837673079179206155207534171758981287978974086634286681584670834994675853288101341039060816744489966229483958430813501928549967461560251853673522863383156832253799173650216983521398601189717597365478277184594305991683595449120834971687957896500044171161344189572337908122588453314383641176191602881913092277217395230371055855346976287939336500304712072478287925439654212053347696715060947640480331825850392799098316915084774638438989464953587959137743302922849782354717459860369764167717325234444981706235313841510799641642053210376525285603439109925210276720209565378148770813898220641696701806985803926481915466567314780062528206542776747156226853286184618468490163372385203841507461250576941055267639112788477946139924750969631703820278212452268371941640688204341184787555630275988310304675253666789836577655599015905262077093823564552544365108266909595355968562422137263615335400578475148846261328140899100704644198300592072152066658833259643667161608166786458192417056844912139504263357360355876505301488016501031661579402515439652893592059387627337289385257890919095971207177421595644829116662806048273851593295223827913479080498751745045259819198929707752927531864436807771268435726218270253279036554164096746194160382930921082624807842701925839714738534818691858387407246658987265094216181698335389689854112318022037837924244115322017688696909149354768603963335305210499593916317582335969888886423995713300109322439334655398796596806808747990394548466008061761748414480893893946354013271221266260154524042740896720051969386432013729206109443011289361848860049102819405029389393969898186339219649522859385940518356651111691004515454268719407094321557105538346709070073765787008991520310312238223619649208475344662066152024239869481232831945641074956274240225000613915526411026514081510901450299253500193265446340786121627365106159054644811627699890056175207131254946220519173294822691855284550228758123079789822922471119062606617394665330284560966161765368547145349682286005688735778447411353436380837147000378991664577668889196219753749494009318298137436601919583291192794022833125465618796614957701558908472270545528631714541174456402106894354197033556027356497931711408227343906875912899442783670123381746405512748730591217813642589457736442085508286856401779186848901678275175080394298571371859433142377476921540846635190337888643213364298409191800957555634660259701990996542399622373938015904702590075825520858566151329480878601158546750695855085839284821956145039660474153761127237187344092784590474312657359613925749213533819742518418097922545652647262726584992411490968593482231414569451884832033864963467465151500425303414817484899848820167040158451459249101731018735438436015516328496872187250532382354179285734000446215814209069679427468905391681372394085340882533801494443390054331582888198367981147700630835654327492439935431812608519784859776098731111389956735357363239272955021907670505973123298651901927680637777758663728495567057995897110955350958830649206699846433630061028100262886573200250883419463320134454233925715004524564844340496259228309725742055431759003615691165137735512931282351263011097402463139743406208950386037480008188044076258149033691053583042181405377464187361268827427095091362678127853044355441527297997795845870314411478616019344126105090940027319862184699996055528553753240606326753602025926639511231511653471245803052474186664325229229315345897479188214726491052433226660692162422739536185348082137945279259080390210674800144223720322657559782003174854385639300728736508979767117346665366651371881189152994454790210902028630776965707397981110412440501772269477956210103377844698662940237361567322835438608405601787287249055595566300505357288285094714690644724000579839810163344304596361488792803696854730708991506416124771793381109092794995297469064694602536868461035291812240320833103545423033619974188884612930454528260031194116996572588083739519165849668876289002911260568243412569780952042905162409586086907036537727233909892587873948048304349194241405634587146968466957096359442919220498977222215410795436593949858307861835220086561184552309836358717826151585278900727542077156548751709100129731186239835213766259139136247085657635975131910413323918624839175915165790222930679816731423876051604416778939863700405939256625629708769644231461643450227797195135411708141684413927031847191026725454507709734425756814211082099934257948985778673779248675752416148692450578237592161084284784073139061252275974761086363599074726437185407743356549831264108098750627737597052320693751041933066738303395905723070095539005933656570181425562229172422228812066364700275433106026164422734534994370376214264192400714963411214291767845062119141141998747782388921153931114011499128509464670015753225232156382071527001523084109501366841252919610291943492851481500500544052246039110736402960933285865765297707552555982017230345332998863089132754490085557306533309222203752677227087750338818723849165223538350708891160986359676202616522143455563747778802953703298647361017612800312007152031825920497417408591707382609218707905133101860832712671057986119172160504385006389289377531202007596142730668274225288858249277943899038440403397911079145062104533699506380628230998101999687996602895636243913978327180286963401876735644555093714014562962695852044914808761341765079321213598942299304615775576411240440338952278686951746238170062749243567346997034811103795793647126581990675305003459910474403465626306667168757350069681371797761502459816298925900533956894108876529334175499138067083035714707663759404333962858067868063071439513603439272976187164819165979078292405125330361609216827467789011313492138250021173827318952807706861702730229568604225551424748233760853197989932140126348828169867185874443009628839731639595645078405225978509602714493900588628554876973170953623373352255791077618412475276924331649159362867264634239610309460719469811217379799073398798195444555754879776607317135662982272041406776099304467752269425806109177870590602858906522289594612224778840492484795109782351300759861489164970904184362141508181952631831727727754326580441709504443921595604813391509243029974676062519233351597424658173367875967963637413671777178723993000474701656918312951637633654073432840914170902453813382745198727122884789127582241099608396821436208774355248732208766719117466005141599785847815477498716725623248691278753044585638816801430687531738700962274739164020918818178265140462088820039228924013264420809293666564134320327158554124390446481576673091367353288299498467371296609600415606532174660275349777673130063362108987777075982635350398426056407892442778488097968011179203327559040582579148825711178697685951495352443218490217792765648868546728883259598740218809132949975176626693286716332695383644883860627820660014178513784741878740954482344126775140334734035129848055308432598849320582559072764006002114881684496647074028029151769479511423575990187411934672004576874053897419387605843299505760561173532057941950591692161600381184328795730486116440165042488342199640665805163387842061574509395657803952960107441913582001236578126739835992739904656044477544382622881739297483043348722293872367884659635547538053719909213530054687293374628332140396665983693845353608738792101285046124214068560316272675311852800671523624195748045136070175267232484054239535605545919557725215987059472297264371105816771501364103473934727268311684901708576890983760247352632308315584619240710919720190367097622249427732859634707868570311312556219007879260350037095911750786218706548596243110316911656583729502888068994514868234503199682058520506229361101881455698598995614360121486788327444330516287262187421221585382963709588395827376461999868421436359438599193707695045529748518742999895225605635116409996061618521020971550004298258874268475998382957647270939777216840567555757489305218712194261506609876300402704694473805630755293685531685772419372685410336205746932010604535531999865812823746790820021084450697387405009012081616177821686858520716908018161816383620330917224326414763304231483480579898119673534580449657497477604932638014363009517630475367894185049739440463565241003016467162037173125015253360623838553202523474382330623605794422197372706482101681351399853059607225662474245286604495794738967701183308402362932845186710087914463374726848134804076122294974716027229187605408987174915440601651750887516790117603582138711930071771676054766390688650234633975758201160728951673188159477783945536392085169476184286754736037723025459993576152291025153392937897528410423856407311186959438979742928515200665099135717241669699234768708539218965251762902461331764201624277022534750014680945731034508509560359366844511215052339677469198142012527804919020438141261590915679826780463394039830282592704877633702037746439753988818282188576312715172043401859267512007725244317818984784970331332552819197441703698301797979890844174810186486523158497400022184525661240915826180500945516244372978468595714764412397885800282679642484301212505715718253898866824924944803385299216078027301654549920487961524526778496610048890288972378407485497562499149309856503530241101103999722250487528408447152089364860249785858374206642358580344833060028471178202138339096742765146362261192250025101701027676289178403827539355530058805667276546900774035247654910679985906395389373745880732415360472529972233718268229802400321573513406531042859612147165765825329826272224841136503560880354522092988791303272644965981656035803669313254065416554366192011549892524401434237820347577996545358076814640084040951948610910720161994213099353335578575091569800720828181486386237647637082008730626209655529602607064360373831767766076084542995134082209972369628459680492811308095363305004112445231775274793246935517715421248226537008227711658037829078732577233929261907461932690442526072888820473961308321739962111475358086347523958498338861220403852222521167813592105578694325955198392734115497814407748298810328061258248814960090330131599065933861415260606078771597378990261046759954483728740888655107404928422566096438199077996741227598447735304229164728344697221806976076575426940510675406590437583349882457504110230417621449965155382290913095710262646383001103181664088098754527321689300791472690057353513146686533478716133352261223951232884451065968540763277485904934090300015001118158339580365294751625973468036273592610088978972845014752785141985580267721972901628373354524340432429153602872086999024224139657696650278052588612097998616657974796664252641574781813931095056332617505529039796672594851509497691939366573776994867880595476597057978254629997469350417198563223796968772800360778990450085523942320924349920560447051764394962436574326158248574361037050333571536186551962919752703263066883865504872701966762675414563595439365253022462440476404452682361607792987250512540072049171767492313653409441055131427046465039456243531973749926695957970138643952695030166888237696866131131796278513379964285399633334812639673818773524497261892203467318935296822294114353622131699319465467091527199881908141974212384792383178581827831577506756608062670463535469173450241613780109905987716518026124308653539821346573538522637760781487884316899889257553587783398368086943423292012414313756067573180599674220472280207296941329245769332093523600020466188162866610672651446514218631333874375555113976470592268587048761780637346347543258953001476592061158797213520165417144814079155440785892144017312294397106687374299286893954368566937187312810615068051303548834007007464652597973388033163787236654705235284714126461983062694754451726692457383768893155532161741450038098848853297017585601588152131972945885271945483046177089998426209312376149918503777083155020254891260716874893595443400433658572837376186645534735673340471509487418625928238787282604647667313762755941865791991797223693152128108851600985247844765811896324901246344545451400847337838628804813006015312874101846515653322668974656022565971107371199244278403320830673387368986773479696348919673860319168309623570404541940195644716663988198619073517266833157764078660551844781098768530295797410512742572140327457558315280557980203053551842336590035859899314028772192045778608606416548496475702791357819994948116951283440365044495357775846752826779939071188778701594684513094683499698737810172392333962018116340427184388943743111174541919680867911549116071386686660466375826816618913865468602989081896772686107999029092354655697821626601576278682032086212942206103772770643721652949125808992031829649579341000376413444937056534389100001633625641850692986563533813244138827609052451762994573710578028227519938593760760768900014724455518161016973362821938880286454671015883531705216378024594949987973577922128555245445386248877900307780875555154862677486267246350108880074530925774557153389860835023449329169757946906223569778562224196082274793941410489595229200654025358260548559443411178190059283164992522227215434193807724216445353695061956196166518763742624760569912127881815923580306880601452848496965495868087342249671144985688908683536473849985590881438367033951528082068392738579500106488780891900024414364780506814961833499026318329639285499468549191818751646013100164801641309087002618343104953671583084243403295501848263023508064527030546773340825671869653488250720835915153589391586394571643826746216908134981261073956698603976970610793476055642857525908220878004755391543644116557579626855757088047147426267528253776101160536623142974714073243525211885600569170156369021543588034956339031248058540150314189716298373255954961323274052955718814216942113451207395792672474015984634922665249034254587770325953104575390962262217894899116616865199334091185242144337113249738058081882307494752986480410852531469087141760107038369747537905350288349019708034279537608954879059417958796190961703773249610081933728187433911073482983799066308788361321351277060161897572793373497470894085510066298518656020037412296241194885841744723349422060679317180612285194262316976070793834461547141653463687057267134850684617805693187347770683666953471595581411675146557508306414169916880890470789639636249552526857457350677815361468662259551788843734807905929393367422375623642288431160962313429274925355543601870685111150859000189961860588558750798038016569401988876275201480906387534407314805272587644122601569881831281759484743273942922013791534952286109267561532634891489702449578996934855086245076232700572666136923434494705355555260394161694018808014006253911951527602499416806165465289351949788857902402340862926615857137748120295807622660911351800758831155440734896469110509228737987424818970512058051115225995553390477438458275916944068300179334809634071628892833684735392196051525083837296784855130857432181823620609415754579434834666025644394271938986751895988105105922809490750861534717551760019514711672233452233907512818636708073236542042512545676798014950679272749349208871439458907332918913522488248812315312916843941585623534866401428699080539274568426291530460091288710575193048288723910081240233432096309065543101731551983750579963771010968403645649981729543482763656286569525043421920715348141586155335266967933839023647104947973871784372272333100937141396932459008072469369069802378366907751210168590389669154436982340182003782101070413485621914666111840582784959736242716895812613534197254477393117197740433161525119987885579787267681404260583805234468866641832428367161068897385720498356593806375824480705232720665366183529831721518422072519666251421547504138712105790141013779094506618765851041833026688768135136773902240888134597815472733023538578410820498732321776571880690645011781420836558916314058417244617323909678793435243582727297240870037154142865286682545949275678842137125201292241419646928641245400992311852695334833205875059025861519450423357256245593226724503915356144910640966867436469940289348424726499552498073695852397026190997843100991347466547956977505087561097385943306570439283352531238342005761767804324386047714531606410516160373576942855836433922107634673534452075841922171982733541122451675932425474101007167003536124775602181816947537688603750254709100353894643578077999780637063595853104299460926332951590849785550101121242838200471602628430693811347467732184571220228712742058635522212712651327344693388374528568972204318370522208198129496039867975437725082628866128854013832643463328034958052973250126398099395708505660445211346263317292889561979712334969440313796778226952734404253155479198446881393891637061771524297673301392493854356423810539913599683309065732867209558003042645889442131393198280018976250467075501370518653461849595911729242488892880141325822127394499995857472859997662976419921132092486591394042611175223872239983994495158602324752822302604739624204477790027175790158334825344836814567139144748805530292251067058456998525154411664224631187194384820736210874401930132175922299866899917103540895440130979012511219018028523478432213615275906782996635262929335242604147121847352073769882583100295344420733080785095923517034965623396898951818667508802050207759232219229632267622779438970004257389667453720623455260438336463868630330177949248289402504984221486262717704417719498710631673506976847122913856311852068668301785713705776928555104773749634356220340059732456793766121044764587087799886057582826618762131839561833626970461276594236618657465876971070181906520472016230144500282860362349777975143026845650786887809890808388036939156501490265819387325758753760402963713210638670490597959302125998591454824720018783104693563376809885107704384528194938259127693876172748490639957219917853096809993016689233604177413182645075450322383946415808814992917284763274813229804997154307373533682134443632266734444070762524677051986274662545985461869744394455897579544700212149030340018592491648414161934513923105043015442385022885052309330153804473209572420769624884729155460731119536509832748247872320679741149727447328050256364376487027074507454637593400068698260180226110289101084081380584347108917809341547399747143335263440374797193597595905524999245643862004566480978937566202098535205675814673789511405072044153486167920284393266382114243190060030540830170564805304470246099196656734727979696860932666338952013102004540923981709706250163921537255408919329924808171822838485703216140193432380745936145019931716756435002173009312718009853128516418888154428260486168551896183058057687400620778844908539600923152668763890538283986438518778923130411926280971975010531695740890426872440205400813807475234377399075789875522057792058352066975322351732578352693350157632856858839595120150872416270801423865427309937915317982748943649028280962008116187136668463533407521682617321594521507773730547670370797131962340512167220523577447305079086325106986371383444540494339929335289229624202641287639248653775343331582903702381018955300422600200231612095548019251101929301744281051523759744193190278127853378493560152363867583431168321297257497622066312448844731781716983277157293816802589702334210526733389521181959373867473159295029524670615933305641427269938011299105484732092240554634258630411006302477598370545304936896267041836608543424721827696994573231359972714240839509266716011246404526742736185689222865708042700456558078847086999121177722782591152574959008808957917064667314173489357703405700143793317642923297977061578900204800900524555123076197039179082775588052821050359350803352964837115580253602768514023875191599274305483721673519713742336523267736741789722188431766769612615176301594361793232081283456337717594821420601184405208730711334271780150491276533078133259570419202494694614491280274610086577393214291333401107545520328474889083559217018598179311453786161550837044384610778826200984041362102662438995337229786260964543720876266811428987365908738029172312564391081130935548111310951847133857110227654725513411979660688383590977072126549606535840078389958058963689927065211804451774084924725716870666828158655704223995549529306053792504799659396090064870595293889031445999003540799466062462805384190479457220212321015275655348259367799524565335587289550137922603040732388040226459244137392070567122487935403179880781456766817800224055922147256773756829294998350042051565097437399851457694659243058373961234537144244740800511833626332839694099065549214552674897869660419344539769826700884073655856462045355231922349218747468122690739256290761220521396679150475370307201085809791231697683014447284545257201364908339406570347628484228507327938672498329373583695784014990698811066846188658499849948141839049580253407516865083538495823552415816768390486595393244918059389389989219094101178548821450630674400826164325575837861905185037966220798564996068695897942711980961030370763033934128620391223965557144318376368995929147489210650569942473797174817732615548137623030449304574312262124424214682645687543667510132909033862550964186551100549477291298259410800944416296277370274230350902646736893008339645166389734170547785955857281281426608885061708635402096792825198943078878920443098858895899883539073509072583333583923233244615350614382819118534071383138445396472736709289693324359078046119937322630650416578446895448746500798679088210957363522976883905015009378376300545433441342770996599511109638603183919918802442463700067350145616676005689747192687467902591928981317524084466561602226331448573830079304776805413946361037304479902727794938060392091377478477780342138601794331654114300817465420640647471128005978948753276123056988284301924484372143230563218514300114457672697117889540508239813736649190608525321708304409440255419986029144308631695793644318483987899579493096836505535399697153682526126445822693786735218364516599170902074280970880438635994153444898488470898762024022454020429190502582385228574898693242445113513679325372417128924840215864941594620240483834005175508185755724149636290496844813158580079589818051129673690499310581495247848608110475604408498589770349184862875795426061297611246760237345747862067719981801054881148630899477065217357281131530491202863544436638826717924395656429853636333975738978993336061195586987239756355083437587227173504827624865812431259940212576421400863281745536762412118969458915695307873734657641135529819500051624189514433140338491606593463532625630146213439958649038295041370313723460081631678196754636997460645121067412191679559537984011421660117537435594648312662096024187498544366857273147510433609363398789378329951499073494123294041635180775200608752974227630111317884979413550564164284062932351680173918367828727122484327230724092847781691881307328669183529198916606249231863661777115186958881468086181484656239223642366964225099131094777504368559657829287207842798203550331554387786330737888995405866514284067110449938961596036486734260994208480549556157971779481378522849110333356159122582669672070269379427732535260564310358295053584664810088973905679729419571456355014820268667455080265031525097106742567678739198930766200711947326442721964400614180050059364272588656160686642160095344182097806116504723881320481614897927109931344243562628349822977814991013298645980114650185159828630751824285121592204655406387037741778720714041441389115531542589662805982159200707027150197152409326935500795053184067593250278585402908187386075703713994664671057388897740938892907232303977094887597312042361243036132663758425236750868748406789036405837453430828534315968481115250659203976933959080338601061132851068568620910013796866098614947305477326103458779276833599666985203851822223698984679731204218909211722912903902409988794981936543737793872410507034973517934129868426334312549721493908255769195745711322909206488611715759178153034417106889763713840677910813032836557285794167382248821978263025011120066489380082510774741576220007665141637132084418574074407224719678918489559398315733862923039939510720994351353023556416659480526770004314833650140305588680529821251328882184313020757056593041817402158886790892644884086392400569185393064763855043550306740618068736102986719183725231896676492920387901567054667296396758930481279173909990445998059161585869498168879794617074431041752639408680151369745577460878607034398376103929062274772597675442971790895129708705339892067083762511184655621636778300839185375152207340100580824284257493513068299534849617899673955161324371928614326983961900351579509851739031509693369498891497219477681453547610837692463447757124936595141230235138145294894440995175878566247457535337117231385976063791760213932863620193081977112945641787670112203254632396333095392299052663994794942826478256129437221976414488056137441637312092650948983338220279353874190857364783439958357577997090595017486326788410661143786407529954272580144942215162282157382189906659980638771709149735428935983593082727081323977568695914722293372368312705470836054311052006867334926231794822617810032193258816570274033151481209399470235631295251165770353145701417419032667099325635999422295885549322423849896971860729249910092718354962800080334955541465416149514451485925710972290880659993946312707938923282084200883625995984509982886887826982663266704984212106202557622356434947299980075988262755665961106527774321413145769832845602780746556777349541454844606686696036306405066222123380029569250545667745668116780622711347819042957821379853222957662173524076199041644708692886218358747355296777494934937538991165127451390204285864611136697421460892686746831402434033142267075750600535450776097068834874740027689345903446527341401609509516269576602286045694981121792450185444405883070202630005408802373575078970929465249238184592858376358744414520428182588797362030456810979483636856494091097973086762893147691740104515113283661639277020584167816764958299376171243589005873598991273865021943442007081148364692696655893010832460715492605307246698503621460647225522691583905266991961366204536737577806921119822787593573449406991200825720082141564412657375624988827777033503319996697422064752037966677448845613935096005383140212042201871634345166387453954975796966646811100761867891809614101744159227958888744051830811359728092037525313540527596461119647730829479408789814579321934377819822199243590718459255255758889063095503899412039757657190171301064365181037090385117870543728019754874861974152607661683712726371557057179644294260995835573461188409415949493135888859810350727679040016784731164086058255122224148656975153656952169542820984383973517941857776050527644912291825479673922762896344520751787936415169325602747249224698012035658850577603846663696612864234943244211248169569099450648773014655625521880181500557751204375229800653763959681621856737202021614422086383810265004114007613741277149175346081659592755936933535528049658881500492880865409726275995475190198414980049728447258752737363805632096198507745692856210068544801672684940031685174607000060730870921081733223161763398555721970671093620990849238530602924158111529859634249985077897189086074298471622396347375893529275692792198805059116098600460238150566665055504628183132773983305657637991269805387573140758788487981996916391036290358602445282187006834713781290403453223975513059481199060723203172299003132567631419269867460180389571349634044302448888315341640543472561027601519819201143106050903704396958151352806131870612993342076519460313652655989945053006321183293367187883215747759161816996720007080015563467746203881438782809782766310111814271234315174889208558090940019460519496933580478753508506586893233108969032527831845473316061055681920803414910399782538117220909853794366770321883050911442533804600846751753713570264720252179711209815200326797469727982362675669988967698252503785536052406820178148334135462163886394281898381688638489665237686247238740567723320659614914106885968299909531359650944465591265634732352738553987714917783487314727639705429310517223313930348656567685411981840137118584661565608751233879713700929882187191829351579575734607923908968498695040405641939761785452197062219034759790941670876224015382092091224461781856815559832841178208319033066243902835046174535035386236080473333645632228713637792583460858036108494498042192960209364190565106303385791841646044415986090020266933371520279048969704333608842751618680131938730130860579112621122232684691839738467029104060875268332657937960506362608578349199074029598700425201101600978722622824579995714778951361305513974472223913408926214801604983841881681994609657848805485753576220787448071478685911203804116902005807661509068656678398240005121534643084149111140804871125081050222580029279778638659336875444988732986179015131928552817820539260444588773800155543533674218306289901490664160640737301790887934471386069084528874107281427929688276653688093794717725142564907199356231685304339664093696718512594930423931797163580462038991369996053628863059037982099203442099163855465315221906405838127367334758856832641125516603981675945343850864205452915227989730838535492980612020741784310353239837852735454232386426345041620133176207765813797132915650784508601159154313329822947611363035682231560589552066192667642272418618957861154512870198858271920048950745360876327998805558989105749801712248048351079434956568889783498369721054870450798292410209295178255400301891804014729770997191409823536960124901458003257754364274696191034714825903009098346421928862430852823287292288105717543210118623189145541492716090289364175171715045322350353050543567620971519242805145313044925568177399924795338514702285329265825363323367465131110511480165621984078660664643955701148732429806766887445223616952445613827391170622656232090099972167726553981444697798421033092131583885047030558617949271689583030068719330301856183534064873286309125298251308254085530839713439153594986877505450710889991791245704671196681223095838695294612706009627588528851102428642744223172994379963391664753015408836054309205447308013519811183350115707280811755553065877771552025018178405032295186307035098541875908507775802196222970965760775016567751686894046030021320208649328875117416095415963236495717853322989205223827112031161319076112559219196551635729193350042090914816944449907306137675104307292474373125088285221103735011731130326865695336741709922002897613317117569911676240357995191753865527919675178042410141938064000384364610581893806728128907522131068172506623640182203331896977232796775848054458345964363295110869488776379486787092677048524591871703325933844493585381657901020590570896396912617797246135848289544691068586113334079583233199517506565653097527811936016296681921104172100334113180681812110053012213366163801401132696362068681330615855427549068873734160613756765471686648856125703242852315113777623200847728550394651495049987267820259043641640550641914821909526049396710331101013646624099418229215256586882743134972273247724537894587896124858729258257912366311042575019676008825345258165254210491724532451515381447977446452300631368324266675558515719854145238486778544128153255720841481477146782945169837124176929573839793496451988496201721549747079433574893581766888620825461408764792997087012760860510198894051576452375796068074426396439717842114503550897448127874402907478372882167945963543013099017731779038989374844771111493244678812852906346243085477935408661782850458358739805584337202051319394642218374899985841249103835466424752216698702352272446452811767880481587465747769150668758177373328283162690135988780629790582307425339275192038053988234866314083703724628805776248455641205399215415130164195402331697345764716317269867799769419753008850295934380291167334972172046062209189325828757886883531039936895631644901451431748570262959407178001289205520006334993101998122036586274679871976142312576740736525535538115764846047586835570042593367278133197698933360009871826989920041923475578018147618168505824585987476145509272091249994523302410840175762950749829149164860020820849174366850806154143887038211351331367984718181919968430299812254859671448401958472314004179041536827492831619048574210482877274737415129704285950437312574498195171602811575138962567436662509304653250203195281394918460318745724646594950444221603208475755039994252964572992516686423269701150735811528338969672229756600090117683670439215065843253347686734687295653283646029289800607428006512509452757957660180685138391345855975033379402676954683668781649571007854615648792341389503558934378500645428243386352347328996807370815183907963355706931368463889123024915549512559106798436081531306568574406662553958650003276177635063698363892013610084418204784325019986161740069368836368825972932343841356170336405332637585144229920249942792371890009256855177174026231837348362584384705323864229034501055950809868073696228093559957508873577822595238396889634692896937207300449664203718926279729533752603895638356047887122276786388436452974934833002574203447001267686054730129375136920087892028854214691517222033134379000754632080401095114392224229012938989651623978392270601132636849412050363727437665473029475535901592356368651180653889833226970957175489226548806537091309142205323910449416718161123188410806610529742065069770552556773955356533149980766896057538572816478525900331238063065787907663525489174322752654775228919854488579712158802347552115247546943209049012531252134269193441960204445497551312537923840981571217309734924262328577306564136494798856612503245173159712286195685053561189130260643914623493316892622794705704764499029169665164855005445162171359813688960676724194692308263865688101324213568128193908683109088380572029417336423190363733849098233195173416331892262295675130956276329391688822612538174354617012484847985972809312906150139018892132127042526729513319111523952701917705481758691786288087208486546997473466766961098420944662647851264902327295257443435765357255413561871625980737073847540218713123569584880903999700276922991490152498921597944478195725386170031601344565780790068221132508838511337901050981086617536066088578250511882142335528297688674192631852401681176700118764757070462843091553103401784431691077567335751655820086546303524323760539942665504461437955645255005459372033859019470074526304493655819039276845598633807159367854765105811934649142071600149728821860602679493202924111329141335515392188034876900761451164867281671850808356049337057189229945765423385821760389613013104360046933155414222865468035472717605490095504118822250241866234434206825357237547457568307439750526708397363759024725527631455745990623627501036270064360260088135334080015507159063663766401729160243843549801440666482877541574549122666943627045282018000522354527208847827505568012069612877939053826354281819115011590075746989145109955290428979882789632701550919237165224302414815134789714344911192971287387515702260664041490180173194782274298550256451084856062536585783102908300667476357740855371799679266449961701724141243306124852342897078229795338868310180844301971129597105400378844800864250221147585373476776745149294436947804076758687724945145850274184806418166633253999149506707559948081048946152890542546679523323890690171465011858222771559678196586856869741386810785394481632354129372410074554924754850245562932376727706387059729076744654652454116291275952415545922935570395887168471402185011820986684157829496157882260964424783456449401444023431655460284541163526744536529465180115020229430282961879678875773284060325956118353518274341342879736522382579374259750436682902168721534935170055483904410966165037477525925451198270343225362689568412565645045409290118260336520165601470552629947473295589349396241569389750442094402814133083869498859717264835677036134287127492708647093734486774378357752263444886589789709794491364545903315335525207011477952640157006948175629259222021330251459820244772064382535200157294881975955974609473009979115561291574265291482345521570244739083874687935724225664177691666287671314279575180856896562994645779663827447879043461480557113923733861510381462730133289076999993771750608643725335588573974408256111786074971748643273791291883708063028395167672825861054810905614804511828871558667160602126952286182882513464117993412927236612444623917344141541616366658832451295045388355350066299216347839746650989253665528454895046811506865219067109631099880647244490576666733613102921713792454671541827789652459327464377340347098902976205448543313349086930979952059805488600137844273519980556363946793104554544125426503098768679240588211021796285463213954883143501279631885501762505952026129321992677800180262429767012538996722745851498757043461803860584848805004780852281659836164531984678956029522953504471293746419106378259313652132988939916887897529478479406455102346178283863385000897736953522066398912948815716058339342203069877161917182603098961792527368178709585994049502288785711713100837043969571112349001162422681216563969678537857644256359983778610569618191022790481509200653430632494349892881717547566849324466568203762082431472659504307836533660106775829646640284213144384888763139489335476124178804023194163692443879676770903122025024070295878055229104281816558002980545110126831599778359594135622728524516304174379787638751019135421932976035107733869383369136326187012942272502722551641452984435178571333537829790766263148676291624156362703238426675854518208034573793350201618515666390379740808575856133092615989240743175968476305958350636376475002291564193931251879513249602096750040869077581117964662105232279551252624819900112874218425667971577199063043837903163872215719889457202183951127378514476866884215531435798459294616064607062877969217947163290978920002190769149240952905907821892768142763507381201329459264967851716089141362982449746520114521303960533074337136737867244269374929863714768238296249916326273804500977686709049655543484116950777480789647555497680096377877550498445606870371959412812598427677364671010628600244073231551526129651393160606473016006059309073815199430652028034305180433013250881088296306045212827952534485964476720124410205955684320556936930970255671796708033966581880681101717251500648385305684871523090520637734928949966193320477650388307182329291170109689923694264820820278907900732789484423000956433344227381313803082163333424245883768565726223411657209657672955734088532823001807464941858912164156058099754731640874637688743300238834473392388635693411730651916294822592647297148936811547815003783706411468585792363113614703726485070776008680487347381733823152687499501743599461954677697960013995678786036425445636504069641063576448167724620534783856283392690458250068976190544284090483941551950488411506727935903330406578826107402831735372824192903925148563652951955788113678755968827355435830584617208214083127468819867125447614051865660190323739194986249245944953753931390447584121472885619413371054239730575561275525420737911657773840425411971805495299711970020083656454906174478811775940085255474636875400248293313128730832444966118353242649726921248128508753470619630546551662707737347301584443374542060216229250643009461409198442968149932250106519971286008158442584420261584430714452860851916460404458500945713084205545495498837350295488252885211614328660138754219746686631733427309747962175133202821469796709807528630000039213081107279756207887709227754024639772299544258552047820318279630335081427431262831546512053370248792947549595196211792102564474065938544079630612859209266214106066418383497441674456733170469121633434099902490254418662684923020935207138828425126660768135282756329000866181217374761946200370935131821172008913266785816229816070701437295465494105461649274244726417050299314740907938944072726709818465479381913320418278292262420278492392053633718252483488358780526130245953266520802540229792246996313490048204319697229723002371746619087528479668682965061826212646466240728081370698936785449159727601265346903216287206311176476758969100622002531446808759517431477152837406743477410850512765118886639917029590405984485567970132837469525292093790892768407004917684920804237006855110480624738612020452962270750243422021463968213527708653072752968036490731848590178831859509657670767924980911200915102408826893295316890304675962447426614633292905680799701080711884719282799327946428206877928088395183845275320600897900981899287717914600117229671704277273873230480783811234793192920636807589931539166456361261839418756468904471996936989882064630178098219974686238429924034779249670096862207008695536514084768829581579130402069883071513170832644585148817881540692257568590520031413922833481951300794257174995671260299903947555912670507045073919327418484661394873799159376425579246882664232729218727600736688103625338637509144017026014039359405882192539312953149727839047278178136397457169811519617909799286321103580804954533562656719381174481791540191254526690329000426735974703273637550378304894151643169828962295086907006495919860982906418105473907525987981943940107558584910697973940787915577044130679124785454962790490720746294111679579448907018122978843748504181353294942286057484954479124569271832045920258062205151105820670484400747853897188680068541567088139238967025187019583559263037123776669651396774670298821014161303520355841511973683748630066463640673538380317183858765787459519388997656911556947802238578865346449960567165563294847748403437787036704918458084291578979550377712772573667733730177804214967919208371187001977770210816042957327386794275907929407187103063794447938953534414272841026741534511050813259230398165462270253242967504096784902183331121648781967392239664848209444936840149132866266365373064146743631937884524240003394936239988222979020217057732517858882663866756757773032129511340932141934091583483626270818778031337097946648455536152896901710884494475214329008656091499999614562008178959432933710455701903368387107761032388603812505577839376263125795646929300759772205604645408534329250060083365086146679790345345540842011082216209041348490837360926093183414222104210233170016464763927185467739068767963948858893993525687464741824136331920785034616958446977645709113741029639177364496022463734903132354297576117809940918953973874052379291668379101496401363747946466721641886555786389585555604092489773741941421052923918414053056965888823970927391517965577616954672822308477635224899612882955172500373251232740060684106698253524443743362954272644118044360086640488723750166050668233267657029590049151445760430911858277940843532548576259888271203194477155444695824468076403645739966008830097790098100430947877810850907371247212939095225950984674179916811474142401649254806491320438757843607025579962434682499655183488127060555772875424987319276395264781226284055734407028119754177570263168135967774237937585459720035345634698966109229842147901459245892528076649298025743288341491272545833408754019727349024022551457934243618496817455919345633619063726652112548903238789669479389214783853154472775571320629485248869989627567587713120207794893106304782623825735276123956030659149916936101316579883816794898401236419350264330673882281823075310250815898370246850480023268993971561111775219521842814555360359534521764806180258116699483776726639771913280642959833239309479746130821872431278757848666701447898283037650074347535942563377284643096011835038198263053891752197543528496676316496793199709314929108962139852950642892115611649395084397709358487764997101227467662255859100585812841402129751441661628321269678720055846803698200316489939704660349644354539038405513366258698817857463171856511199983239916950302580852680033760237647384758111863529819783684107582149451062517165687159441153370865266366454289425679436110191998587100123965122137858089096268012008495766021133897991012681598447754362978732984030822745318587325687796760330754341283662107678310031179098274360229781784985853363940618490096674371251967415033697765800034545388786424006192840934667986330479308343807620442481584001192280882195431222602737995473736354215683294739451512806414943145478252335016091247595190329680721281009876004660971634161616993771667436485651223465384690695941822532520976936520735023363297253262545274102161297280665694291723723785496807705467933713881617219194974727729421312269868800478487339308626910223405120045894062373171566147750666595303829508197438478333830947662849425693406639979216440879816314054430392221649815776415886123756175559967335332778527772719417501538293974144093821678759959064964211561181429177885332391545195462217974747674928861784236529630739525976146216571173152697313557676689504547981947324237915114348043685123886300436017087701425140422760137181081161822289017796801987192336438206017261417129437211123714352121349216341334491069775462196179059681645662256329164862075050569444306373682992679188531960226176493878212677420405856950298765717017561270825126286891486784011103261414708123183359531756436586124717988207273443146066339172745848926941668660295336394891323369237906998132449284061070982636937041979375382744214630915935622834987919128775526739470154211468034490030110293352121542553023451112037518970747610798895366532844950386592946734292125627731568911379709295350426026941022838227605084956773303615462902062075248788711670395475975071801932228334900194473261435830866955261925679127386012971996032505161818231156243230425839274403095527422646608293266616016966412750428088732586673915147412094425762231961921565256319148819043304733412106681106751634471803781176299464422803406057743523137377218867571327255568314578051503350302202211840368786667364335474073776697800812081676996513701114164019021393261546298969799180247591971971466175765360915771495847646368929605375678369959604824859852357444354442569544079099044797001095337953573571479082018880868380295939046138843557901855315610808959454754772499317116745053686610178581367878826230541295036639946461349698008436921810508278407047031276855380490384507157428554354555089027160064544699178162083212778949132574147821249998337773258532181772399713127509187305282419362122986789723218378227610341960200494850497814367722323825817890132138621105029113688596386747893607359530367276480911418573576992390677303455022201527585565626188841062624501789402197810789735507380208830071901632906976136927169211760952703855370220676802431464401496278722927061400731260803230789013153378347474091236455556934096238008316181355581566795569120557508941050773349357871426471122482100293530955883397222303302844254947202432480000706216952583274330974207206363592575670423349913171248567181357627381918293127524978990107236420168798376366249532655508124335248782910716461196923270305823086898628305849554529257529834024130797447979326809544639769534802670221995267226561481365604656943902330508624112192706265818999007730981990409853641894345821303492412393104291843437531290901861694130986322513902900678749892245561160625439064141310462344009910741894398975524630470827187564771887220685830188401576458474374367959971793094709823271580796037723161289012156612795456217908023996829721469890167335429757172889676093506015251241380015437983090992505654769317063284126859297782371711828409915926545213092912858363218859038778099581203790098495785130833918771726457588759924860798364511006299706053415073189656873641325018912784627803718508580264114511782015159359304400816337181936721001193088580282563074090330127279628447447327884436014172800668213119215447989818137950178502917335584069317824532085835142998333604735390192397535972593656392532746682108634266435402024443430105869128795440791298844208521534489883800263677043906211271654209074292825813991574383080897502142081296236065223567754909216526255746979360845970032301846414204094392472783893009836245695748422304612114925647425247220029992191888274877814774707177561176380390771972454985941272869426159607166869211626968731031377777970676564059578074430376474819760338010985556978264589373736286773660308038109991834143128316842117940034698492485207242224950348281812083919832052568550063826365842366245669651717154368897326594473614314827784920535002975207922882596158657893264626877319723442640599548333406781568379082421494407791574692643924954272641918975255304589726307215001309141389844439711362326401023983375721726609572551737829276267158220148260845859769883750240409834058867750128410860202933964971600946045290699019105852302807573197622397038920495800829883861953145559742241760170276936164127863788691740925330910675106863237555255899339820951063954836626958272073075702130936266466228324143354360503105463256884301819808690866849081658632777757997706290027388722073837885433213169702040073125003165267750143467411705464381855910131537170054722725067844868132437247928681360263493466043813330572015946716068894326056561103367774089669720588412924664558270539528732894687514601505479448799845180690018731125828466708684231465631648942489147871172283464415850122046265527347061783585520470555988311714285350246256826806647813697449400955388281527532389634183624692480072612899710719202977422718791531874505125544121194862457295900515775162024331821218229045975244997679726824347269652896111977667256429983623056223541228927894109558524972120638328195841009892450073156709117732905093422227005286586790739023442995738882885978269430040618762735007654854431274019112726708827354231941816956279908738169721896570614289048899932991808395822747875117494849285265771294636742789049744766243048827613280303391342961790717156323368563647507934431093065125341906869020752392970539017672278751134778835885826285363784063453202501467588767749868279286888109840395211019540163982224793047309518453833881521734489525287309865131497000735049241940570908668498496929871784061772471319925513234409142055623518226188687830499833414031849182173291851167014021014560444399984157375546509648428692202688437095544428272814712195283982307086094510638943866077373982083513207342590055175829916962883890529643563808520857913438276998128525482202590880856380475789386025957610679297757549890695804044733793891850792346480900264734193522863221073644659579092108058319082227870625947877569392891105305617363544448088491909492031513940156681027109130854832746501575946445038114358121350981694052028763042458247103679722540166193375798729204785646557572488261796600202987123387774978225655771578114960020518193784220485795584732811964248532032563959461695193548103617835648308615645555703945349314394701624382331611043370604165102203043455000681615663497574631175551954227118420397214253458422252316207773555019892577181939792983628179114131339400377972759885851005148313434093049459782658278087037117597972805672340557626255157264375519275687022037928380015757924954463909223903221972257630698044835074132774176226908999195188184854133097835924125095673830850010392551833053601936184582274224319119126232750239737475759586812059174924275823220122875131327924348895863280238061557177502086211379912971239551707846195972976282345519161277446592207955856525559794465441567727291655589153332100608382601423978291487048470623420682760986924168018206215641284165085205202686171386913582910085833726212693855588123586890333900686717524454947202721770912210196073342145021466603191579574758897528714409461979727028088385696878054965864593529568460933243182683929598667311106325129489861087427960056141402242938078303511832455327161684139243749350042163437896619340120179848884833351845207944803583037851344597312841988196154362840804942348257085440435858407092357599188812624073462795597670691417090639918184851624852994085017498106298645535153309744773740627797854252134508405407527733070562291601332474715745658423610208951584104143548391490882247507623081807395667306596588428974070550236790549417732423155359031833849977018065750691561601467481511958179552172590256856988069175768612317751174326473409755190981743299196209180857896156398716485925934127817794971041980199039607930907816616128529467195704798073903678283849070294817238596182255257732557998240691504856196190782356449248067105426412195821827690461520657054507423154629690119449348915269146192845679510385675335340592488941100446000556090450750307504958728854736193450577316467595764011130447579471459543323094383660971679346248867192870971279433210432616566974027975169627366602244238231879882175173175729206160831411299313423684720448770729335097560726992589674195970568087367719971830975552923322122164779554042454021776892573180235849783426270500191249872615214800057603238254231872109552031561745610026800697933363064758342642458065110253940927408999530819012966932823734801657996183975444571851906578570170634428234894138559415834175784173264130260995779574113457400688318055771709405035727477794610852432603392515389459481611987237945625357077441071615156139283246931731230425452742462252637398550073294953996591536955552513376061582642766506607630144826678511884230484508803212544101955678358613157359446787311805043098393618372395659100371573750327390000408435762012974064192030449365862537052693067578704491903456780624800730444216626412435758972911267954748587788713795407199033351095148367116679469702808617341637535037355737626712018687935779806435751228357170483408480349738125796925873467437200130655992581626114912756695931860929093014387760689539123565226618874121247103379453806646373875619165872420645561486748894442617994363102273943807608539124232585064937499303104506994375804253732093463303326379392986204171046655546809419397020741358281017646931701702477953713063304133318364832075484306669174766078639408100090736071989182675682095423920966119533378256828705027224851288712062410468782570669552372293610195457717220820802867204398407853299215456902909584701095544861107990704397516232732710951718619529786070802020655733224042286544208460117444925789812875048870815151518064551102727173095818646947338790170538785075109807328667445696191655671848511851140418959757993897316345558693629868063056191284759849717862924017218267154970143396217570081263709741753529769663922153677196436452688432828118811368718594313261948235473151589121214230618289937489227983989468881620590164409017758783835468481293387242602838501119765632748603123852040706738855326601247496622053152760010772003240423602640157926212176891366488785686905747229759442223868664657720840938513247399621029698381843162946238900118133760411734734391652922553430364384885960791296549579964870415988917566285736108986786050114962244582481199673705252361646054888351134576132685526909499045474112875691585234419462884697860263539305990766645645152042428526322150803859109943433715937132300311301916473639375911706698393111008839542188510501960873070001485324262623875578478943160257216192076183461665709237679094678665714112850148104279570857262328783933471329317841710447794204247918922359187434236428446241896427563153441683193751153724890207643351675643289553436445077108204031648513801369388586672525127417081316694522843663098562486677450810360292185760759479963646162000149460382036597154632859940183228517761423965339290641742082241671388831314712782283464202124000208919374896068860960660767640275543663809503836075926764301922767609694803013841085973485145475193365805577626708676226635338539595695354256026552294279575766224417465410693646507399969109162151555265910884294440143395197383862290984407946728821167876849942573298854496459063606739479154163250611066186185431862626542427962077831119613521071870681761791904203968018497884249598897198933535470202433686533517518084409256344706747083254597864147271410753578729712310638611469673430702113283133439878738470045225028530125415367791935871159732508409962787120935104293642904146653069383130916137768715207845892299201012537900856101486475041441218722075106482958229983173286297450589961147751760455261441618545677803208130629330395405098350785612227053057681435664674605201200454121490119407321763053476916617900546798609055355202958292721054072045783142652824221364789409467892035024073347541920536850972490571382116801208180715608063750538025081638043488165081968957837222224218289308424553726667281756825553823824258568854492624721229344145672738106856959719800368625060999810119072703765059258600500609192609172793225743114960846101362120407629645176286417647752608449275790707321715552870789337046342192848436184481844496587174211606762143318656772372378062346636338848843364309164520584301488008417842094434185640287531658028249793097659059717327013451338788423387231652709334488153514730365355921920853581204629725259327305091899359539961688902028254649108960483725710711818676308398356576448765839276574867880502241528045708553997410054514980524867636816189154668588949498824946216697068166939772211760373150752526495671461673013400349130000681872488243550346533043649030770872796886494306701055016122262010769472387669379438869642267625040994015333728614952069252736593622036909014382690579744235921734463880848042225810894519280489821712478371590594593137983938893623161856654924314780127913208102520533769124569487551334473620171471715871056750669474842972310323583997642417743149325630605233950658727100958923573887241941716351125456155818739478504242340174246038667977436266915918038680661671801301033991954063164053776262064074532004460257440939500107694448244921409276981967340256908046958392577497104905133481731327425475481950486237709814127804672978854652243589647971958077334680844644312795346689789619904142060624236425782270103870574123473398339380782779984407498614093354640556486096693184694408362024208998544719272331835505474717093407779541933862854769592961378706549638716536323375125525100068630913141912159477176180963411299572316723401572455428884182715401768952181387328139004550427497544613862495277549442676082580041155741813355948367219551164506581109787703249224472606717800000758354908975477203397851393946370047330006859327783926106246890777809605995135766207455260090904252299034079476416780070757815618011863065487300699284837847705728769538726703376498101997302284978079523504469831248184259034527724563246239925861043152617459469321351013123185863180166500414030692908168988255786172741279936833278915992014030835194216817764118540431812849612080301335205365489419020485594644026539677449056224700772545700413675508266533858105526254194205947650942760622356416005659212768134288922711881610041583178079340527441086415411183249681335881417736194231782854709964008553651103320447616534660676370993466804137198242567093050020939604246355077044589672159768773024892742326998931559968817523428640661819704595294573018840494356964333053932721998314893038913126453238957684692221431874357838585684572180882137885690216163374123025966587152135625345690010762421243729159260396670087038110223592468388170654386668146478782768405801117557371734095281538923102465500571327591088874434067736619972056355396023900901660038593444405720306319663638763295591567080301527017380298340568087949376128131287778210582886630565987084979274511601869612196928520500467084934084392077039067764452314680418668912809371127063654719187991674849548007429498874653116171778508506607247274200391501399661369308502069296341936666511376583371458594056705341155033878980541665075763638596573375430445621847533830111319766232495914952700176028591508948008836638573227505218574338446066678154371687384313361312051531014575135819007570689828100124211665135828845452836371001462156435899910909468375916723419020940150651154159736515825242088481925447314946252916412893890062096323032006507473027231172049301163895548189931923846725995150845687144776053189698584518503082509663048695124952698987156059224706192466991296655398249556258265777857133828478837016210638035860686237712135961787455385710641773693497748752425250596230677092979096860470312607201562028883127595579656497381374571249216905736601179447485632053612812605795552793223796483312926830582293070053342233164675295672645019720897479075071335986087470805850927004497066725608181682367679812303808521547367189670330004290833270441895134818377106967283596856911734003620704142852606124656553907461491214794707920998479125157779163019792282523488305097001675490920194670479000913959747047315391391458073833192838183224165994871130930796836745732916328116949010541840101667254778565302981474429929338410842004338993874107515796835398154308631325134425244958817242618066097040827960354203803142450507453546322857260500476931692539145060670663763250549344741495497535941031565140698596193395991490448506319518365896411992500294159063692829276059329602811464481621713503666569624347811555907740456750848814324734529841620674223631752711636682342322793156161527306637111821923712371144207074493396321011413721279482967305549723700930399715667415672941016970737607563419131604491294577666033363262442343620483027402434717168767976136934682148672633017063714763273637127706600183244615706332731137286853132237817632400780666305941365557573564209432361685524016087780053581346897937349582999592832850901165732553514593213047375321166986424515421379549169367241201501620387270637850344091309415290724098853014839539035367352388116533056635496040424798420614210788875718753276462457957988767918323274151798641990317373461231808280943513884029674728449321721323802275315451598379547572865453967607666170062226381570768327686934628608564593097845128792613336246457820021837892609571936672627225110087420197462904800192019601477968863271555551717670497524629127970758590106795895705533527480315789851772225265395336557858048642598772625943370564928958052397656366741050284231457151103312511099700193624421591897801145011775453561168458805402988329219796138013389813929785236089611067709191373043751619453369926934369268974783601848234500061395162608322665505908096895421257182483821451682473486200595905071758356776682066148887044714247324216202129857547310667834324563599218281270988630990560270250429315707461520897476507801263268107905742638382044428343974918317218551443581716081997186156280561200188703149533173573290933876059628548382623864516902510535261892724385913670792803085021795805693275230023068288223182373457431176209610099482437443124979803074695601836362163568043389820024936891371881177228067369160138831542500886153039418800645115693790877928296013826460881763034208831999274372768157996839309006933132644759411604838652897741563355296575499057222851747246096135418602109983029878860101541368041206071494122796053959346055607207731624764710147282231856010474036759775288705330504402255540318329083621775837744748012201464889220444334423394037091202210171638719887206341884620325670119546484392155977608848840300070599609279926634070696402560718102998165620416468664819362871498178772544919920321456042528366436295790881157949682430456728699906061015373064685686464268437292760737013366533114300801468337768470155603394891191491557794211981865947825884196271568095473204825137380970255296492715430057154218140858867246282376682980017511231304725187790907248843471631155043779829103514783073449599777848558142198733753547154200495920860805612864497473260674477646196381885416186503623807820970559019892979410642062316874437788665400600708511104330900809668156125665832034279330356762029276178077068727182041406719381552906605189308084381894312432078831562127491435337701881708524420328515174049201339134966025419945348023522285190730170303035104946863030870763717191406666151302844862436752005475286494357801703646436200606897197296211883146042879779813032194676804173222780246620125438597650607543502695864522788552198423631256731757992620463574689259699778526820358041365730980703441152024941932531226380233670851858400277228651012824323555551575847305414976479274362525000077006136323341290781119055370830567448724152433977131307254111664456160660004843644737201786538962782145960387489031544393563905762087373463169916187559224827561775859280528179256980824327471252525392866345961632870656825392392054388098898842329402338951326544214030973324948839953310275827949499175649201589963439899978715936878353516160223301850633161244747908349639212481255790800261661777943587601326809772416962998189158573048682192816794722409802611214047635035299233437505874138553167522075173988036792275114436326064076493431885103326648553031638114294903377542057098087424955627257737640754436742134009159149570231390644320794798706046345046057197364504558802946516287179450107688640221000396797806763955378585182482550481779835109010689075788286072588466290742628400398518308840414758544724854845172192601307556186521351092136472045865398511297320892063121046649233967943850495908446875323155332243736019526349011457825656297049642563627629355821910718823338438471952644354851243940886138124991244432392296609089509837174277559172083514730565161772950547524404785479685546903091875978593391666264054166879693850685654848162503697412805537187876183396354550747457804929682392893570839275397251332620237421160661985983144520489337581842656170548332758669824765696858913439003755561130810816129011535171745412537991549617072418703692480602055680905801129904823160618292086270416954246330736065733777697127923558299177764654832306648997112022297509212878820111412211677893291298594496084454697876779571990735913699596099733797734497549265574443822958868735554183932489723111680992092982020692589520549837088138158113998195059244552354755200466230229176205722669565866582658002702181631467538803486128653080222315488047205809054811843492966346554682678374424941042834807060388916782741265999202679595259298812349743904451586312884638816729363398427700429828593530809244325492155608659352585235082619590433537093071335236815348982955209572572185927113808455805394580756513057385715784077207958484927375011521626314938411188766202211493573681834165119034121024906951670246635125490097630259321148878781978244753689505170126281033032926379902597872117712511200922107256844075029883992862325127671467866890834010172010073113552819582659807305196566492132419805910143381936439671271393903233456186245722639464849794815663490633599573854965685618301302600282642726380467771122299694203298250869000318065306247351913814644975195586369454365231797281279543262419910798958872825271730294889668860742876736180741660858997632303156661961063227089781105931526821434538631182672415460937392179629066297232849509820711669915652868314894827561570556031441416828320864650713473628017203890614237862853794185932066598324020697218568712262312786608464928014809265112700251683404349058313247208560186355525595045934378821469171500861025839499802357229143342828656383531623804756547965686982918925389775503315518325146768971656468323463089826139080889555865632375377632301671425765751048638678927648802918921481954538573042148891262735255532599145504382098392364592681828889458635522679437096861299434434166908574684818436464610852288076395657472671763410991263391166999231436057274320369186997180797186281513996349308884109853424800017985594948461987443397273544907606706257428162427222414094405159554888983821649531072706572988420658557125251827429772924153206975775762163660256207419677049359300063315971608108270172535326096352195841849027300338589710693765746609904120305593589703286910029468160314811300154741161876350192516934724473999738016434334942635054655325713267891403137708694335229895097432015424946024077953548050876783415455118053922996409619100438896391693023401041751462601755614550851049519849487792031734102909613899465641814055560140856708740513023896978020024203011256708353748136387597921504268595506236201161313463306945235472398801621953624594623654223900448819185779981106479765296008602268700108990314948447136826456822512923535518804817877367011440452545812354536770427742071445837718451380497156731541905468829083032006563567201702351800907338366404939247674677121045222639336860797630729851488458140992641089036234203222187524804628851590275951969941007966934859504263383322388005897099821234068952657389629290305695731745389006336916281264669430028385958978638150514010868451131396584840306443179326861198666622627797393237638071383215167499439835360967391926929646514263916268631847845911189727137136258200666572185889349839090433058665112331328254435699882064421013226202125916095164961708136036494465907841784042795060062698190364200663914794520955110094458587774329419350022251836694989637903956874700828307843204465835946307511970276463369117764540110322832357909716090650053708085598379650012732615397771693686434583044145790820827009820842615745711087295956526354832274551570783685860908387473528464847674572311836159903830763717244651116436597727566697701902543477561830855755184333828558605858652415807618005940083055988969987276035051975952862254132467962894242075930038766261620736048126074864374329589090304483727279091388390150688716509296748133162623156302613259374142750279130038633395782860518829716901385613680926225426995442721079559752339874445478677904277270898624383090028441479242414868804611274149439625706339521985585358002162307561914733885023659221206838947921247427799043846469796719847264865318228761740325807285677264806203207434700880801037789307270478149758072537522726026433229783277805395865184666872252722787995379262563437937881879414537101793326488857459093260436997121045590669579770461796671367412740444297405536191642184584840864762830120388035062449257322352297227101748858640608621221594114916953752012054729189952287786223917863712103021676341376716405576088856449017045078044361909791062648901566926200777269294579759001999011249710553554187946100738267625706174902299534205189478045852042988793385989660735312922112161585579177801906638865354480643438919480620228428095809335052407018367019663737034123615771717283199926988888928129351482572832947040614430220113480910664600958163520177688487786180121306549767279160530630713573843747950330765254626748237056289044344858676432584338078497214649162001906155308035912712276047348098591695381001626348816992027731330837651344756279839847911695933623939885052675169622355674571552036064511060512209317703064843588527493950383101689814294298701162775619453751041501803034979215354994791871725573124549422149155863389780771997225024300701951211663610671116344864290249637215966856572389022338910886304128730878992464744060236313398357765247597020402400014204705572150798532890534373091533835636946283315666015468262172617465208467296704263237183461756765997424497198270022920017525356760089438453074701909431600337467093039235248150048241889854685220872788577696387219885477408387849259845838883492462184089714027972412217758996833974995620267722996851537713146817544027631002054883280803858356299602160702055811001359634950643627712333730441078508357125130759904718752415129206661329637541801016021504249738950692864144625620544362406996042057539958156549281139699172750011505166409090128999205315364829099965772693205303689498626082721200275636539861451663889274311101358327949347685090302266758668972532442150274280275739349077281791910192826165750625108906630188564021541036310536670444848047164876413561195216597879401400323889929158219435115949254383913262296788985894474706639037713603573302013004664538688359482850620760094769509940674751915894203173554907732709712166121458246043381223524986845077232901122612777409604673777243658053051667366017836772453286522156922487238503661767453972031414223416865960891246928771644128405239439180002813554864892481522587485930718944411731413426176012695322504842022615408386017972440904711901786657962586109530737724927852922527974402380223319513888681430627525955122198821422119168102062304526702713506628386056109056398140897051487849806334087440466923004015911088845303181589476810592301763916609411682827686300560846742320768932194423322381335854742242676773562138234872458462767741368707155774578535228459797418609213362556719314196228166781321668508233628062684574191880308467757049630696611645563378924690028789788838057456376292361772576052484242936394105599091860973447609205227521930404166907979044697022302364201184058886877429682640216230814406886155722695120169459965082285117026935921383061584807882304154448720588202134573794273736538581651734638914259610704828334814785706004162505461850065226959039869013909293870967975738389122410902138237802959700702981181537059188712738991424060627382599964932236195844021631158925498881187817725391355361808048757030379843223618194251693688018039380846547312234276898463972036371638243286491085584843350961954622496982697774321360855168593942657037147544392816843421116647301174719993356653403943925306132512626568323235757458695460004136041829306815021253977085429187141407829887528054664571882080987890046464229372468059472972455543830405075517480526038463471683519405807005776585014698643948122935428925155943610062229572514819860845699300486329928324561458692644878164534713776467034543888195051188279654427833936248166738969943294291883807441470146274367832578916664949347497011714736098869929096167427955799997631651494888945954759743633332474858974984195567566013151098302970260119681122857647636722732949108812044812719511460905446512089837709580658918022380624245573059108739510779675918335262681939299505451333070970773053198240642273700468076794916770765043370134909672824848540543737172876829290324899728435056978115564143897830882836023696464697397090987593920648429754013655256235326308280550816957557848095198921560267832627142917162744643589718101215868430680920773530115313449320452800834322702053945417603753830303818950381142733928225427270229701564107324482209652317067959400540688208716636677349344968633901221218408362334569511740307795522904026106825020895164362266758679091911252230305620977939709812241189590743493268522854532980864988336000053347082863001116746637273243733950225635733669326728062402362345931743947244241264131750048272465541030639885787231953487385517518578629486668775828027065518581140483179323276910839049714095509583026666054961480743070440517422337740549059016366131608830384698073078255035036169486420611233831485589958716916783325420783340668547352158499514839398334157935890409413428493157713401636015223574602592085776581756926049854358707159375167322185259273899959681541771384488276692990622225233658528078090021343188254633199399691013528590186170196502603652079164498079508096280403821306418455627951179623982436954326665107692218565422614266939488247727693257304204641611801258911847006228022167416023140114179200276252125075105485518042986253562815102125758416982264132889287913180689493473476781028331573764829982662431881934871838870581243062964976698415285255162594393904783810891017015754501193498816695231649694402056551607746725326127292900498350001463694245988043752430321871356262107504209684311399193655501530961982851217131579480483277109424059891739740425771509927110100789400450501061232036380150237109293988746088095505133506231705790765167497688166301949176206772485355267500538070435342430405248978354164110445632052353949657562849505232717399847312783434466522278027579094913616811984490509683636120093773705410787345229558700232439816575503624406231372690807670145839061670896278099397865930992528828710322142469822076843926761595627768912506168618229367934635627248721249742102371638711514784344268733458338202945647451519385877844857362214853599403187700403866234770865616204841164435673467537150297078257666246019818106939467429649595452396660773559815741777211790711414178624780071507056437555455574005574492260169707439363542049823738759829295026148489883838363347287458198284642790496311341780232021714646314942209831581247833042396801759538552740190882011790342611283329665447867091170642122744912324811665527309192103436978184961734295277582229060423439958928217608789279106468809141701634901071594587765712577564037856898199893546360552758558827038268683163991439607707126035740259701763247632075472266936728947840353705983548814446916352402422497954341996284855917949913247453560610088628460495741096157191541037967016048636915552291316741802993467949133076422177396783512548528893511541902854567197904266239901684873607141503614208245047289990775194143193195685948657247174863889716659850444809297780792567326947975129362984934427441512980253489945660672624547848114181514526980592293560880504161584161689007330900945648551146469063739275667512948430316116404345860136373945908567863604857284866251907059131638439810730600362252459575867903674967584574251044607330815132603288754043455261547106570747097622193844885066343205664791314028975723299252318346218719711615549716423475672197166872846707138615382899830640320629218949828719501761539206244234416662439629157192177511145832312490736312381250434351492244113610013451920139767041483470579257665002858046513039486442554317214935234161140991587659228545893958793051208255033701564681661240640769385613701193005109419936430395717330963711705344070815439403083998813687618978672001341220250694914531310100541805796871600998219150626479770490382519028879155133851224702524568403913269754834964889064128838851126047181650950359001738832512117060216469569706768063336886929808306171148520072095551868358540350068383059959920207382533597381524365652374922160307833155976678114175896365959451216141908910939091605347542489848679801488700992062014200169841460040575024543444829279392465128013980252816827586909538897427636607750166458259328403619769224389081696356665000759151128134402077343438677272521308366310943491267174395915461616891260388156848201322586307867564744363870121281881715440006985810014896804233601445043721093667550377253076444579010312335278424806318337405675992914874365018150569012711187413995638603740234909634999331244708214028057940871527452368523518447645662972530854775565444861405147740953134377714807566336309584812633243022954246802886043524392417069641122324641975680414986362488656005977546589600938408693107458954176211943968263225978323821464819806547674756140825783769906743937204827468915909898752852226695166168229463644632799156922696889646622560763434056930983678128572155844421970707300965863309841659666939396389432682774950010506641371773027601925207877733248746401938038134723387926328924903923056252752415088301214613506217824839936357550783505823445515053187070249245792955909080056214846504009267297389937193990061064184656692263298801363978495450563378497900833556663064763802246034521691427358544452884814959280729159021048832839908817491568686630939106823435636090891279268319508557424321543944238789878529859968201348353624410663563125538910866733086650204114467838249230631026015282449719715059615220274128474753868676317936868729552440323743153803636978489691548890197636881293676805233838741371920711648175313361707562141914511466989234453888195896658014457744463296947885590748138706468871286278634702886387562129559747410475546272238598780034501165952970722687846598894753983205105883938972692517254111015315604997406463787129864314116670594166289507314349819067160271520365815118635385608736680427245230273937486993361641809608838009751016296377017153326288957028746954563897294072354499338416584882886894637360681124416252765542036908558885186105302634809560415208906637081946292612751254155232827616894576491402821501827450842721685517051555998722616596740144399582685018032607807699980723296327965768493235726744741105632309250052537969190207639150682279899981583290044126373421297164746857623008723312743325210674653358458548580983131520099114452801475407994978100873888813812570199699078323902264565227507300760227527602300462631694798766957380611130844424677881804872257542889835002609739337052206545197249194183229243078768249288872946240630879211290332889932885716754036535923870635648865938614478902657479620472059222378309702545030148413267096571744726893420012189347349950169360752198217487412654494237888241449018144889127935225722558053651345562450232273742649356313714752949306885952190002334513252470420365171282876347241372597376980738570722504724541996550714890394169119587043442942184464951922141753526566837167606662808603047652109915544637062452065856254779483439720993157965896073104277358725104183701848809869330099345499867099356416947173479890108328155813747058996464947710737697073546476168283486236122496112466183165804677798545375560708692677824311031307823308025659630751839447033797484172973429258987398136297619942379952429898507541397412751515863063685056548778514236517275629863118160309622740204013615598292687409064997884945799809201580300928255342397612103422978238330666977729983503680896169149893795107297255074922489029527939042090485002961513362028960441846499132118962230101940431422566052970995641662960821879278086904049190800930063688773178022244798886441140273266691722272087916670517215526361437978372049657584287176038294302026431010216319547334656871785316060198941396881922452346510842446612254857778974705924301623821613450555217645831881799146299747931813156461666342761299698428085276934691864111855064392559465949382554842677146758690944432650136254934518684214893285920708747459144165598685518877207857267951136484965647734630662798062357947427059715341085098767185510194892983341301871160630437467470959056168508887057136763965870711200266911938263680232825920464807898032467540255766524702663062276060938076675641677150427001424211029454885912258317827486128436399384513278694102511775866546120886849615240885790390287699173307389063771210757025090081599588770695023869942992690425450378417464813051093781186287063512384934995772384014693210019447383619504084069352893271867277759453203783696035832031747368416715712907090933527400395692518416210935494374288718060709477214544609537828700423527688062563409055781667000617574223993055424315655143709428501502668154479243410187388364451283018099329123247077062338239559403384635362000502539610704976305309667892580704732395234778630336634668492848466059666416478266311868559147629506902619992013247635550524764563666552274618915194784730203921931992881655142554769295532225662035086936835925354733811311978282737515184986103688060091822693759130176517165300532432686016456993100607654568159898031295162651372842459987002684718678085656536194369828763092734684475786212703468207515642599022157705412406540426093250259443671371574453893879428247053640792973035513542060077763655651929808399406895130994256558810562786697508391815918209854548126590674332644969983835433347530326261528844015474183559749832210188943324605067024246699787051490880011768583798412106176509895674560101493699399195844961637466572846783301943525061364410455925947060662960901269245359911567608373418911700414493988198350106799178022400168295954327528727629967218027509109163599971298564226424622443791354968354637555114449311171488723524082732375690206428678085333765177983785644701556423049986881387839166683811859027198895485603974829098972299529355432399942294180321708912374230738223359908416671221214985842585309184899609774903086075511790001804002368166471368678165857262400954375196561210645643084654540819123308885101046071409052457528300805636098546657652096575760130843259474350332790249723811020818769149182917220327693909850096441487535629364112542772299944656327779132577586118599870202142599363643336208663768907316203318070648975086608051757042921198271933113492233788924588767556702702006672622283409376881448237818039765958051357427847544870366593545734765863051473797168990852023289905054472205545740864856177115795225238919236192630266916393551412641966078376779881958868316093799757826603951606567430310349741994634080313292594233109371751543073107303604893956003901013039006401526573272854285843350359555395926185272321534656481225093723784442758994709290487881300127791310489971972062434108114607462736733546105024787089383287344319420130988437162325349236391523774908116848478368827332045179447987899923949037205693455860640473719333721771292327158142031884007937683820349836230204106763512705883050465754672564980294616244698909830863814662520666638326594831070012313224259955309291956863939259829058916942089534829410313444855109636077663944017364039334256049320715747058509156565852394899642926047558842710499558611366651238641673025561648965451210279536686919211796471578216279611140843031405254923272221771826084360986798362487572421634225596375998219755586854925440651900268311118393700865354330850819717289202338454501986862250642858820066896092843958515116111571656342674898390758747160537236004947674969120607731533722845126650482270650986326853232415131302791615315749192117130928628816464524722392935837636545053099216231242904097899061867610553035152607121389495675051653269339237926020477274931203803631585226282863008920570440543898954799831082475190128128612761690385857641368392580896932080877749334162866724324496667689799579466498852157517541524757177458982599912673481402169879797668316192320404510176614154484977408066709586412767707181726958416524263059505622233892240043755296070771575514773793317332009412659785536035269951975580375544304715661805747585664036285718270773940478066181130778849579134936995387195953409949276511079283208049091444341385876014534247775960311637497278355241466241689743622171492227668708003663962580825448602099659891960700935032575059749049069347137313711867311302591404163388863410519756145522012667110065284415194054935626654558588477423916389564029632787916503649565820305904478151079145979999766555612456502794467436143851307553401060204738135981570131848556116539421864771677725081189669851905356810341651711504289581049949268019906065467416498873902847721745597544785200739824387694690217064465712849568036310001639882522587465631308878316532603677631042672809735973495945195723585733754820473246590908486674488408516151561005623220454276155272794521392427672907055968533346763932584937168792025960155799746093557577393056675555556654187837844291219531199964054321961670738014580938284708034714588188335603569765742683064361701449072858172246113911069421005148465724565167577188537967849820111672171525475189407886849022569918854277213552994257512091640609366154400921122149032862485075682019775844305522472619932655477567682483530475209825176921444070815786216429429013677844376262322395187204748963127979450893981045437476594360656388309295680657346150678374892579810835729875825526689593150348928718382556140029310073778093036757649616433799156486760677073944269027308821262491928955419856624000249338989761246867275761714489958146349906006074009281346108539857008407787608360977986396800588042275367570228623740448013722770101383865134752991826526079454667457194511348237130409495657345450942747235383645939205563051322241520790201659805627082590987289382758264892782693197732787416323021744066195520826264555755186785162901087013607241851150369648990202344629362852045951753435670181629393718047108250774645561995914349362833461511823350804109294290888254821592391524827050831912002511817861714209073205715846998186586384348143158196714030870913491544546423048915794430172663565944174508892860795386515573363419826468957767536724035112254253383789627047158251686807158009098217232343643802766103392047857711205564894514255540633396321360059588200430117288944482792135955874532760731403934032210388534965626829883137398554909346627743818006390848701214048141653617082109950717855867317794068572653205742556807697368165203610559947602871017121214855204900861780194775612649896996639130454556114229219376320192871194732286589603467380514247398301292097874753875437343392144108727960813607857604113076804367696191573235060075664371380707150848564728616732305654314361085054812299553211681469870888809833525199892056490064933923765874112989944460874888608322212724330811791531100941429660762795496659749863019090592090021113869311234079883172861339398426289575204482514732418781071699063208186770327989039603975862914154175733387134544787761229529190882162294065341207181760137061943017963057654736006156774574994667257433281048583068072044876237762943309836475901079182858452034027596093757888682886397598864946081287602442138224194289997911335540009939801146199920826523267913515343817924758269329715969629911145115810169875519228757795999631942277045337235109742063550351538465486175403867556487799522785212908914467244270076871743203879873080626174702920843954481656379882447751288239734490658800837796188482114562140146352828006996116509445904508717562727105808411648166667907220655401314062654444787021585294219605386407087356091165330890607407506558168365551636486418606463781486543034031733976143756668943639203441048249991990087234895190316162844203658249621123792923018448547931353038027987724231807066926763438395846166047706181133981989589677514068117378811659302744764034435115662904111289977023547731914160574540375707709022485314607172333251987552300056037621456685724208801650631480292591700943415416082145235632540619392837135694913770775786079534895756576003680461183060925613546795496648960004086025835583895656225111722696714501334044885891602441362067684152263812048447547283147200567511243075759703841344163130915686534618644991819142024327124766031466480709510296950828344810304238013220700417850888155289546215118240053371127376926529319295653390519018935070827199039958842037997783508124105559436021266774202330523692159528945396324720732847382133820335401576142664739237311292596494145225192923808608939809918763485229739780191870591384910481076441144143811354381186755735955409509203077041532826580613889541228067982576102689694199564631337605605010202137182025559305735811416076071233014159551577689277855635243349880092026764504853551683291621032165475142160646061524301961527232746972897608258356385535336281639043506519297722033838934355282872222304185236360406291525908172537329672743829607316336297395363231805837260977130248694447894480189377410659924696553628465571719495455469056157337686713409476829558282091726056729143336204951573258696208465580495766481345242307689422693157903852807510332169835245328682665429729767723981944155881344710010851535902130887216189120853243894732168228811492718164443181047862198123177152471141745699865703685693775686960327245783655543073343302550809553328780758275158247204892088329206202615498124254367623928765028028735662638271902512085162018931287878511739381248036543459207225367945527201722963351809219946675679722416910117227912018021325331828125465260466462947168262235850427196949989317707699539642065554811545758749748867823935778419155161255732375671901208071129559631671654738055794387095431571415824245819442448898560858078414736132409488929596504194739272112837190010142316109964260816822554294879481923961389085034331451370153028258666146495034033454570611610665467447370076584106904165005469271887548521662238912061664572260358948469393447302662534122767138783880132170138161023992803561436254165586929332163491261117446723298752356773603112499137219737652898130681114069270653518744606684146162099164595153031645641892781678002915078032777691677668244918511476636400965974583873394671767382779460147011579210616274311296874943188255113298288859159418768462158580589766130014862724636485741473135473092796868088856235167222413470636166726103280612386929339744962242929845676050029263997872748626583788694421979958969362659597452065893885424279225960537935052019364912844974108404959380164963945416340932379015764625223437485188527806686894983663824442828173070317420284530548266592507966814367547434181959536805325365088272009152596934893678581917395285191725373306306633772200598397281206373941936962497288678705902392361484840585922195581866685758484023244613508047283432892319814612519503401033672530228254950026039136339913826689600992880603536196283119352435870796917870857344100187226718515237832961031732896185903146831718146905886505064250601155472308619015013771545706964065190656496925917175049765362396202447463700618707848222929848961601871072814065932483531863442043159951355461905052225625310513709979473017598330861853331498049726026775034596138010094157764885074131669174724548321543286652295155273722442356275823024240418582690050590218759412978308650155128320978715934277008687089844018544104256178197885244708302315578359240443908677224805976114048841963627730616220624050122772219523306984123173594606985179366938369649480728521189070748534390057239145674259237777838728410612875787260196439574399635648518627904550017884321645161248883646732952888256065730391038899360975544883092885458031654540898793302157183818170167397361071640573230000587633850452113207444541632011379902172128037544748863478395577069675207629198194792325168767540109735212593961418238713241312457380099525814370394659876877539284638267819060224985377251773869149198938388294572954827447486346548168379512703429130077373761931610099856717575514471243215104823758760277069866774970410905442677989817698924392452619915519624742935359415949906558862723950821858300554153769471173225883754570945983403779901796600824490340738108936581191904582991167983822525052895739587714772182960803353341655607717020998682395837731095997604958537818306385481117438167069654275562374046327285442517119206550849383348275482218352276583184235446361205351549504401507108477160322034134850345070539128808293441570244313912840829055612170394264277145499304218740968566110118388017795296639273818039830768193929071861074860768412168957927585293628639441466723617801390312421411711129449771119671691061909355512082274181441386533799542450163041883665100056268299490247912320985608131390306248454427543053041418165253390844370542597596026792433198028281264023638799058037645983499643746713220054794627613830160150257670739086758008800421896815454513468230405786792187584867766756582238632010391628721920496276023904976559642894966532063262289031232226120410157271881653680728345543233059890960465905339135235919459707816491711387307590108393445102316591988024479261653394333525872765658698641584786587366654176769284036098339110702658616680865842751072336628489253833945846823781929252840725623465243915998756587698199283483945482015608539499728831319685147702563572118551228383322493717156694140732475480039898502598023766006902851579563770789533250741867103718916519138638836703158588849644771041750059296079390529908932825802456972451883828007896549362678941304866540278391484010448387509764156335435963320686285774771812926714845435991124072739623403432658251378801394471084200611424935291172090621640634619459565803880432887026566162082069758537614717833475071397937819020537176428031421153279273881140605927486784670056879582169369459392185262587184192797128293050054903400493553264996942354078640067337743506180410649959452314155976083356005119590227727013758724793622615487298663477168912886280798634671116184813308202590045524473016596406455339859228902274409250527615154237986160767912809195246239292198746152663264582214798910929011295890215548000882860256691615643209889423400277270211118466576255738400941361552739031430336855154754044369465939299334377467345565653360591495275177198125017732399298676985637686603627795324177264644147844498273333535969826310133112595473472549573371458676234024706052204181882752148779175115601068512194251077673631086929786193154461402898319227856005374861977736455194661703110566319089164274153314094439382067408966784627139449889280582658856161272168284315706031363921717188378567233285809173848056914707342609916527339252775003011379995233259617512003946717186284491095028580857958630939241056720413536217988387061401430266488117911696364747553017540752349963009225743273919149450789416977003614769375004584184121458102487602731321586156433632040152028308842107101388932809919492859119063621606718396266571352366766836877563008330299324158010974573006362707035774520406800157408395559011599660222299761461281628509409001571316413489675490344558339085815778877186547173728500985067493180758740163195631654382148108313494549219126714434086984457637127891466765653708996312873867979717146416954951615777751325408278650100029942951746910916599377608237072492845458961016256387673311307191514133110731924372088132473552186001556102174454814880385692084223991122238601380192429785690844703323633596600987882264916543857125189563647419518663808639821200876185981629405341465187288504830324254222974449861962613694750534942820217559012880281738758943804974692708851605383002504392571728943749434388745549157428685960851876696322094006247451858391355361739822827352944419013572813037716240999888478001390209448324085962363759936043004818963941695271920289216510387122870413404629228099887859562049833398238537601653431279915742836292415812561964743772654718846073474412152773508231605329539878012046469049244116464244960162592437949541430029653432093591397724657171381600208390452373914019874638775307833447400707834060459887051132227581491583683453154609710330687998438117294147793123132665591486140629025818059153341672271887506579286369506280349019644339685528761446180286609762671967390586109582196664362420780111889071339752882273326554627654031558331397676816475732142092496556236283883995552073087729730113490830822634991927285254460426360333809978764623756273572329916126670394174697677192025682101991386985130310185755907334291335813690807270759851207866084263398622423798563473661389643317126305618514522337031352449787894914144267730186215500700549393087842970917219113141793656952765688294497337904471805328641922519510082240843982987596169339107160854360031396618467591755050316816821564285236159719984849668068233947098264403043285783665674614235922394455014638285312969848589270903947999841906741724902075929773489280414492431954599783347924783354203526804396630679577078744314855412412619511873538410414047259611354780799847033887724352496238087252517919171204922610694458984645636712818168433459249068139848195244292201243828336378501003669677909456820644250405003927284622893928151137923678718887606393449201581331116559527993133087433961595820916248504744320455075244825589777019823347418028960831295352731137711373600687422537710502751944229286480428177980944673037507976126599613223844036345811046197321450002755335451012162555040833691836764599669500339056973265730707253724685416861840431294516249808050849202031817555915928876098049649479161353611465310001899708305374457560970893809988620634179191333369420419316062999250398429974513462728275805382338435358510049820920229441293839279248814020764611700341696201930497354545510124530662662000746658260147995172415134765306274617142263922511553229863431914760883094694896417677957151068468823783027596741845687766013677784957372576386573834260105441764862786438434412524222649605337520513487478249127223648112549025546800942311494628875040258448976937494856501828109653654386949075303993848927015540246964536097963272949681457168678193756767757324477975192734615213533639518673375678454930188151646402803210500053955693462426145689940479736378570766572881938063129207771327171223780687359293105058130226835518450869462087892274617302248405219615792094549386984876049015262543791737542103008442145112963703151071040408888947600877564244685957752147183089906969875237665674941950385721913643610177969108290289357246917652226311794452605646258486789554985294511575761639706644371229297758888715043055611193457293957454707956449994771123279145597970492482695704209747118168415554046088720799236116485262070842997736596840462436054975411954017614647124919647148245387676124356065266899821644464350861721244442085011576739623502953443871125969504050915637383725541405029054917589416215906546956825048444001090579924581041068417458722532190964579864547237645004886749761984372132258015497050749984105830956077385305210606805049719780621552328595865335363228171249725366773901369661982004443067625738592369857917487811178107204737802656868070934191644159937558934677139657787404932636146717944413348215955037939046893225347616907334000065431089265353635277589976118287145414608897353964841441369121224042136911407021942106680222534193386681414342412689279268758654774456945970928757835853768972207234862573019251168976801961601451606509947527413025967158213413082789677290390226992406744672688393416662097365348677153629460708641196985917586345600255637966521333638809477751958625300532620603447503228192937868461317030240693401053119691276125616093833539585769054500935195105091895351133566364829808790289559180350414689170559621586581098694316462152584107304823929041751917544474055595935030634243151426352981052560504595676373075820136689797333725099094579359625288254640423178084833654398293443995216804360011295733977149896359659447401624813468627139983107695033387440327063820418801247583013281396772073617837757269956041587258999071797279907452606826454051402171240595615893631460842576209613442917849019149995427377351910554428486387968591110066061374706511456414668235942867781688560619308591130890041540195420519399054682729716280733266731521152912715738411491660913043116258817361081715594968822983328271571123852352927083619606524066236578181316698400583678321099687697896310828470761304421322158941401137336477572270239085606700893885334358686609917171665188210904531082318979910036695774221084327098971276996843949798175007260079637335849942178529585508404510964034074071117913547732523048022017595010234306844668520841578432668603364531896139340914923510699724220147021807511350192641848962204723826438167474433259411064967171797729985976762463264785293372827780608420878638344154660999698730476083348126638151512260011932960831912652027165242536821029900911274777050236127593462955639734951721643839654321926912800789096120516909678496459776687918072936762754199090911522531530164202365965762190878976023238701448511083771450527026024516369421841948493151035252198493775501181653525406055484610056034713647686176424946283131790740931888362826226508086631403064226384535806966453576186389941391349862179373335083609712994153437200830835913629986655051111232856399269766064570843078072404988639903302504423529921017270587853160589094970971438302501267137251135926416771068983429259740743613548372195503808274003682498861620737947280850976243488592490625337402905231282701541559514669257214611976737899804615147448773639319516125303734956599120382988999320097494500707889348765958428994282715772414356228281318180529494039414485628053087394453852310113559500945621225996054470811465204492000389421349265669274161270335935521645998601721861470564799861390071511643772402123194827374827118341263704730615578791748530532647197514714972763732946662746265383982658610710848808981623923224467699923533328857226100563777113561042760648200859820230968920261459814417233791686929454577701500883915608210371180088531228010744343569350612952038819790053643105483458398990830018820058736335547090681876540794482804709502539826815733001356258335511344600474906233414592420032031113305026394787851062348571421770289838809632874927187505206890202962003438243442783970530189293745434321469633418963815280319137501646792805674538321200895996233591891864794323535117852514799217780599877154971494257161220824870419811929226282017140111914469969318757924744077880092586513500011250352012751706736566816278960723175268942181042826116735327807695301016062315430156480360782662970959521575777927579303658491080690677502387950630077098759411282646064416419968840426520561129628637999176404203285454961861627328332960035792713813851280183140030863165920997591117580185513867689119291262622201776020101952700874615538981167036489595843618812685043112907523970010390520318360613989833002061667664883456784742545656303333596534951028964313685145558952279598202588510536434336181276839845092808687057061230354029318199939061121620245958709925111185279545188732957176364191974692875360210212190363484434624455823326893148418819896086368883351446119869998924147289405520940171562761771482007227409001506834871098491529882635493043114346042938441766485668821466538701070119870083898405092369832870537099270155458919079099238927062815330793932151484613586668750362896589647498881526604896022597601443813772247804745337248809063622445617229653431328635602947643768728627309974625232766735354869609901627386571076208679194996027397410007353884185351590132096545396841835505482459421764609401117433357386224765818033211453140055301835547062797346845091438810461057015994233559846575862080885360681077047313981222416364666659532070118730042648623350632072246452240746459746559394850249861604623699358277682536590994038332896807250652474320156665723784422209860363241861629884181194103275022392288077393814131572214412308748250019139593301896856662703021399253937515248118438885019542925057928359878362334214486968712757230649687314680557664298891215858423883884837690434176694003443596663548009168746939601217664901791829939051837282059241014894889705028108610832381944831542418490692964670052327445300927298632469094393317943763950321813295666677879363931869755755690601560379038280869428118783020000747773520661738557789979956924661940343753750357501355586325081998469704099964781683224465798295879748084829066588821311371346929408583989546706991151712521300577629544179071605345033234147199341585720165146275704162194510664416128096491980723368389265700400327279951453498129582912411573020287946960942962648899108176655886429414484994940059930616800176604445822305503591148211382204355765989203263169991145422330209567861663650452617635239472662368616732351851511474716469592760393046963080038702251003366168378386119268326776251135757199308024734650150905198579242529046115434481115549335591131756104936385865116545210887211514454666222512703755532531851076760516493530033691675613238820105574441175034245757662076399281243057055986714167397885837753528580120137803202655084566035533468519256585310320474030547949080530832612033176924643665833815065308290652482829606304430957810580102248097736401836542342371613565303728789606483326325961219269521344293977061959381491874146532914578880414520297664912784442082006925085050769372590533953864924237892511614965033935344345194985079474114597977124308194336714712566018814680521664931271143888100118385025502065469572747550411946255673172970072228214389639168944692742046688425632363412550312264760911334775332680152425053115376433919670692908905875265492550301681108087191790637891697658311311993001723718433862992640774348800286059756271206453905883220691874345687451175968650839054799238549395682481319546712771207528085612072297543532835217417969345623465331687664801779246268729736524371528688822562468992479186940812516370935288827775863369561952090746328447232787393558663391618161708863562927818929921637994610228996995909872699570028337781024360804506186305035473774831684189854385185373717995855507493940398081054123111449718855349820876357180773540466580190723304776921875709856394356982678101492963025704688622150607146530513172523687839230302142655062739322330437240129986246847606704658500043571872192031663406410121348053790226158447770896802070126142044014327153606426429653097061570564405209168463124014511079072069880502719363140775039734816990067506097095741740674521118598993520395553206079629152418197290477728858112194599944867930951120404160779233113455735150592296455306833910754422595662895338152702852681415519640366441912382032560285157881581869460985051933016833273376847921969502393843465767644476680244872976840929643342600814504219603698352682580491714145203145122598702799421036470299087345757745578623593011918355219490814253543599739012995010261029004930565796455025831276919338148834933597498861823223422801239824841799899515004849212871202076818390903326123142489066712998302742254514530844044921327215274492029240773613955536294051811459090177854687657603552847073841064255695298187049570853615924119849646632278432114983331821402332514470924355636350489206372490773004049589242977440157831514216356878589160578019297757517607870029583701793477863684632554494611521810948814235011174443474206125303554128225222389779955645443009123412755055345623351730883203170810022214011738155001409781043373607751360404604083652761208383180533589838624901575825703554009515050224163007903550758053046170900669042151348073071532649134498568745549309996172859649646302658167561402446368077757046001398558154543208768531447284606870777824939503283816228183715191672053077604646091721531850742699274190921591980369057689353772906060589358069365795522763147282244984024270417486581224107138758424422107975400760679564028685500363729760598612118988926979030095744345719278273017969982348832373508125796118758566107602587933936188343812419257338694833502913211485535382055187715149440121960464922687902027953344043317388607270865906309019521820015491681352985754207425896236045825930119600755078370820235647650424181658518674821750208111782987331875274375374805787481435340195043223911904081321642889481716160718480952236943545107903166391539330584501783587231522594204736889030197650390879454387392899488193711096608338137468472041519464178647087224999249367403211695537583082272977816895213184968910439538321564161537783659273296785715044316889294861639350227565955047818876557952521343290836919866953851359926613338361464894264297138209653322666187642631608538721103330716460039711033340840332047801361621647416561849714178450858767851605580117955104553114574353375360600381757093609087040199587883553260052636885603833050744842483937877751137066492157703479222326916711214612325348382855595466190849501104976852613501974281744227497350050408318958108949966043376664507840614659153157851692554068553003114619419640962890753691803445777683969383763620506464097797767469832593979104135477806642522391056950260453618665054669623320456049048335461869652723590084551800714320234891059234597964837505978398494843942933671497682438837689570091559407702985468646647246364305362166731600499488567295913844032311063841385174221664657871088645567876028308921994731559568853181890748940522349414772850200488086307875584770175382138752489279763878709183791735022385601278086498822602828033121439888289108091976847935725416769319614523523125976162267165113308854019287006100249168530864338690625786774355849454855753464934106622526363741259361778461865741401857685100171375607881102386198772438167812776953005800951444830566243977681985290721425642184274035087602890217629495911596750284168230601131482322878499749755538375434223753873482534261858099612268632558647375284893741453226089485561445743042026739854258489858574403380667675272051335524898892510658400953637414641594908348552297100794339052777468206620150422145494217475284805596502272392490620557862869367643680222523848192414548863966553725045963010369768617175413473867523473994062426232036289855386641356568504291094472491020676943968688045637426632735950882252872220984739537357165768880577558303406535489194184223812086965747505961660564769477036054246501384841573661135717503287839279293485056768952487017406118060040173290071873089309335512321364444647919842561907069373784758178778527807475969148541784617722713015939883089872520031276645550994844057788725283529634594761063523153348899780829412381559412300243902265268980514666047111961043522942420704747190744404946849230375427218738517589103609272883548409993183546236821536062337361512481615516066174143917827040379323441911876207839006617380489130408977670886196351306194709954688809628655724713440137525138182005200879012153358721280196913544716710227176740812323944302426974845696990364014708219549374473203394325250860667395669517629672934614513283903018003767944957390477742413191091501874546569332625539658719663875174412427641038958315367990336516806318104548444244720136527156670964265686438253385136431768529972155945467680915953094694046625644247388375927357547326095474323692004058763789318546738621928386106680093081404435319047844335386661801282602319441802201690281461188331755879617479637572667479796310707426550166117579663573992658152415732417849011812284330917262427616661237222782806096408044850882043682472366927161334842256239955982303578791931826639173047046450637015289427272341584336057698040243995603383187419035948914200053478146365786144484037621548386788404666942502283455772987966449870970414760383859567788598239036537356136623147524762761739799608832342103268573549160215851013882434727450187965317501868149019308087112424255620882653563686454346353528707739378269997409513511837306508144247369457151052048694717363996052333608048983315374287330219169925224110518051722071481009064521689993865016172798301898685679171212415835462236812880837614174376951416607969425480124957459178210366148528797035197285939911185654093709358002733374266182770225723532620242619759640193940746325794639056856481966657767912406576949496156636429680240236010302212721600589101059989257753003161257120687182454552679632554317038995663588527774225105554480748695577101385438151837047708861075971548486801256030589240503693780960894261199933438266485127873591840058078566027385834459387018702658726005478238516716305041603711292344264923066598454158778250417953767008231700521412506716897645463141878408743078524745516041003006469131795996011252878660543990901366256662291709983602869400084077581554959680233248718675429278693904507525718606595617454542028354682934855158682370802262840603828301833336196571477451947895187222436267560685344521087758773007513902714547417592421747562665114517054806462308711237171297163889329211665692258617589042478339373682407595226879868818672939953417410860208810680148903096957136218619352845701791230737489659441024047300260672290932786540097091409258114665281726183691175653853119913142442808420035955538859856261929805771451746171023036939791970976308096758594020991270792863890155318476363920611474230615485010089818596152653074092484196251674097732881991805466510670777390813446286763537076856421195442338733670966647192214029684701330763942074661413705868961480386013343215360727477545651506758877354507107595231738930437897506054112175919775254317280333553295192812146432860470103224646026189494193168965766877126205203251227953410258731565454476349172205328780227898722408721081262007703194452641105356982553385770920423013024257956618164322043532851447114528739140331885292542580835881784533615987619115470124106413374809219615131489873547274360964558239555591854048025858664648559361996373541596790265841429688187834108998252503554928137825460699781203810720329513910265245384167007745590426185173511915152764577820573383395413375481029410547325564577463646546638112381886191870207856255120641883794552427197665943687481464501173755360501401417075810966322371046750343456637613463667870206156357935667556488954739575342089637238615985255494781596335191398809722743377670854087309741578045470571781406264666409100746493893160522040450314725522879147737265765652343616153989794192920786062787858027236656522563898818266140872118016523971470936961330040387288625667753088971721039199142877888454762856907750884288043309644778375741023383256745836726200548619002353979525742355307143834127072579336186490273782099497326173325106780971460078981312337827129347511417177018784551275128908083993682665482612064859634993567198685789696923083677440665742413771371195302186031027805812263717011504101834629271747698713910558942492161797995786424978706683657955685592231951714156154190202310553869918972850936846729366150213634161420948245504775589030057293270837920957814278829221904200204173396184454904359920140373371141495822914453809904134262307583110505890389799989045582586856807943815801904014968390906056271840074804626609245999253154052116521689450010012137013933655581738066727890241885254133410019288425874068192047665926656059044521551579916600076631206408882166897161577569298347183420157023089205614299792444947634372194209896871835924949639176642443227787052605659764839875654208782621131067024433789898510307033853376294133866054506939686919811764117078680934280534178474334116845036528738103636581569458049006287944413216102488933785928771555403444785445794621335603064907142101549111017417750245029844565515906727796306156579117772722153817221927284062173854883324186643561869410539895061396343227526671783564750328359781077707202416603909378413628593182127074994005753345043084143890449640328924141549113799670810745919080180345573150800208522907216825632073219859512066755112637708710839808164383695232530004041536909081808950370431549887357128796676592765200307254498089184196697587905398168317944722248875035903199399399516853339444276437906545662679032790115428451544322405270376897564359627734421192062179508377547254917557531408954896513778352790971255405431395306589398944532597681424196874794874794352767798927496940381576760564097101015542773239933484767586318765784556956115554034662556081465710708690360085351715776458881684108043589829228230919136108886320248310139042136066278081539629404595431500413622723425326937785395875785527082688862132078460910583124081030715837746689557102217646588619534037836498114825798338180864415857901196950791616957335970452228588457624926640857249250656861579653552966634056119626695697298872752898828760635555193155835581270954862180283065755541626730075983758891182698250097922927494658640544144823580674106771664943355234620641176708754655500850730176271397776365186253848573682740863006883926125213365026961054711883896912925903031119789963723091968604369242247713019291025108808918998728240045674981382929979126819662793168608570767671996836786546260034655948930269870890388863200162926494621553471393773541105675456724874250742988580955010545929703904710282962165838078831445350394910900825306998849512029791481909308638689125214512392690052008766710160582556915991552778442363459374475475476308587178646859536153048547240415071272018525307139323315326319757193469554277778769716743824852599154686163679313498477545949891525103096544429691029523664725448429740943855893358232923047120147945029928495950307022142558103044560297087469391843338122808106309777912941255418820931350426979003380101042818516359258992495836253384245376442969888413207299109138521290648042130205637130605192225533075140611673082005227417551892483472313493167768812150742227675824133097064366942471813608827903410981309150798785303735674110486285759590028064440911640890136093349644290018593600423193084078676514459601421882194966046808787176097927365720034943646509553691501091790090740885155555903826857935860049912731808993712973899748982884554586311398194701060015239150696245624088083522310571136629039918830760793278605156226043891307042480900317730742601241558259820229315520315483519794240315762301997874954155680155765279058356808948475777896385034235767496788196631297913276457182040916903429358787981063323940066126797373093069899441265422094234855814778666121301548601240960992362083396209473473119511454549356418813343811152370356579388308780865423174130647348522738173995168414320279522893563072937899075714724986886032223058328914281381991964146725312301048544369092336902772200712226397357963376186328964942049204878425281396218941228983561096142954729634668134260618733373839129161261318675041234068244109756670039169818627126631534970635538232607714088824749166022893365178020519586548881822465095335811917724787978807676819267031664572412716277197786895414818887528277315432523031368292640758888465382211619637267075112600221396815850117889374707287239724535751701412723564209189672738464347070177041122574021872166604275076545643647198914915082958182770886416420611280559665233373961477184375684569562507053267413199890874912560797512368668138643065131955686369658090588989507259236222243646486531746653847935977955582114000450054152045261441157754976976755101728010557007035690938674768697293343599567132190883196972137529633912969342335627241555923637442518700277322395477922129885802443884563851072465394721529081872808928941654242598487424875669254223031473336172819079031173748802719114573827463234422152043485108323182680728426162274731583302529048618488038526546165176676839029490429729442862917961887412541943550841373722243242510639423547926785740370443727529202776833609308315217287658231447266707592668238530532507717924421765395935159476297042688384683429587189815736295616426382891098693828839761227313800162098589773060468713476829788195154303993969801162727806473569656067446383354968508025728691842512423160061941080621420810303455292997225273316801731311994783724255652490463041976545091108888881053310238553312593884676234186267510713126039142669925829841380554961147815763819471342870843264501399938244103958252415664617308194589718565276226842502778729688691971170600345328499790212424649803906771659336279697372126533011212112757149311285285068152176066755377510429900040496322808049787969292434866085884189059072162990227351246010111017554880231437075315000117814545156749697844946031899629689112925162950251984123787438432073750624851530119244753218038534575984457239636053174303445481580972181325530631653710481474032047209535180906183252356174554197138577561969069808790207934713059552011703346294085103475580087205575900972620510324719827860398633804777688576173390524440096559402719025325504128309805802800800354854629049122658272444688872040379435538645782940747173499554739685383071255780189790627090205650930973213737331613941482988393254376855309092213158178535888529686061203411446701820441068252566690984998987352482182588291795055780852157042033672403386100670590760150353049996286406800490637426316131687375118857180240175118422048056884549591480029407618216833216964421244398912991104632485983760488793683330567700691263237545589811709017534735053436135304072467423883866435260828029316109463262664027437086433003884169896541030840901870007923077925773195622446803483914341773051179786129674924224008100458316638802063468366593203749631924756485762609797448464319177334416017521449949062984391673623100163533554177094990059932842996345315830638339511152590340427210963492710751398211766709116860929894658555042374369268493917027124620504880468340984683887492217824633897146620442078015168413528168109598745726026991329044015418082872908013381188464740189749454940616881792989397135428004428475912940912677319677434535045340950632925410129514171674585305143686975983936704233352195410152808606631276732447710217407104347673078500838677322140779956793152732479122638148235368761034445034736216308381044483555094784121991372545296760557008610761091306164717333283264905684024882624112704180805262694634281014387933270708222899078273469763331097203815343233254282669892093091925929740451013995123225808109394834832083543339664295482423826559179795319600096162484814906584044170730149437824754611666082051250210633045581741317742419176269034069869643947887369543573154974949199322782503281614759872447611590143025819776505884530426048769869858627500826213316835827339947747291787232031255593781604553772139886838614611271033654203878856334509897053510417825723714232545321614904625446386889950567212000549531260763380446407354723640849778280309617686773353901887839303059868610402854147000889787585502327470545522242233248644961104796229301992652434934475033827161902312514688107190466358364247098900960749961928062262877501363078572830147261725461699614735279695095240558535675615289834594147336797220638199586066372886515862695936358166677009974400463437110740050578124929616616997473949134218021390506910716950861508752782713107661876316240975888131360050433203820720024737170184770146352063620671200855780252020138859649908695656549783985981495815455676376519929519284937282375204891202721984168431200180581071946287895087335803074809111909482398085653289446245042100732198002902973740113087234369035689266007538171847108903865724584561455221957203672846034946526224020665719008810732066755495272408618168879127329956339940832450496559120559160236548970525596158508407437899763798441479623699111337255733896123441798590583166933446067229966754524565593423388087465761146401967344151218652548961006329021480727797027212830382793711230946771042782896381934797877120102482998606427211468386480062588104914244269100285106732814260718827198539051045299202667855921461427324403266737976566776463800703253523118648589248263393001670047220831503248965002072997215472231124818863922487289709810903091178718030598914922510443309012262074274315983624304756411255576791698991509280284370808969294016786946749612112146834189420878965640247429336754740106160934175162366749100760590375123326646203867444732792173415478453833660288663657131396647519818098507819651211026185020681165947657931146433260430813429221623272782064538430980256910219780757274758824219509452212292603447244806265225531317329666333835512517809312725793510678239249537323561838365176116271690445332149715100981105367602920600581780029008996478611591718347147193761713732016213039973351079772499202721232077914009005559865626198226903721154104908621193789247231998285923562944039096530562887845603363551656144157753215832260025659428649630825474198003773257013312977993981687730207757453724513845909662883504681183055396950532453650512428669918828327404169451886147654891782335092532090653707215252998030249352077829982576532904179835422793145020294243453156430602485079659209753957250375342561475511374750260603636178869776848578387537784624633692872997445316825871969684010970951399117237531280437317967306799165464558660892812349639613781479470777855640463024657375028759659829371439279470639112258407123512001110587206627227081753363162711567681415573595146337376347179919818796463659638723846309799457372601639644753978188465871491515695653167244605083378495087059044122784605064107580401268443418668062075572514366762131459924084197474499871285478169077488304759121417115862393784248219561850322299935110980911029004932297206889771937986052480741172607832560195008888654183511944477785902642275130714222700160104467795343634180860600515491750883714318238433939092400688208091266206467205430838499592209777189965806595960877970931279116239185387333378456752440851913242660289706768547045346983315728255987864167860070595739996759517699761629316727926278796344844737192218727332519983403354520188505741044280254478073750681886892508355182743942370017256112788077756907137496815943573067728041349052588709385005042449347354838819178783673435862249118921433627822432125337249442221812008175438769516279765564900718836207305247811448341231340417235216923388757050325301876178354738656874598217323756985037658241066105320978951333998931839880154846473134086326575140077393487833793973140080988481082386532496139691903192738747658459287842400040256086606303155452358258005938486089400456979820488322703890621305267906771458557560051675652405514603442016340450206862860803576365536539126129240501571932610464144211739685126561366371251282922628676800771257433792451331593120794882568929000952619693151721192101078205424919768872653611203618349149413136488081061966107170138446311199396378496328346539163171963699589115925034612549834792912821015988513097575481839259490369161663465073007086377354804507038716033195290413302212073777846003487350187282691688661750843468419488573384870823925704478947428637045856977747854804795945741944462542152447278714892608865069292768342547929265655174824458667113007788677424558258570396441383403601842340600028133569552685914087764672840550306781679053612003847060314639972230722612025077306177620114661118598853678591874654060099908049628599355629940366436169747206029234165884495156168013164841020884984871168541785027719447124363080548983262001339772650482556856729905376882585455070226942717528415397578854192031826932833008591787384813510780826326043700917737869430335213041816675990559355394297214437012867710229493136082367291952173329092356887645301458865032682174946426089832513269497984881124061657987752898400595410336422432941800948527374893120332360504132105804189970148794035497628913902750596356912035537530451804177735041341996302096468842119557603768098045205726340708960173783584228973334282619977158648301097657823842066751078956243448364681922259908154676061031500039929519207522652200130642359323331794863636565380477983478418001652267534576341867401963009613849342960603651830676673524631846443666337770439417635918328610767553243778934519777675431580405977904488018357285583803968044603092631040040738556791884572923427230586826298897148860514475799500829623065225740411279385080133464752136819703978130921427651368482539127732989058537040925493913812786402704011131620459451180265020997085214613124253829082178310091920477346351915676452854357134653116636327062610058485364814933197100567554081721313642323249926948548622350159156980026478110993884233611628597704350788038189267920377795219618750697433215662049461598726984499585115414060622236299567031438481946720601401665501737781480876746384016275669627676863790998920129326275109153532544517503917436052381960959087624342438582064594183900882331890966114713850468798698181566793149291702569168660621285402393362938570351405146415134429111549134087171585173429673205151926597003206884301611840031570474270922347069900097715394011893829959569422683680065144351230038168464878107118042785240380348110981589399890631719203359133697584957847583872280800606149139579705016281528991767752116029036432401348935737138918296776872577501295046660038731178548187334383960446399705614431732622958916795402171338530240677314313482357258621360781562969659000850075541100516148010819974163145566601715476168467422636654004684254729002214120134982729637898259121875630716176237363579490507039356055188636834458055099991377666197859007666367216609894675801062869850458310051937876358683460465528807903750117053589722978127699549299610404211900855529308913985143662843198609641075328425182678873980070230255770702135852404675144635811259625595083456413029143099998056893716282891548575424565820620307695806059586036579137752210828509573637178728905307232094499092775053760439208121384378581834164419996009926489872755883669864479325666255137572010799018231473303996444758697337912319403781527336934676797684160289107407811194083774638308368948758768917947912561316758576756775189849272669228629793705103257801159948467178850357516663635066825008869670971239906712403377396661156077787545010820531316191826098265521498581076822129979095497568446744986839795795506675823093662785724152029705507880944390685945362344688287677237120311939081097319000364898365719977415662727477512854319646235299431647801451605926489128579048310003997356528241138118833852806082193494320238834234166137861008556551006607739014624506533965185103611828297133539493625166992249241019689423154187274244078216746582073897065849923370311907957776185176713043298434930845787898677497414609478725467830650893293146662285331557132089440151247706754429205175680280672004571485133429306595260711416035937615540005595089340175118332447036138726305178251470551370038577693175522139124842672794631002692630102958922446988638671091571621564951886937885150138750241427299838396456395572556117438788112777641274526256796112309201305949181590800394274389296863572727927587939455767195854359116199272819916136277065862711056435803601555335536124506119312945711909304417170464438953991560955092457445842785780867819348964207537817173395262951771264441034047438397908221698890954569295944649310778947311400472506580277471506867517547104010654936952240683497847852945776755559014545996564708067053975360249549988182076098922366410754856978146640913642197248429671740686461546526814148249640083975441336007418278561202939187892299148692432104789170724246158178537090920930274285215543043445501779705633412837549311917875014097870152120584627892323713980191664166367161579478185235332553809810158652375444566694692847248707620204206665743657037469124168201932379708248559681227741217585580397712538109969849011752050922680087548308385816282007665233026977006903838604356432379047639682929958753787869530776125935988087959970097852888734439853127299407857153720303794757943536303700178671825148866206222190517049263928779664670794157927651884178860961533768294774582158986236087477744679872640290295516938721059381554653281147272098858106051646879892664359095030157335051541596090238026228736246586420354938281106085537338493448434935029814286590348068821378023157189093501197742215650415694092426741409352634776677670694639572056804514820343190499036833255488822194774525663556464204193014742823555145034942046222275399091141701718002993037132513327562186902076896226564569274449391828529963306863614710493260175198881590866771142312089755611753032680463834377438811304922290454872406789687235575769242999948080142307660435651556554595982551768660940977897478280937683597162125192928556599142700359397941292808420579264126138179575449088802197605177837694547512693579340597022468555128207585954302948876715752154661401415578947172236660167710431540796056410755180815500622045799442608064337699021415391257380263883956620499483130139826600769763109576641578871746708305836801145769190506392551770079670870320631257816388051478237388073710170057120850720735188315099159354267876370938905890693163879818449974573927280876257599926061110787478534523507327501988842165445187243698435783001764782806058240899770545609526488110809332339633657918299816296812964642652890139058969909227238820655585023583162655125165367219102877718194591604122415482194481529712635022400966365559893999008110951303849734264667530046119410318052677513681394288373938253132715765234260346854160087394839092651951677480139892086016670279434346909764986369553728533326946872782099348529903358030881477065011064773339163141144716714013537362324426110686733597419684834492458968156903608566385565459413445528857087394944322643574667188904804260109481046100721754410692702617464230657908225311978081171030130982410457851902673132096427741925098237038611106548731141948011676764034582971512477368277846487536345310415177351901266644953743167287575095193510750494119617192195821149807659244615707698523872142447974691852094903750829108428326701322777025055646191233687965822227505542769142377141739937833603553423461456484502683787097951658098671816459141082689023386790894148169691616484858853495129730691779427291822499989252906214614499298357170085425114676546547583976568710141489021172278555205484763211162147241003559681658316385720813004730097756251699379408546523404511019965949998829253609103543988887017445172915345340507585042648976098963537766074327633525925259844873354991118006371667987904608906847083572905302759948300602612316604043231351718029302921095814734104439520749884643215263948535514994140764033402694237296983906985561075499775329920923529564080439491717692195450229505111142247070700105610303373126607454750953420523081770975015462437743689013699155607878616082348285933082624717027469582243449299083990849647761781983987124374787203793072631524603992658532287031367351081189295317540730066058051177124524963804082964960117493761833719673560727302117067424875243932642871083305596618883827288760110424128522713863922995314260390703436517061651493451384001180122519336245073406711335797243026042256780952404790693811764501959096466983494135312306386098053069223111347343751815152635713011298856493478221334888362758255188495663150482450952416325241337563210081388444624201139516226341237885652461054690353720794326979687596935261163775768040449981847005422198315278954672768278655001320414853582588979644746691334918409899824992568830932582575793549965314421003749088428310165371953747831676046269848362098926855913112085332327127895120622753205899285473054565884681559831097675804462348077705346070058152246780585089234983022236586959413826180295859391729502803454394781528215785466781653340613081362875249628582212866090178146244052352436317895705764846418084345493029757781389602862855813038281308841671441765402669920385761444548765176100191177602391404861295435178011640880003171349696406394341947720460934288778671671306547641898431172270753965427335574636009827299448984520999829303539022428963712922647467948930546540432185287583765245357919929982518135410550680086637678729469388161529752230277822148222890948648313681763369383797043701367998996333870199496597141648624254791453539052372098756975055531829208086479186280864119909923779541439610935806419768053105971004950516091226208531504420339240018145639584659906075576636054292270049546025229942202290641449204007937339439219372633182317873918451975408691511965198176645421030685349386484221165987494071710502716177318511029045914022675088685088590159116521734029442405305736278701532119666048793558872319491177310025155788561466807828666170289916399475949171984567351558366458684880756194072433450216167931919551387758080312347104589511011798837694478227473090452492752957493598710843962205024600515740300805287278604116443902979280775825323121831996555424924185971544180706553780953098629394214035521286430720637648409112300515480758955325730226338984777319302911840954520565804709893309163533854337636777879983758636132840928639489526994666974364009782975088309102739117480206814782231640215857277079247961778747809954782708152888237358752117546363192723762901193923806608583063806716459481243728256998227642111123146979728746578621444810576025909770978278788578621335722803876702859472825258114930945877941536293093341416658144588971131942392085578935651737567578165442778634300250189791017954793572735966567631412102275937795464725815527908820260838826986281269492530024433177978240583558489642745083305780663035455847634979776687775466791570179931840087332678254039739026112628185310317695124776123082842755356474270265675213869088663874273687772761953771572670088459644870867165874744742661911743630699375121510409336234426772796032921855711086403182525275464643143335482868916047728872105051415221353394733203934996975692890741232559036653668024201110120515814937348558462656562064915171609724595513600217445121841576359395865035550263987815904199139907285368951769052965677280876879438617720823664367860605886788645744324365076953832875763162605172357921370756242141590201813449505883246571939461857530233298212706850825828760014039641469754374043165606512767288703718702262869931389385354932046856176858081588350379274811017499415357620331657832890006971932883819280871451490575740398353811250511007271071310092839871934604430973722298698410637871778555037609698877408561551872985586061782317695443263596534277565935048151401664875391375084147956115706940176702845741013474607458193860368615495758389777626459478863439808094341662821104398049392813209239026380448131123604801082007878410450029772207278960628910760876238815339023218121439644093967634275910393904066998603482429970203997443358636667638556728160915727401956953702349697099725691348913617529110793207362430619494445341480601813372038526805180063108838465037918450327263136872716337044057884329171260375724712437732505742304195614063518391915540808462619442839542252042290701794725874107525459553347850631005648535819624358092840663471426377315629901088316320526715098008222145793160202591613187585189182679911415743029312311166226570383612587372120433848552639452668406464618949105508254624473580975901029627444668680559595374321699951299962075583862992986468680029425490442316386418537724370733606588365401795754840382015186643723682465312414267124004461237340289823535815610827139617419642712478475982280042047408598956402684451532241856393149310755124520898132492178619570029892776673594883774217271972405124095844570901103372427200418947994701963205114719891246244175936048120609582278931115858018623499468120264462951544230225942701143788523045459006343995997951517025246948634093874105779504515719695465537913853682946874424109175059677662548412123813203145403400316154229990224226041262118656026040338463190340052067891260660609586222940351937012781087119565503513444046113941888846685385276660373703280783876563482320839123326459341972383757362570517322943139871805754821693796958893051439649750916539821294396124696222023971511778480413706317944493809824851114549581270096414517591296423266985148039236511286977904497547090486248403451287212760308743897680401107507711564110822472318471281946468995768415231331808361854091482105950422729402592352471209968658185708932842745701540190456926644079105089579445108082215476332055045990686686926549740789964773995345215425491838439346522212351364519817226858172264583371114181192632359399010278671434705832848478336740383798475481899869878942250022054595143550134567118964221786515840353431890940340365471948084047699606987986051517634627495184666103074619600718812163175839564158037664314165575364671464293871313713378828857209741829016607964725490098614784643216335479404712395559324927317563699635112874497809814784387854424573289566949393402749435304973458272685426375643215831895922681240014575671708296289127270022786438461468809368733120603475779094191416880554904079908293872854710792460766054886303322878968326231971772559578461697715180023117873342624101813789700521129284683704452881340486503636959136398216775789480568148470475315721972646081624889017812037882845493385675570181237900199161201709560016283089979968065299530923870910617382614285812181220974214132928306998733780765991338526435776888210559854574161217875899377732455121776292385749286415823065126854181974535309456716603679908346296081305958845343087393128826364870774773576753111683655869272432592221378588822465912507699064786709515902538458372922825710883051946260757336072623849829979237951941339984222260205506943982544147108700088203457302262695725096528657035006142888284671627759614835877491014921488467689295749376767152814256598655530089515748085683452380273347913444386906095380615770174370532476125604866671558235735766404509346682710132938904058034385269762723477191901505142056641948773905980635896579625529310101525970478083935321294324942075934431239906719064227571515435925574656063314657441804844178492739880765565114079784851010384232295055323474527774959083849174451640733249833866972285657846553079901806968909752169134424660359826654595881698057749733466156963455960964204197398713410008903550417185099486416147203424619082919315413752502375853477521008245754835925611314711735736244312896629249070767880532191785161449446147005790306610029769937227094881215137369750327643261542292217461099304079693449906264479127335121883269036166835064283611378839919571557686094048710048721112715451470499564623040361381653388684672467682533047466269639402868852465340077092786680168901645158533689321504514247217684882737142808417471606763450786528735704725148136951987037176155048204178632625576897803920605623591103444990063941900873804482651697175551359332581973436114803624987496032418775001922587111008822075531655089701745092385606296133065150666061859166440794696877821272396344597549290602826964959822593402213143067318301560407097169744034629537897402777254288343015589301079512670747175258495612103921673202320007515637549727544010893341506088547996974171474718753289366186812803479382198610080279912228766886225013315939752225199513286225944322227167440803940461146097390065506260018563480805180349896819627575798236562890532753885901415221159665257594533230005385253659101642902182063595654095613853246676480580951700622752874839191587295946809442029226533449089025868940509255024786606742526260508770246138244523659774007135116194548700039130230535691566656273214470112612639050859733615350623768541840264995606383392216252448928394473831481452006676878887096722975504481353929216932196741167645234069543591821833911840385111808645423198028994759522007622890551495458225978472816785165469371118121389505504033034589399158914186159298232204836372860199140864272669569873655131956425565615734192904389512093908002219460541353780542596423734323567203904458642979916054312521275376722443320048345885479421629024759992529618052982538988892056361580707140373770831200062503787110702885901584610109649531877063574299126171843367343218114875667665017474422553712302745121303156238696068073286600294372676543699164395087101194871996420612485281742559232790866354401536060869345377795434726247346445167942945710061709139497108257750920806496785166068889028994083903588061854580299243832998571220446286717907034062584181696501331233358956847559949736628446842419282153293582251974457764486938089361690768290536078448036461806519616337771096520647075713775526489218844606761603496438362267176114254537383520683532144830059415752457797555516999463682805566451989587745366179199862991740976786219205048098804145695431280349675225204440281178769390020562409609707678716030300263646703883264514551513081793290025158339461355749233923464262518783926979818399703336544180452451053714924420407637487460211018230705061850769050227210085506786673251219561574618041727365263274596742646312856201038433250053170745020828743420753255517226405181893211577707832111811075760284073715465968444028190654783756142382437501508199226472463372183310016199874713903103909431046989691306442167317531995956127268316073677283969073945966908703927618943804106379037741935735396654292913203850251718255715854219194485430996532338303458244545075030301386298193516768108111526461235879199947408823956836962047345475847795214567720593883981925816270274387337749819751998180932294236685548681405439653415099169080717263241785099813800267606572748288615321736840882960806771507658326461417335071297806887556748273227628211819008349992195392176472204240097111765932602315390538638497121680616746883154787069315796373051428444491489818295582739243643834494857185531260094333226203049781691745613036960819896853477545183632976640004219786256472328854232987848080725806044961096004293212817258099603276779399626429846229605085031707777797102827580177932939008899082559126989150752416954653863608343936365567394203898201847360129893191839634947755019438970246098952303197984321182169894392918319244449412583910148038708578128868782478666558012460887743836393698957006808223554019243935815696984518651630227109373670066672434301803096982406310089094678131618403815777557158413924569929299100393517208901569111896066946616452485815074495035757445751786411786491385368985019875626527136942496948550913488914444846307065913465440138499900609187340980465143139738064859763311068204899183044060983552320541631725405699261630216718651094230692582711324956817977712272210845340011254164117609881756097232947422065267857085822539847444722057627219820835095118136074161962353160582483559981269406594363939323506072983279020143844709867170907341498250034686216016998738458670269512439543382649655366916699593551880301743999400211949112799698474358798537358530061208060113325886143116251775449732700810794350776293522349260971785072424646258026261198017332616352287150089295962070972308143559856159280796149642176853741363756309493280074776779661885023209291522390539008508283649537094121159490774182650577616723963169043095266445513847052821867485962354593580738201764031073881913369787027527420482133530739379863599814491937687762140202930953308139306115928352743710181440868752861132524322983938112490986511837624240074057273006363614588422487234185980689177582785295535696179326911611332778440463565022745418955610677826731619111593480855440062760189613932109055649796102748772167516976604346253412785017355543302617922176866395509661495841940036680370634159629976944072255788718435376534935690107795360118308908105016577753383820620289899169305374254902065195271751772749116033189712740496263919617800647702868264207305396378171592846487686634477790947217737582286145979323792950845416891187445372748804903604052776736601648279318911872185553883401527172084724146709621030015947022380946769655165590357313173764911522762251823067093151296423036928440110339677057157053461037666242994236350473950899480115631060868414859641929180778811520471621660200561814156281357930146389431199336407731587044776115892512352117593001643673963853050061092356640498755563927892084079710022627194465870079094760068107718030438383277569946835859043515433981257748300841320323133397165727727555195140405441314320884529060451688824545568351220667035177841356643935917772897417651239275764051607266605504989978063888862899404499225907756507577973646231765789958650927033776924821382679412078131074050785916045122211097140471819423017417641967563774314900171872309021412503977183306545983219925777445296523280860441761973990526395743870368830700927326057258799840045031185285705867335860941904118403427444927599896968369194250362633162003486786655159321380360320348315587358639760930484157648461363004192743712184382374145162948426076973525451613735927223028860037231932065100508040776185383351533174551722659421127190234637236651204361925982123888947655485300665329230399093076888967466315851002823760168628468807385534910393237215497467830176947451521819371294909826422001151346334025220616199752185473343163871305150468710673703326986317245346992030537682492353274381216646484091873444228546886599042929817058923768713327210926371160454900804564132808231260614668768764507383501258416358348513239373069599741352648377752847434761642576399477399866387870878054710894702673103356802391255080101852976562074052575517035754530492946198697868590893299213707087557519593549092713733294753111451515652492967996511715506586298767784735050966496477267058500149445159454251169720699466884142884560802222064553723643287332283533002565920479957281273840330235652673617835607201202779853013410730159782653968562122672875318982989476193237527798516218610649299713099630298524304196312603324898200292437518217190788082619463597726051998919690500414968227780751014387372368964483458967126475619002865684424602804553724242875489050833523903077338798937727028344641589981123816181394742127078429480911267282206415245709946181732862650884695379315134302331218466956339482882796625495956364926387042929149882074912371936511693672564239601114154617433927460769181285466160836339902329603319450963518646155101854984764536885407169732025185300747736772511365504613741459184040797649577343856221948497229024583730650850259108892993116436423939309896475679789944237080046090605913353269442991623781860428595946033926454112601211815404865081859104422086952255906281058086070282640111855631034297561797927346567582390489278281470879608110371848770214638400758451746221454011838223238766231783197239319166024088368982022989094261704599103880557846176700220974045606274822279461393697123080136270539049838198960562111481206915282711451722482640479479300741418289750071815859915442704558448051518763376040373199202015944567825237039336203110308049991939709468505573281267494788501812465858396693440507145036718421794731780775145112282540330480792048524153595291285309324793899790605586644915531271363641882660778946607305503963461424915186603504217168029349274262094949269391886281312556816367296165535104161352596258021821677778945507148287981851767980168635461228860860178247216609558059182073654664574032465096478206233706739001807368570531435056925514181218772343522838833848256137545521089257964713612513266381175315155132567772610447293870549918528882024258206395956453561652856752578356654432160256729879884349409822559650654577145943793735367872802126269024513921693056156786245906335382260741182586126763565981568788016979952957012206288105614423681752968631290739477474155525217589907009327423675801169088654276441771188080425607921304520947683066032825591223811501224219740438964583749021093648192657488174387204963222210050271907952484699164462307282303740486921900077143599330935120530709155482032847110534349980882027789326907072019536764877533992155619634759434569486886828320256970181053413573039409047984490522624613130082890534194384029652134565383962875289406072640599924389857130174028901803603964062115347071428865837981953329993274259288345183531339543253513423615126206115648915080745027446945464841551186331784038965405362904850150056915013194153849445606007628369375115468316777427616709396943206857084460965997462949017921136153724312326001467906546066483920729382577068736390267773476531110946136162784327895667996592722744490851588652925998739060727205670406046793011264711582369993577999772374115562337943672182223498882470087423449852840513045922734656354445492687810428475558873069401198011673754885294505310650011791589215704608653591405464163284381564409554022586951387901259074592796150630263944091768264892872024917699287157087631885843433643961760709847950723041226709287504063343491899820722608978723210076370857108991561125124033212213853691068067863816583657028546406351878492124205861139945241019778080718038571892396828195895499566200283752448466251959189179997668023157920291570689631982504948914802134669372393376991748867857748257189460213301753204953506905009559044182865740748507090949359381370128286094999591063203271835291209101450147632711675434470906301127781847478453628133574394677063256633916293659163480833424476787024155801796105602922037252361329407577849208182705539026540522373589168144139675334200054214554414108282073528306926007152318298935651732278234520104564975219742453941657934435965642921395584636283871439140382253730606837684272567956472444904238914038987099070736079194135309539750111696437151245841999258736446694137846817305487757520462063059894204294310804668849251019091728938529109321409550641336451810737944635650263254441410419244213061912720917886118128489135182721779178228557831373347221000279069869385942210480561974447277165347669293756953485741629871452223338740240849158312100048281326883621470354212439166529460386461530748345113368077429590948524216431569621556912095885967337950207986572592622317131973843443475718037812111244104560059784604652903261786662525350573686356185099819073652628345724813338848681133771737877054073081548781270881291147038263819244540488198917496071869726781815844860685060372404287888107630468959023930319778540893250474627279245879034888449945284341004680980587610502665058922518842682052267448589820470640232307175987236173354215431994895657388967210264291246055515887268772193143262402297494285802118401520240888578123293729299785510608832151796075758411378769241127075258969057745477990512644907036624353061189610979527235072335238804739129316747839606527394644885488879317425960210859348099060365240101145098503743880624663642876678462418426592490485892635529142936726390484406095733378235675706799709002633152793411487891975533337650179742666571247356052858563302673957743468592786892707994125393258219663781141308970563003369387561171056334366818468645063911652570919152153511056935636941897961867151381795982123769258917206328387201305800179127873841775364100166056158907585327837860881389814121243774393262061805820940788506541723971753272807568105501544175264351586462480507712147059783127275147452299492781646208824806283314629134767491729835795200235106499011062867056521801060082475147024351791824289671462979786736764621817562567887884084758380609153220092605051953069680327074556033293441791170165700748989138472199444354118575903664497861807533167152498065167955564119302041837596265435307393195724443008205816675284501247590999885259224054010249001558054612956925186975068045584833532996990798869278195464532791453435380110538352028616200658841549506322394236300518130911029026204804095068773200813161559171763627546994857757996428731111133765078317760063565756907971561756004964526340542194839311475399292686727851484944538131367826417475998300186569917193181276354753616930686260203464345589530936455354992310942294744039445435877171452353596449947011032380261876036912092450146480323864333656295754088385216447351493115303682930939757621232878004714372128462125051056177371691876266631330697471418974176510703172109436456527114676699522932490425655292159008592341593509078564138193368580393631640482867809452544961541811056723689300389410772211453515763357312209930123575138610228607858883017204093778544439916912193852467922105609959432040516851878000973330534396644920937997168073317541734389379075004547637269495954039185523832142378280133494186855148615478728122369425671494032901971616905022763945906387191223081629351076978117445843043830331305955140727395048205596151661632373564737513599605025304785028272185779234769256818231333298882712452314760875461259585697313794915989490296099512076042613089858820513215279742002335888657467465349717765941089694754543861428063744083248546174871367380509843455767809559495400388725158655659762477022127104720512811537575655188925389244812198821556207168285514226319017042707046129932825094178030385377204337896138999776876214718318121511685706366743074495363362306608840644959579041940210617950960533096717103770286606203697082106281573908158103302569448324123879936271956682789957465728946730534076729381639504128158431620743145228759505516794096017441473502617258468805826290989223154017427187464023015408950991055398373504074190537114138179841954088499568494686154322672759820109306298569561337026993105761373945927325156891249474872660219670091560212112363672364668727688739337954172079904651461192070187559839941185379904041206517388268488931292073623866959782611763894428124039193726835924543064926987493973818463802535216229168090795056756743788405034875341644836874198153079927667869189446548707269712822245365767496487719519217068852027574305539817544393616674331311019088132953188017122137884601836736813786054883737392785703033276196553917900955845665999825993633399571959846746620351232882843935766202347784406646257245055261766276603551309361374486121784954882395250124311631322537493788938993665472706909948975688504271750864078236164268272398490057147428160959278897328377517837855050630491743929582022892185545035271334706252883120700303494181314531059682889968803047401664688016580941124382365528110479116082704003997866446739838875226498658695443212284304838540002581659570197183385255994641885623045055032947952200708039690444672390380348849343576961904334135374445766567426685763838934771587651299022364010882098302484291247832939572487447976613619429286390568875919909283714320148168983231863564845302131343401750141588895397961312813649568329394010150314902085238781121192753581341615757315785598042585343160562504539484111889577160793162768732546656058291742987045104499823158191755923526916367755206783381151422514796081139718325115602843858952111351648474623005388288430238366711976871562426031928162568352805970800875293268486961094629394506347679626016231812415513780261686549563427672182603739949390055182664872812545213763957512641865850427967356777457352893042891460772092125616810080619819814970395092942903305221669021712618422745692713460491352264227592160644768984264560667226171615466225925569828259104751508142312071009460339151058098902663532786146858945358608480686764701807438359589004839408667874719573058802679374746612748361606892919814641250636420793091596191385602827309754878496869745527365585495050499570081027790438944766250839535348314304982146497459056328842566238385565920220666878264153985212876406136526896402850788033783676886457083174929955374835860066582575065200599182120705426568837490706921713060821069337524644493073717807169477023183137864408999136546169602820006069237370135643598727844361615196259677800044702748361188263696160166280070053436137046155248276283354383889453402101880731238798233481702558606755892301195747459170871039496991363603938152834126716639915106331905156463186055114862443954387561448592094387270879195533089138411262253557960239990159393381806470404312481844534898012900622048164989424606817321730062177332638491610688968110282847670025673832685957767478758562740842753195995730631361184765149942452849060696818541305739103652330217585188001519338274212188996567147312087113690843011757925323036021604004043458415085359013882768428967512052879182472385094109655841522362586283889386192362175196349497190761496828233044338591350484094123887542164706938884450594276544940516229615906797003934386115714636510376933779830503070077237843695525345543065751791181542260520615837648769761491716559416316813733531367214262789430405272407983325672827536064594761791613897719336694893473810378568806561555035836628670964918038590614774359984452405949205631337340578903059912127966283291204293404190092518258885089341562883986550424822915855599561828558051428881750708847232274819266825681573796888029955016137947542004348439047366561087004778369984051926135691767090514591515283560396743466762121708120432727091146627171798215725141608687113891515345524918055475239022119790879843297122818221556022477006214063179623213487434044415096350311488393229401369121791241436030692774424114664896533144644386946946214571851234111896294478774197569962894194055836768651049141884029696950929039504421674833996061185210022663749040459203588786366278610652169960956456249027117400876412540848728174355182022497275919226017873808501380347486957978351852034778748953321511210560992899698101711545080678292144876973049194526554334471899241511367183200584882211488366229480412589732642167186479264679775743389070467041485225277728698719350988434066517105306825015817932185534110039145435326972004800773920618018335081206084136299678722650747105422081557683218112111434949629198210726254356596649508602826305431711317770103656214721989339485334792804247609469900065049415884190149586291997950384703740857095163794861764890216097951216804614730951491537600971856921938458820052926728495965022890282539967151027526522187611729122233702230259607069448662724094854607677075372529231137238257864358414490523480180687354522106541114664231515238131675196287329229743809308679087290405074556079706947522782891957962234372781999768086977751907373155163169037731357468033914836877009153986838865999579919292055862924376343973651508982691679041006589587768051671867763850458403001490234994052818607226028344875867379377940585407142688311103957157021623125090950661405287235893524029545450180597682286185507157768341168971865424934643351125623920348827911413590113704570237702035328574499958367424730638079895257296351843140627515244153498247401270066083688984379252700700302407524285953199384769481716094408329894971659684452670374538851359314385457919405708866688040422613756136692801863312453254297136274602020100678274104369841234750332291518632621864396828655889681994349426125383938650851594639012419017703897065006516605120574608042290135443896171911993297669764508878057249416815058286014152089424780761223484858948506652941128482061351742441713196022180118476108368579920282952837955647571648737478956882228600241853063539643621122634635173465413523650082748062188268787347994217631514835433622936068164956376920858789753371830762045308714571273408847863773204111028055820146592237419875017298372367018194721288272943067284580398535801193512854952770765179531273894428743884885342468469249959761748571917838421109987262995112103735853479821904086883982740979508750235476488996106642100743415882989395179203696265833487224046384335491308404894033707962553750834484407376732725109699642046586140893459410849535338604671811365466309735634623134989050268548388581165942122487368587299607669024812203947307970398681414964061007706800311685482022820851050789991332443491869505571828557473926722777565352619922100427661091992709398019830739935522755065489219059725252365468930890640360931981924342492222566512757573346042912820711871323645563132735809877738991884489666490962416325312162709464875297578850133105708770044599066426345305042194166454030661599447625108986714602960379212103047241886646250796890796613493606962338824538881237559365535482640554240240931022514932351730718429411565228861334940340772195401857285885577497261524903734318412585003594427646501963360925331873870417749782634649600957032608357154745595254519189403582203326516293603800763110297716492673343624254851348027226971932205480810358979769617640733144173631800668457244538857903236536578004261202474151922321939187932564770699537221248806497053106197594692326183657099847021736193196340480574449797429887488428174801516091407250108599466721300663043771837402254442757193607130542749220119321425777532036252522587218809468189495002809109912684126734648569834943942216955215404459380837055996262208936807080056016566870395503820227282126865426462006502791390187746829184608201618545356230749596955233245089389332903513279536438445419955456933097118715155798337085331829022429153774702518787122767512383154724195069417843279479635519132108392079756081042530498345496479246238958986551758051868291741497777737875336200965928918313380017107154112641716389276266846462124379139771816431699252241048335817111262577141259737412639922686012463037439409191952052114159370277530201488784956904365905579396203591579937577142224125001924949377745040859387398129437752121613437364452971796149280429763536823741874040273956601882286020914285310744368523145887172356506978093040581436549782015524024121043184571446670878112567130936310515634441370833463675710983100153197832504576247764771631667196517792233472466344060330606641892562264078178979232826631574813519316375364008736330096452230474843156684392447997023082202732518177375259815094181989274277335278113587443999896974544090914993417161326741130267948381836124402070048792863788088669260998012920154837520793800430115865658116064458515176889319317222680222316685534733964449052965560165013957541871241165737419422360722379608024922577823284572013792752232187738972036811688016563343874979602319437317173218750253627637944087753907700530543026926148296265485610394551073822024489136114987139098735364977059060920344213134328606719425356529184730453851896367212179704900815043330630585209113032551392849427358094600826728372980035909920478508140333241637026189803593672520649811285130154429415494042736869250896152518407085049453007997771481281763051433084048672614666472063085216601683337720879512018140002866956547632851701943044874333552359960787539555216743966317217787957459470769419171958899268633177162737416808788843450331321797662162916958743359012055016741750943593573235874105464207452716963876072042153040464269133775692442841059195624836243067438656687770034744317336884670005524562865798507949526145277039899322677234474008787484236915154737082511899219883691981993874663840855398879135175502171849332832094337211504620441136436365606084262418595974122670621490686061317261719723211440573314401717497547662639845557229348922355664782917090473302261416465561123350117280224412652249197594401598387706440561895511753842841158788263507971260705275852807506983631534469331168205369559328953075804985361181050779156861566432582910380496727744485097381824967923782222781906429973355492861670385794533918779412975823414376012958913543900502122084191410125223106519861399666685050535922696145313888319932759503345653193139176472578830665401663301700976181195036577782223320228058770616969931046452240220225606431668676505475330586132980716642314022095002701125717885598564309082533057817338483396482828165063341870333583380940956569041473939243616423224582558298949371023168324560636243665045305299273661257881914868618077042936768857046253875243328458602914740351236871751219797975962292262466599598366419562236475506474617727947063434466718268753924796741413240535645686067707435178544408175693041288277876064490138486761809799719323927893782116524526243586938378074751670264494805130693367421077902035041367343204171135382861600123269092026609136621049059893928588370698062947303798338356926611532095928910541060462826889112248989588106283482868719394462884481109522876466163834709376951792667190862840284437960438638355504239422863418352745143851619860666614722516273570958172871035520690603666130705097246166973568821337470971366787862259775890215955992915079284972947335074062165676484134786021059899839127182452147362100586854927907255713271103063419863085116041307998912141182528476400884358123393021970679346984834479287040250044290833444664993902708250561196486286777987852140953258428193307660412791854902128304241914942924396851012360177986010378508041091115945549788059016807807886612094035609740511076584310789697365365973287497439588679150542970330323705424715270613336115690759742989289529135439548002281754343058955104386814149632015954436226324094526114757903535298741522466127989939464928628922323633462119004889887797114676196980296880597872294585880635866386815361190771808957271909323360376679937876439011941838652508643201636889202621689764261349751750346655025638326896634810839318082778987639406209673143448112034524914227091058166623126663637746180132351045659201205879140576676073070086990625197056086876897615261085139125952825270178010419178724312822219417116889028382532892405596381219580958286656783793011742096796753563328004628896699886028133049651303502695372554606348291481135143449603347493373789879208758264867591599729438195897915500978116930040894410688392785138874012643944020402926753718859218099157570661544670776223592279382809809687103890589929346836609391832291411269501807920153158554198460195496201763769535658268270696146814287577271551394560126460060249264201873637561849420273858785273427086631197775061387960625489603495958757717444883245647511519626071698506211009578201168462828350844647957550416700899993792953587841195135806422249211387565917201008139895989009531330982116643227731290676435281334256291927859524772283765599462885189469210916693725740058913719572544863617890130446704000133377128949026125441837397720291114951813365160394122220973867272998722962071596061001712148900802299953813742311434435351375749886569990240489547450740918485203041838991265966303346168741646428062924783620364082865513890774454107201132571804314862593302250125309427336407528195227708018247447963296569355669874408949501957865322791939255885191579489891669338746861455999373310584688686569039841177355296187216859029886406210052372030700519127020322067405400528309632269540684332130211419994865320164500709245226664545513990331254065573605081919699226761864813212581361244839223836590998247590082238980404113713082426995319623215447294662729850248245298589618498103981287220858619837056925045591745697294597630450159383472889131063110724016840261787790613385027662324513379105717324755483909596073316808628718205219648675797463875813778745228957192617672949299807762948305053741367210999921406994308668547943154925450321725398104273027459161465008014154586696808117958062749496843149193684191626631822285570826672382360250597549581381932160266747972883172058526323113749140008179213237739470474849639722024114772824389293298572039286942354971401587176620741830785880770363685367322503278555134910185914317921418691489708311782959683633056768514103309166499234016947758642749623914492507431499475466317464158194331487409404342300623444348599649274438928848409324487055222446775279317512171793855954264506747417723724506055690825182241490762041797567297484663717741326971044012498633688016534449452403204880913678547252017625104595079313302991796977751108281359522849601635228963077408515852856495827401150678105894367229371059366269916151680303658081466925118868190390573715571002730060566752604790689008805018500298331905680277278222161611676420735095029612343148797347376380285964480439324796046048051800201175078454878809184893362398193188140276358149836065043207687530194358843151960971729337771140247435448271697879357845541490579135413086701802822776840196560979190428935417755257503157308895587621433517001123654576316768982763835575059663978334839195252481799361509813686447257653459661035908590711511915636654333947987166915018681904841880489161763207563146699833205914722814976168396566812762454078445852902936307578452955706007350224174637770496826274585589632064347004002818594975762863526389800566336971633890823497580500967690762512543303594908753635633195579134052573626785344177904317833601434322723630847567395020740084096086196222011493606828621817790293683971264596920943476846413714022277583768500842324133409987027717093764075534032805345698227657466147781130840733032497837989303927431199044654467048903520095461448448819510371313095272748207259422609114180884353216793440186214597485967996370884030326295035472053765702852162236462831360475865496509888051749171274667032555003050162627837877520894789709618590479312443561680905820740168639664574342062935922512151928199497324132859606032348828020983472020294514699681401540482111982076318505248804189603900783206329518995946986540907795600124375900320431835825083616618261509470551084760599848113940424105615860372600852878373085915820294830412660485985024939728279331184111881902725684027360283784356680789201822570554929653759972544145395736275706580416736667521827698896976686030506871450723228579506567554439815740528437560343861629491274888694295145625016304401909738368628735464691164736212106787610626589698641804553384621525861772641600151524908980637453103249346920235028422669678874132447817364346532061150822865512393118824568828951730065064046734764238574403632782395372734800546504772418941721446216210978208645301981972353923165849544349763060190569745168369107242073148344186992140772569572336717127934284910553155449660511876415166282863934193297691877288306212078217198262154869220485511518787295199004339621772184033435006978068594624826547559718175354766947664725363207190551707696208200377599326852946699443323762434297305661224920279146163976000843047586476597108293646145853639366932975023766094876843153779834736839287892196310583116060221856011826837356635808001467501974858828720736010024569492249768499321915861741006283989977668026466066602004229620646942259839772805617819788461586474825521595562747100591494818154660243263121344524989283611709348157023774698086208756099715157682082349601901642913437899248581093284046480462988769607458049729495261594701818896209556606784156014845599833778460766321628736499749768035835430255357722164340231216266446226026428883372783963238604192077638352605933280742817366155732162776005340103228535234186615639232715086697441359352007044076371486868920921672993666193249892105713027830055942747923993541411240189906361873151750080560795228829032533164553806804152174404142395362157135185540685088953763827298717960559277299135818688282075626259769467833852207051041815320253274519954834770947845500045647610879071783283142324957384129780850650969387515975879595674773376711952848044074562463916317425574808997273799114934372937905738075848931933990770525072399637585415975173714568802510472372426861521543417877486903654143853138403552427697135117422846075683176050209240006592536069193926597336535098073720874846453972915611043708394952408988461525651256902253200635745345171735246436877703442134445078679486577162646773810703665099071787836109518328869153108338684886344910764028677550597871636421427748869994538786802316373156227392674589199826526118700433669463187937146410074027788174095448081582549281456502561171166398987617202811970213801632809191983776068615580780840121324006688146262126660818562671976848122802392949107362437775252952601339166179567209171683086354516575492975456937781562710497767142658316666669720321533150110504197123564209717425699986275407898161381253054545654995598514489538347734284456724208366105608612073401170775119676920865633940946993069155748647237009092093524570235132306415999038389629285893882709364614909242460629129279030870846902240321687318514091558067107793666864705903959635202453369128696584655818268042569685183414889551510163724431088363467510051638422053868190099766606628675211571257655999690561970168927386243198295792190208921879783327849796384945206734487931486380990245227397523988803929717452081058403480951815833890343346828941523465589599131017918229011675122612327890893300904219390280444683642472568411129390305066971381849414497820003378701488266339269397081997240169315450591320401263505229715394476032629267588296820639784910623317059520275938843052740506580570162909005749387235130195544287595275598466465477709469108834308704373185668628900867056633266261263234173962004448988615617705979422774348147460278748803726918335657993389524867480327700673489255638380826203581042489766365479232395328893002439115786033389724959707283439710858148914946067153733241386176949766974413853477357566576649928914745581712715584901315869489996947098509060846121237587582842981763076499140018631716496404092019976325024760081937165502769949989998531693451320054395530333840938037262680557043958093004220257776061811334153549405545024936004492828356056678723924975516085084471482363333773636767165698476595538711569951519821378043869670242326615251622922361431518028782349245624014954616928279195050946362431863950184853934680254012899471646126438200605183366576044961512415630323646475873863826736634137956884872201679153108476634997498294012931417424839952475535394022688328018587828057163875404640824523996877371706950816203815202473375198187324155060043224878888105561924879672132195848092402201583571366616007898526119278659076776339877623982506963856743973962501580364826920772756668874379897910697819013120313509635066807884118496223690766572121942828771079945054246251392266721045329151404353566925691512727852215472489488979939251302805313915206951967278478239305290878130060808209490211849758771342365965977669456577443294771799432174534471054364254404540278723212308824875066835003351848359303220328449337657238663243211149908648730175723736889777324800347898350534795315278781737658471560662663105398073942041015493619458292436086681489477380772473919331224821166154031382123206651663788269537919124411523582078245104335015943351737175169690478469758627170896214737245504358765625774024494321362072497754958096115838591064924929074624126893142362905494339779844948333443545882693973653060522409828065813542524845382990181569741274874415624524708534172965857414283312967097805300630998109495527796772920490928196534969810838354122337018915995368875911181972231399729582365554883206786939487033228829723650684371829637188499721614798955556251628326413749532545957009830380776927454962405218726467936005261572388379488768612676235561377324620598963814239881786123740382545288412181910212079525389066491799797681950810262736714294755614584064648808528940498833963347186053654396937428023021225800868158176954350502080765116036581841164993443713376935890885782841630492173934155357782986586587171958480364279986019044204122261300019318275494499018673553532146692269672134560815225970060485758788830108348135963541568522623408256686991264160394984716062482644266745603360612235412133569085793008560920098209437270121100685248389195902186560588168858369395130411055834269387009335623143080055069269879501347624622989183088058300168891672585277516597350638313036574608563833639080252216760845244588756246133293727718072624929625630494338008573920292126184738775562869430411994833222376857412341524842888702455334463235645067023024134793136852269435866647641702313946794249544654263528699071248824717083847627748361661131439975575418001749981921933044805337023090040204904044897415503280295239240353430156416635487726366724615643520665620418127456990890854338974965519342098351595296158008369915906538245160922402873870803582754202154432610500577871402694162778673281816308109078512633874293018321808120508028948754264250662899592313915519651610120883716374296162523611769027312805344695983221415853534539739580734295847253542261914347640683519448919039252650296953788010783510154139207194888402973132423942154533580840963860556489534523198817041203117351454338914830089068380824881427503917489735243689749043620770070142151577655129839895664536580643065118268524426640332474142289370474160731805101865891936100231716758703670135206044846365532916432982723385877544590894961105413715104118492449151161116883640695393341610824227062698071301041844992170456648900313757291703525307877755091995513806761835485279091928347542848132409190347499584257954890850413841000441728559997562072599436468979691716434921181237569556210297019015495560716102685136829464328961951622806469590701856304934846553828110985106149873781786059588935731836474119965291789885998507516513705379055371565309438877093982206683389058333719997929446853126517327414750718708929194887338664652403202753427178593302770017329070018376893470323752123410385752894286920624027990544143867962465905307345964582542757176864926471072946904608053134154517993623639885998475512572080739287511559401641811025971444677932756031085357083332648325049948257897036400446060893885673521955734444209770303270271964416276227861672309468481511411729124000328718077686465424467368522365356241854070469649207883439202317331492734802183141418250317299892942414655408575871563127735954302673744112032787345697816532493491319995245348738437660986617832638654480141727892017862124347519286119830244041361447146331466673364211904763951050025692092803908090364957385373853836945988334914416727358936232862200274835755207002228069049290890615358667403097946634270732047192716303046942922015260030446108205070731834715491203032122902351674562077072045267367559210594146277099023260784353394754964219295695963255807503581456925388671257833606206347623356901774291342648836227819047205432159380763362793111998546135273296479597445073286757216611917792480289431385138527323272110191800853356701405286175570328954079330949657872473111343931670289732979281765956496860745686694604022134526733950236086473338756499739654992971351506062627353136949768691396304087420604299471381699387091065549321261440341054949420824601008820522863113098422197396077139360054900363170198699833413323434234842030437500590221832942813666696050790817791198723050588002451854932003662165739444157521242874227296832325898555814207235954564839661269692852375413339263050947599213261020194913643623800350703657720788443242598885187396829463425419718403966870588017022823629183113080818594124254707039990677406093320271972851251372926421397862657087256454088107532548255887452382417985771937189150914814609252566296666818820651261418611857254754912521708248562942316420343472024743626217267853810041965125391269550094031582580292732672223896558023292055818369826562697994364605472923039690435135295202665646831654526469296336922415476813735749523866448299077314183635196181150321701038891183519117504835265701221003939047889982028142415875788989892543206099748429504070645605627313670373689099535068458090712704319977403287251100628635831699379416659776523855228454121216094949200532721245041219843858135159803534366355119138913227290961313198742038168746986322265354669869712945762064232079902765163610373346399319631691021624943076399178828666090257673500752757988945250217033257969281687744729935551869394085410483691260712161829472770788693114806191579727075931539748542844729456352733095805325678118857167700625721028669682049796140783449899296667292231770079802773224633213119509181647872831052572155529491045281104462693551133276664116445378116907849313404668446571805956019847500474500985765335441506992367898793150546223078036248099555548171218831838009568472957419517022039818937062755771730107710567588301568415387148867468087426515928530609922829079761795679015631184557990846903236591766759879492394301032431689312233851756524990357122116746683398019125119075367406530373439786786497524934557459678460266201141716023326211497920755697266480166433833451095173015156693440532663354446349894127029318922969920905612648625030334192511903959296320712540780008708212468464113940908708401408993088784697991024395210571698971917339668744885759050999531721651483382739210502695990680336499468721114084853344263012869115971024054931350911755219878064809378654781115932280496938522606805441174975842854804529686002145625293514839475780549787960677772650992822772006665381004071244753309595985702772460385417558464584776338800300579137342951977161430735005972856769963414193872535558519695522699918814013211410488254105073046876848714223377883978212813728845848541134206286210567583313155668630393746907352713038732721059828155449498890119006966469211682315896896599861220203852458813844982608729276279828700171410301586383695011481338444027400468663218233649026293066693391543568529779381783758995271323381010126552040568435622107864208375562291260574470160846352530961135150205054585356956947946574674096514597074177122688418027949490547294571994182016948255176952224541721727062345684742913051447062178373548625819688491692579409342001548494812318094887543345181096639325894598308661704351124028359300130179715718033046074003639093172818995126934833267015744926210891453291413624511299230823771654171522733660299896964223269336052130652918289604437598803262766061010578476408894412914312935664179416771703593830177901120288879798480886982363125492920165522945786794222066946134779143055684557576206478912065898388570168247206275789389916803121714434156458300867416606592374508629528109369610280717031649453059271635314113525321767028961979044145645389897558620793916592044265099411690687813978244673278545487441439551434322812731855338289599429611362181238299008016544185929252933084748738217811476117093280445248521006580149270245514920418570606326710961184582457337511403746943330625987494831578989775972394297673694788819732977493467017671187839805725538644365389909044083193248517827711822113732324386542066158314388620778804935039538301906900581461309850913840082853498832563639145190556511656598607882659363175218167843396655143085162653754078003632007026975321309320517060695232843175704173253178970956448057093640961126727356808925886026873690121752662066109219733819914543880082416847126839755492524010719040120665173110277262551343078071404208779961957009614307523811143082474925889783236985571285975932006825072642395252388605425767702308941524510379899950437215384963404230380807330514091526467652898733268107493345566855691799386708740865809812122993459847168878895385341197226936036394051016449717720022658930660478087450635198081948893616244607683534171287912462046552617640132917108766308111780308276963871002301035387380598249486922432878075898073134010650236789316306326127818432090172735331951365958538433906422935721047407437146537544677186945355443081487838797871081014771598454028327439227615195739350757555547905915511017095352614824548851082047740545497347436674116049261651482911266714083127900501713794734779597435545176740586744720382489625989140925523112439887860959246648758872705936447934332656785072641612875348089736777601784356017413645695919660502460698886884736816319768213526186307504938821136254740130999792918554126515143273975947203177966005705259109329856897432201174731757230687588871582753702378627550997900880732291067422682188399309420258890546493221922036184285514039197696737842912100637459557201189153938768382906832553681404437093795125226079241668936200724599116451956501390778605248454816545500786283643164009363239892371742742871141916585690620017279248233513306422787820311506127638298123226766825845036643909943121809795061792731044557186378489446643058894597298946251871547501407953535812313700829555239218944958634252126711046232089592508484604402512132576306900555958797765126531275359095349081675437251072460694908940928092380046821375491878344082193024971055007614517857230800361808354523468140143773967117190006036242080826602450319256234605905646626340881973005763531962703462659462211397980050884965510161127824150319954179703911279114490558905891715284618977962471807293372392124775628149725326845795363492251314639073705373485078718573608469695994927182674480592776458998264767965016541847625265618509449957786948326487804827122648501075375245948996472797749406698463737549946855192678843809130764131126085625363003234266752208924899537475743534493181800120068169546280240483383339011486748646536591409780087708614144428560188907135145614656573296957535489211312264068470383037167370055464080321460133868525553800824839766181490877266338713444104891147696010232443646632693392227219935393778994560030045526619531717113575621311487463385426008524645167702230685338783089494166457385157825966116011217770167751150450222968408953723531149322462072339139532858342865841103546816310442322696634831130822361987557727734683868055570067259102827774864485965792025401129990082100125145274913307008802719176570367138277711823550109820526802766845530061234888914831136237885407529318289681368163879978805375048040933983783017122160883441204847669354628093623801153306723461950796956853337753375384706587318655899889750736348654819656435856851150284133766916169843309220518469759504424886988962007114928127657060889150722971200451468003086084488180447093828089862724403749899332904965103220510898069270475236752399117504065402901748016210003794734960684651975013259287421853138028189877678310283440095130845541347747676137142821350756472886977350364784100111432699876721775794375536684300401037311927632894481638717858655507605008205676662260356373571720410236315066487647871716028351143811621082682025510161128301039940920048430809329581908755936862665848460476308491077880679593551914213731161509067949549940576578059520137811450482422946854338733362730986196245597752280893578653496694995379385691050037530664013793842309718795964570776755156326479846284131611872356872063339873966652784300742200518027265552539082017980333171133966771859489812024895635315098807689006692522677979234344963146400081549945007503223020965298968018526798555187600872634702997646319903378861020277983216509979790056633599557834577508664722869427825559023821039445034874045632665753325290322721501583792265725569804133272200340855811907493539943392856530673074423116444887799016976773269224645083229863220586617488904579338266142087397762732542453800152506511548504883838499108749528222439738202532050313413810312760798787165328455145076333423745940693883040049988473577330541569986889251728511579637585687943038694345106968090743839685099275494485140303855936460637846484671243702595418919748558616383329025882228302767534814739306702224807334329982511821814135879900866412396991565821013730934473285889306891204244505589007716269263564966100908061913727910567556941010481524974115493427061294554689356934906562311535732160623246202710603598030678759146231809328592069389731237623497989594059032110282001354896839172357900695603480568195685253244971534246738931173497488090432047074568381329008311006003409302904486159832995356256818735717897389340005893591052675283839377876087919877054521688435889042506864681943574057280632241463879720646385554544220287342521861948491005552812179541451431514336870417239855586776084946698670901312645622105316941160427916705022219857733223014133873219020403444317983892792422801969108488527077322666560878516942862797210949480428143430231255254210215374992335882213465292342766273569080763799680651294815600222086015668381782555242576610267383716088748880992935959469660705945120827860265581192449892777342482183162826732085540120035271753823254921698976682921882651865578867401357488088866303901615961183956525367299796781445907383526243339088342751108895226975731862782856898734653505473465068293064290414193929379893743740170744176083975008339584692355941582803483635157160838115872818373066677018975181901137932188136411673434377994394182806044572408918161106887007299339063108983149396389084073413760704341004279149671979598865426822428086226404544972632225489138819562854819857830740022930695193583896677811311771880057285507909692043318764072599401770998920336026565186892131743959121339767840649361433247144581794512524225980817170596019303869965305577920891113187514197009214952731448290061056822352311248766850613238787150161656058489270280519141853560262285723217197448613808552282550723525305035467704693958076083957753460258850501977894720747406507290711846321353362577648146624176408396377326539908270237430956447208498545352722015960600400558745193305055913700617941540061964931652045113381349084850407437935109003751387958025993824249608397070132007458089254439994532851832137337794305231612833612315599984469014860336706822669450097093427488392835036662666569842731035227255629550474631284990034956528677384312383734016931834052572715839460300386149556542409237883132583118461502203821262441288726929692670685414323502961586624218061828247925686775517881538685385442119047572332686580155441024324061218310852323748634533558953571671240941047475440320703668348720746603698441837471021701462167520650392553382791599982427114466461147478157906031483249412126729178108880819883680884706621985020471064349515912789459768161657061891644876964382567321299933314937275790482521139195890589098552420320647201949696376708467352518105902417908493736883161945448148425090749731228130433443977804738739579546160880051452954457577025506302504275810798538001143102435276133382461621050665905305653329207464971325914309096043033889616908549312989638280130729742186657142654914780057723366338601122526412455381173567837025289230319779569099770266134601665650850702753271791846448668563604684845929649368309347097557871325278338413375773572780578385379139751230542415624067901059506759918688661696966245922977361093269952608534433049131130558964821897959947145902373371765699228790938278152632658387842212277716541827476856218155208251697822541976681855742127558133119588388358472048743412159935721227898866369903019428580940116928110444060965576789240838172496305280228914314349164939270540048353088493193902064887090083338441164447351941217382228028918499402267072113930037599307678992531083786445692154214801460952348210105280315507368387043109527067516306300919313626295297614538955969619294749177450021659102349804257906330559258504355852904692526739554240102009938176654442111453270319785608134776243573826406179442794821913008431402695697682129225542332144436011492401990361009508426631427909955654284313527460121836364162563589369879885894005820851982815769153976236454664593821237978155436620950804096335053913720386190183597910004896607671088744681285694228185024926872365069812497064891747211310076942915521705518133237329523947328727021686569404835788304418799479173838229560953308084452405510192955929814442986617668956174019252016455338929972535473173451263758708925303396555620277257369310998461168317629351473106873389498188132765779021005461488227134634836496845776538975158345672633431596447190543577171707946632748365564244635209209926853242711737637131455603318085016036023146900388833934669487706655884758857610348971476999557931325351544115903658908333069282542947835606773571122628838276981849243033103172059183223815677667357385143561756837882516799480859701604711945681633919700977067588941914612636168980143452274878363457343255548843076961410760454051064658528142207757549561540368252160843765099119591785914009144664341177731600346899265826473744110126393141325796873113360539596917087324233271270716575033140687094328642022934904349408034272943423416544995719031197995175555011792406253297880307466177975091098070178608736483452511965085959739797872704729539980274491398989575937866550315209957139689737543447334765804633629824682612768670560896809561906141565048017119776060358872171793653808287837263945983080203018465837050543622615182376064547088707325248787167333101921217810860723463000131843138097832940590571667212051733266884874205931007680752638318503371161121484571333936615054350827840510567867005845801626060312027011841551202699665889315149693467347700143966760646226558424171599340834809638548254410770534401450899316720891576814585456820126945256049383869268614907509208362541864941095576128124765664121861648670668915586029501804320794372978360915813255698748543653777528800034235135522532955100322338216652886283451179820168905395106749130466953689885479597601220229897034784275132348452110356714062342053880125437131100050092387882534975351000816514508096055741154425236360526529346196362684426522276684959592234412303538339667237530331809185934392379810835807555551737664616208728496000663931724806051541585562575429385022287589094358867879604778846479764680478902663645003180314737631206891866265235976535501053751492300052149068386019665592075603223764519891551330205430899154739671043126281946476308595685643773468802966605094118818279050759419312561563454839138390785510102159405602157272303707711529254146429829821347808176594476374688347420980029421739638310771246707700887016303185229071607293051570872943329929390811233052471047743908146171341431308743360590694469061928958821194436626213171537930878315110880186848540433828568605730653740447408655714635818021305581346493374063768416831735324563341829687012694893643064367701693001179427759095872569437433753184033797460048503322603677467063779687766358330660793409990615148584296198942439999510142288606561029047116432609388004745674219058293790101083771905077570242114321769319051491853988834200693083487812292771368881243568484217928060326111306142982485886875856793091947761256609016067847249331486349195476110396434013485962244602266692867669593117959714402931582549262899096711527475107940384575784604719823649578916108254991813211021101700167022900396773116801396985809197919583515427747458821813795618589729315735835752990130399007590535022824401446709866896195351315491448059965979785982020110065705960660160700913710429104141035022716777418674449407107398153244383943104140037956561058909233376638346400811285661705749009670825610258269447507784820769631162619037723403537894414317621159345139994234198627560288419578429393583185999065800775358193161432468608220732604256382991530646926535012983979861609339845199092365545314193627246021974253260056999267336617986864854284454244797127820717147913471701742736495317907621751458775642557563082869000302274335912207483798378233859962868439545423123605593954121956024236205308196904264761276033143163106818010200283987196229997946589954192065231309457427285211550122717191412712121409376606239924972182152771055819840756683867655290492792301168266704133362441567789518340401144626984795096156773099935736985976141936643919261909175273678675249095128949977496878531023438464034183664543917586893232164263346556121207816899787930919287663366662476863368414706772873725030142506043349997275583102605691401211097648130158428242536766568946555312780232234763805357934966757206377643273774914212515712487700813849954188428232572260211740303922789196171786830933202409277002461814329245887261115940911484590568031970467873014518350337935339345799389224874109245903970360689915228141292017844615715660911857628818266441669462825110296430365519538738124209959225417146512107864015421491367017228036584028922890059077834306448231250363475695213314229960332082607924744560783726430865593459976048746337933252720790339126089168859834967899843646161893183727576308445902122442071976138205451973817012547110040151503228683904118693572462824686836139667951099870158557489734885149384272226324880148832811332331786849570954881790003494268604647648813188845020366442464172396403474839899204140279781310453370958101872728422193140245198990829081065996043536464949756105390758853338539310022031798004138077330810455166377687102038554750231472619479942840070571922946584177958348781638558613484936006475055657865772181751471177252473442099505782284005123230251052654131183375771036253093042976978687573623361018070990113497155725784817593045084588769435655296347768573461175299238588319133252965321537378915172909926933286442695168828759589980904553116012811133748124708307477015150821583975159807148022604707926723132847098901160000804051763225179952472448415088419465297578900272026819624158191350217085905676939059659978462305753282392618637193908045390230117611431609699006122416672235345793155302367822974091733845210516348288728684842245520124201329968316831079407099510694954692337525847459096940715350119329681286579958813326246620604024891908131801215355377317657445189093896173795279228654182407766267880957261013800827271625829018223796061878504742259564306536185656365658468085787759456253273457691497297545090037653697406509399271052634628963587526857401089973284950297861749167156428602033451463478283798296239126053601577846356744911548342244250409431212223805710863371330055146600687637071310820985068709366666037749854386230217887108995039835876942481890975144113947680244031958121169214518970523892606120838779977761308805022617247072057998420697491051112591531317490515676224603483417121284477852262675439412454729828229512173705647620683505424621331642422338880069264330421653354156921224739778248786267214373193465180938560046886833926696036942163075754927832057968816091521045562757597558644302390761020547700881734864767045268854686233100709931739403435216962563265961219805522516823404800500169066698700252530021251298719128139133224462713077479694883278349321251397715055879529718061179595225758650713232455385897173663881711231746547664213878169205225266572448983993758566267311559730938991460747873486776972050917643916523646448071214457880486964701428702721193175298019586910251293300893028303903395112816337752853607780889068620075778518384074325386805193469708165514664616573022687900753072712417962604771855026409895319747441281681510947572636337442026638940353170920025126728885709694182586021327519278446437237452343230085309331620990020538366106633801591042468434577028279110590256086507004943541407062883026594068879321790854900727779159062398205335143430957698937747929028282587645535185832244670532988450792127045102998863420754881305465427405569739625356849846166730440305028981372047604044442904979443038150786553188179387397250894165580311156597190997648369028836276606254004365018947990903227146002226700902818973140012014697065654722611960018940469420580688804091767907572468558335881819710458610485826576459907839669923234824108894278201077438771686020779807323201286806013544215876215472537309201494177533900009091233052863681022958841599304928610125418130848185170019737848138173196682979001511885629053124553216709186793506944942912532885686111456968838004500713530532804321709399990425245388917697670081459952276370022753015519618763395656511978676854891179365665564601327076089809524111944501834385342324914683324252742227128945601557230885237579581154889562227013742192697869452959878541706311220625877523973824277603766924382221879789822222342868730638543707059431502624139125836435232957233355655256002561775412237931723598941716333782199098799829886719085141058456020289344776109707602967643644804279200327365488490003226986025795636837789175263108587005095483704095534829671729839996196784868918653433954731019874505278206588276892653911010544236566400607819804122987435294823172259119401280726237188087465806260975491130557281700812763421747415447509180458057894631838250798304825485671649117632523303965649152439336459447422313310109291406873993759986221289003599543304952795165135384766503492922056444051426508904105451589989387596867873807886009929399875024332854412629036622813207818013445483537037270870564438947722388678782343836367838893027200296436865861756966339698533931499804685941351378726765108433371905512300837055559860794120501686385357814201857224176267021297926832176769581367106023386827814778371447612371073068913190846698147431833362219247163129992066897112293812610443955363718966840145227284923244155793424924116172714760563434703911179986960168132379947431163512785318600861063042725628381768646338849521948062461020685805172573836219665820654246418059002195011380431654798218899247104370732646868479541436879372470075687831923811410088933265685541265206821691607429155064373289693202045726152413047257236996229282000722347947118419788466198662553492624327991345564198637235485225076307062233388003245165263488618992670048475781417891486574141793178741761891268000851258337128100493755886989626274519080487099483019365874979969139475426910739683622523351674018845300201621705325702438725778435431419286072789346483820831993373844921162779591472768921502977869588082880413714686331934996367982169940446862304260503393896763418516704995849050016482968646736707420260193832198690049351505201325818202691209771004545108784852246780417750202747305410539416993176664122184475377741948994252038146504030784211090541946092660576004748108234542004472461453454616522008794659529188020818797975243590029265137641861453370207525730810688628304105975597078069315719683218411085220842910026913604592405021285596324724764992818037253700328068964896177483182064073069304555038719532447696857169632187387683188709581388324654538605339970645630986461543398893226275599814295414812311755851454795548078782333468451242063277098952779335638458576736414468417728788946639031404309424630970992864190123210225391632507271087774813518101062519077666182825479058798560571362921167343926952853549247387732322408000519054249612459890679636306830399972587891617568574683042684905501120999158453335443643384099004151670021300055300745580929162008458937726775039416121556976630466350006407860858888447767931630438864064368440884174386505002459339594905194844793254386837770970426778169023678369614588989180735812832062050933186457656692943979686967295529845065584432376109234283413178425364481697112082915843784378242321401907736894216725926829981470487288110539290738362492185779196463828754182272389903042221340064251581247190023651850504573017676846051191154546044195742805189652647731227632062284252670815612232125179633352239407960604252412842768325650800603074750766655645002453063001774166505587725842643535950606903458214694521649648532799479770760506219877858935744245445124048899997052628693620447019341536642957836355071967608028584230751891108646257570733995242831123114326068313293968056210102186017234203490454785522828325694864207443867333384392774153589849329686105629747682635512524509680156388861239750970660270492464183708515377308238522551719206280573671859316932300116659294601287813568153648119360802845663065589356657806998745950332773021264002129301752316343959011733079669236306019985821341488318728327890613743506419528571040878683442761677652924061467201869084870543318065465544629733481852242429689129661618320576344441463476505527395551326325882973944805874605365467791025463786534580721426955092667778378682330319491769199784640116701882356240187992414943235403037555189119160193078437606204324216954723079895236636223212716654148689688978091460718470187685954590209679994480757674185582748657465367220236543506749471228651118634164591899266068361465911253066543557056097256939839347263021388615319918164222549690541074991373467233874989530180152554922356822378714610509585779218079455266751591205308919003439731559179438784817410270559143579855142504358395966670639559389056290594533123644006792714847312840824022357041670569875760389746221928030778942175884152178519481690247114306975991834241144341324409485390475130238290358375626218923416408708684549859779544966474176855826254372493919664137599833704728325663457040946108108250953557231856773089597099566121902598596164315974536667752285197940882122100789363353361903332276463191696308320012251188229412699709005618342729361318669131235684513982657579048806502159102059413512836899426105696353159504413139734493298142378876750517751315826214958367560930044308697774595405289305290192842534113791972343338916448111152459308957287593438040413660778474121872716587687312459609559794085447655472842391825024920961327167726883061154870271218235382402932602703455503713817055175946153995408771510995104119336226135605325103115324383900358160008054007429370925046237719954097768633564261109155448859124499552762254116743194823392707916595727766246105429513275404729839536946387694845869694409662979127289268085156338995411040778344947738107810258070955291344867468106581762505743383667837708390381702756934058916798803119921361363565849348480643328314795737960521672530804020984408240609847136213107685906087348260601173005563135320109767591540807310381772228734835869452512331775579539041372256266365626396947731851879095002675699960573059381955240653105680667479166195731481931083879093924063034628790560848308513715953038847782985528094155232574071973256014273261928886256126398536948687355232537477919029640039550674566584811332687153080899082126794188060143364618190552795615897355772179717816838752723558447020007189839150578420747173436212999293306356065479905333964861247074163931612755503680673288587373630008093707386418864214822848529354360507019472489446357346778549856593416737043426040678127451257371007392213049412514012977217458634379907131034718338720723194430665304641970679226296985755010222730786801744954440873580463623004134182318759029387692657044296961207707688026727299978997371774332382343462846034081508477168416831804692098969097106994859033831463912881385511734334816215190535861950308350043994226279288231008558068872521279099404947934957080118504864622666704093534800254057146563127041873120842510211842932534478895527757031233571582632464388232743599530510622427217546172095173359892435939034129788355866172223238592486877456928008632847052158184212465509728626049219204905364337161205748563991699232989070698142853817427094738406419804101896928923088695651132605131876969274902670544468713577499446149903148139626050694300309035860739852658361345667992272412852461410764088556575968140713216462308116589947720609651453423474474386173794668975286227517547149103783361210035802424764908164679794174996378671068406331417035739255441942930983182683045992564712575624241307078895089344880777735890709061944002657976666896169540964192901029107003371904481008248442737577653516454355299928384021524821227238735255332344025629183286691756205531249287253865323370600950599540304787520386049781610134522868188928601312821877824150764903934010099402592566716802277920073666670546071841823751163192889865015860007533201525611149465345052943466730564123628139131227197050463772893661664691916059444913769035749514063388213110802560064016867829185817741279257284252711113149603216011839332634781510836315052681836734635020839697127471063378975139625400211578763419834851602022123707738618688022119808753368938578081311215087297895944344207692673115593605767732122922658721867035761079112590360698004823700473925012199369581349235889438235153493715854644199297010832415894450823330290251735091988140375328860308153620042881415413703465202990234102402642572961291524976157356421806273622361291073553213082706101990864916670471156745014550370469863962084276391160633975965273777894449961429827893999935901373797265013424243546678713544912894312034298128714232213625356639689900172908878213721207005979263554379072294847887160167210089836424848134735206772486090415989126057663287084090303892304551776389680297238097616108409000410220119684832958377495460929022229601804610606652339030627918791940408362845767565640912866843095700213413158265144239373306441037878743884102905948241313778698366769475341608139390982004059843489050736103646403510979373930351507351553057304912950788395771410343448202367467994808173205308354366845794593754159467754998843724344539819784881000517463119404093935570327226405441056978062122785903342073880138358681129250323941409410044134938079119127806147531783401358424374598543250280596036032170256935908851010827701231525627051159599767978603798715672409445960909602419989001427330339252528781835804379790515850493528089174661223214119196708182451298414813294112671510869802660043834992830988264306044883231042751669712965599550205729704701758636385586336711375537273138155427547864620600800872993061306882207224316177434741816141827340420992002736593328790221298914296236340102229021487648192325893337254858213958985384192935262581434285671910686107305379454676870581042417785309188072169716417445966426294028761723418468303975797244277201830253817685776671226071071659727074867301453509262141264615353466737232483942069948253475792396966128998643554961131183845971582101306797227997463735442584628986837668518686734739394181585213743469365449664879509013265624218084119465590266531843518603957853210696756165594918021232947016375066803450633665441141027850626617206976876063476500179247119560203344827431778247166440730798088913798627275117346960953097520678928463246620755074439839381870680010050598595938678001576548071322607677728887895376365052522140345822750895406273622694298608932793934362234853710092765185110189973546840401425859747606499600043513768640536135367564953985305519231712769681663656029375785915143819604332480211214753867628529181117365357355581484851165948390742181886421816052232909560999525820063547995228733204887236627210121801459504306269985919073808542816383441235726751301648901401319616440028066929403243291011879734743586434050285673595061084456261127162824690584182475740809920798522272565272564807280753853590514395877767327210156906427658978671115401153337242996060104921544804637808523639204486784861628970319376365635212343935554178491065343268652455586276601844377049117441414267368182826588263224002907390393682472021674738380736392848884824824384097752049941779046316436117598999812913324078298739097653422379823574349448657275338927136950939699593799898283588974591624347819253980816302407481089858570384002855796413634158645706544805031119153659833487277564813140589337251536659351065203579589022603793970378029551428324315705215362483035899676109315457798336645734452858672522975845702189356941182152199984906925973953754699596250733513252499393725248860998853789001867995281140004892699707140233494672170515129730726743875693348978789244382115074970493409694596687085540961177622024847559785527370010296915318008444336410133756204036606899544922331495194859565080101085882174702849828416559349910765543497416755358490817177316426848142055383685123400519581987812403568827264396862678523561282735060966252691704774575066432563367619514924134623256648660026861269591330691752931125547849733330201712731676940187829957780454250394275520789357836325457509554508742383342560422118168614500738776119272848899841012069956231396925444985125174793512797708035561142452457789025751516325970108347011690973617420361509005678428476510303819731567912753928032886319942031272413308215763465457031521050549486537740223253296427136126978783418937464214957744010245054074338447683430921374937940422741748036493859558452679010027911602082438863580048511269417974689114751598489149643273938119143438742953089892578990502945023827903940664010104258733964549783464430558011775984463132121185210115087500606503973028038383327352522291754099419604467236233607299901197368479861419278446616160105058746990397123050768897100075684673122578622667120346266462644410749280693428734294039732789926224323104063215378000857413073823919738876082956127722581999828857522378656991186460564830775203811111270617222502191356912782202829264545492005289896329587748622035997543408803361594148390498717720475439332028558892273878907851140108201526896711256634386119622737808065236640021501316969173574323728649669236632496363213868699135726535067594971492990481444329441078252416750436820395804822019597987088299902349097352543120496769927669068778075977880752411325338927671565695911746062048296323943536108442029699995067073300812683636206685292924013861031316915760746047562348426113872370161197986053408460905029453917688442726422467404208224497497818007008054219509394332173246871448417435936176509341128986124118529376779331030077245547001087241748750832480664390805688777551647071185668398455141385316892497459652603559270071476455141204253891600219410813216582972077851804163917376532315805146457250502080585930828406226022650776872599808694199316046564609743900836757254740105969462412580337889531752139293794818547539857606903934862333567872222035701021708853120422703616090402995428634558208266988589325308287234542922857694233737744766435037125201412621160913956212616357373913418345739306393832365601658279130054723932188362301730868802883019160051068278021562989618858753073329253575411591747203732821313317791157870029023932028082197641302827769311134329056884147723309934853515773004376754938951190200060711393133664872380037199481922538036440119848597275964623145632126581430777851853949769458639461487069748206931756739224945793550715056350922172013720211962998216889766457730574780583997644800385226584051964014888421201866198738629059927392199704500813958479903967695420144781428941465850830265233333253278938888525296128878957451352717577897095732317825720216689242506996431566591197899396147237461381186502639766964329605454433792665849268306230748496790208444462998315649410684761685275236790357509121006170744820870767857320370014292031736675332936473756637325153840236010867008617336229291310717136738119941293810971173046031362850027403540016058639057418990421736978014356087560519480980453017699797203302792904038447449471793086910293747680821357881787303403209771530514443577446278735328365929139624826046660242971373121464577900143871715141966156773365388801166654873788904531113291935373920686400571915349829343328076852253273833111895926736355367370823988145490296599138753505298689985790949903152198318806203087867386307408560905127194347416498651214050913356967933629652852100934504299386531141289631142841322911389729212018660958708701253333006490088584317672828596559203154496501835755077298867397978813934893196126345512369693954682421010820033221183218595504447196266685594859864856942956069387457380650055105348895462537305363437752961027037357690720759182601207314573137899208980531543866233160750437466943157590518450493907197977116470894603830403582680983039107139458047480463217082220914901530312011516594377607893281258272419247331986138981744648060261271207780500509057837363795502268332075498322609981908115131758540134231079963857268475072842669515354394091099594210665961389612973599803868276453076094375361669981185231213479965364981646940753241349080748456467516025729491330282113043862775361577977513730150729293832169691340829582616680110455353017672949330829369262951504639394593016740887225015857453171061711734638010563471222479818681274094663161744579270151660868913811301745615511254754580809371736638934476862102771665372083763267006793259792173523791697446880204930125442070009542009854847444552384188568330840476155481933915712665161868825677305211981365798504415193982413564316335017094463076407930365424689959994726551074222489611949132559541888344381724342096671427852962451733900624416411249467382404871745732775363126262488559206424284686533403531552762521498745021449413624230836041084584889349474615521349343662881480442745045984089925726279923936542539373976735326819631683535625488598099774827862829820382550413798495363368023862763990885407425217039074031842936670889088451449318643201901265926302509203846305305099637154034768073346056129140500511840191836095463511681496187358965630249534934243247420941257468908955932326941225523627552009603362412376013269259203112335574912969068319724228523911331304774238665580636308717093663918325784841810421755900944246566317920633294871044372954331085181705714663675164745038022459463437578662974476227833575415233596961587513654663872883831628441926316273176782289855888650447153935344188313577421801330276257605734333192101202267862820730944506830222121385263240545664842378895306631319649417392383996708842607425211273421713546279587030579198234456325830524828568284860919319563960865004668404117018295088938912543355728150837977975314489694581095063521158380093043696952946360932791881675258242541284961810881466974862117617634494459520472002066108843056305985263194898725056491730543460697383277509252436797875834907027311681472976263956521368539904586236584638815833737110367752231088294384400217292108988935829413959301713162801650763760261763773409976096857726947076705832844523304251496939014614609674658041617561103631016868357781246311598651706703441712766430413867513500015840087058351905754744403694346944696747073858088489041758949713159140727994851231678600596523589301712758834786488305667211877451214469734314885844166927703326558772206471001829874839632171766252046697907376498314137123306986325101772821973772851473376538158378535048690886677482329435964615304423022786411842000815556763660786109406841970047944410199225656690033770003125470433669163772896846972117580878840509794849050341493699163318836093524636093671566404760506416558678192974479510626145014898495955037380693948802981477700143940796708175888119946374339916692775977588883360349683753765629275071004660943926584241859100722391373820854877036642345307390042292189462201619883440677752414590572692531314881101693874348840139537225955399663371089192813654296400691473100494015275605747371482869846616428175401089609807673674604676367566939082266725378729704911665581639084564576728585004653364804210374220390083300786188029585110117080385836052781376756420387570380554238485260590142683679923879891181347715084977719781553699775951650458177607462511059681219303774197031442546890272079228677462629336189997267919416947456435565338052975101302782068954929072039299200342493123541107081338464916414372422587706203032630228279650762565195514462450436723696566503946465491072722319868815208939958865244804985971024487369087215907894675462855421399060305509727666000313411787476119251327639271340771840483482237471470373468582150829683612386475523995291243487853752435977821554174594418799389759139078411839242550683413719539534774735267485053136270774552677918216181161396510438406314453603604817343670233450424571536884884853661375519202725944752956653507422059215629696826337527120961055295523863866730222980508492297209331435510166696175080853561977558926712011796887549431767138743964587604629822375273326848300968765631752049104325991139394878706921025300692955368211526139593539241267303714585698286582667983610812618627138741146652414672694560553069656372075441501343232130410411648010720204042742420013539761234532586025758952722134671872260988081172731621096411182711605605735545042854630817616902528495952856580256208447226456578199396983597929152627007378737901819570727595134175463665941159143657704493471292905778827952687824272105959630883625006381199735163058258589873298632644254194708408568994731924753657259693303353624878253794241001134864383904364668651917635503832156303443234031510972168126561673297421881356459185934047800035968112952970845481609665868950708959548566345894411015510890015420644649858037984694057884685403515722926989080995322695459264892641613368522678857530460851523163182736131842792319486023125923392135502299630098747493844389454786804832426035983323656355520267458702378867415650208498071214123064220044164454818286982785134418817985765366337775465229756696365060775511522361104581175901529257203357341225521392365765703233335732619571272579254253351750473023766266286232871266013894867711971951653188066243904327610719105361912312559943361583430946475749901728286914162900975968627754204388329478764212493484075469893221234500926230375918974900831545706104055129098551794759486290321539930433027322602555889879552192091714048501472707168006139606406001209069466500237288790940715056310263703624903318754210791964156075178105910149934847494334013046153187332409319921560178640749985999591389866133575980593013479361982662502136745814431041270072600454868315709597907331108847341805381697864743271484019429565975454473315130883611185735964534752160273293249548214946698467590580013912557489555607670588252381877255253433811730987752615325114070896706202597323663442112775575279022286216824344059818940904281648566339848388093664804832058377319468721664520141381693443238912428127143897205397037914153750862513076736147252769246913722344874423090547399182177424864244620366617157924051234720617195615346580767224057216574951710602610024623456145916803761370797734491437682114466908254287056348876406291213695328250210512611666142860425924440564413440146256709168806030370962098972352175894198560715375778328085574064979855337616813790166879302563131392070376380306284898231053075163574881970021970914501780796679878529637970247171564040554143782928216802723728976707283500334220077924062016537784992771233553698136340935359790919442551142599112400430839175493102672707345991541771744156221874149829391714473514778444042425359164610251597171985902807528208763897240575483005047229835375155561882646381368242537621292952580427484618412934786278983210966942585997047256250677411242832428995559401794595807985485632636481168226228838949749478417645092227244560059885597388966875739974244135174994495374135978448831035323293934992926855369883399195685319875759901683658783926188634310769177409631243855810447652988004848894138864575330297735902080617220214320502069494557608592643736956971679545538186252501045388194648598153422657471454401841910111904304151350930060234021628367665315699525041804923801630131183876542497012610125029010617538270545083902553412409654775896016596700672098335179028435181927923122413346693452473691334848233058349345940932763857834172095972577090580395763920887661162713932145506730577595882583356642270360232574933252415479492475128024973502827854382784555039021527844800808101656019584050480008105468804140994615654025554261903476725779400498445179824796666219629461853354733702191748195295787553505408306307319031033659422487803318182817363894609743217850695677626677785729884757182357106243419231443311192198002914298393796701740155149846894789498001911569027087489558633900064134811567550182280693742893377066351522712647428433392785101011437879015476175130827041368618008816492742703817866683645343633243768434057908742232976299571064858334824661273105582723440766617282701308003570921240963200356821600859008603235829811313820058164791549538256259200844159897454859070743364428117740763568150483791916091526791407517788659980559552614189034961601763714517941059114747509750817319392205972486316293598561264071518027786625302306019400652723478414129278538251313608559175669445470935869223506146083844542723893330490031899532876566516661965870350634173829073525657706185447646027580213656456830803959925918680194819378697571899177149324770214752385812336711847338593922667538414932108069364775069537471894317946359851722692498087885675121209485918143142301622357035321293935797461787392731247986235089606757597360604994921037275907961745239784364428618104516184097057648060630450907311994951755574510891255094924539923731260298312049624984830014402527163582868259743368282175909018110856795733901114640120505757200543723562716092467135335900987418864349118333089405959106284643263146606085647451200509500109565495173104211642462450903797758046786956940506486279393078722840464678177613958566411901722087507320569544879877709687582459853181641627227139014970112929341169863683138484554444419808092871498657928651737058047370801159368878390062108364290810149592764009461382644769318792370900564283421399390890785347239081263701285690670773579508152925586058244682905069876486807984168797027558785083834791579367933415450788117063028689804219511267649985597167623979819212388044417756020917726557765839038406889969114576865467143657568254187790403688073252253599759579411457127013063323052661496194359352445448388199083216842771713466058887333149782559447063408794591608773115492746294660584968377820039576033306038947931794321266821819603419169170114960603142299900307988939275355732678533090698750564119402612456052573871923263503033621363240209679750293041184836498061004500070982779930216954070801415946756196310353816753002863396399660793400525657175734168711757673459510373444968658507915264611193100030799509321070580974803982959053536362747324143192413654242071539445401754692983590901659393464843103475761199895507427355811654722901992891260403852674029237744505022586572961319964375859030695690875150646533420392927094115707080662037515167245000299403718809510142699665047558124146354957077158437792135619889845896549403557135331630962634522260799281363535555753503064077275412810483341995041509402096224912181319038933791729804885735848664373351362212074825910369972643050466011769016024419541034420566017043134751789187195258397538511402355122265284885715556289039598631817449949118016666743296770203654803223012589187454880098933735198145854847225179392476415648190279976543870662317792760311438950666789890463020686852671059511808441708623109466604375620757184063271832501315281068047700250670463855938512868004363349897120773728831302254904013050073950945113370499033782190338104317632584637012249323968020916243539300506095841313208427867176572400257557747201027414670861634492914633289969615354004311240135552738123012254184514421582959450627891976659192193385595703860762287118868452230098743907337729576682821616392698915020834397758313993503255957235699540838680760236514058097383133428163808899224466217622022422523084119593377502659323731377894135899478815555610208434737000934420700461138898045160548243170509289916414289897423225452861134401651526304531705000551637401057828372139901912084974386813033434598272190731361028412729057193609045453399154042778733286617002088406880089831154778281313715629737414032386162442543542184091525005423637695928148745182103140143779521450826926997615272880237405126891663903259761765833724818979600087480467558504455459461876222692370913152572303807312589689776210878984508921132752721037038580558469468361885268694281995410337379417615983516332414554692954581070029098494582645056151735358580202268394788848249115368584228524266253950634762087536801275972227532791526268625121334868228171332422221746572685611358574438137948186147317677299194110269946254092129730567699896064689123056045253891927141817741953957099700453559327944781582275583498812590717044354307497873140226736061339371593304328657767051552325630345880985278664364220501362440774119855785402646267546193107316156366419183770021355774121126643008632364117771074661483879290996693780120463962467653442558382116257038875999394778857394348422079275758778158731259310119153777738948037560798728764502499432210944724157070651545876613113967423198173218383595703251614276443819300326815712748485447091537806661018715250322015664686533746383417690316410111026704974844926625108890465240515330485643656005008061888290056030977772829989713532819416611098232861796295756862297511975429907978109891405999086332067550781696547368997569410112628086718055618026218171873453614724217809103765589819078203651027320232787845238610133150845594788095198055148499459248013881100590638297282829408688518888815063459947601631028503720686520371982804358877732089584818414751976286833026006723384758849935326405631864226302352076724958735167349696193436514262562857776010771303172998768952412259611361597485941950413369799498934679165224135993457701102118596602356238791482268319603679496085172906459116069036398817552602781943872233633864236096473486529545834636556382999593114802435501306281310562475629452396619846967305378014762119432307363814894639448001233643758350776292460560387061887303827673756983662461328809049236529069215186506142069899846511107490087878631345364687202282340839346601287654938051165181236049526666474968110784267232222026073841490593368537044229571780230043090437922719296413104002654945245007590124155578672059370675386636668822355188331997646230719714378913652028113097741436639283446210238391617435047311541890106181177609894666576066153375785855707453199166404758934832536327788172564536687285144736570214558986107253863025555369851954138887450523885054733504778503533449814986421514261213558233227170087031905562135456332182460871895578012376957232486797575948260939241787163637616138814488754396392716079326000771758318808391812455147058973980073272632677282880864649052847756831603137260356352867901558243070655647740714816703493263174667785317885532930957981211696910755342921753379370860471924329423221312932655096419874836805322187209730098801848044767105183376608703635846974851970729265681079454886329711371151206323814638973947323306968982755291462788059576054632862592015327928125803835778525902262970875195563106794303212698614544572714902755209178913412161510079598473572828836461994376328242442983296481764565704409902079452793745928128470858193225444869028297840219671177704233366939773907634177850747967928983018676789084103715234498590873262015406510769833609472571226368818809863248162587439459786046020232194064977569571158241447901413063888714861554018699641625182905972627432545173596129916396970740877469038007440016794706133382805660996967274923344481038941432718523699493066321942946010118058320933529753195788501963911606359084518598704717164804575051179004777100040938220247232585849994775415808588729841113945080831934294957113285877887445132538326904388338358582588497514113735751457999471982501896374795462192348266585193260497755117273065145889162994957435829681665592674283596671452334613656000186248366908322683923868305288312353194488199413140593118043014924191913266930861765509827342073571870328215880411072702365863965838709156474584083033337563812474602725255457332293613719943975817139792060493698498088300476978023577783663154180785519715862450861425080667287250721325259400718423017131783339608039957615889999633771297510443433676690649196035555596389609305254768454534044663457864509673025912873898107056787647154289470673527891186222754497707941283245314191618056993348566840441698259981279764986386199119512029406070745403914342049844336393502677239194041119999805776277506007789462531394700819802817157620146158248966699935752216316488171160662298521505307646606177318726065561021440084950179398543667636126215771117176292650682739452481363313962067113592178809164701914376937963024054709045174077912459455755117529616969680870797977388168468072922504111689684610361643403597289009041376326235014158445931402922473504034964910830847584313004807784824877689469247640106657224753428769267741500263557905975530131312595536199181692491605628578451967162081893792696087070526585098964302488123916835268823256563125776832376748520148690735477697084098034800205518068449849660807355887444946820891777097735177713423860107252853939148261407703616648513699313388640399548384706008058728815323398661934531664554437073135680932768930364524717410242602281973460759257578929842595182019590306011928411787366117226238703183681168330965993822922664001341998082024574619874030749070673015220562793541786040679933683587515836440573139965801393222614571267598838042450239324676650353192595415262343626653248927254952493518916686226043529227873549456446859465475749598100771981333071472587505763248706445060774868677153495590180405846755225236973581243013782153533818109383473459532994829785051211640359742472132975773481530243255082586120676654112184517366793355161993581676762925784557281192617767879806366849646965365769843385371200846466198430203841654603748283771742444872515723227938860977384022207756001926411630085388233336976101674687063560144077341721189834872266471416932465098117732292342247213073099003890764820487123116909349856356091280997184406407924831048327270733081473885519579889392449381867771156896982306185182355471297596962273461762300727321888285053222879443096750373836542455779421017279557188884329476122830264663979350645033025273217075324349593065036106288384481225920065362145199000085485575682584647396524720530203542046061901335749306092148576671194803582292361020958049339265202588756979121693153330681629718802569390386712511670292585830801252708261946802706387412996536471633334968087080283782556857814594598751870180429615071152756605336995471093060178112436244008142599883817693702270722992494035175270915222619589586346903993229611541168575775470503214631840361776429177565212850330735687623064871441928641888244793337166495391824707896635190407988452614407158877210144610809971259349880249747820699129400929811970427310263993646531657062431626805758450373249809925122705614057600390354169998049763272846265263344479013163049062017498589047895726580200681045634220156441929983857938500532896721050321917690044493014067944952589682963162104611373010994745139453631954431128467974055002938257640041654901618297369803949609176444892891498112821303073820457293336297834485577636017949445602824422756238928102683582674548331974846306283455043575193150645484308883897354322286616648354154797663764905220705435335873095502262627270746337103566604419754036096472885096685769071488824013408394041044295251047768898120706625714332360058468846005069592905216819000037280368116319714916778782414149834917138157815561930769791921686541412829085359737271220737816619811368290046845825092358747296571871222815338912928860794343370626079377510387005174683299279694012962719353972506007120518766525733415623992411140336745870374909651193863596818540527175346715672803553437844788558643385187418248268060151603060665102011074877201521886673927672250679793047144390969623641645123328155922986849651783330886684913057117116763646113798173886179173428101120498405417177373265267168795543340413109385121305186166223880356347895932222329743135968797125983527727417638572907808688693165882472552095446744548481557106364494803456245844984933649916012075336754662591516626515167568190899197871462795799101897130224220428307743222618284076309200996395097244250606105132772303673965181198927027578971618219864316475590927359689755528687894286814656189128520863342336552445629208062845092800068571906752803321641070812226051168168192208735243813137137931148606618609351953197917437550081838579828077092812693157083713069917522217326676488492089477383744674750442711916878281221128316865926957239501048011775451479598271734989142488233202481273321599869161437431642622801956970811995057313295869560679765494488735162111061674459202943721758163037473849919161356561076548905004888360972350903528058985640348608608489650477627084262731794516441879576348795770467021772047821197535922315829649917562710825808508240466524630167813005237161831239236681329094381478783421634600494999575976246648643520288463017680034257541699288046660285777470892522321715113367286266496855268342618001356372321180482829652599528148661913236583190425028955150657188415966178001219351975115318035543241353386693408614872905934227197530995523419531580389572239450901017415771261315053010056042254401187325250964366378081670594551428722451636295591710629395097419263800894094333570913570303437487303008393379281847426491683641813638780321196018356388114652297599548168180211602538804391483574595580235954807050784374453095372965266690977895683329205697008170657149179050784677482610756327302549469983103711240567148978797649614975794271732224069988777596709364053942551123979095305680800054437875427044814525315166359067274388452577813186640151326467295730067932525187507066884611668941305576312910232689575821494389162883848725360860918165692234594851684078735001890408199485759788813665155471690686224148951199383312189723615587433524201717986797680511244122511158625513126539063666266916226231143089318662005583091028071983015162961138496500096092038602853752641763489108818103349267527577738759548848092584975062651418881670452241363098776677100534337753682200460352658795112052920714427231761416538135883278039650319406044871156318044144891701098135152418497555803415053375987474381570758166761646117792371780730691897877021751106340101096748649487150847993639189255098382765457804846776646472126349890679882741693244704422327075723684588288372403232794021264110110623558248880619494769544201755419787599928143991395803415977156759234995991882729805091735736501213260116563170578299330462375210276265681400597594002638052513066179469847122220106743554676575169701679957888817706483618671875927401250038945908660215410408061325247660476269700722603020647407980848425815119394522944475126931606694171464860837330763618934766736099257053798641092901386914140700235517215184324887101169810430459170858213086415609867432489136259159739773844431413697845773931332970518522583763445954270920269106740409532663620361550107222617917632500369008378339995670626344024177325886586407382284599765232802589739543085314992956957627877926393870462935553833294109913242841227203450272825263175704565324169469078591400222350314351531013018504752033017556835865484292564190843703477444466796545292767475683918479805573453533932510239317594170911590383971666019138440060686574085211507248421950775264305710136174704994774079222913046632240582233294503027696148633691188417155850259981030499232688725832545563943403441758197136055442424912860837199885712743984556939057429206219701573260181112845317210470341813416816066301090571123362120414923306585568228338853863158534141034714405807034969873542443022491482047375195235119635970509435738492650438626925684863925578724303556696842050517909191389857562202785206133197600237909670427234283961240378940683649720840700291497235776831483616975917794538513535239759219668758201618300357192834073366768322626980926998368704383628370982047632586273301123497065435765989060673546852529351864604602565767437468617808330425475577538135402613883193552232333525028685420303607877242251647707844323818264974236018672076440560696850245116915655845539958546414870817135301076781867261093793166838309147942473067436442976719036287453646044558189734653629231146922405002815919059164989835238789006475832887525639166754777147695339891971774418607963128664840415856576314010006909515489095224287893919887790355584787810080578949625489869516237814637823843631152035047362013930602797172313984933583898294218540303931480035122290490772527087791238668888011323553636648355258291256689053076995937892148306342751843317810099301262955277467243015726314258313561764356197633105225754605049600814962325448455665167851071070009429215437493718455512365537292899351645727466675576893105181171754893994172423687154870129968285437734091695567452674313056905611944641876504237174317454091840707867677740881310826676339379036752006561427024076561460494328040065229289549179971190119880265498684819590931264599025470447802353849767759071199807098132545082937655504838371839326108907949404296666328899843168641357019691489946414808566603359203097202281136955434690744278967419814428660635846271163179928152520924050611614573424555752991076007818643693773665396548735445316536027046706977408876618445023307861216358306467828881862356060321311623121741487801458090139531685998142070525358439842264510404445750180505898210715260259717584470401444772346618963529521059022252894131051880970617014573758452858155692764455156187098132898411609393224244420603104086828649998563482212483572105236186034652358782471053691051365800682819259177820865503147628127461686483254341356392028167452563286359682986577426588460924516961773379142618615636565650774444265809639769738766102147036646754400059284263474796679748986106170898357457609060574433410070549968649332181117940981776925333694204481316867687490619865122522461341659856882735925891993141191642179862241493766826469617681604141302579509632985174404756002073318759428019850965430155594969040420885282767286180029926981545163421253831604100968440702835554752216189840156331718433373564821527080510999107017428538951484376116903404733720290488667147159719708598635483679326913464997851554636888836282938941728043205337892574343705885005312258289835641466987250683590699739791980667420563140412408227780027848423692395705883296709191759000818887317243667035600480418060262100861852219289294505369946220137502581830335142256436813449681278409764670409661901295601748278126841351784283029569243800906789556210576080494083032400212029693018493950422668699941670593448836670744212503087696580848182220091738463392162453930083498560629833288575461068801018196047839050143439891431957886315399504809817767472292519140777343196309994566808672504061204209713199117605627465567052614243103772954351181810432308515826593328729569633932344565125890951730082651918319617352248528294052886381682906634272291778787611601219868758806639538462344620535936320962535898750370731684467876749228609167024637826150837782356187785201624693684124124510799982794063252901788717691818818570783067396671427613021553710767989566045517678327593698743020712547103726490632527827796235457339121920150322844670015376073774854139032570324299119464074325301627547344517181272383052599023378225847673580910022865326748026180323377702566977070137804164016714214499024892360099384531812853679519377372274337198913930045369870874630467509401692101298769262095609402901870482552613086161446283353548263451385817456947221499119448820976878157104602428888917243925206278534127964345565243498973923190890854647520771461403921580159913456931133924348453592678281543923078628257090529333914256131720897436352335791019209828656844807553386415238907623609052959991884653398584772608730155225098973830849395770107943210133186556255321885727327824262590080399170906487377578278393446053604777358357428981760356544472987250674232420011336498092310979989598183186399586159348449782265011022582279922788151428174544096882569433951817066245132394556425537425777443411113590388349715388750979636673394799697476915482632154774645356070624796948120805366582552603027045928356962408745783953256432450627605327289215174078408559629697745402181774027340146827448047518089422570951292064511081946373576800916357782852415761296173970220452628779425519157750234155391731333975980844789375839211086141395085313080669177705959599013919529665033477153320851722900149918780626307889095240379452913750542271492619871930715267232161401072235826301785744992838802640008828375642922947054877020223018341804527708317530967577249880553362592960308685545763520068402879519281526598175055360380744688620123491296149473415671858740404178617011936869271811737823464480163985868966169284554557960769017497560140264485086228217369273955016963741379264862582219465103917808631451644901826367665725850484335004343991004222266292123874313574495369745093077055526777377346170674121879625140329121617446649278460116088995701048283585274147748950422503294654945075400629082847867852809379682594258495708228224999549017228596263623656412849191786419765789075198746000341926523770434987106337060186773267843694559822658814757515451068739143360987800183384926219092517600499313944431823967096164890803453246742347939172081288603017156919653080028294708620851573566178351823895500423512125318577381616550374900220948526333004213645591421541398281336649558480702989709800510186102574285099454220591667443530258576846460567979800953008819084858221611004098617271415234119797788403479602330682961844493609942052375558280423771841568896663740021430401531151688146536211247952392732929986351316141181438927107606773209094060533415715469692027957153190948521508697270250806740959143607270927237543131119239936261906073952038877645953723541366047742606027880734786941863710605304196132828664093755805045052500239358074217161799408616886291455848578795666337591379136661859308158255009030067134664020933693984233174995529051172061563541021554806891657493679499014103304660458515994926119914446221440458873308390080839402781082552954797892405233726601167544304758824604811102491040466438415425143174597457656027199253116335351728522465245382466266776441627592492131501290039690579728943563865707187738512778928707922871198090909488677095947194930133473114522003711963852244318888134433521557846076820450670686926669219602439054898477995653519813969513984919407952547532144776068538637390832691955881834800982906920046260849338427439353329952582159470632912428393080408099224953787129494962380780266887929730746672167628388887590100895431006966972724620707569177401332775820153992147282335897512776483747337904427209177619464970407773536881080862335551996349906325617454175491176420055954736912508454698676427299044143117463470563878888866566448520243498766305677971573374762561868910751602979202868755361917104071913089223822060145146190477523036382623921732689772694037776790006352281265334688379890104833120019007587781233087770202458325773241978030941522068285185055336094453359052304396827019579586284580669303189293861906840012014905453188000509698952149831840121289120961454175513852259248966746814273853773384464392928247526436732786421187078493411238169517303352522044397714048863409375281801742169866013528606116437177403712117622563924346992036291673771644558875064866604151725239765405438317636272476963161033271335170908849082759260570747513193511129516150771998066756378485501542825277374978412224108453386746234673940601738031990629584472324054964406173749986603339034690866838386127183915029074863379922577796701228899948391305391797416238363194757765610406705241744758249381101667561296171981596730530908690870123148406128247233558095144307795269039768492101305488077633754535008872434610543881555657291667128506874877388833292123369667359358658555914929855770515172503556120160480091004695190672285812173050311514206944255790642410910180215358298825181622850243925039793768269674151205696706703806805310514760414299521506835637949904518934907172032913951037242476263346902033017358718499803554253145683131091172375427847207621628929202339680360915597727207082586403364930872100405185219373707900191832863020427560135094732227386987514092456670329608168086533819829689485150901483924201155734036012119658964667163721833029967979082599859029440582743441658796806867211371933810278112794227171051224306040378806730241601821012550945542403218621647987012345674663868814762613547939517422723656848634635775231297784111595033888101192327442660928869402587065365987343226901531386886632398496865191680912550568051403309250803500522646347682282564633710595957810019125020989872977724490344359339768360025995316176152629158276043498845444576709692422401446261083448532946202871241458794817515189500907129438156390761698044302071881608891245476587132691279509318218713093427980046206566766525304913695481056600918192003419890820217256677408779957998341726310577035284200756578879470966605230392417704535696835376202275279046898361816224180133945038088706581751821939577261037545780994554712818926848851490249552528654882722759424333787540581257134938686602965304624715532945371841237158356039986426905392633880843378364108854512187904286627637593864665751436232236029897279111988738786216619238119153718160083071435931061543020485052113348861066237663204844894869410988724117656743068950401559130128111303390477946612915884739695507934018300184869054111699568890524655680920105429258615530999378180541100505274713537182190272996806256709162362034851861320771276316851178552424028342960363282051977414195283103189851954008449553624565021794768972444597860494180224200917869656648002003506277867495250733701830019664946557792900087025273110929887005550433952672579907498912071955901219320508489650381268604948597107199014928024158728856246435718687469226329094365006809569658843011667323497920627411016159774878216610881157942275129588302241971157434479876947587086499831103172452525431603677009195462824922209003964430955674156414525522142370870625521183287109606687555148712396099510640713747706815939995615630406183705313381136252080044803970455210848613030490641368862289980247095194048575902582539312419860978411794995693034538980271770694574764539765762241330453248627357427622471954382116370457697491092427207029391530225880908275350665787464544430384898653292164549930067334093378812410749773486166792169544493066870699439764242259793281216615948028641027418387859042968030719672292587704466809031106080356837429928592266592787323720689878798277450886163394438977888866307873274648542337926941569232050018688182262144824321993270805047363840738540843509638631517236775627955006946643245984944895867757904697349901615455510303692993371961796841494871860880122500034591049977676685784859154005052351879327251127876717519862878730621237384539751006623434012058487285743312938315937402534345523218294395088570298787535325456752387902132650772664425192695146214256969949795610697198620758689716337492967707296072460670978841364084413635655441396352106870510880946556103158590719838156316084018203822918578717159770066737243078027000739441941988695725074438061013726698765124246611048573968016454389881887200858074730004295617057343634041878318158057011913821701565519149421287310544281520167742170411274743158561410752844582651980450904576795871475056682300196809684987494861291585188457486842414252777253968044074116169991622838603058771289474356851912441958707353778214163317474146048701214464983943774282681003978249640455508846489396403889961739184179721853195453093138440920360954019763352801545930011737924462890630108045993374951420839191413645083532956912373969351134253208001808528292937053590074732847177886041637672567027678896313708881240271113684403100956431142263152903082457195247260676581245001672595718201752117724816537261830819478446516490289630581812727911217867994682943930629685138285126218952077860499201442952704553478462436585238699335680417575849803071880572993866120406844675547921875267771159479740800343136898379759839931301624887438162811373897771659539124896452470489047300866045234541802727392244766630636928774071933692553806688411174765730741468833073082326902232583282407722864585731398533116450046294306253475186317999999329934934732977786717584436010644130871769818121671121186579444503499407547294440554608902511744546240684471874718825883594761862137446219493564583884262114816351673513469607673576274529725216377816250227230211536018398658192556199266030415983547634174940703724813345049568011597456132899316833692086689896093099611341942785473911544064388287489078601280093228919703920722806914028310550845644231795424391255587217030365827022201004472556309413726401476254526146552609647211699886077827254436034153556780323273761137236992055029071087529959707315707997227093940724567144059692429128995935097015131732610215851713854101782329924975175347312904749480926875229765155404682712916039770399364235801276042481402636147201736483229090227776932034838049781298852415880372030575783737649204124367514661643897096270664265406205232393825965099634105581724992243699484158881955155673095006265114346870855363619057745616139776144963276654693713430924891727936608681752744991620731964864145008707928673447303444041206021296813916976951793491647181236591753584639738431182097587306964312238611224770685389627719920690830943508169399825071158436816868188566118998629379741879120539303551556080255248086722959071120972112295811229760052086586642406373326376000010344823749150464629169045673969643590055781055408411265167141374636096320354552076145507545127253570371696052059880305421801101880108601141874980864030557407206412684714622504084549350683565238372952497787326182749750809265796938160717508985981295506605144685986936145906364749227544845475035923533240636371888659629232900657693330228578242369442198478876996312438027753882650105490418428115889118937760314992677515010232641910395422541769838313536921261482563419070178072888899897482913494577620165934172255493452523888711906634912025203263028065939857780518552469432440678758875157452240171380128574101775688138019656690765277424404758227207325444832748191014357255401351790051549816380389018838169415218502484723511948532312198985915644394509524482106218352641496547544671360087759794395052452910386484918999051330441524338561165433467949143697703294957724687364199931133735350777001050780669050888274756158927446510450206671378815123445368262758796123946063483334664477320686622837351359833327622364621080533216388488950324890872243688797884630016443790349141208699761037456621757701022032286694677071707779677608426858987976910362859870761875451555581575159432720508029243513646563720484664508273832710516144453584871893925242615605424714250645789778433534850653462445302920503890275527275186155978121862127058278276587823396334820225416871229965369911136982061909397518215235326771257270675414243670525750775869738231249403994617742610617822480749017942369236639895048537837779556910475515432539923576283294804282627189289084026779449777416366170568436119269625786156966701302498658559382179359296647212983420596299917094071321415833311977762074952749701507461890439247090056864380348670156448734305449118708184601865744223109813393207134836937820285981126636628755828001889562629642486238431641707402740236469477662349833244894177135229403282733493853787607065439377971642315091818566501455243641861877146025676747923470465576173901623095246758844168992144429280670901841820562432149098211823970214831548728042497544163953605037372899102193952266979240400087750819701689561794252920770026687158668317615383934926228789834635534996030835076990851974065633944282292767086831582748566090429870477125801313121096161879825833130630079137253323434003596980597611062060276439141870609941738607489616878343816890134739139085816444579919134406434485883810450567284472342569062923913060203464796386839757859073606557009755780119626221066993527950042538365552677340421267874024703974067572804774660856996101926290137218329398146372884348771805653205903214950555482876517375617988380617609435414719860791017404949824966734839985156490625915499049401150827880961528870317409335211190954191886494461472829083320420776779415490536457527030047661145490083379022238045736455624132369171167215280053910174746332748369003749336814763903177963096525640278668620403453662592947534557560580458067634864030334636306215935852325689297648341230671800570277838137354926294713054726595369606666681717727930538675560103471355729055488705687057722591060922624774265113351709372693774482192309992892751814724697965819672319717557321890305646405667145560633069078001100088005664408256858199370212822618892672269987822516344656775355439398297351395853916782718362960762373564461249292930834173931131589652713497413010227915934658454809640439476665185798782134116311709459744735098169151345181445526423771087962705616192218516484017398859915532704577610639275667042292516775402881129456549162126887279832541704014652389892226833867954187344512806280052372982228366778600586120475960584843657436986513183684704346012660313495663299692634899718157757135638720724971157830045206570794384634790457635849595574031503309619461915202917696514796227925640983957555809497734769799094055111598042393968921954501998938295377977082941009129448661252883206583033640418925542426569317728763927104399280029282521950335713038266530810371785074847677428297892867661354042928445168948289415884775612278941968103221452468677739730389601206631396483020692671327137950735940784953221556534394424282036155019978819956755423309650309040163596570976030576125994450877669366988775398521012212745958507909775420872103862817161989449689248985325279286257877459529759910353775874147412033774145280256086104257085996542715144808122139030268489851334155356339960444099614270196856175016004754019355270970713590883254321847199552778811548946558943558178811274879464517353959833204625067340928977341840045658201190498127243017094962968870267093904726417895204161811894889149890421931802866653471380197263133456800631776098402616713665323891922245003530393836733609448606280477970983276256836301865204343791419524058669535288634131087557500806999320997425283351311664075082189583270923676158413956201650347935957275863833709614446787256873445912951750606795275478313914800930486217865891584498629011334226267335834725077545382752206816929142557498007419007093797062230459238305335678856801056258633379508971425155383328348917409990634098611918415984141399143343647172408002458930366481130030102227221396955624018668372600494435819620266628592338788650193754968254092318177760628042084565657114808468855120228144704861983262894737904395321025546922761241731345352612822497791011491172508751545291376626497837185926291480955939170798739615275924150623082684488711978881322761596920800053436704843657616636334668338839519955569630634680990983566931152637014463297107887878022365611166022223025154569366961758739528554641017762404183067555974101838042458703361108130476799787526414578082736528084307577911194399882803768904425487597227752811239135803794126833680000901278213356015722659992504823000708865889559631586332062094772701362015986071711376317353651425225472686336878317975497470640893301788046888995685210435848039222322480024721602902455137343657085209513273345836326098822916381653185603845160383803391811059153050929362432878549697520411063516950016442496095143668020706410292979350875940395773668820847304615519399140092325828977469314070959308265963370066551611766121055812477357133355572318822637397219238450764629946678108374357603875222151684443755555535908349239855646643884534818052058642550762517813970983536392891415205171517138132691463789758178816804493117838407476377065255595094922441588358129384818255732497721023683991126073284197575569464268094643242424317941343925362236625715015429764815946170922216808272416830456446596841653403264294955500722570825041195282775977924987310631734459338833526079400019047909288377952900689617266691479262470885204009871911910706899725452296762351270521539525378672309527522827010887494617276751058493990959741996161137076096335479185800928194776615243202913320744718511673621792773799840784112092370988510966148357350715937209118245111446469608570090964719098031937930406081958899883215201596428501273641956470174347465444157897350940775964053655693498173657159593332594601846432359353226729624121108696601092987722213164534295311263373750874029120844658675457560680927489507578657554211250579133241106892636005648701791207578435921950554414107011330974076079088216393641039996999736434283588647986688353039470733257925003076817266300508187721555837713486840970831528609021336589963506243873789483281997589329101046865582691466539203488993804449250109789990577929177772910343895827113982862304889721377314851657784471901112370983000033833574026506268415208581321504675671899259676300039712920282636655981008159552546729348201345510873292129109629658832975687952954196492744930457280458749748777275779026522318716890860544769589776273821622218557049185069367112013171920294606324293531786308924313604893993556881101435509217318616408377610470497989839751132094654071443131248290204109195900700002581713588064464871880496756277316822957139287185010869683017553979691661108777503463590409433673605732980386976912073642870736334344147706220165135110980187269065305247883093660460728619799745355830962244053354761590949736290211282346587679893153653070245674613758903929031242624441321392521632996181319294547342527434473291728100392808573133645226685266489798565387165829556171237065486951250004723485581593917332644060644794901385100180249641863087261945503513112937631623169145800672072660767550690738373952411320727997508948225287179569454176612619513372295395331464624797320833787533661962656914813146856264931236744955788490538336540434232251463124110757670258740468368517470951493698559601270557224354562324192376055657621176911591760116404351940953857878415196175984868162548418716950757984907071020012512015457745996753169186263169375975717195617944361434947421125113085834898192121998312601959052669242102524992144556860910326764391990671208465232223188397022570251563356982410862272934854428141630363661987138379735318462136079837796288359982883533042979387871341080068141932793066055890881684488917985536493895562182546448199641630799642209474585902182853268407264793624978585578833574615334805001977559835053021427614208732672620905857088771613155610633407746481548869753892649128036685909426556702371457884181392595198649367305680942266346754893694767337839551708241522390911563565541790806480782151883226817945839703899832581238481907417204889451394687816939791984891015823873057573037761565697777370499232726069471549753771047725384379583826719115673020401116604817554376653637717452210431102142259900933684976928251904062357923155165069307224752360108483677533164733336460641261112755688267512784559603387899382501065269822157160341255029267967189941477440899771458037381680263218320206502648459351454287988399190160379287230351486024879705588746531351715139346512562384901487963220199394599531442427083737524281085994806395030655715879332216078692073211566343457986338247798814973121633440385655435861138599090134552516705618279853348522700527947088099043247020851735596918849550317108008799143097039563298064769198025829431704004572627456125381528984473480885763997491401025664143305431210325716823451166133117927262849692004415084155079235901328731078371066065183465141735315742592385380093572963384574784187928634952207131102624769093199573835398454868268367401515784435763045932572505147985531123177958907736583003056215929308739304859104809189824053620164470601674874805007855057148291937234804226141573104024381404579006104937462603016428621000916491809455179914785492778447869313646228066893198261671576020517963633284229261436622403033605328520361982576520109282429230886168527802278853977465501011288152381132321563200167363490308149157984100254017700566542919555433771067216390377185047052500590321765595266101707237592271501249488073087176734651130571404933464478162589577710308523921025583897500743374446096946568148048880185519560614887662335551851802675696686364790665001418870654992771250810543884345874917304443583813866395561171816766935793853554897976070050843291785312824170097087961647756157232259128795803037978439319272826802747523638875678128586359193554336700727815579220111914284008131973799805340368296325395823866646270525195164897921859292631332905764419915254318425205192364246508258926645294854005025846101887687807737188910261242508038470351919663415288312883711369138174380527835587039006808474785370411447872018237367852192349713352929277682242424254569266470071727163412697471255346813304844370341954239839271910090507009156203080855309880533995550173772181522904125668591211257378667934870964926330648046251949549948062765673417768714684026481088976176103024046772392292687085278025766510579104700129353955575167108420464077540026250505140912352654886105838389800736372882808658016507805620298309118582646845691312108326001752646270602337561484215394571326386381800459189535282499852913958854122573648763062475419150652938080854939988394963050514970987707258858088169348602878109648606925932003344393633733705940775882595358733506431226190394140229995262807092469984732813651256187688057830821962092283730525308002539533245940419214310648513496916491031032013340361197244542657423391733699846790251329428031706742927917337894808934527607122789103748711146593444798310408286793082613740030081516162670495150248384469955719117068293760738553556938676008183631773254773648110927506357878019705934227111207678957005412950419774232592054754013593793494028622510284029426611651376306213465805754345387830370275955719532029238656975378497372560153168500733481271308306958022280181224306765510949002593098140095569930177911255317918484017195464531179908565814927432721627278772559929188762798837297559256649609672308441957570750587395507417464513982545975359947537652109129618353161442026488606658415368462979275426486136381039688391962769534058648813488562617262868999791865461199178162334350971851009691660081121930147511539304117651005483527942739311649230707469596484760388202006346857937283135565180732731004641605637727996131433454730839729458476592843471998464442132143730273508799199180441876035507107236187314429262120252618665526092836698853795734977956105272592120214410206194710212381058771222004996171778836410807364333206348361550516673756262771981378642063468473531888675657885511092650708569453355985269960337588310173900338583369301881920087621149391828205287565905215409559167644469715801937756920612208406306817841789567884013567213401981073002640213740831983304386459116105608967077554422877619680629010254576888543795920170101949647328151780080282529118111954793846194851341082786430031067257895527722721608389168488469889624319779061639843558417296568696455950776815468894985987531642043548979422061058453750217162400888361620062522498441402541925073192480747742207550788169581392373632406529871196025155641932588127193878937030896202186320028993334379751127172733563485671996817943647579525992488464181735234622102906763016461728263056108731952669835435336349688719134087891670717486920074802171498130650563036471321133195977301254189193182791345768008997533053010486724160800842996808777397757795312860467811718169166163670589412375103714412204825303810719360256155354803100931245475333263099504217240371770674614012576546135277482943121460012171300676342804765168599607810905513143876304859650847458223927517427693741038033297992220279498206376724249442101699323735860105202148175127161434611383877788754815354254451438256622565734228813679830711986320836808561032795488528168901202752883808243178595248695680237123604408978042107900159088392020854327734009681645697803096484710782167483936336803192818079746809628888318934145749793887737630164488455671999719805540043738217318299200437442216570587883333295757254454308865280050188192307104950897222405302548081484689676656941232946364868047813198681515902970229037418923222756442036230659511357639278177034039845984170083911545314301149038621323509552580305699039270105165529409713616697783534428431806363567474643380025509003955528224136576454251580145244698450971843113388442048651495072571973592637759197988132543556486318234225774049815348294673151548198330421562385734720285850094580821976679491596428468301971057987374269998139565977484768933563822042885194278365477022251375314394946159202018576018396277824115804706320995673679016419540065972510868199263442629177656862677960578194320404752780128127787757594405618126468359927544725136407957495987426663403159836694632500781969536974730683857171377322727828585422449581271460589506680543019111109937640403689820042778476789440790757584919654367751142221020955064308523083627070508400928918371204489466587265362080735315504933004860138575950688467436755767769137339531755924338676213016830283173592444848637584675733402400604181726664481413379501593174729777439141923977183504301989469818819982072001610527113758259100929771223902366387445723010478442582039242606658752278709649149822445951962038102257676830486415749679622837663546340059933115998668199018439010047045244230174629682189941379349400463220543692662702310714458286914859919865602059345713155577057819209844801390822979532752067158735786778685356213891258983863218241798048479901598104349676358811054627786962691836983003284074177705102519221348102935878094165292443965936361873445078845037453763210188799203928355747576522119729307932337444830948702469236353698570733254801213578204109083557966608056537472050574446186262611068747989542802642553611370785682601234340698405566848174344021992397668489287262034262934815758254208723699977998871249338462255798017138809984800002038708523872875427965163809360922930398114477567257012359270899803916496335079863916178804296473551479974184428549048842941480878823291980244820246112322079444142296136377346417108258291764310833474422761080547287242039361447416600464731490406477062268537600828241232884976212279140933661781694264428399795215005539414990288251645227243355348916601779927698768494634127872584117672926304994017692425937459797049262987916848990583003541367386494117285267881528421665272973140327232405614030497835803593076198611202466003733108970853065821738761170065516792362477552076067166633343164948845341277991335564446662589253273832822931329897736231645749792778007475495607720878728095571138246926043009379820257708462123783582583936167150796438512136389175704358876384339373356354965674832411682212689474210134544880038950826635030718429845072614123458935814578082978293540021137813538609554281416100277855922431898715164530066161384793000988705441007971756326819677553476711612560883201012240204474625806644246879428958207149177009232542626241444610282405050508796540523660461887283810319895707882053832660560305979134604483216983307283591574047477777577508541427021584554716126533058065378093254966821106598545986989915081707574890735954852389597677300203438746667948602771721765562272936895129886589384631038838589551191455733083508425739127036484948155222090764100611295430868786359311748409037476748207576950645657199789462957645848236258490340876161185304127853622733858694957299105455352324920795981839499029376243227498474399111439997055270893046295868201824217510391385856782141099071170588574885167701428444063985568422506366330013182478404532190767362988899335738201622596744406986683873194976654101999819058921480241038742243501922962234170849543024656378415875877863600621918109903238984143296108611695094742418246311221091389231195032013855554686607549926960940950336713819831846870470752199300120975865556882503489816592717389820507477921889100154884922139616635239018407824936801908446050353648533393424319251981094654141443479339530772300052585508035656906905223784183752953021322835737751235029289674063586088393537218925660698000073032848099738966495352543651013148638346134147255582350451386642562845624945023753576431675354344400678136862301007751292468627018175017461733493678850727680674339736473202229232526452690155494811927107117029592443916541838574458452336240574516953289807998880057926890627231736934892137655266870681384713182655672525054134001093520765180385361227085524885918112965242525415117370648782709137534227028456843694527307003069413913486038110015345423229034221944365459181932112182062141035386566893410251938462571822774198811210636121996320884415374342206681757623470276042238977538692682147424162002352352070456644731969579380210841808829854822205611526486051993416619958120050926178411331669441867425683707545122284234982885469170821055260816966082776617162816551458240604973646409097224134930352008467172891090380601814255632255156699243324088126350227148346851709296573489313087770623482674291207766759738748187049095087882072351063102864903859549685373903611735909425640933146972306954796505850576524900590814011245936097528638673831430873268951233067462590315748418326846856375125008696572841516674336686279691327918319114272326977637039759562096889779280755364763309907358481576296813151647725015338460388819532603520576854392579496934199649333673925681983816115447646206168862262559815804810523159175160723830182703576912978908502397835925377483468374187211847919733661285637157353004834536871199010535278604265068126870532596879958170195497128438078178708554787067220280521504131497324440919004297009138431033833071466162851876296675900264583402866996595572026041040188535447551637871524172562551910054567641968439476745825638867830787554681278149761074768921325908027923151368089847207036593616846396379402391308054678755114185825357568129100006427792232790763448097811599607440735551492176702205520868839413443116830002551850250444333261610657110863307536802190660419995707524454016539395247899373320531611320371164722340817581664074256087842361867183817377852059545373091934389007107312566286201499512112932653772308297557792221062946642835915511078507148475040304181165155488575298816647782426470381331122072438746478953447797404584453334171369758046173518457214144899039503777541123849470635081189087099640184088898904577636227022840825228956058308879419941273555962269895265978622241053283354451458991115496041617935769436905592361083977215522716602351264278891247241054007996710723389719889282938818811272871913082445588976863221583379420653530064325242968757961707711382217442722409795969316021531492042515692527668612441619132612509146647906219006306399830887193912696681610759388539019886446106122783135311831970141251005632667811954931353487298678756726785689209750992725747380002652459162048354764831028419511387336038854290784073229818080695509635061982805581397787097446850548502684190244375882530751628789383788800229266984693837188336243600675166909329426495512506008359668203506349203337408962143982394450010010205448371232181459859240889194126883654627439815742232151440059898675864392026507616945884125279907536164629822679736203586552649294302544816373055856353332966043698672193514419777134102046827818991497972788613020113331844253856178847988457035104928060358555578609478727395233509129131117035673572219284207937430356569079844240953691251312202171243123405736774199425200942740686778906732918676870702126644755300393416271290953470929188409139195880572052665429845023579838163594502114911919116347736317589491800416007282773705163885546592395641955907015100968762308661431376286552959891528501577017507368141048912735791150117732012517798689736882439485490093888763005133177214915595212272183931397056421601927614696326054691112522212785932604740178977108357437981831670560994122000892060850554973054874091149298303002888445915038331197353110884683981732742027624746894408864357080683132328705255258868406084933038984270369921830822776221191360140000650202840044751285631170306406383173329439242598686861322982567428855632572287483264324155322005812374121983279036327587154219075873534531874233180412221734248193144091249554019172087323758500891397032427474505020168715009253230249510058724419030401210330007326937306553985805749693681782890122160614750637652681171226942996557725885774401959033015856032393359218748897248609027082061714821133395956109264363523777544668720855090933730587691837420538465849957945066281750278019311680415082528946962224954872461350388180908767527200132382668228719038768516879022601164146539633028078273564680121989658503706542812774255678343895364480500548977999237893986686411756867838235027379073710923295765216895591133033723532501830790516906246931343252987727340702686361387481958967137246450846308565962197841899618192697589829409838936774226352580190569287154089198184739773817168070073916373767080531755674768060612352447666993672208497660695300622561325216087883323191790770705107293332980958707883623812513116396260365932650984101032115373139696751486283793904183389676861049985413883696773741620352538935610965411640702135397323322604953532369896429513896423466195805942683372727594785170962547450676273429566806960856457382383338592448917555872582106200519863765135279096553174112502297319401777562452829380687535407840405868786669780562601495209332606606170075506589146978681178062878596167882095848374438554075205311664644660339273810669168034815732130785647845943042670440765634403818232986673415979084723214064767461445065636833876659433935801956713124220628800479910212814353932098086327471454205074689614846378356469996523522564330496421923648741363177541920501373619884890662313636258434326114290384001635609942484263071013617729836284309551980431339279617337450198055093685434952790632825777580675256129897739773627256590109677805453510144580623026937009030169826793360631697090470373289460283563094596402759336506735352651129166969258404989110234781962072382465942914405419941829455322027101209444731128944925463490727255479289467711192322720321751668191705003158191946683017083714029258362482391059237001141188268008119811722709544571657943751955495827061579601280646305061363855022410392631971009675551949193608449290195322986543731565641645417226566033806848622266926504485700222504586815702396126022684120146710796085387741963237539398070288058478941850627402368618713699833471529685339099983824581649688292419507308905554347625258062313926608146935960603684322021905792142095018281272069659470403295117792064920848034453288456281420941113322182267900765077259575010312521037998206596248966753205865293775862258872924154825328332597335543990338535596758794868189826911852183325286543000246716681873228968913181814136636192154290737105745771063951060584232862925574535961619999655460289130343302359191715957749037049645408455491573269292783497677076779330329106140084729392535081789047451841499203879848759506065843814987307056340388713090909664685836050168174180198790955717124982026498208980704745359277006530347655585962088939752589899003200799658152223226061110724566251034251409659898663081245443713217957515568824329822158038133609179537677833463289220769216777279706078410397830204777317811712562779275757350946783443243592384418817931779821208123953304376151819563405509645709709590202948680576373171687589636758901661383372930309453866309878701377101293123587721128548352917037751103367907366363288011981816468851141307559055572828632255767057522419911352156084268836949660423965560754344090085123999410228152208778230221639026373058382922832326445603982837984129074851630356911352646380535993268711304334227053533529120460931484349223413522235375429139869743774952069912931543137938782694830849799320590771563921395178920252472670624192814891077048273619048380618190903965625305952661583429191092952255522631011877713852655637534948178000450033103675537162050581550304547633388627317583161723944814102186704020003275197454959677383890444389671371288781007285497701556811763925860062157013198396371615005357398034517489774581839436918718703671281334821294493726845284591774906189403864503592601211662112186929420680228166029671000206888013831718952958297021734974594510524875828692673943981183434396298875223261090754120644134867803185763057711817834315726008627537310444854961491971000012162798096744761814203814921414108466468930385071946740621102396001390827822356599609056047563495902134207129217609523276202014404781194941793041963146057481841198182704534868279727900295366006405533201598670217928337542663020794112872717996710922479873503129632639816252841107810896281029112104494381795337126076684981974207632705491795882057354316652615303019131594823727589772796096521783226890031837917168170228865221437379446530055299852009264650731227060744471522840420983514584376441038040332135612117227690488277261396536877214646146426738469099023738987899672311509049583087349932932724215181571225705553602587743049430572140830793866963231029473404233906756084671826405679112799448762083990137440522348409584334929271100837504791130552065517698210102483921631488126932063308983365526690499762820700618287009323231914937686746511264832679682591718101808496339240391115524095500050046516771378706220441067011481407563492137239082605084561920077020766981995110763015598055476116720566102199318280220522267542970382664920013608321485651346437012141335876833483756344967020390477561038294775720986946769883829389467236308130714266263889680048499730865651331396176262296774460698623407550950715478854408653440101057698912609843171675869142195288054686946770235190731184237388809062855728779140413329227170221486377698605584226120834792136119017820486938558782074417118948407753516397429066617245012684182013472344217523624237040963989864719378659362841931912182073529440802534015837584029476799553642885064025980126774653559610869693562787520372600552435246391841731005002079913418681782334684115910131012739422610479952133455513567241372742603384969988607258421812918500719643813495475818560318643164389044628539177078245193414573740246718905168062558170082053541088693434652883651461373881862555714028014613340392598679350873877550540791379490123828870398985641272095632942307255164030229210794246853926155732690029847892655520839236116265017339493765011630463411440930658657974209547338277297866257706326591926827972823297634624657942640957203979197138709179600432071642053558520374593507849061240928289506137131757277708851571616231079026447131809354340043650662281759331905514837847234210135919134491488130800870614880796186633347619827718631990858774057239261001983680029757509582416939072183509452318691341737068931335026176869277359601091971037133831802940148458521590273014645373329634846961766322954526389171647071512633438630933628780799642838334062128793300529356264818837093791705215606258960963906767666275371928735903498494262576862332106739550663462901156961883336038153679168415757866570354419187963445201047606259725858242060218392537548758440584251195852747533582016997294946282633337047342900244434759991324771409669197768728222179393608350885987233543310982926695307589296920283784686543036711097984676645450102352060382056830638846834729696560949141237341877186742466162764618304926970745255273787347029110356103592154626026253546074890707614969748722005836851243304402644323263864919657299789743500053498838582610673943354030918605422497485661386424933732938580221890253992417386224098890848481632103428843347982816628652286101985260449111074889514102600559974080014783164931462583555012449185313842010777860626530960550037882653789936552517958981361893356400760760893684819321447589223841271863366142379382104817287108733298680420720339284494272724437432643628879638879035916188256642523799628015836616549821259282293753332854240591214488170343264155460889261999607975598904964442522496011882593484460592701288409350671728970457697609750968847220895832855670773533467510306705771657550980466659410022454324110212834850800847797275117932678744308735737478959426194383259673545711598999745802725563530449430044380022744363348599732330650577878629098615010589146381255298638009248758500477337211225662514257862573271546061242792489421152971932395898060502920038462977592915869902148459709972771024442164886733883216052328458343401366166954670986963977500297924066571331057238257299279951803388511735008688844065827488710414967481839600253558809169890164748249234383146141221482984301728222068286684744654980518095042952029619651353616742532407053502334799278720045347515065891229161772690137457784875924564681582820027245943219869123173625257397036867773200909515017333457119966760874982791917487484240928756610252340730661374473595633603535546374889264231995382351061604400768592613245968416887661709649389704241037511587760268646495305691026062285535698719143300047584924179126435751895370911923469342140869978672081005294893933837875070651330286007579675388278598061189467722632899553868536400572258020538623161782758840486426161584788177560058125837059149959181234382532735717841998686665559253704541927091487122197110243614031848554555124552319161528235323702036144847380701604347321461284449467754449905696123032037869085755799627498538745478029570992745011559675820104203379391875570793137940330256241254771716536095542665833065874422777045169202075532079762605812073982348528905847866135388077561817694243057342823596279749796533805022241625489578334976131108661352856333762421063232110474568592618761207835056941569054868880722475996449445738126726525470692280322950081193908847809224249578254230047755075946937005142781765834968242934882107391309328100262429482630944488697777145634200276377830725972135152169059763984317675519224656970288299800363962633546907354669424947262702656533056824358934994399883337510849311336552231064286001055141611695634442382515126904120149305174330562816130901867639152860600918280745070714107320795519375378948957638508721400609536121129914155475664415815431763082922227131836150249557485308578178248962455111704077422556627535107235992665247901710973605003540904045487404458543956881711284301116768287640424173848992198153516567081473882670850304618051154097009174468296002334128350975207881429762213832383588149872730051464084066414869098732796308071133218341344024567741768139266319783390206732584489503731541931776184082707994489843581308431351874503904202195214551036552318100543055247815757325228723334479707056074114633234586779140290819785242786822930162943382514812567441286931280875508340405180903934493120868519026950538327858518843343108662367921772467020239162640307972821833830936710522651799795138610314681452912030735206683708454787501093123658842937991776020290259578499431365057725779973774174755168557636406993322968130567341663280602207346580188307753625801562880145853186062792665396435051815571733502271014273108267265391879986329566250726937340333662580594398095991706391357901372785524774201449474540817442432335980886199402904237379297292612498836203168895641235441193589566438871328099424412391514722695261544030501451682634205736496174965894328036841723359798364235099088060551486066693996144926148241801800169765150384056758327507471242725131259915772099593147866989271835833404159768248407344873454460803406590604688916723953733979654039759517429761524445411710857475751573331320984901270868408853433245737311138678341800342800389470520413949980317735839131691565789734682058349396911430745062487212846473447249021753189365302324578013419227109336501959074570318349668170828518489438665952946052565863105474591726398430576817210346162548513443066834582758488866877971487652200069570745930861410668657532628361730239411237484907846341282669957739631231640936308861606342481390487129640004686839602300700645082741515173537275316261992373354134652969730913340676772985862061506206898525513972919731088441925110382695895228151519423553830221406501738081166987404603312294081567304097539740254758404451310340411339196822662295170652871542220091344728388736417145251361362669439527030512627111792611218993195420666645037255889065526831556959460722839832410480719719336706523682621421037733974187453726074072656901616238288082539907420058033248474031474794682178085192925168167041322285967170509804532207044890147724564926228683052465370190185391336565599507315333905877572322841308227318924001210405903790206806602703448151234351545013490865343352633966431113921492576590326252842956576648639486628983827011748844488386789078161977184458701397901881854801036415264140834165757000880690556681580307145107937412749170920264418349001800310445476442258384118262253882647365808133983361752730084173250447532988071082297687806056932301876327620671185787551766497254418674659486809668936772135911749676216531167329121983023259164731151145192902443543118352391375210662723542547542556850370986720926887810490974027505451815726628616837942249674001261989712860542638818716972905048828482052853163625572858739554647250184340039625562868689396581737909014439466931268846136794257498827336788528813905448907539333649863784976604074546329776409866530810541620306269273775896822042275325956161307569135616922223684014786926923626112017214105449839383833028403391234327389982770796426945301595542904907059588591767961618661141495313923322340159518617404731541009709601507115608396665641328601747412904726922516242429709248868220334968270535936668963937473786873124708069842284150842331075785428567386934587029450938684751918383330893054517663034535906773462843727921184978184519993002319930225006375135534518497382037343873957467252696952240686642307189677827352093743023719285181256195342832666598807434364323099080864977926279201877878838407225538345101834612346667773003259988907595402666638884333372548767001298462241454662699939050189128539067178756783544136179530830246807806955699578118282289236902312524082115618284951914803807259444571394099905737082264635828533306917875817785676914786863338612372695035551641576866937827453807544227451522538825501579438538023206985760014914843909426023514447214747566269684898862221546846376645065866488007005705449412185458603709803858367807995899763740866366727314083984810172620787231302896539909793419135431685984778734266306317353578830281083826538124134105553404036549764941839916467228043829672903373605529747014709343826857697856300518511135435291236464426065901975190360429372949093132174705203169590643669640250379662677890124073581535308687765944480499428745804586032404184857025242329743273943726335835563804602845612716061028901626416693104052486021325531959278372859715026421020251955877602369913948439649027671054970135165600190445347895715652823458846941556869887795969777682524990595384501222833170062704746344017014602989080470061830962376920816510666593292809565385621673709740543999692504390302413128718430281195548193307679540875684897250535267129611467553862912385184010309728420141941204425541246379601260348978116293418211836999007712958915840529276130503530608829417531048553779860331073684815808907674607337024938578416067612017520616874905748960023092910274804747492694949145355288093658425573727875813261254219831915157064158218405946432219273245036065681583337321099375406363795735081645903007283624065162689616371662421420075059345008720153192886852390391276217509799055463468761921017984562006319132364455813243113310955892553382655609918956328664977593533791579282464620007563075562213591918104824479583629050903291855175825189754602927584840731101696944829269433241529479187364261292005062149219231645307506900107200540736240569688699255715586602349052213385583465110770257976972668173075348917664783776463867572308636439840708852271181843159077698940235056088091846382407293655495412627834166211316892144784380473110811866816956697973753413518289100359125892744406905820157875626627959814729694323171423683534333634753231267927365615061753825097494505091836163480535082990885005049979739982477448972238067726380967443214514445535075300732632241515476558786490556066945545737971839817018341993734965746368801734712244358196177568349447701269356393737667327105789748346077930748042928144480871137035105108783989744355509969714257943739244072962236563196505686369729900393904306081210857854499986963192773720392759468471596985617784305488718970078172650780433913302685667559517136446609525165174945574557003988588689647588978367228282728748786335415978280010099652729262323117387129369028695294877460287493907969168944861073892245269815741065278694407956765981575629135263375281372088598541260506046303347380988310595560466309951825097576198411238007615452915523802203284223228800737541269848017475287383912317385572548306543902482569159700224248049543868042322456528270551465741904834225874218507202608523190901975518154767112256781902262390970706514987570205373101506472118623765503918867935195578510003027187212152264431871558212598368473721513524767062849512127337073490992585441525136371589821958329646955191134720039331509957905037831951338896888108005417551373217786496085398514133801069706527817814161868427883207859339830693682460523027327666832922164619244039312897820505651763414284929786777345818493593708120502146044105018878863459978314201989271276560840686135499233129757951080302489611062932417421378265348526839344685042386586403007741241455154510685524931049351944253510393268680010554658879775149748805320811198994535256013981033560751877309408769237918807392720059162526270679823979241320026529084492414532419759665904678836346501886480621323244483414061707807246653396783816242613224326316519541517197334947946505245909299281814885907196585109668328047738467543277838921796059096572665358545312129699401814749946258490936993598571319132988528264328305126072757574493836311934106379916771485778920543205941208604160039674948562976709011159993963962430258887206108166550088140342948878332731838485950465127664267277494997366482116331272475736312161364093363223169339940823633107451139100372253964347490152042684673732182665609472875682458649059718362728787508970365569573455100016929701586434149717620821839815989876669880592195447997813048516462480256522544011774361615279467025606119226348505025667908996358904151848861158906658733795324236623237796152462349136957725283596580234425491073840054670638921862007720903899233117275189373546460869902101186000409139147958258448287778667523568349826753686602988458901355042047454418716289904512840343254185270888302557457160583433921583544049626435332808657657179344239132358714810502700077248669188988549861278192141144203589785942979186230527030508008284997667338821956602670049056130690757493848661170009460917649436078675955215541838925247914946985136491786103327202135054546006031861743741706624242309955184979765968462330459410105208144196199439749849533360787351027964342334695190392457622991934659387426049798806538455472307510808833329442893834482355550975990625490101130910992957160389037311845167027491976539049281290753645915557048542397879082518736451550245292619217054050839485311848929647453766057163280194605472928687694068884487412616815687946800343038161656462029875524475806668336057315168793804794208501441462335140335899420644488516015727054503088459003084845278130283992615238839317697066736984049994395938762178305987442631605986845160536198713131893151396491785687130399535646413097060283063180009554957374633251477933909321459598541569884970760739459033483095442896552378353881869719460112143973083166999080322560470567413485381673543094261589489184643020984552287014785880837730714270261944319736176640566692678041226301839629833848217286137401199047082473662692132845746379911816547187551844451974205962876780990156588272266056226055323038391149854808131460217682101765549396378095253790271314524853516970932551719007451510160555467275575183246874485808290909195515825557132696346050569657917127136429407060548030778488264856336552538517490078588461082154489405976152784015412847323117452755272840954421102157039855472980410935915759028498510974068096017052449206139915659360849735946803381986206495778547177311617818446467369806052384041491607597130457187242901238098628503215490372415002140938792994297610768200682787036946203481182177530875478986367189438194737361418861054753933338582205955378027057052442403408910852023037580673355002233675278159981217488031722110040869643042815795568889219440484604791422327006863553497727446543470156059389144280743705441130634710967344580312785997136858944354526323344273234345356831320453224166219005915631684703629335258879546436232598514816665859099875454878904739569714351394609365374875214061179689024700819010324934226940565378819372386636061338509266821046916400408132855046689055823259276642919662539285667096708966989323854767828761223562320644150943977912562787512254033170905028550881165604306880998002206430288042229970263731973949758995933106259053071718554702116208608943170198357732101619275590814305828900246316579222115772976449193084877640592406294592735268936334686089012909239683636459609809690113772476467016575103076344583763541054662018757274533369296858854922724227520313755999012494069662051086513545944587296735922019247130481085848050362140436959192472483856915567122976609660435845883352169398716973484335575401437512913124869445332529574807965145577434616594399345886201454071300114572144284521594378603007665784143278832322154723162787764166680567512578236448331855828626859283477313734953555985512102317674471067229827631977787857435988087344113814492309724303734982104627090370845832138128662716226425630070293759723565748358196606117185609363511172333376094461067864790073849805930345177638576411605566650422726432810230546471242836597506114150945156211234939325352161982881471200825166665264382378949996353623890102208185833370185059305978409179352186057873324729533137591757752648331198078934392754935236823281924163154245874628032746636475701639822738328735233131826963283948149094739246397362602499658925345649963764082167102925760147714127277613087980407532286441359789018828234552455873424314358980106874201601051911940153758620476609869928863345932368910330255900632260016319264861494855631860846191949016964864945337889445361591787236621298650051149150206404027840904138766186661771580364712956775314286030497940448213926767739558071796969378469526951261270596941612174253172482932858052107025614384762664424029943369037009098565070798769128340380166960249173838809021133474275492450060648643981463021334183801815152138836180061709271345939358596449017596874840497342765564936114106286431420228102550425230857256260643752240499636409513911075051502461221041771991363507669952598983731937412206922793917882032612958569752300802903343880556818759498324873485363455768991439990764746012286198416878475529986908118558063489203530763095205853982352682257721829627375885097201910802384615312916988148905510121689958957481737192280689423809434211838072167806988905124099424506246885193948312230364625152592301858705626774515691185342506746370167606124485351957464978225710572841159855184114428519945924086671746117244537367742244834680472693876109975038394456205461458351745101086090032728478919871320226974989214354418004274154801754933854066837239109477144118749114842104351063835560847230216021719834090192157475241101306337381212022421517331325678599949417025975991036216724799772470053469446604214623735029983368520759933841442503869698158834174706924629553432733776392661848810814702047711550337458827927718816027016849834603548450367924532617429598671862404168424633926363817451057219189676855355726738230621955810623321819827081430785872813333281537926314581524634290941433786646412987763641909487022090648847784300247717345565269461444960017955197449280590395349914224538956643153827392597526044971368167994612554582333251323539006685643555009198382815909166589456024940652439945892229573374142439053634632073284187984772409293741174433104235842437683504921588667710349977148404861948427552426633209715923677279198615474877806574460737549700011786000751304397940564169374958071927414686695982108944902969806179927651159432201075850107429582258364383981532691467136695292134441606948451346588069662005425625306525701959554995275823592137255649834455881836771299780581203960383010188220266840542347212077055027896301673209783371402742787728805521742551533570400105757976671785433310317729974303984396191880745692709949824497703479037971854958211197336306591558513105758467138104746444373338794477348059672934718555584368666342667148285460442032136146433061536705539221728711457970234312714338806693253575383140930876063075205761742176447140400685322260766192830434688591295417168936455564829367127150478266794922409654630349194215170881102643232553108267537959498224606033357193642958297255607179011662508064133175085474296310161860309645492467071023900650793920547861465632559411033119224021871769463024105894834494658493425814602374620652198240132987270475298284933388251625973715153780532486708260216993939964344374592655873284577368406295561317598213945520027463295660583226078912166366271668699808936157621794962141518548088065326920662866447739635022352686186682554170537420433859867521446841502815084340345459531559981634260337226221811784842339662155601351501044793781824605567699483218837840396297219156019999972809515927203781710044406507334632843202929571492707596017973371664428168975068329803644837097227154906095923778441273109353877715271166734771855492508266827665760047497794812338296195209841701462513316924330661628927971000627197670374288646236138083972686845346173498728886919367685773631605856741522906237748010110182198391332754656790121526898480438711119266717186356756822558328296344194434963403600118546592656395647872522912122218272841288369999002120045317775883838318336739221291294066644033510482307739770376095866621265713094275728174598254970721462329159754982416282635908221967808683876217776761584899723912503885553334947783110328526316752662586640827700779118743186921397550340503770006114715685224712586850323570365180767977009272480912477438185781061144841140555510020182405515687802350852578715732809385312125890442915372395685887599208977404040992867914916782591044040733048330777330344043483099952427868363243409114537864130916324303148827690366820833100355425159935052795505857990666222438770173232843600719818837725775742750511938652476178234111422304522055626339440407748372737293050412500467144806538445233346140513920341188998841462841126658741956622842254846789296083107653042324424196832266148369281963185105277175912964926469993685844457831754531132326080652598320615073454484771502940381007339301899141179587172495384947697020496778182138191664571333811743734235949075936953718106229465933513637616960514060572370028388779007230906202679654743184002952884833083670090685429927667820912216830780953145144819928464879117589515090278856221745734711304224845906666252083332924161569721775693315724119788710477208641331803380640504901338447087548962747999479486817256573223464905100990583522297026247523565721684013036306608945081379341631623402927959176381462159742513947590294659663978951026980590326067188355317484062233737970720947143867080028789836078531171520525288674747630734087526031826093721589826278472735157031345233975810297103408602121667182226967516226905396697391838895909650641797136475930848951602367358690870297141115879692995360089050720563425683592684245822614054890216667836239683862118508135176660174824390874130226105517150405055965616007094308858611013649861732699887405029223860250081586039744017367526730299297845257719149726556106946639170469710510704209732306124394852656949635540728608551372824822176360479646616716604650027376349892736249074165300373789734517644130393579259041378685411110098298968091981692627960979947503507211421629673891951232599068770065725614226988221574921644220680090330863820805765673912843984901258920196979128923978722082080901141019805241752111954730498695033749688979154097485127239288375992138768038298927108223478727288203445661299901035412483745036075355622068964789674339311090941572490024268580682307165116602699943827239001464195941867725612485449275060841315775194888160232077206399957849578132081340668692310402220769622523494229358989173156366919604831083265402826186432895115457917487889146526161847082681040902991738204304379871075671071798807247930260248235496434735027099208025063757067137564294519965118023246008745021519111225335996129262921791075607040229464234284739649001242926875681332996285094911332286457094055348922339795911681908861274160748422117386549545645912620493866571898806714594693397527766338016387972024396698545802093366767922568894861459416808210909324701575087393721165588830553589491512969327914802706019978135468372638046071215427079484605135983819009311889405202273272097849319095396974666006648453222044983263826462046495706565822026241016110168313046550396203844484495606423783773871986060782077886489768394244793075438339529153952828086301961280188595798667890768453314406770439620834989563206443948458577315358288102699570006193070955179655870737984462399383101364188831386208307883341339858740231105381268814940726571570399388951500055356434579698941250929850227534772199291078127630220943238692001442840356128756266330923546510830817128116657247406758852713097646271789704517515267250905490616635093128830110117557231245429651231140506421546038327582765062561989641214365379720822514636189279631258993883185584043433119188897042087981545515099542442078081127411330043735634725865760638740939543997581267715645977647013767567824347709716864262699341713062001269707815319594454677500422604209895088135070117130508959673518594982047786729782039549022858505150907990910267712951137074620095739694568688903329498061622228228957280307991375481079596955047229165240740961183099330490137696714783268436738270234161747946973340659689711971457870445982895956423539596311129055833541606902588027738136558902426789030597758763767457470326807717859164248295690942174214065017221244774641722963877925919419529388763522376654824867679183987774612154222706417086378581114534296796578411511529859121367349598865459066686440273359340137071510786201357891388916642009304812210685134885163072031117804575338350907626654575140564558754560379683420741291085453638912142657461325076319613972814841294412854749689093951714321399633035414934217250599561658651591354661109154674398778984504978846502872263327154123204884627241780184771193978261857915272453318807891889156090739071039578191618948583192293088826829549977454754398032495178701318133143569966784528957011534866077439182109917888065963312158353680669900178084297309356507496086802173911301203241831118867298862014338305079871779245763221771866705724179635944506274096630759172419816161210003242891300114817385330356408095970081502012222475786634279586522688701685550305319753815652161412616838102238345926148605305936582592166048449172127876505481040305296660826966947445516073936184193619553493355859039544659583472116941474532407749654982641626667873586028785081811944988317254782153712164071951962254936715876793994697734741768710708694138512415860101189898040194964608547915884337391263102235777879316840696574390214666947367165247306355961211135586489063196875448244898962872799803233713705853578995089919953544463272181689051728664238973564813803338829780860637055829241993840674113961302223967453584520295364476085314797120335475874478316881695074021101537696316334575131216946478469193229364452486905166929149473403571031402079094847466121024865223585402889539563977283990267801122282683643954045787104695410417159578419813576817991283932858070063719630676121161585196553593672484711017372447677661001071132688333585278502474917298559775283386945852090441945745109621102807264907424622774384317405703297415952591048369818645450349071776203351302240051862612622353219694311932719757382065228775663279537432781847831334977961737466332224191636464922660565474744566174523223064420681449912771682895290330206872686556393580939799802189428287503847240012705420546961945152350660587833053426301645569593689402925362103926468919993433289520001150640785611408777597784637549611645115554298075277665823300400363587488153156840114582187045384166468657919767644936448883877453511367685449815794302923933211551162407843603407454733830288691813841187765542988500746670895639046415412752429788904940733394239782714849399934267296034096003400191272371695107285538845988174676959915815028776148318903618822793087138930496163745469140229673558310490129442279988189598321375127063975714097637020521145059715569192932949947028359034173423811493374914711189004737219444141686445350404973445873267301352613814062613250327030132598126755707119164636380287442002127358041392218844740116546964337130739592985058012298470697763168846004751194951760034898855778687409402328062588272579366806342679197706821410732251963977357121602673912936528220739454586439392474973415613903466817214146498060614387824376904496923726086825105013393352485692884797625774158010065172919885727754684865720294725470781385111504044034777171996743321790959889008485434472649640485649570019410537338644548714440246586297215994921831524537014770192031347420538048338726557024642621445092686361010006645548624981264536738086746131360288112471764579565992933166773460780044330009408361049544272372970306615821910698277639272015457164111303635982074631949417851704012336614384423151017389657729578889104212036737419739324657967622532310211893678815883633930500115676259615145804062743295501163733577072232615659968993925425970300867842837654999345949255317363850939998043635336173376226768978672654512841704324698776149756382771607124025380599542775314921389582784387637778446507175770551508397858249773968616095819437920285805937456393246339454633521929013602571034296950012912049701180901118282142340809772552931118314285934979089559772819060314464795982763859111131221861329418017718058406847630365069399736808816150350237270433986635456174487628422709980574733080789174124924251560487911511817897339929660064951635094714877452832024732857842647649199564443787940403371027060347864711103437006001648108989743082257282410198020910680418164299806003018620002086599140820135185918043256443042215959182290053223138415870193159878704473077352391656781974445994638614957391067698346149892709838968938951837662167027440877682045865502363206010332262495962144482300055049801251171589517378970304029947402429815076488855960254829223639753377694884437459654433477320600977729297607323100448971186673104045779437792993112057027078297216030885670754201288231168594826642346743254637857570794533301309914740221918005104265152133633669682629909957431811314163254420824277203131569401133275598686887570727006086490164270801970429247570232796363642344183459105790082918920108350395939837309626825177829558005287360371899953312915777349487494146025629382553306481873668865862430089899043556233925595915509063337556904332348118992549693475356100285011407158638272922266602811862271418486127928064029393605632357891384394767774360412296188186407675497636516761797938860038667072462803200367492125017557018143328409554971368216481794212750293531439393028082827503291748318663788535256696576713298061969751178406601423925747768771698759818995695385022155789662900039853616826302299150719864835914360166891246166577836617558925944091445137695534771656891827039869409502321530056436761471520460856310251781946149420034513273107671751439154014918042780075115742138096043389930881260610194073887148449617361869718524360663541256125240291953363944686004917020997172583068448252332505794176144195569997586868805044182400083341020714122431954376421942423721072801874063302873652226675984732052866099789769322783856327353157907343263101544241279299595736866126938797046571608570175447881556621445064714382234263487731556741767326428727098030134915352596676198072109024119014975257331426240375232633866802142499903588318427035548658001227684229987815878849481327660617065924817060695442963816915220451755269409323366238554646493852059420342953667803430704503500843696322163909736006630248917571053474991410831107948761644297429742400210984076140847281918750319324743485532122063999620875308951523235467431106046359228055470842532054242779569944699313414635318950676267793927965940492281503458104033357454692057017413360843948322402308206463787405925968258683390422697424729529995371810441897274670460011135350654622022545164672148423109964843791006382582551616092053433210255665516711029718800738790883663682347491880732537044102595444324539756562585325738830528331988411291990767130422351930857065743654661700520884260796143897605186452679486749729915655446469852948718104964678951631410043549710573303060907460582834835222690328475073124991549302950361546603186515433751107458146825909203909729073269670848664198288350179526967284584940152165679522940088298532985577480724248165429455720149161838903455558438004958287284334702266873896658702163165162100929819677940573138499586879372860040065785634592978845300237965132996627550357341343875596706824308041367692629350393580616455835911946384508300222915508393538587096625244408748060127477655042424197297046458243761034099169936991578586713715536836067672973872751025155984919565337287847931721811495333868930650070415961600802270354550153940876429390175054174764968384193623126959104604541191612450760988380128375894017222302912187904167163294900689921797732327952834043553157042531614274180083824352692629566535066531956685380278922981357083429903698351468148064569742304597701737874117350041406715904849751812056747984970152644082599499712163203708776902171502215193528506138422913756684509577714181697631629523426924959297116368876486513815010803790256358265730549653381733807195400245084635447729762905770282898556581263231398522723058354375858137628369458680538436638290900779691342279286510157573755073544514837550259564477170659289973216164069457440768672111176022809940311480556341910044956509088550030111926818771760222417351549394127327895726817369839184818463754002784584218464594508361777114707233294508670912019239114337198915089291652816159288999841627692196542946822533298670090246614045603625743500830787948826136907717320221748503267718771417502582481871219820468785225679107096199554183760356311518839291224453435845235910011619607657115053206542779701007473126692116380965620611778945377735626621795222414257202230953750893352020345022131960488169732285987833687097323519027844245112632685703773495428887849789697892222641433658098425252962480776984586503251618952390199891743434998439883179192484672439351144613339989353190578711140778449642732486260854053754169225692555342326293635509314255527256169811519502954597384975689617269547526156570961954259230935110313240111223546866660637461586974124366704428927719882615118627454884413596662322432085284101353561595887343543387368226232700971777885395833422236646564184786038210485808712190920745925469556668752825272624639764611159549264479136493364744661761055452592305989049234220317682106974693641818899180578509040866194298765111868195706568228143382298010092266235831404896782105832310858465580350313074674889719646477549254984277525619750985670801244456384825915862615640976542685214986145946101948453523807978030546735022475513782663954122081457848419162594094586009410419935509167078026838433850089414069732912549123136296141814807459043955968889177330263576035968977132546374069123857439795290570111323973170969133170166435237010761533812186821524757984766552340937338975077664665986267951674905995421244145659385944222415637858823793309173880915977606034342548424754162741591911996550757197281992331740037846801159746403828804993557408425104448836783338399338956076631806788872918393610233870436567618626601830827068103255954547668631596999435586360001885085217413915877848622851374708212491640918287636920846424781170816194448403508628074470288827079100937189051510780620946768342544571515992218767904132154134694439441619865879132582326751480297339693921977351698753890612003875932853638236792542481397126052111606732821640497938946188986916561886154335175502978071367201940974915717893186494961648025266056586994291256822583344689650835404347437081284663682088474633316107420132759740377020405662975468220557028774381872701205588257477912421499458353040001747496249623381514915014880520615224818752915832711370163881399691709542296305169302267628634864306409736968133638659767704952758383709928109067460815962335732275305203744225276009396683640676357982555241538029813985986480935080455466260561536366705906829788554802795057807883755115633204659593031223305350874467482990360875897930190019347889630764382096713826246117999976390394351436716081648134569728028354695378473843942856202400926039078217134336657735407505927997647437449032590959377121461021860236676519674968207914691424488840730635521458118506292492310709448743892303903635536996776281383199724818855947909894374475738543789957646703507269298501147222140074070734396963811938205773477260202287855518193093950196412673242826005256572235589681182066971894292711959532378184982098800545478181363924917461971449878879368837240035712011434810773803028172703281675913104765561474611698837540530343049900972542536022339340566331929232791943122502943682615582091919196970798781603739299232908539219732723973700540691862056622254846046873151505988821324458629840301725113971712373468898558777783693259599118174234740691404096713692521691148992060015559533375821169437618705477449271251473976903405098778524088378381531598283036008635834065643800613643267399045713387657829105919305161970516229905811989956962697718532382249204824491724065604377012846413639036688879211658350541774012524545003560923792484385147485492441620601330524172843835252418826418547615373900925365623180884456367671838015904708816210393717578710008222360960474059528375918801359609194727453379405353485010289237636744203066632382491280244714174780499697263880934413067800108540373589085544261720049386038597325084648862701349076277503957001004111536403800249824362884691664144273594911550010304572418533813438746146788859183351193526887465804010556185733592443264832291783743023770409600521054751648439439673293563133112845451222628108058360013205532475826096363274206431058060259519336733913818173977627435504817794111395982145865977730416898795050336840525210304783354681743185718490307575942922987535382553655145785163193071571780950651853366337045861031907898363811275093362299121800933097186205533180319356328492334965403146260867940161349448772310513987084859946574650240714444302958340151345431914130058057293801215874158325527178672760668612717089871898809457150082340938625813420433833901181372232877326648500407407352170069499218352392755877332159036410199725030610778818323968345866293939815502563365309923030459549525330745220770967083013879793666002012434233205066443089812618510509445463712599021084345548894364684786056670223628760430174464804649701318330988374669335114423631020912844593001074219847884700027549222436123544010172080204011822548552606410470359235016261423171455408175368299089923514363106506801259861730820097851483122683875648915561817186816428345844732797374341492167817300092252969870970730374533738522730584026283683545652954517190701892865111121370864129156246458479783475875111026443838179573037248521836950573426080045692453654594630160986454762862949031593492863912814462279436500232556077325557648769061868917086431858117202549945947445545805524479249557611228070303713881797310159289589380998765600795250838972198240587560506967587404867112972286262734998053239191823973933764471976743524806849368466243375900911172498332974587964010197113272106121438562878679854096662321500743617757626671009838012685039643502701493425067628824079007516317576008359953501463774361789700668951728273408556841479513669951663737389822287103856255072229986248748655220541065412029533305758901639017417946335820624681229340008726382477333139020682754817836631015916557489068188707204504476007884620160430503102888305921628053333223155496142470764397179887814865811908603169383999796259366738762774053775725719517628605185349551969790518757494358672546854199901275467746443130177170969818880590758310322675881759397024823468502486919372408335167530600679551469130098439309345535896271236818336341767184651061824252397329487032305082849752226951318142993190865179454503447731007257156968357306974396320195070119223279918213507625020484451553098252743510015362735419422323263891726655380745731175297851159304497724839770617166080609314574544032806432850455012893128396241343265706563153786949871628260589645955953540771812716147662459982727495843670532632147097091216463229855270077556865191240759689061308524678410663543170938405890421784105009328412431920457469232796021131468338473475057932031436811321311402596352528412864006756225291470882116624942216864853091181318316003674208278480900426413829582072492429386887341936983764171854433124941777075319725091794986171431297652259403410972639985541000952925816340783468510292781239440711564691591596834885341268614236093043002937953493349017383665415902091124547442627692318537121922068768409165022404931257952174245023577377118986525899049733435122852302200092871641940767803663753224140342394495574423823570339526504801903339590493516741164856972293724281500464282892630641900230621173159887501386648155852378269989609988930223782130323806209880663234614633480324401207231675398939790263148257157516501374167167615353209714688535416917968189114468358260541548055986944615022546332280304608852952860138966007567254114295791479587586086727922976216855014993119359757855772241495534568226275296971968484137597446191434980113448781181955766443462578422391928295911944503896049623280286442188147540246840393451314090586482141557870594373016852616785756613423068969210558908881003909555115036032057065795640785050427179046747558490906287711339904412761095489050967748337726185272486943297687197864766015138386768978313545217963270036680883521858328832652385175036844013577263123387811290288878224940927226408387738328690949571030729237313495810772006220385565888893226394205855707468107800565617781939997955766268128498941141243825623620863399916802057992242128405747989363866345111590397695211772882799305373314182825032500342698255255092131289974604323362146465413161600018689002003058955692604976759816401413244331136255209366353471381346079951969062963835993244600103490658148585654287993108918949871831004695365221449497198534874310321589708994966510736229727165593916936462580922761825508442056293891611477512741211047672015553465975467099669940773943825254777310389003748598061441259472043070438900553169278384245855595151298256502722172163388273287816418133809595831635513078966453519785534128355655148784477524193972093225997826175855385394454782659335906378297091291125564278195501962719951788104716276769016332501570863532312415150916378467567097700952372502894180304832401709855371514578918376936359677681828557851610208841154532512342068784454298641118670585087383832022238222843014365393207455403823131152387165871139081066686162532224414657756499913955999143277684700442628091863315026482605355480887933924834081010298562532952085555130695624065040988303237988129768641651757759656889107736716426718088588204700618383417601257714495241756141593309392139728409549590424601113137731452467617022159999257070852749915368455071611330701951973712433051662617144194188305250740036711159266456388047931072274407384995981246602763828582010276607790492272188116050963085547475774900584766296943924998710189074866650542880307304871761338935009023154431410908576463187871616578277265868275431343700393152791556915713388423315880309816053104508629252477936656498372680924366610088003860841853123210982504807018139536424418373869330362552858960483326808582436334801286949183388458587897609014524914669350241046204529443891555215670245788876367935974582606577195008716216027740761563595249301124721971218156664546423906562042002559167204243272207090122830747022835580596379542563629828301307893451235424278376718641469088474901226621476052676801804111496027307318611823662592879220404184505554151045961171245881328286419908344753942192324246218216850427053728056615699074811252688331449315237723884897869061206290621234725306164862695759769588052922982054262201490216669217686022924821704555781305493422990093459941185273604274334332152642527123635311281270088110807100841071577629783060041108641069593113546457621787535939787017682612979664781780982498851275433438653803479037116427438000322737998320987354734026156195672012659418028526449802117128089286764176640417217652099866330442602907545826646400794716809856666177084003438055826890520734965199513530855952288926427051773105713485121055736843770962134986658157578978709565605976474372904190315103132839367560514149914468478672003863042405232843053727793809774458463852305391914239080863282104939896300404137077051165891004384580751857659384095853104285341543790249305919863664094553201908331291871076002035641678593352117148395844687153182061623367989876222880318697882602237110726394023579765191637492677217545753452709865839170569648278454140186330760635163065941934490582653549674601664555071019090765778908240099630650831228773281692241776581243951094566507433783340535959479378567926007176364952069114974708675055766136284844925972274749684802841583254210276667057263377859264504070763311491521103977771122421412020382136071079471591073486011679535229060498910197428966220859317484640437712971410582351875859533303607107171320476864701415581440136274756441964179487007094229133499072150683141039183902739916280304171151307320946530039447522140678225738450086537902387133085990427185217074211953813347384512208055871023467726236763608582458456071664818535880691894433691226548707952580416917915295846390138363701184085632235833258070007261446387026956888377172823791483621053276832059854747451282700380332461924863013419879437317850986302975588373166832413759174126164676689430355623158506670707646621403061015577056892109631301387151897751180127927116526195231234110697199149763863656465633128413460256306680515258666328485775796517800025517797572605355454213648952344213382314134498144485655554337145376368424599693020730104964264071700832385132623676198483142247758006316455313407159972778892562620704929824495428468582218589868234539559280045971000952278083385304129199018623690377501819762997067214685820799269862570026094625541749221430099348748593891008391872529362464366196259817778586436949129125376184193325860370901731986590756817758739480653447819477502983339504664630400742587647683386185600976189248145734893062206062228591977042367527431654591373047958979366559221332425564076795846822437160656788935730531509224715062703897215258168901136494038157468294148023909809660623752527885549018098047576088600812976676950826309684601822270790950738400583578596624314439021645195627658183243803260398180244903199783296634973376755508607936679261383206949371262862009328342750579095647593814639535759490626982585104366914077540908360159638820708087001939644507617653623861805025186366045323183794822682050132528724559112310600718086389829408099071526473761868012032549766544830158148636761374675762185103341925009300143843349843670551378049230305187701462055728499211350502689599717035979785020978167158448992069012961949076104378655920921528828503869089331467681241821899856767265858891067440881569293337465769416332621887394268616667713466143000968860763970636741547033556263834373067569964842630140907095284473254343389988341655741928961680769745484400579767380271321477458416438077410648314936583183485895958546193791675497976193502684021348666086832759671025769711776822019972891252080126001063576529857612616221002261549564228611961708478890939528620329922802693973837797743374803023154786670260240774821540689786416958940972038324477269049044786308152477398187493550738822895783052700149936112711788247014967490046968081105900457425804706254558038734570783557855342289975470205709516460031960314687721287537599023070705171599562274713936636764494767144681284654588508750508254776971663814077932410221475218834932871023470491543558837264283801376757654179132146547365149508474014506616438357404985101974057409493217988020250469682078430099246034008121045512751698734858952933387933947165046800735335681016193843244511714830577917154424379327436121121329194913876347561475994064210705438598993593373614294043353013700264036759180793448812139565779174202928852066993330583047580840181917000927660470079101798278834008131683439525774520893720547103759127937535790887560270790419907028130604111047911322781927398647786924406893421880929145149414610056861789491222946509968008745201887874817149995573475182847782594020272475625456092708496049576725983683168719457708295512630353392520053912669687631351218098827431252846290086208036098394634651233823173657502392956972258264853548753803450047872088747506242323763517131264872170211402741555107162542757327584182973044979650345160226399614671079330766545165472424323823608798998095454950004485301593340656796086000105704219309447148114529837875457331838733932141614983854084076635863214046628521464775347751911122919846981967137791012091105055479022438574501737684971405246004812670192838427263330898656779330168147302485388353944079926634673908011616161709714271596528140978401644393346853851092740538786418996961051503619383801029337669753929531069789924306545168922579568667707181693507897876911702397703541384681767527148812097076764719517676267502970995309888816397664598381348600084977177635411751488204970434642453324058626649459936006245971068147473985827431346949542822384370153020116352566714011828884198155668358253946947583383168575822513324085417770418460182033372688191202962430242123112756898345482663266871218461394247028197181273990310697402083798938325437663115928755597060946768458703305228383275954225596009602015535534460211976497049938320524585030247678867081936590395287386386873559913820166029713857386284754731633170372449849263702965189485851936047490636338424428368619926681209382658123370787604666685000385716707935625806765326602983405310523361454780867567168723899368454794411190959903759184044368249260273456279477309899093637683740340284851469171753029357994067932541540048720443923600352694596824012416197221979047351133912111273355677017422080995674880581625755047303187852339597802522249254766902813215693489687426749847662901260481171127275151670821497805373966810217114104217248205881726934385070461131364714992236464849444752160772489906502418595660654853102346233012187118719562696957960363529329001542145029314743309107830848662388776872638247332563262395914494289091979597929571069691728212138788073941446212028435636695099382589662897979743262034701634677894980309169952059999552121973523384809864267887308613530415851318279803545652619637554081772006757280389303533226710373965411575883646142191582911971822443461194406576695202415847262918533912483004410923754655401716941814123175287663783751247261058684131864073620873873727267274655805477549526615121634225369516364983422908901627312672523865452240283475552856836750857743381642322177604050919662003399466032066019861362170421789449977663927883168994342922864354030483626684255118983958692529422596819104325698172897584518762281635623473777480287545690093430564262201516215189385837796694270112173603655346796349852485734418995275221695141483466097214372085105436420127205283689734126924233760838799783218825625411733265829195432042766972034621964331823729603588809379874676758680167114341352908460091877719418770395912042129552403772558342410307657091096623933078887171793268412387847122691330306603254782747245822785049381472143918808903104852240085725287257843323857550877603761894224110270519740063021021035075905920953486933333468547390861368960663349652706868437730072022617644420165418008947939805997132417199287249881921794570664937680290881688450476161141363836735457220896967812239358886287755438615815724878545277695533452844502868649428842129603031720543204206653695228868192253789829456316764435981164034765759330432005219650752563167271948994492291666037917792586976106186996468924071297279188366304987509163612896626596980395447321530471665514732200851758851694879976309984270895344979207740260447747696369051807784064754830655829100861727807242505214245413687377676685745647643981165563262066476955961186261837774075323174268500527744325855197227832871835322331596182324000960736480433674129168780027021961332727421036815005349748201037389068834935168576474534833622095989861457416637664735573639837011203634886926872365052601296804931739289615496794069426748235617607098535122673474511152996852368560591184840961167273444682095048270292174548777093948784815821162650289843241255104248183662663347534551433775595645682021066422893669589973094135869192702818773645868315594786466261901847995792721886062371721131554729563724337672980333626309542255739567291228222546579326142924943991265220944541134726790920120260691293840699736140589680012968922336689379076260782553325296156150989919483379843460735173052893736478306307681743662105063901721383631359335143166131363340929231768056330413265661422161947079381185205248124592030822983885192138781089687427222166884562619906658200957269972048924768320418147497594878917568344035728489898713238290977932774362423910112663148765741721658310857506374211263918992709399922259347822829675340683282867173916640583323963714549869169338580447309779418681636765234354286530472823199959984645699331824207324869378012103903109265051083255225410675579009393636704268734145243391264924513748720921301002824017161414735504251644951526007502493560683303492661688863725907014304556377811584097426276032998430512880494466400570700491735419780060258339557733946547675595829921741913629292074937175772727888296394427910916837894156852850389148927664667007663331083319006523422721506065271840320861706450425489670189967478260248160003248921209617101647376504512816214324498304501261710293810120284866676014609235616710867185303775918480349480237784114445295667363982342866780704694136900762014715884574235633863095292524800406856316855317806082766173157946810947799086356285502676315068562376006591115498889028536384859022740822009998832267055170630855482183902061354843374481134797547054878741010556222393570661869691997115946479037086607508748958077006035236366502978286268580252782234597815392865290988517180900162192447281872702836228808174556327493959119526961832497529420144396781239908971667555811588605798627821173632524549958049129292394009084327473180095536734733229235385708621250438108721424578528224552209168825207909735360169489578531949291097520023502836140316608679793208681266764261087326393362095518031691708500454377273730154062390698085990759382060283457151707419821998714110226871013335307008531566524554763141105803664515184289787900001783951205267353772820167765975194356438639999921528107996456308640798702606478397697090574572107578463502376816091257308081662307626112593765187217034076089237101530070729165175046558688219406892490670489162420178541215575078433677960334212503377909325884751944925415301252162054452120049996439976633634951855677518104578213028555745310668548443157812921950283141953409045883776800982744764886174281143741700614923530536476707328740496978993847210601717077001620864044547573621284440835818515701902887627722395140135164385190658385977718861499442660278260274678421275384668787327837298662769667397574439498654479672115443875958013076413544666423163043837641845255059600387569734475730276035175934669249355551647246375405315179216698525624842377766302053625054810321464747942589642122678283617476335183171943802757791361338608357975539270765770243597178385846114982873514003504252806524522777161316290445695003497636507887649022243601531340219891601743960198908794449391210787574384660874560753908021180290070531264500600729041461802115449009528168827032088370982312264904919616648993851590556968498162830819547558456235180022113873758292215855583541918764926356922268774894436341752364754801388725374804592414708338202931330430181938883579017033401781395152250639414429073382645298200327899790795318709213536553861765163288010445044596244379189677590664208238041931204071446860029516666733798555495052812532360642418772937493394827134516109562206917021355299311250116075489887174017683011737077197854704540538811166450550112010704160817244806057401784750423935076753932514982943806829887575151315305737368225552912806211795776940796815448487413755713590643588212613440963917813294884190006907038738942228144519188607696649667426944210460341832866931471235298099508393755427995598452940674896330678953938705016140309507366053023865184740926343795561446069850569037890588189038679248888555788743186550477081165087145658708821296419280522180938039583424446879077545041772189621515602692885237399758012585900895953689031770007612415666358718727279526096712450106803710448087048929547174602869442085092623469843550742850467887609909466414561634073610364235561739994370352241658001764284075693712662681991088437070582037037240814783479177775215447490931763988071562787054167177891904788128562988195967280716220641690004553280359179890699958820168563816800781106534999519180877076240136219425308242622347867005822642310497978324633291465892697712050571850498124632740702829186481166593443409092186632653999789600115792558789648194447177168979019692483535130023271874675930119570236074452364855777973132697993999059238671173912391112709806182288287134161989144422903053412240863675481476735599764407320210676194076150164641299368400003634455802667223943459171975146464405482065513420453994634412477603996851865137360984027545066057918848609669129587705535903716509881527979775414650533682173414959024183100687805701902070910366865348813646164979224192378607073578661729911597255468012313798593992091620632070751151146308679996178181076571333284797697458114046536018662062871622656688489906611286792133638366664860349152508870174577618736166017457230109776535153788642342483031947102935814383087000145019491236691083048171194309213233519983920823347817635431727082630577626504353919090993813486539914763556397903020122644932512344828581609439835176734079143676088689378302575905130384079078019660953260851751376173463493565570236299740631905988421687676346481578115135964235202995747575865723360249171353284126673218002688556110339899187389421257837693710976658934388825903490707221003927288432863947256964947843802755328112859754163285739031670646058308340981560158692637725996763820907271222472982885561190362632000047068729184474995539216212910363180271674906552197377344577793161514984921144488477806855419024334448075703625747280795646175189688916402717732472319978924807028629640097076481407664914976625181502607745494121530383140102638930091808670242809175310411806452060188472860706354233908448448461567160040523445126611283143402035699025829161159206603307974132539871266832453143314312094329925688129098010014557684601897302257905592175721824783539014841618817598760761814631522237993000966206457566213174553059706374372219438858174426620050501636670324006448106651579927046094560025823004078377004467575359383071157864525588494884558130071679348376135179826673664867888630933442345809941970214247207244519009348047542309537404209360209411867249273364953114895952007204942021594888686781016928991183611513411264532022361853939506518459468218108195331865583076307849687826092308568238317506015717945371548091414173291978558377998146636821073034241040929105935702259261531745968747131357621932225077877618812903767836430795722475797053331130040001342816364596981914447501216037264102473179713103351827083457483996625630156531651344090163015059168897458752113070759394657780830958375809898225622461858369614641795833987935869616782672421513325719796209322256766373677498839438540874740140355562826163667456714401186546578844089364157249229487080330648394510571357549227116554837969725387126742553270782317188312153487087029288126849150753884492330527046621588588064887088486003167115246708947372601086975081121763938222055519232079818776465675399793008173648759558514328506279250132630743246686872010515026235969282119135663241248873204986036433962621400469053135919138581553998155057792182241280659008408224464377459312984574396279010300710833807711434211241251950132985547864699787613007483555486941386355300705951790241538529400232814831423484904002051891468892754243013489975712076440092691876809339209721975550171760366169251198927170082224279510814861932295374701437202350049851792723173026060778510662031120718774306050849070124814177888835958527275284186164807543634865237696628758732169640693253735843467927610429938505475104511633141224415438228625866526667162124823008011667600326881055803330997218482269805926179883786758497800598135044413821014773744844230302619609457527076932058440388653443190082052168217507495545775338582684468526481446180675955609467760170837284060377502325922955410517681065718590779182654120366430749038389415337259909208556300316468598581732452129288825593587729702802750986688191597961441262896626002781899769495117258581516351812718110900887967033013632582289280397167458565539242472347535635199634136579617226487343350813966904584341709901097391724671785743370320025471545311074530918797242009234457858927454088639998744297298570811720776079418365561279283516708062436440172570269985569442292459717231048346234047890082976745612208544747834874483053064651687122610747948767508930156018901553435051953757518184389931270912519042290571041384341826195154974314645181298232443374156208660396885973990628355967292701346967570101763566525096625440884300478898069072774839380823985470653666329222365550885662125741037300835655144159468632008835066221887835339631726121846340429354465590037381750811305375800833824797546189958815100125647413467930666980054219777000155643225823374427579128172749164455513498433571413420215142669892688914168693684508484760914461626602277111738837082899060875152787277499276007717861295786388738560586132343735644403255837853841835357129096521003270378353749378750742563070395668747650229515056192273992487731956201142358312057193792008438235239225159340455086308567393699103573827931100337078005681934203454725319780010228694683975522905598810247877259544156012584428083898271297910472105064954714371772953799584735596761559540045600618006275421752773139734890969069287535623961189741185858870721774512898659996646174425403900826252970583441116358880293464186448790949528252977644526182740825392859029391992234107703530801304534382072603387318556699707964772136719190552743679493165818914776174436097902781814254572648650363322868047303944432304090133152514517827700822306613402605874091783928778027346858257333754568608905929082115785687808138753842486846927089728032248119687948824914681811802205993959417318152797567183794909056693704748919942991519826895448898668713006756418533977439202883827069965692401718863784980422313245210292690454464387340553667615324722104883785870106980783325750020244839131914280568836840753754915772825232231740871240525194635805599182529144080837551076654529776835358580086105731263230651147939992620579589294803717054062847797603871077572166699202559164391627573381969030983307049293980602456118602267402743386912359961955560342114425896468217176827374046162198024575658400143863386704862822079647154684022913492379912699498850852592216682937965868310076044658683238484868958551562924746742114712012181096989819287390509439106348568143095440444919467076424684365522088389369849520306042038832334252259303459223755985661075670851703974734639921362135545322696366812771171087818795480428080804583083736353390271138851931582810363726341610797160445170351981944032301785579394551498907603295770228688767951800450985976760292093970701914015853333623224369277396553558155749211749320332693638219587344005371453299146615055914171800288491373012769256987035517699866968304280882057586363434939796998139377838371982851089997910113335413674559878525580772646269694103603280765599843441687631320860338723087253513211687915997586014725327963399113058359815553594365269636381955289864891908188013074348430796528408064805440279803577588760571372068866776182962210199483520398346259064688150952492946429203623142577212680175071566939224645263542171124260617524410722114346903960067049409763769386178900686694496805708512890192600391280518148020552390821634749236336219629245185645281100315206667986505521256319732698770344237845216024283444741003907010941359839618264336026782342614087095296250526313624666348243470609957399122732014057867661651459255073546462262538329417477928111096164007865344008980032381931003535349155596190105916415974555141008933252547122342327910186227933485261576521947372454611369577672795509534732812553377402927606998732072494542680520299840118525307656019205145447549372379481929557084452142524448465723999847268253931395616200757582193288265699056552010673041945967981275542759008427264577247401801449206343424248519333802341970001958661338997706045474730728312586925971110131351865186129145191595892975484297787477207912443426043136101486948639166821935223067882269430207838553521923393243615904738364759909444619815615137972540777364797760106399901257832423641893760642909446991173729787992376094978065527082663738576696184488861082197235815871016629864489834919576179794615786105544374813483905071319211254861027529275214631309967798705552624660616967873116724734459788790647965592832330647109391178633036011747141931598041330906420087260414581585998704078679846188182564721914891853148260130097277855165446451981248728275601580027079342790036336400871535983016863835061011709390136963061110735520267622568140304537993521427478504559188483915602483635457751114820276473044407950722922521997949588641472710955580448938640695566587491514245530129317951265650495914477080829647524749465082119536602228735165102385904122771997551044262077842890482577180508805001287540346706218716304196498115727034271823163736014211029624955274825766067570376646595444231834723664616947997192372999323555216726949359031297928249636203009195228714917751392680067974152842670477764132833607586785545808652392149817971272161818053290283151015873676664557350605170765442077247054490551021720805737011179046727790032613817885949106183311527383947180882875652204518906179297619360714097904195840382339716466245923532767761460255146467903584015343229306468860117420984780544097801893164094808909134938131077011897191302854061786713028513485495294117352987986966951994653472544353759085652970039170653058881342209104236195171106926203497988328563847608029157672585944706774235935400309772412185803489505410496829362501763995103659963369790432587476257541124426096225085071021295481574149126569432590681858160107280243427753327269195631190909576539931551779528840695700256003979383015547073443673414198509215502371250622611733119185011324513831830402495638785694289080873449231598376315128426904176368917031659797507247902571183311878623968669752801526057222705854977844937708151015389795043609937593515983204415974609609612617739163285825825057969096855453221543181146080797252247595691109165565273866198014240022571619312817019279632069086201125677143445879992996304054057291182780190914640019477015875328568755013700923571056888978025832629867964298171971220716124914258528136289516749792537078837526781854046447553533033902186250366237068456207666942600242724357584960051561998115171533282056320972317933015823106097937967865364839200352625696393872042222967961082563662248407211845315385278343279694750043467424113371099831283432845923113995354107113601367001719480585897129210760784317123219741388619899079377003603375512309964323945348073300024441780232652028976209310486775600786593491423507989419022135816626438386184082456928149609055946141571895371515228603592869862691645182153571171111129659543584707677731676216684031409638337657501997265228769834914802922348244920825160602862033472600878205635495466270819990724328787321794771263543449856445689978183865921332113975302369780313569234860457579727256934442072043811451699137898556466713161965053918510257873472752542650235109900692522958668775460219277134806068803197421452488163786934138532625677432812616741002264334691124742528835760490898912733389234199980699752376722387233424630691637761728252859852820246135048742202617441365518572323633925092005380693023652604066143117115633011834606645170252120508026224203763967750549867712217372495201631657662022010332364214648209936474072563465919101027548981696909041890826076359903531327003856655229867251922895478302521457982463230344794327879923946630512598476200119456424072970940434959659898855909163493848541855745821164343273918127944110155817740875182717001661789204272803555344356367956620250137964165413271337841534900520780468836859593864337014474979203783716467918682421717096499707164853219603224794104190001022443633314053578591713235963379622546175502235949820062933508590068055288551676291865004389218802350183018800461883498495269735070000791518660567152044084029753629000979800080605201406895388446857169630213478095606938331402352788213626905909533315115366201545777520314949632985161514212282338749220869810976024274354586268819005517118348062906666770941501307869730210633336569941358848078199292491412140677534903169847086014798211677947476616377704435138427388206056414539298774962382613226208229614964210391566264593687830787265068985885254103589215552329392889195507135272150530241657943101041399351899717391586573423346183859933909866915200596488824212515381860964286920765249632065490439177439551559117547979886821915939992555921387354967374362580964494458066238384957900865900503947781050581667416488866433213746306296980814909003147607680534999612883366843811364638962490259808387319539989444832749045806727919384185278696670453420947914283104383569791584083796939276408829963008176499322723511664082993432516068671369779010849154381044079517135040523422029857290294836782558068839058156285625259774266067686058382238181609003048658754269588743233171940131238091911843739350521354251080488728097360070477548567027462482956045636233397065624422244956852598966612357675516899493357831013064552705648790779245078188499080303825907953521464587768160004905503262125090670543121853877979840730738961145140795770590361257008679509567026658551521956452577648468586917784645343043178077036148056356859408052537941694376309405084905268116879160268989929569561525113977404761847868600914577490852723889192122919602990776252701646249784395884566800986002450577428765859970074036470860470881914400354553917932988388228995108811041434375735819509011654795789344855454394936305440551098745539696991733327729331676566064745584244482951548128222155227922858849757065210988009099280137811790587016528262418056841912584398873950117099456297217849354166482520812034878670903526975643919452621266041890467974967456693643651559434309591359591556279207794905325622714301843961318728372858262411897796570324940880756340212894271307515632897018029021373319242320338831912006431386839806883175896102301570767445714309840706978194738024951074988849764173311050826138776648741732277115830639107162756099970101210298326289149966395342949790919603239532551286892188509757983873209571648436833537392233254241294159892544134670430669434694142211826811910146846131549153940294130948635428156450068520205175228957676193312950085064759361471429039689878816266120818409397801493996446248364233561432673990820390915091280419893630424190745670581549277277593620748560414442449185294571899369999361854545788604080310326510869766790810242628106312780380617050024509941659241300244521605335278693363401606602994037945399540189274808530093005208560203186348580298697242596927478440585172442146862916067337969847236701087370109207452788539021745728903729834430476868094482033425288806744226823208004758359038376943677767055540325747862987474900905623556179313465301771849102465739295757469715335416198945619503020382969217884684649300958565015155357992822267438317644555110015518598291061522908557192805806403731402922075172450640387491253301294080802393831685402962485458599285012753941091694311003655540718808686995634969784358504794557640273338567460918044019582807427874946491435965412544944393842350370139334224348630178939781796584814398176320500042839142591784823822493572867290389763683542683865860301979028763401417704197176421034331976359342493318360653296526192068214143515567591947054276038463417636465828292488906867042860044949066803115879229415441210168017319752767272810071980712231620886107422228885813837533369778108337155196936667549233248235052975643953364897227406523304798018748569958339325986022381175178995522656145812039944337595068858006365179030668037246170857884226755409529946656740234613567523439236022610800527998077513225479742522394255581908707048021717921560886220927482244586963042862717545013225790280122970269675584366167361943651853847884294681519720249258165196006333946846925883112416104950086353241361346757387839532776434637432716706463943938297427360881938853273796008264356850010653786310873529505422262194210876266297552121647828717567457188284875478014570328516356064294201990578500818305136719513100981857378204953697605935932377325202705932464681020791848108481467213957246239481502562302220393505333360516427858399665707637012340473112822443687381683123270262801918361698832011968896865861949545776249382354732345211851830286218492334369951106340762464544398632145799842413682321541879841534226214006025739636270033400552106792125600190287369464649625225518472578872809838566135789235170787652388379797034345293805478915923210140199345928819013831207912812728196597838931595165792900187887521892610655730803709969872871882346264343176691989110992776172330356568102164256008483930950951170265313904241405960821341448062281439987526476365774220550223061675197044328548450248389101890574727751612330632370600184124531981262280502155107837632219314553515234023205778331405394527430226647830601018293990252143619778116659378253630134735380285160714780030927583364746263064834031549880157187354054786443652396998681386390855597882000002176354416379289910895431532272879383108414390027840961687586400616826845815954553525361798444815004080620963245470132439211718383115849522619001159950743264672713518314103095996843585136740762419606384174561665258752782627371375810089651650034867727791461582914429038429111123371339422451462368044349438319710027130354711311976810384631509918891630680989223694640419835291381806878129301965741733678454750867190975759185587251157995092214649046793029330924482995257765033290070187167837859240580472007564553280400454684082299903895864811020427583721539505741183267432601013660406205268649350756551054202078293378656665912549569401129050704117040653509850001520082109076081877843828027536302044767952056241778302654367300336603082954680299577021985641617377559622614666340651379706810232092169682085778544967097730375496161382162571469454407384913688947360010336799704268779309051925349197343030989255519477528739609673593640889214090529080247081412026926067188854435187989317917226831116867465080513661279184026691856236946897102161621938244915308254341624067440643226188804953561846058972423126469972712661429903649170474709568918921336908051757977017567295701399569551307591536175485779372942528479706949801253317185275831899179712787929094446298041549183328470871959413470001472788995363298954361153495912125006310760429357131433482839411168021779236474750360000272720347743119566788603928897374619243319975676487845936310144569999996638107266789143308596220590100709172563619057307270019057388696933561185730000806670122234210307485008585520445458119563754795174345667838801814395897325616011725534875737049787248362733676249011954008626237764665809576467551282465528580065759361068906819999728436797137554298308018956794157523233212931155800427057459399311347750968342811460646680830453788790232502062527902701995653900365170509371153615346554681572778280231322780772514933002455009051429943921499099434557904639725280908632114131670737702336533540908826446129742434279345286905199799320969594512755373081644510815477595450352301644417807276470349703194862130365975474422216795839932727575451772604792968874487624958238083583741917297016925950065672573988190159698882823568800501307734146934431697826363773786878941374833060682357286551215739524190295981820615530554542023157758190161290449359638802645516328689357899410083653176061899421816683885342458241042395217354389158277248193827643279683798366788384348033990753181299206301734190209222182015477083681406681222031558714940451783673574476185604149118325287136670740768440085010983535765931467728337495539925019774600946310506064869679939821650453485358729935029277419237094540182295988977944696449464492243361162063452828754354266565273684311686161448435321675637731053805603598086786552797702793358369398978423066532705839715332309595002168758514330588010342470136087683392366845684745052719302541628904394425057285993876363772182339058948833536318550482387820391849854981125866020618474747129760984409244219458662904407085407188276533364492879565989935567764649831519012322953971455542150895611634464440486992984688519596053804389756174581371152913599478236561209450391335294175297865455035169839556401417426621602479588963061449850535720036860411096856351568314987420957282225695912782143844726160943369997272782910413298741257639384950049842090097714967278504878896702808269507923016645682698317471980382271074858806784153380117475316960091368595647307132042008225589624236874887345585944263077814367210036040863106032615208806892993907497308616922763220325814327577170912713251540186898762020282375197229374498078381420930032894308865014733633166290642984110943242900413472544833698573008680418532113265013825493269896041643904222077320842180345413517086418633773313893769795598052764229431810685990083607187550090577919717961888842853763496840663153027407044712802977328688646004739957330477103462017448541068922331308020502024658421574040404247002235052221706871750576090333886328261874097302696221141780399744046648483803522861192524993655734529858255310242133115281933703459922775712384983675658977295182801394621782512037279325512767015828303832552012232808427315560000807291642387340408155489002139657661456806288445174310035626114063440669604744355896621134558290206650146469151246331433280808593494513818453476361791091201827450898228987077287805090721391897099306569858316309263042206155875320311646490978819426732427190462369499654267397639371054116835683972636944634532357229347946491395227419391834496705755549550640071337444501988454772964365164932144837681847143779184408250064617176883475385089198343405471901171488622061245977597719719536978823020997711984768437354865046142867638495355422445180773703081358545941651713723989161920969888649154810014909949278851689947308764814618171467938202733986299052688343810099514250574701498783968849507708959285461299425564422143255815360037210266560780982123327233258566585115412782902836376833386632935873808810187833436920303863910381448784441553701800702369127778525179239276602653955266328497442237261446959972380834523547697230093994138049743987051581825314442880023077080462613288020054905004795738715311212603700310290712642297090234028982328957470323740906191568653153392420419911283025848612339831936123570344161289934463966656072605433392789627447377416411518664402866582309393259127452168773913542458909611390801942860070937592222484024955408295705219771859933680893524430632228711475150131439282811657521033138500044476116759757668638466792299681507573751809836445583934135123097551739417301139422627131684242777186396081502269010816123262462904142913621791321462138737854946353923781423784480576669084502984661997596151191697663801844149424435344908420739155619530241962976043093345617679836095391634077896517482072226573506401243182284297993831310789440143247179250715787150085426928078288355192265836883764819075641994559277554834815677734126302542756186491707261619094661984327928985820684999258073722157001619834753808562693841789462110598302982542103070178304520704879793581677568685911659811768007578871795328561748620568917399844913288554770489144266909852048803871119695437276803308533441289496364987854266976888668253333033482423136343115461504006314023427844768520821715084870467071042514203904124520342075536654977363273857059207576710859386980676485358582624769760751973905837112084787854504903195459051112566366901806595146217092451359712391182736917393208188518264875403069809881381734196935919060862706071196690083550111238507312158288827116124563025381312208875190600128019609891453581563800801318312565290901470662709229584117133261376572410444023780887281573691989261915967365316334321753124907232321358640895134594214253146864842462622571552598567903492861668809104286341723041918009637580223428549940772521953470471814994959158055962671984045012504464883190733662438553554600151544260077800141377859741263340994884285802381131733137132572759204252307024732134665016815508837857862143242713709927022683530735682005700006436739977451197097174646981033190562694831278740605394355548776905510995213783316708917228991141144130605047451094957636922167833715415724182587958261943738112998631186987252837886631380587403925243446155468468935465850899826767696687621766761198910023418625986783060353193614613272235500473299405689599147752237838073691226341164643856762813119722873181978744087390769937986125775395547147878129393557963192939549763805206694638844827364052400340436798454669626140211253240469750508461692800121675074765719544907043365718386051464705884896132864670362729168457239492780163243295571267266757144250819666743105734951889791001948820493364754641878333769502228292522001083105362951077682696578674449110075093957104073000067367421375610744278937204973511686781017680172400512865116304218937887238961353932745190597850376236097035637339472337613904533743490945049900295017533420310851746874935526332438029176885618408566732869263190235808993342711209395558799931933925900077045397757706027068811174927111430852967344167647804394117590761273417185596728602698639980144390753934873402008873641695120070971971780477999678872967713676953374661740801892812106345285591133919426237471136613198938965202672684859207647589007079896136070204261355115906067651179417764291634355715600550302026099882039629539165769961120188606121746498077506681404308535733970632500685887981515928612630317381419803479281739543051182348438418682000064810577064469179972233048180162580107492795395118229712381718070913951769176043782605470520734759589658342687835429205519495243621744338470967095641173073239759943267089131962006539594674280876592297391533172443152525538074942763225505543409437123713775717561262193729642102107847463133330282788279590054303526313432364442656930406939762215279365500519657231365066562312171427027390714443195404171823906248221924928170982750669271148775383384072513493845098955527164973801416751067513655937037557581675285049800469983994233126758750552443983313266653277847967962444911685518252016540663898109341335367177280779842426521921501564190375500398464360682356696064685547467526576968538039023635446157115896598371568908118453287058705944512007417354586685960156890469806692964160662301994909828343319320900531413303006898176175195404376801949733489096268917660205355078758254021056463309507455830756961295874020620247957339740268515607016283298049517940137784624722667660377751967153159456685538423322524243801821838521131275473573607006592882961931319388775672760612376152691282227802022293937592726239902842273114418295855544639756634505689303818763041682540972009124761310167453269661806811465228689531877041028805568596434749271050751305849447294466413443702404889877505176663923933607360031298893143234801276688219759956492856882591558570935583138740557777148671051609200129339104037694558153748827052708743886714107267921649229163374327260648261610820886638607546803010344932282769250282292440888425897599063735465781996924008613905601077466233274554308738506018605261284885392504768679245954650891674725480253553499592277750153111822577533277893984755304627624732806165906647789861090650925872423579119079132492728203460679967475139966100948184580517549113570088690281575700025861423048511231251048276852101111664698597011639210879018937628637402753573389926503755356979096476895745070392544959463575792686489928562191455237856351404499251927752765108704411178064621962484121599547528567261877783905339497869967707669294759709975296015340860235772182254152557460707560385159152219578036427992518975791848279658060150327098044023736832582637309269733617099941265483922405265990091286505230575731101048096645529364959489098816779587078926154370869897032484332771958485182772333364217342733840405901330102563025501181067513775052059286375659848114010525390921509597307781252344238622613669381845100534922198300011413203784037826493800363314150373935306974648531457057504894048886570385988725296062318417139899854160504591036394154107373343707877175556515346149545893102577093025356224246632724921051397551346628884216985957198998280741557245051409849328569918289723317707837077686269651364600701603889358008588995903126942188725461418811772235364421405155776189112603481015341575290665770581556640610373927984229827382775936271160841459575410338606980439912431803781581002215368683670875376767360166590054596970178572908657182975776320683791259320345007051828613096044297926359525882016803708006197282890467006164702241267287816563627381832769740179083786668044270503060182128547811060729691028890529153684893397327334388909950407745884614219887362325036657703895743805292027636045147710673059616228806599481545786503721086752812611244721970444610684564016766719422511507880292659052342428369450179434691358973408246087665494471288055523548828712006746342365180850096830511365030756201121446010833357697807955915790670671225127984725050873962045838850483295111060172813266010440981374265579315726733385734759567711810235416256187524372086343350083252674190009325187582483842302299932996140445011503718524156649721020963236349332917705058491253188085758221823419920269538018700056111854682403377593876736349881083451940478607170160826894979940531229907519700569267172341186130048915536690310224323591700700563573799415469288721826498537670903609656198180105264580416715753004949012584571923226436454132236929766261336883526408837988112245482587379090948927427030193390939608157645577910894980190819919797518492205490169271534209854592782757162337697825468583160456897547989642117093580839095226643059785588107152681420071141091468755825572109074669683068839440577897537388552122066763761209044197768390098721021096191628196099171605620852121005630974499997997289034566870779152568255792274374641811670553380747433180386239471127021687048669397841714085880651781974354360467124792488588864221364735421202128894715500636869964632473430092515880368815033810325248400393495569478122870898013341612661315690860353632813818073155762509464399455588351659405783914500153272191461518144972064915714479004075195842516257916005034323484434564765725000643304596422214241252913299581801960986127926574379009705039326237617535908692003545429411550353307418441639772230851657197936773096431359162410168730470543793453443994519329294551022651369925442555651989501799991702966656512532521901244119153102711174598640410047818561160519530379236879134176423819039773676438337062621182183081524385369185900640671348469106256304850060768701528481600968210778221137219315186968487848149061222113446645743681897920968246766761609628775796670226596106691146397238133410941849830277211988926996657429094902604544660967903531495798547915172830543491680532298726249510807384796911818820926307999043075729743988910362419455252409311870902205822947524428913592491929245231961620164609948633801965690736565871677736944762960831167437673760659343526269671648364024485231657721365594356800107347763653613232258278138995813928285889310677736861623988723940541176873607207614592078024483111170950360747904894932830391503199397393463809264269264756837851593393199037239675662738258762767337400587196391974799120804018828441887585407684940425349040891930570728338685235274123868472119236552332648290727445893668365977745904863457846183406409463135801925164130976961166166717825227380212142739994778537517667649218452180213731622005011679459281598913916016667198547669750179233655339432800219764232283391818380991629879247270407313244334690208002896599760598436857312014164009567930240630360713465674540919181865654816394975131015880503981039648843300804820118107983023675166963535380930761814863284173480745339331418415418739492549640347220366407279484230112722358800462715596545956748828713966771356639601548395885918506151522862776030924843249675604199126655244015192041213037171024074616698819397570215294243647802278789784704736939602254094206528814557935848215866195034311256459018445264712047418874042197834828811087571862417929145101009522927609638387909227832913103307095520339711913324907004151821836592534231768926865135008111951117574569898374785741323885833285119630788373586771260538035759744985667703567829212216587032568377384443612402596942227393919309469576660187261473520343966611434550227160910582796815578185455927255416176859816521911811856744486281665080359044030739344531434262462504605025432900791710589512157868638631787285894618160052215311797692896512681653512966684714880183701349582319697399117336925952072940601542046132089750371572418228712916056041872614925482573515359192035499337812651678878510676005609802364888460822893915945647523605097738257441746488151039029124479158347372716101369189793283583188165713206823808736436270831810708544881408948634173587441132315957066493639534414838485756067773948951178012392194042972545816928279963495013711101548652447694459281073220838688868754168418501077010766002466766403987337921892924746745761355695602120852528803057413256625827761011857204806246586112453180147467168190465838035252725003844956040991042678227676632186861431079378153452386143999097437544350687641412438287477431299019533127629717079092362049855930616206317900150512947475581590413127231461171851191905466314925871381914932694895481217100682383638242186234057297314910589338746455268373545303183868457243506182455663829070676855480992791426653065893367654884180728861180734988201005184351714385118245448765116983586604831324423149792003938332975061855386627524461727570593089064225915919962826165432222844138070498118927503312928166473546526317334002479788262328480581633831883629931865109657549370457322209609913675411020399276476887947470184785455692952999098776075630395457994057402035750790789512272625711789523486566325983868382381786237096358132732394599974067604329011649883699502016539915710649358998050558144553315449289914954581501366474986127072026624204529207885208836205391905372054105666153109768818762316251248894397665041880102250499788567846142203573823742813535315574944695318488780808534345842648688722331304463906167788934811888924379159684360539905709791453460271693635840552081418316047191204773590167202612302678338446797608013840743239776435223192552836986121457757938475107063034240196408032332655555547099570725785944363913111192127942715579860777898372245641796101583584025185144563710900632721542059295935269607332235785666496205063604996956602447071318707424792172762928828117785114853339937359912302589610799418456651104006857126365316553438692296183509061629263523147768686176536070662816914784939554556467852535827935180265104158067210692446036400150556010057417940371240988966546279027520491708174609659959701606809092772077468225290580747453455001233559734580462517418768192106372259383524940506239034542928231782636289806433516282647378351586666855040032331242706010844968267151383734233370017120890172850152226038513373256470206405555053879401978817256191414516201045140227390502965509108564205057675473449480540753426239775820358970937739067261613962849438491248965053786913824374331242472528288421896123989286486189422941514450555585659467955495138823140195742105202356513917303274254214972932717846990949896928760849901316794310395634824364166102161045514411804694075269510357873685086713107850494151776873896475248988388511298354562054066996611775704811487714368685663242313243248072683056623370585451018479068915223729506399001023760926393031568118667856859543083645788454645340244496127424336583811481788743466641438512808986791170256169683242115191169435048159018296904277678966209128437274243166210595435661551601254795135198508901415371289708502533311985881710047657292222830275565978369100665341005974560277126771564105470383680182854248857877176145615754503101388411897386610888842237559077134062454743724560544591002948952559022446680371336879666270864995484868998187948664254199871154128848764785053341918976251894948419970038431003975147748141573605193869712841882851284669319072394911874592831260325253622067052985206903767138405412671297196981053863333467016940032505273616124224992000364293573521458863205246113117229794454214141623251509637155966866500620401419310151203500472527119216536494970727477873835474443247884502459324005753503295971704853946583589733529283524283591185532316954542685621467476283659808212967429710214908239894483525636345138854783777433133737417294839788577541597762344369004141254740848666781299869380143589070868989447014398390790416151129848720851077930106691569672281844621676246912617152474689531392334391361557208480858200697870423352958209325862348076939657967731923480931229210496382137252344474922936001026465647564924892742988661413926811359977292907095096018908453195571203654339561702261916555094597952837020053696938296588552044278465152222563586972593180424018315461411481016796885207365043455609180171892241914801665916856223100376451305296478245539213578409117976690865506803058139469851877519609329772895645884265045145134565331260483288485196330811619641753237499555461692964061052295747646109888634770625696223168995324932093266905986171730779947286719155231367165063185773564904583214700553966028538795758862762773716211909162088504770468697411581182163679875864035691383861515249325893081560062818694689153620462033307344255328477730857525572613919562742686326824207018076628814840032944078897313318597096062534960538126238113123307317701649818658579302952119246529947002991104763792213958355298705065370333348041140966638755615056931897510802311143480706991835499430362112156283488274040066623475396385376414131518585318196601572068359934902684970674834952765124077745655159605392286942712177889598183271352683548824705898335320841250919404630867557222629100827692592285712865125839115141721615784436848320125017621756586533998220181958888156751800550857759819934042722005471249510511022845499190078902202628704450469065575625218640452292580209849209502572743507117049929495638410792495710944890849723526570631670260304278815694207885804425699733133171117225389961425920217864361443605824829443365414850504039234541963432997729839564308413210088617814012072763147489258214914622039014454077244932182327918470685625161302495051441712271861578781569496633339518633881892869157478526753888255171048348280131982898962413360853726417230892247475119724385959125479386377722025120093284947637825768859869589519028718846870700733550049858100773548312427849756851600490234151681218551484195437809695645169023749474581248118856565155324950776092906437133521741312502118777291980029046812784018369743580226870929226140795547896587719158513875977907778684201014420377742145378616663119307723702401015996720482998704072441890062479251397992527119422028996162658658199297331767167033306837251436305840283752079777959312266025784994757999299951869613606604873528846231757671201555309469490012232072596397488706756464699822593220728674489397670527560022755903860986501573946269493381421459028322636870440095049681640302285536459551739207010828032141951901936657430503559741881404606994104006426200901230738715961320535939503935914943106382946959200906935542096205068824544084921563405092665661978510727642375871826917457071973478835569616830153056798971930482807329425012379675159466315672697518989019065828063114983663408066775026186177922779442259014120138950042297845338174444045631906480076307114148816261887746017885417762646303370860737747538893286427924630261086589184580083957298633856944639527218847734237927754250071051735945080367938933911886838345139758302361630471430653608522989533855066155116300882105715303958173321513580047170842876237306164843443601065073745567816358470724747812708031547984582051025975417356452875524663783356604712625010845182099202355812681327503094383417561164497492011273747926863793363345357788926830147284690208028290260176220668884469891374212198145727884623420182547633046457815669770500170015262445837900307907114952674500569362073692766948817038676171872814897231718424901893136688526761262466892322276534860164661423876918683708599079905651420058175939657790837309264393004799264317899815181306568570683145896212591181617669536400933979496870004875437499120658406498019205052020558369159356350294933674843907181440563546049790711909505628840375897320541242690566470653405080259997949183862626417440180374634565258192174712690542855433887866830394626048953311338080772857843433418469443858832142998348364922758408297237442520900697911133569920023812235887942009792477035559582481216522577015986830091435790532707336562519728164669982791730752206784395612664276097795995112411864792707207982264583367726536274675591187635815544881239660857587889147302048733209411082652917085629940261117468705751826038447353824299400025763115234124817090769496121403275734192568882318514468959455934756776231376527888673579009961709985065485991614852948838593100661265569237944321695993162614176309099761949940749455836888260243797515294577641797577071351420721472755586427672074380517320803129428412153947411112679872313902282988259053275607451891488078828840729072048039970696772610141610166919819627108421497108720577125661713197581206549213290311548778394884897646794269754297862626999706261613501583691752110947639609104053466513113012656686095889777153173014436820241071693931892062362386680346946881173935853492240169525103729106205879092160407415397710861681893379820268103603859091701538883126976798888642113135748306035005049773278934182739346966776337426816629099061590579154508850581631879404831612711093622105595784002959724205516900457270654465891294368460883744484559280466567524051000403343174442248409405410791657263478052380684640481955939388635661818415369880302672990662948544040808285983709161695646291012090890510850887153661554907146920867626531292906011380711578644759875432263417229371026211385229354039936753435940367353716531211370880835991568717621563532201645150308454778454543138063400845694047060778597803002445387272583172922790353352004607117153563254894235122020194786916383811082534436215132367906148519328532078059542202047366006654759657025226785181477435520419282728435577960412529731968353269962383021243430681777525253821522268021588355801803255715481075479095432047073047753318315038957058685609459191293172589882805973734370087417725505645744732986568686674766462159378460762294552384875727232695252857004797248262963382061121113905628228399037731118175129107879972228226265270488319353198191615074091392107367736828797510629912367460593677359673847200491565360343279712418922436022191859802147576400177111428913658522381963338596148178608541696268808725786170794955811326374700775675121509276952326218499809153468418399624844499870489595874559694724844431554696001059242453178492249753739451932097595999414654042349657786114832261666468014878743617437202249474316347337100986577097494636829267367829628836928388572780263760315898537753522492886541215578363069281064783144933753094518419997518774058011496930772781447189209426404002131694739668531664499083181984982151257574427921204453026369709024874266383550695077854921053118749893171549669628604094554110016031927293883969614868180835887973183480415710378378557627641382256156793056393729263030164201314967586088704838733478657101545075474191603884296895176266635027200740907812666836998306726008541405936823446599753089360381590755925447075867352822391784103331408278982700046893385284468815636062704971895656412582140781354830884750770891250525054411034685512306405539605042551045278398061223042182807940623823096329950987851577655080306401170720728398539248538802928792294391436999583374580529899250935966075441039744839345059938693394898250995909584954855628614220609287597055826835931020514717528957042971566134612142577507281170881608392461913517841328058353748748760009652857328949006532201561014891413816916541390121647336580434142055244298645946860721200621225703332895609966104417696595656255887276038882828055262694390044937781717809166660605410493328807305456009143598219656802602421367126849913873039925172422624406476003995971619522160296959410158047465022960211586614851214221371571198544948543274489724215811476343473345570157151832221208294260669324262075609900402917600255971395562057641797412041733716232605231881722779145209788140534875584295247645425638374427439741700571983577288127137129573265440279226366658124034621343423449273218758249081719208589788131671648794046617799573060595003722119270101592505330122517821221736888907715232902238318617687078094407191222168780286524379627718164699613949842018031848494264466483237846281981801862270999751931238113763329604401811622594356283273088208370942501266342570800063270033919698698919063234915397929224729422322960686421474997513700474020405258097671703303376171937369855328998033689378954600014976697362878638770567996459521796592971282081976164584228338154770190998833634286421116204927653527221131406473034139987438746702983979321439989597712781330626769004349486702073537675826411790197808445008760158412731058086199034267163044859400194876203816809164402901787818802256219905619398780048306877997559315122282969840915876686940691264786495438825730143215646080125806517437916009427674755863250124146608950207418761724945437884345475366434607801480249344435218420725934719453705818093078210485467495343564624572401491387149382466148291446605784034386947755881259809620970447836269904512012092507279545939771398758531370240912846109652996237109164411624997385988141337602771247711767907869353063353216473126066552445544070669579952306571185051406846373111519917244852178096050525614631514069907985003124273567680787177291805653779957014681579883994861941850945927400210180412626067703550637311576739548426285296507726473245700432233731624995586996254360744675153360089554481281540040377634237941270375718186661759445473105725997277889885537432351690163508995071513059418692974317018874479835025255844110365490262422195279150209507138166503226089487334519547550094345877953753693862264582345644704816866994923421215629562142034493276726859365787769826819269266985067495703642508793947347971055515875261079917093158573740531501218582961744497333736319109781568950957957455745548693549408076459742107638002556778209599961620043557909906304349672423864901338261312467874750693249098723074904909931410067831457853479813633715809627349751526395467145726024155960649063253850105999849114544367967704089102575263068097025644825625633997922412521723390234038335171019279169628482546337727253797274563403918375721717497259046272650138992209832430302127720306159944598857938788397349831924408455338287097159068882891465003761763414208577467325947969022473764207681780297735092934504067248763882978168189055075450041851961507590084875303005322880917756558883691541963040427601746170922633845653364570154583022439656403533505189475109580718997886717843951793268708414195376209600356450115703750714506815399479671939514235035436086080615163036445910187773402149258641883335357856899102796211849530295880634539460406469463436911002835060143481316067172255852530744791240784086614359160941869261806947296640710809906105080420897215947822101674435363928894337322300080226469183255628617287099294530927577450662773780721811646987684655882526575291247409631689914840454782758953036796826822089509925298226911981819117237947699432771652615438563170048128642890986470486206735440192687764152440415053372132685299446073607192074661437601667324170261227407952599036041469565915389325234583071397256067169454660322937201551070675706941207135472708258290760314253484146507852895105742689288547523967630884212684299300216454407807395577913786614876901570261444163125357712830846041988627099962848561491557720528861332263860810484394516148388207365061799675165233008957984276647972055737276501910516801294239644132967058581138073896814336504179217521625924802409694306892703695065457896049002726212372964465360800380047853139797004450653980273198444569093152210718159539425637000958188995279216507848887847480202327417202936560568377784924986191659947006619219140575903341839570233469369716081248056837677926826199809521886928029996928368631678347559666947314501052767852036007507887079768281911253310435204333905841770699061458573947960196108313706961344646986576837316245008120578407822019326234017295046361892169167635319949123045332226572739865460662746599553450467126413049535183354416442392855615115121638834517443112389058646659122818582860600815966283180455890742196592480911696039829846317189041847575238542159354312527838366400751401076891421221251541280760207353831257235610387945161997342176853618434940647207569895654773228547443360947879103390578301611581111102188488821586300916382693672924231458581223559703449891457213438773333166774007803246533671349697424993589638256325404438173430987375712231865489308642124893295591533061436355611301491144572929317306976562301015366509787943440941667752087882858997367483820149468159905227046164726115158382482158412210788123887184152649324385977525243605588054831475236644272132568941272159715955525271799904033566292831002070994246355143910840829391657938269285151837482289473029198480720370916773517378082980939203732036082708202791799452618177324769751910205898189781682181438104891564931949440412576328283649315331315857945185248832988460421121031049916959888127224690750314384407687662006909612617413803986307532360580521851312720565611227355193040072855116584154428612012014373084933130455951937442455188624758912628199959305114917785411515125303741721480153687075970767002070465201510669877539395641982115191869167001267901841547399335096531720750972666792242720193847008054372364118059009659204943495812871964137693308742890273057812823987619945867362091084368680753380978454291898258410574276824100203809621296403043671907265773291965385024932027217045984427783750101988879989620861839058705229084170952703730804043757781706142795672050343891605257840562197068777181421475593763902162527683612607951084911237664583859058399063968318980688791680006919145886646237897290356578905205632468795523734058221073464063196196001771378031140400462246250120404535835621947093735059899414185397829237941669150617946358775838597215697868278929939768084967613797453766573835279158680461162533295333107675858871720929847089899653136880722879940069910855539471149185911904479759916836948769467645443806912872424208372590224596547838658660332194627012982171287340938597453534030201598995718450899146929262555963593287115570400198813546375091589787667321950823768542864588888111512778717574085148188799607752243694750508597131957923925156812142400235809697773890677546410652079154680896296524387782108527339178056527766852908465065779973172938166943352249718968991531512214196743656782430646078199250504056051022772126119453918505333721118333636427460922114424684526841136226640138788701832537004675028653806237167483057450815122324992790570800692029438310072777546720955160010186358217039309415390311425641087447022909579267826811922009587624304644457038406731012744112663872706184832256317363751603365212854014927169056399190915868492722635602345411846233683065837524584188151109539992737961554349791529582414535213666622545545314115596513762713171814801203453687529478197629879611864572402151474695877327397813491267541550597582392491420729950316055203064652929047275172325444681097578602730866045839107751296709541644655014672955993667445907916395566570474396871089717142661448424673016174725994832176629527887906838632871221007789959779337034840123011197248126961775186252588819553594959426963293688273321111999970223459331577883506304119535912914279771713087935132257333100987001899715149577196730035639326201231759743207046210743141444718710569999373422672676880055378761408668438847148312378325975886588590563206625886435163543125657108505517474432124490889921370297806703733033301062685415991019513058408219140477238203798569017925650435836425959751157015958507559175531859571667578354060158291138374836638158461473744303090976955536085420219532736038824946867834099130574161932786640613539823737970844297472545153843374397362855060510657711513446211417634561505364086730560253987427817000552025998098548137911232875618454217760037544119072814874638563900649598016775178740377408111435720435666449560159926380534813796586908938696637359538020197905137870464056760107110601135917157403931612710926002280305294354646355199142095276457686627914105420026843290969980967774364935061393861873003295286198738142549324849367374467149016126564259420265045357818348029948504865866401127818569555030231187289722652431956293754464597664063830341691606963426174935069571174520826867287671348253983182299434346645821757108471866668430442351202850894722486839163290177078507683329206110812967604083158794227762038923395755165939509208336102253798954454856990106034844154259711207162123542221379367866150505127954327822006157678820485692887119541360826670470851652610454142784871381390711274767313208386300604545869869664361018585489807944256783414244686030854374751841044019051357163368493640140140782004165019662955266597326277051897684186097947664545088119995862777921927473260882201694403169506872452335721228548717549757631933083769522282475114975450840963788387704696923955696272807170307349004605153901192287863699190469632757168805947561980608629222669361064350929601489240903152322026309101390797658386754550726466799919139188871440367747132891301596042088378122393050623541855110384326539334445180356264206788721193291357219327456193542782023217883162557889460511513076880952078788965278824942459698970352115869335937025783752341506933420329065172482636257164727928932986053272345222104693551421893803985567920617351093737154694157645149801621540795561588816215535937302100371889649200081600441745827687437667824548005796958274762747777201648544879675685257317762193290367959446576150109361537687312236255620367579230719146447884020158742877243854571800847731100422922469455090844038882731745058363030968904234302459879390157337224378616940100775328034254724401584549909657119735470293982266012724100691878830782951414086456732767978616193660242647695148529052535645970077314565533264040427104770891690896432285147591173744037377236929618775203350729827355473852542566879664285916624623841536984585509767754931283464873179161483435784992098810167160736627828598365844943786520150605117085882635234665494454361297953472734858782693269826049082305854726819766528848011504355027207590524512145771399849484839593275521095291125847796862476644996060746823978891432262896209194045443908126688200976692374649975342389585584943376653549097183610406465733815740900507659436407979183160295512976738254258517478631631740915727343735005784673586328968127778116974777587025542726214745740876023309437707957320097237841698124039204400578132401529508605563124478610032837458810437250979042778562837828824819884693877420368176842704203102294888804194961113537223678859989702298988146232833949120467600994719588579951770506749690202511452765867540064284629260808915752769989946899723656246551329766874649199797918662220057707738145065102261322174004755955021693788467375915663693927377625242581777885420155150556716001996481429172068305491101330650602615320454582951775559729178722652336053698972406301423310315648865178540429640572082513006148594136102011831529559561246470691651348324302762290196167456439512357907099960987555388991807407581283798812225194260108119760824934898034511132369773693441225521257309157804508893310286020079371069881783267149737288266742580523967988516768451478059550044909397370102771537498717626379102505570561510494310807452478868693622943060530065688668443671312177242095554116415017425109871955626146565462982861243913209633208557706045580478469007214861583569966024961930166463230888225037282010313168865233102468516967591126205066674323820328501652534083900806338230133569753985177446486492605618723113379945349196854711446475024160566646539867639693359627324148264062752775523638427708683404262953952648901792353242853907752681115102447542896537550957274620819300858026928141669860062628405011366667997411793473546444868086902462002647408926733750033329009806907605350805954979721124724528712890763735399020055402449088385598521646981609998656026956822487034465263625161993115052525923265669542591738426274561338388368716392981396527777806567016197222487340988407230743313060947468571455723857675186598129605650976064209473250208278359950083410386105463689406414938596152382631143988820161396337742507193782548265803031864446031616036317763353461599680199053296007783834407813631812676162557145555222202794782354108000493238224656501772439395413415473571525938010333376234104391142224224730112129947869878190099186374710984109446642221799061502004616669134196522593558439980954099507608372493986410749320684511534994707178546113709478375451519639331504250752138238996140019027570592176491807486416801269506049703115941786760803418891654287277935842089443745429466148958456264413167172619449841625817661016108017289983011931938126557311824315147669757668122735131610999423914212109529653587112144733181029850160305537670757385547943842440200242362631638296163026014800453303499423709863867419511242185836816635796550829714723985027662723325299138578067876936474062489185290809262864032760482939729694371076304235212799843905326164352844347081752327323512179298062009957323385379388770597237611449622291428732536833623439807069964118127915807968277647922832290977580291191098654616427370901907642633650346656208406276287660464844980940411697841804176594622584709922753219278490897012975076212332845511993441664515016053204024936802194880546347098282034358628433059946431714573606803771205733893451498931548229890505810167796472084085025267835698605936879635504635059395833114848844550423688542524092699254052945217185604911697559166693499302140071581503369524279324388932496006855658812223937407108171679297921231565274705742065803889253613923530716276497251992889734092641030332737480196619455034468725154987192969696475502444743821937268764624754709587624364984641573711562660043635864123521229491822504025543765710281968953592355527511224934120325158021523467493716662699924423313917632127035650025852604496845223093715741308319116064596636092676965807748909040615207775011635087003521851704123176984103043977772051059238050946065566256269721170487565721466804201313318268891848482723714452423724301623234892205957233698307518705008010708277302992731025336857659509567060342942003051524869716161690102140902891394959243078018460662944929929848637877300199166992079846892442031011008921446554254438448398103353458051943874761395460851665273939096540490431933192945062051754075835969206664930403750202728677658891164244266878014386196568067505923033972498591677003074980984359902277427231354056356705745214834920673515928900027103297871100006971236970921495396626020793103954949144640522576613438825354320500278414828878704884511105240987395327551449600544611532816471195274626411959462986032981847526844752364857783121978741158130858908758199416201960256579282418789043828482282055024949251868803244058204672884946892949810155383117434161983610481557855547986492803311032272643785484646450010194095446260704006727289256152878145725212995779750472741219656998276722673708850277167498491807854204589529273738507602471294679336750216118196392079289350937095663621330069187230961353780297968624839873711683824790505499777323657744089948662012032279571590186947153323307213951136272600889635222907524786093401274481529427242436236607111020078805706187708764539648879538480743951995863627248705778001493801045790580349537388334757766837729178591586588287854087114708042158353540912784410599743872014780459163166409183525885650525244973459926199038906250719360183480018990171719784477517698579796401538049818853579216668480006980458287160284121440746543138633784609832391350423855627109447091558191269475399127165093899284311993357175750268546645788424786703975429717359914086027178463822982699451783006898238294216924787944989902625843261818202711743571061164856219194345138295483723982441517528498445281790947099173541704054124719255358338520329237125426373359074385782624212536913479056388955128324971826023520122621644050709300460328951481065286512079899309585287964953715588364116606593505238904610267267612274755461488333913048018546013653853970484915059293539775339216279858957189395037662257629439206899876077723825325159621603157730434697155297890559683861301148494327375387653092141557391021995847750659626984311115471761798720009248935283800040170462720075821182381884383166278961279474573764478382338182987877588982076553102139479565190377424307673737376338251444122407133100989967416907627516877289895470577694285292982441332302235187354965900246855366960112689906314854114947007475665328633772297954759167265110156377423832769930858861626585951936898468493158522794147974683135589382508477740341982433288012030992510408696033271440970028121127846384693069622146806349809795092929286571719776878057470372818438560046233673670771352188698554193134105706934327091174061854000226013104326965956313151286181028072396277435548804909188079110558991630821667483167286280396841430649205735367713643671229905783757898404078153585681761675369875640890677548578263302595750043073006191549534558439355573660005640111912179728192936717935655832018828743331318069957153114529270674115857755095490340963937117509346990840879362522372614222436280566656417249790227795308549582172669412422477694753822845431180272416449784633155578233238924504167658538630017666622652668917476223955268768509615707508458952836024565341423268354346746121609812182652475740884406674095057440709278838191919353979962924631162313944091533496248353225221438887269882811310184854792499920850236330676316371901271509894593556440464058649041291044029114291127819393390350169903095354308611671207343766307446035171705509483457723175749035864277730880343048192843754794331520510251739379624829429634259333673594786358715289382593223491736509124782418161889614104160653593240040238533652313259904745579873495108691988736061422783501461296045725180766071562358556175255707332572239796138721359106742707086612707657617361332112486697685389645225687245480148855872360788106324756373294377412145779426593098951724111018945626834960198442880897256826953700077143188026074098112168813446291110466369308776911095117013401105481505137321080882367804094853723674326418158742764435637046519469848661092316246973280106896184520421648575041423648068866166137285718243619541041835154097692313436322154962454081830438365273463630116353797923239832816887818104319873149827157016029299596794674252570967668867004208090429813154593576344604278733010301003036062348159252106953641408584895081665179000057551582247235187570561753481841137338808386204531900349308797516103076153501318871789004896336235532168778634490430625824575233917101578947481956087223844334247937536630622101644302571554552103920541866354781466018537010297664471445557155737054024926055411475560833571065366005553521094440899192230866602011358593099452841454103737126221876518159501438095557963549809504356205595913354159692156157731599381711187316179880903946555863083353320989855247629917164233597713212521754960995231900712499602179297745610102083442157507551748891513287889992187214828314297674231695188138877386633637728258505110532815391126467040132700986483724341149620902317520957069294246146430442012848995506123180356096866539790874138651824054481989429794229388191519446255557001667416015395685765179350177169273095780136155010735215588193355336501179521656160000283815164037808863597753964749601261915213644763249101837468159268945160274874674310849512716482299145611160962067847219140651708443279542795561414187745961470291505194837248386654788076486941952983489749766793427088392923008735899944574358246675271714788239501551298998548350120184689908335404339617511651322743523654212004221632138472475068703312011648193691287552459671956315523996713167390889212927472207353274874171477755836051092553230614793930222900398864256473957759596452643157826135175370980064246134976979591775067440151364014417970459315900303456176992413548321435098794713265584364397499680345768436178881151345447571242516135915020362634672099136268134116200065582054798801222233579104491229698701963789709935768685429490207442942259079221200037507764568406542559919581133811395650233258650728007528226650276341089602575246219233046553703299130217681550454849001441960086230231375781697576406704868575436363237584757067207822552831691168615263415136021031837015356642803577086653440333926969444150573559203668070011820673375150830821928379653129434858308291689536421478403013587268350718807703618430304603972803527878976695155053613000770262354118117892327814360457018251762744541619714213372891003014787518784922323240179436014959472416920341611754389577531461340094741314702853452189862816698856360610031563254390943628392893044570233725120099305911545738377764045875304504494185267500291905308339978284550304272318553718940928898733245574412136532550093322952024305435587884167098095240574160786355968164877617034962278464812803523745407608751019242143575261941749824247509313216037316175734458555828631282946637632832938764590133317769167627554770426434519465888622321754396909005970893744810787011344528677728392282129112306766930358652748453599906104972750342205309177217036864074113067221949966205164695931151448618468286771531943771837377349074268145811897320065541183247022997473827728510068945100006237326081101742070596136394082637356136826963333426874558284975076228644052678557862312567850410430647093640793739413906942460413804615828006500103097197571627794972405002742452087528319896545404003182041368332742182258575821986457099840142485346111845188931260889655299596861766129969734272692095359733923857540634602017836652547406464123166883627317545122818657926608312900482682074796760465859525218565018685065109741388263072563145675754268921228475951236511018806227823957132173418347533793398030226256318352660121050676404627513812242017497801068506470917566622550859942733996150210092069372335964854769842478273647501960517710464352200332541919982156403327323067177887638272893791925293398828942745987540750179776529841905950282510507767019083470871757581518465729533130473979968369354029835121993074808717486975001261696975823570118623889226743477198244707192758532260673609432423433939918770361620527204572631121502465203278804680516233617143749642645368871478635222870865902748593667990301312694368732261433019903737052776381816538264980965323346610759957033474471718548364651147739014099202786665815552732103142937285543150398343113497756524909492278947754339533661519517184353590920794713091854991812684587442556192046559405891408936476464069948381844512982035299205961359594526638387259580667746965761587927526983395895545098870513581891088428469899035101628272631823909749740418651781930997835081691560939482317915869661996437466814934489175653662015877571006221998635925136414422863796345187968122489792246659455100397373218906230765370391016740838844376160332191855397361630440256038964447535957476540147930202523523803809488107634385001011079494581627644760137215999675163339965339159359722882311291391791384298030258167312187451618459920165595667044010658200691580515028121724735689968397938783007828278010402821873956041733929447434049713129585147684210687220244606368998534468717430034424409450871497372421099496899386279320694603642326525765968233580617925751252603249322210141120017235951201991409676664931978535126419443492481936936550993639298516512547758914060118372925789933435849961797774857663775681084220535683304899584746097686088304820816637512727500214001737041247761777077072161621757973722079428840603056102736633635661819578619535193881620766242379849881968696320138190235140567914196802464995487334026607269460875636773693433236492400876668021332673991708291412747400177889601048267142082775873114406393782951128339886156495554155092897573325524921688070770601957739882452665053361068006158679321284503255969572391276102804379005221461404796343227014803115661980439689950547039138546399357063917273543479449243836116847935803265437224857154708494835448626056935646641258212087183027658474180098648122933062791772172243345730492384031915314719044393306094912362479905194138606530520579283948612829978481007535679491564952254396535335960481899814329807360660689231205764548996262386932153440036298218804409321355884685356811881549668325573761924698019373962333757297381619478625882652768773974946860269073410780054752290290884960374407308666687385244437179739840931934797430310979904088366525019328438979289975382040239786936443247552060157616928303082426182710137338773354867608018813079366395187406335350543675990884379811543253351146513424066582524753459744750649218086378303998993014936129046571108019757685579365834562580292255061666124996862628630415049508467404955266235596750598181204816615477890293009382285088337179017583976455305355454460726441592237612048171457491123581870539591910576348038760345160178707176573462752242477086361157543183920320675406234532928848531618648956108883069013308016216914244245352145269835372855096609100632518072736031236811761087377456230268869775188736338418119905919453793655806272544177862765656759455821073523744848083882730878667055838023465653446830299099139217586914554477728286291627956205710614696623666351125210959103204790581863319155672218554925617568028405444285346064125623271027944280290276339311586399080070168162299398841192557159164644426143539744830248148905825186708779930859173525113050986267013444605679370987797554643498011508291223914507670045147856682795419474422890616346005091847827008435761423031951752057865791274937292530439339197764130297606696643851012456697531880005164339540778871683896486992358457805473260906696999185291592012061249066697686781996974398806119618748046921396729614183361506387458675720310148525899307483923593753353392164480786856721793411344994141159028602856066138544728211241466722920566961573906745187519909691728178274637877557816797121411921934507711579495119382090921844291995443697821337043585546795469165940077106791997443361476537960733224494487608509677116441518697565421774470492418967389134063628295850643883648742791567716254275464900146923387343910921852452073955895597049491878845190004358956934490251107468509820125531044949237503604772783497772303730480552060028016191279849553272145583627426521243393055408787167593205751275989453804263505586894352880129265371046981134735314344665790637603117060574265569672246313301679241898373408985441906682654038738206122971697086342412582300040330914515474769602750489021674537047326920683936691073022876358128558852234102057716947728230885535424185578098289268731765785889440321682275826392590823962454819121600975946485304305140001730824742733724235282568623156164592248393150285319182718630116875613177343510191778069302702572327292403183080042217128027574799830301794563477784941815577257440977019588514099427380757038535649375931887585579408098974054587007345448573971053027182801504021061373092319554652360792225981777389570350969227744630417556329874439067151220205562084424721866793911513277338402628612178740667008488017734638849597229338066864774115809525266284429671720458844602242686491861540180425909778931740851323412991906481391849933420223436558350970102442194575834784621716625478681631802331022745754298214066304258399029464612250152660080197178686764488247490791772001011650354482713880436185895376102740013183114364814082150409895187464071233852895925056970463403964477440295562810698650671377618664248893499486407817984460030588728328332348654663054718730779617241466896538651800223728040852244984751926528087903251688526060019979516921042059051781397428179472214468243695123488672998275450037037489812501634407849327928378957925941921528629763163596515436606625961965125362829629353503205785282208788963501459296885184460610981671590834606462657538817087678317156804767696690889196652878080494228966349900670546274933811121843437076472014940812024315505530962321696816609410914631650604655235286363379810832981773319500677313135764332899040916057185926542606580580753502621186205303072752592907009300054216111445896042499076101745861289218490551896464034160522654744815023019918055344069340585254457962316907529618806567427151271452016687292219553372689904143654852917240473074592279311899180060150666317711625630943715827342920090418851108596997059895286827271726653805807184276103861478433786846593964501649329541049547544263701904452903969028071684128874671071326993790744321484504540340868019824872529664084147763522339031539071239813800727757375024765515519809583578911149551173327718535041136607024863410402560670677621546195705110012642654140136473982543847991122091095556970727728708970332832511603242862257419108430565330385302071246751926995927211256272451027332269881154427988404798369522863252569723934220541468814249180632556556236445789396969068902749269148849399531890703874043031127441621122143626937435065302222115182420545733774060120681307410237955224014851276448138847090530501829468144959688327880275311955083659433354325949676619419659727272278763579871972080855566381606643246358267431711139330741715475176270431802991603361528983295468039845553413484189559157362645280389651464087330811723134873974654415626980133366666924872665307071914369541209811652453443901213329605217530652954699850785249095176709632326419160593650803364042473083181889170687628991956157426257749577561946518969126802169984771952156841691343803670591884402082394019053400442540681418903537803402037941330553702733349939551321585308326028630077749712906120203353991140160362281106125691192581105217616738703885239289678452839045165310199965926306019974800681264819824748572986076191153765996538892996933037674788569497450336382896943723688236003114136488165686722141274293601325742332614656121755531536328820980261905373613426481849860595854797187296954850261575681653979744225483158035108356964335658095645323003335992666485863308666031326175553317070955418043293653792651996769047338094632887560893453646640222639758615925612187599663656194085235963703310619159154947249646164553117358348768171573007895373605086490611964380518348804026799969922724239844031484618275816288243175637474803745311148513520205504269949354461402515618039550863924078989958805893430611810385770023986010992587378390549817941179701915345645117945835891635330748347879004442686446924253266144029885637739828739029583541825933418595268685697793033391168114705844697040549411374566909331553357273882181222930384368097858703874883529221077704199025623938105551930479334845397829783219493821371203307609121187948842305749688118680914825098919413794491313915848300532433912073183856543333302946670901753129188944058198007891355055696331165356101593282708320234938355576201714304488376191207835139663285814201728690256792025014805210437257782539116294646967478851371115783704756786199703323607100050385928493954424836678009478567603632365234782630105131423008935692193743326515877694283544262230429532312482364763562662576448405917348709840472164357861349440063507628771526356650785141998137658021291291692675517858407561411983544404054515107389354914310930900671986621451365844500725659929223002760555739774151634457556911412848301632141762432047995870254641110411865035074309631409835953733805142713935971948382385166920803716106036681336092218488261403200546820378895411863908173561853890561632560781789763569854493875615221570327097546784928125511110484163175863879966824846834431807276154571485185499396193535839215511115873134171496833847444180148159038323886495547813721990873278904615933456513336880298429444771483521404541303586065978527972787616975971740596586526674606610445344204175306083979997951221383149442229333901087160735076083528926850273380263054968329289190808422525709279826701932225416517833806239055188261507956524943564590584451269837885780772123804483027450138088406514667114055692491250827820012322016072609267387678881402680884268777307104293649457985715029044556999133102537975592893818797950740274890322692232705931299796417008770294027242405695452483113390587195541351075473644263905207127027503616358162293303067611356502428163838345311197258391978265325700542632514686430153935075960332510046502182947284622513375402561499110185116655645290375975137092600576952084545200059846838520292906044711597097193802944955474454068268283696545612858577453919898310476846446512921964820752437644616047580541865101443242624148819025626915932970179075183955317194098795173060283508786351601676607721757962884134773412326584708852831003782749245478366357762289641247957046533728743331792284180980674471060347595955087454646021489475349457603718882371185909659652830957751512092684968184064679256025556077402137673507221306990706171809305022500490346204001136769507961098504189238347347080104641126580086614913332402725015718101870833419734821320462534415868800574222010816575445573594885108331054523768855581928603953377054789000015501249313237978817503347013502537568032975686339646290824228216813071253288098731893466161000808885742252128656870421069520705591414691000225774368964814058065012204169426091319240646173659660920838618524183460766919736802078143584987450748311818286912721722699599285493549037370488915586355595017139788229815429710286353008424830619814424624482917185830751959298403780233576989547799202501060426399298313210922555559745058099931645984183068727575009291599409004474207289044534523141947079794374486764728229340881172364021940804022639380617394193436418197710818215205558075319043989978930676966419667324503957545209651814221517528742746504820003619469735360467865708825564884405296495365605759977319912489883013105612215335225931490455874949553932673116413465043172224102369047449304525246087990082268637409085091109651291633986416725234095897115120785239901398590898290593943200227630701598384755052140195462319250220296643215639027703070411665021854194362218314978268549814769972899045737004220047128695297408314298379553890815049210770949223099172828227591213943987057130686286653788816680699855271690639142984334330141949658915364491345590973341414164324124839721087699040127495058463987509703360271145853399814918638623225543349378159214125120356108560792580814158323913207398197519151387312452968539275767762377657769529836767494787782781021651713738850431405524090910642642898849013280672491589996584151393467331349585182164602794220366788217841177951181068641734982055850000414426653922978943171015316289275707791893426127689917362671766421654072961405342857427189957020621278377270067702884874119660411011173862478686990192314361557104483047639250915609044567537131828026634449352975304735176758512763309816584226391180142907830580284385948630443712616123032957893475332347958833708048821290809082422929946566769885336129276233274365451422121683928022956592017642125759751148131457950954758012485232879661562325762172822379840756112377661753701297060028783710620349359127715520096485769735476200744385346172605034653867843635983953241951513536170038496211807867893647238909478496647910846879647495712096621522413668626246956816830475120872862545695394240556155146788153781732265295390280688904807708667204797223018158458879055860172355747764252515426867758575699600432221030392021060622852661836150710177677624867021567930487270702406813098600686958806911291985859577919959545108154761364069341397225028316609501532984594484579700551873592381614163450055175015278471737553367204950671490705559524702090986286981777689291755020966205028258234583780557149160392365838795203676651798498735062565314081579734361318323196453588044302627285101116292259414526021391187356900457802643456562551887858825076900759610136253094374844143578808106069934590332076670392220564797962422310597294287964224894300101359558292186035475915464119221042890315397067363275050895250490568403989221317658765321742295762987621916777894845517688187505022347941656281143352425761944554120899278819077944790909961777925599713807678843823397608048387258345432317035519437220154864298165858850565899216193865630381251597403028120626014078136643670278776828478352655797690424215233619156925327701012825074969096155555410756754662146038855468820420120373627471910085838481991121950131457133114837421203821459950467974067418280148625629272116678341213561484938936929688569902228491827668239450968717074187996577500897323175734992412804037610973827601479579904650191046907562373495818888669744400893115470012698836540777794554514031284101666002886174474585142139012206305876148719023690758238745004582944732757287760457510635071616066094130380687756732321309589666502374253497942927462706432723932373506226003902502685541362596807787161574991463202237389159936877706909012434689246971095727489049415329270261592016187675033594478039463530257076975334935213732944219046753189594748631364943603089488837605271221525411327088692152513431152168438568064967783469011342721449336457736509189330175268071398986965132831521233812433915274314112903006220808587922746116031187318344576592406750285921823936688841199696901346709839182742595053218961502381054896709987107141194596942806701320344063762954155170121994267026520065707088353800719718617761232251038287904460538850959326535417006476202948249819519346510463749281568473925412449719248754655106065067819460402753871462984511112468929400594051126993390443031604133529643580049279347936785640148496602890077752346227145012589654528546000060830437260217460209027303468260952246617899936225304465005338066344281938730221551655095487338606678400553814913098693397911797097846499129110279083363866424470096618914578528206371488091561364898744342642245057466162649314357670044914645147117944721762392667963738596846577945657509221677551686780145863720278143770057956371285180697946821129981049505394406909281068336304747516650018638956789222658538903686436576290010764533269198866153240814408975372615752543284820583810633911143834142760424871505188934130469368368965370783500953381994941094052026029997046027885841208278554085465252081236587610037570229603592836527342517207003238414666772057447503529990154446364037174207725310582072565518630629919443769390342535313295176470260112808445104988810952651092053320540060730712088691439015346150803151791103366552588365509418264483470593237921331208819839504528252039444931969564144141426354217205477529624656252327711184353252411565019711184513650116037558060760842116331445729904730245947662360574082700229017532760589519412039376573745456452396361374349516321880149433844108368518058187398465874628143420712532990025583659824543067808300232618498846252853290157098433167940757722299915890066966712769895700247596262441211711258125882816693934270885151737738528210296924480633129136718344562986698154620466409112179378835413220473269623299238252276521943220977719554118543632135634788370150022220946575138879441391853230374646408844793192248399041860005932954303870080456815112985816312308310587004273688318794934790612305095813687139053008512495378553623887138486233802837741127504614150074174132744779790317943263936873368490043236100836584289614403552227780267753692408238367060244377190831397969591544410953109908544197961868338917408167869843101170045089302207068866210006253058014222911697582714755737735420038603670492799190515626839364442120776187830018979103343548433910396267324708970444524763511459103625560815651825434657207728447050707223824383204438666935790203708948347991861880665979138595691170430602426492383959644952692157894947901658194902489145394963439598045179546054527996561879684215912684215438050956337166801260292936164929850667191606257665514500477343935750895925315443368669933298312587817645550976715945678089487258425984052291979604380512279413756857569773847357777461676979528570106358358329216565745170526109932444348446443117860460700415327147018653986639942196390340479544729214593998902155583372570369609622179989517004241202380650202289753466620626253089591111124341696095094400263015476000140872346970325111983067831661047668222498484155821040781756072902956335689985743793919412843755749874948608384547188364555146698343759551245479774609016096626283778467627341280451793195866708057850616979138953537549403353911174207974778252249352210722736354822566998505007990620820245857225405553459237378125653467061984332756855063571753959999884784350888570125258757042833011751785308480848798071111318716221730529973118367508099766934067525378333562504757201261588793976400949030276472614177807598113694626576036005883473074984960788650448544413799887593799739345257033848396166691572235020634938534076222265434558260285183930938648915129394086641902167458368512800029336163756466667582718353022371998624070491493707320221227912101779322943449655122013264240855615530801323677461177760529417553676702609814721316092237717267229637262371854590983524536909959446728976420256126398804301034216926710610927258904765015046670622861986814847913574522847909577667540778165307309073967965190785808693681589896398764726191245262646838431708652569062013217237610563049110186851441145612889727475437420932419708094369852174834792660845220827163252646529282121413382657948627354597037189815194714139909032926010114915999062303408064585927194408773591482921054518272606570809309288654980986283555968999276188720131062668304834057798520173424943345442035657978006731322903114236314773104206800026554276964673054700004045730271926461669403073250635264690242187895427947927739438459827824107630303129837091491151278941180742876969982886218269454457920353740435271461432986100332809577936404861660723222445733624994484083966236308757422912497178703987683197554700480808931047018517315265966889463755745401774391696958905255016792593794600943444352155503319474310620601795364911117316988950008186972990365343530236341395774650136713140404460623439454505850540409429143710867156774895830342917665593287664820371797608162942794832905290669542491123043934582220219256604301383215465323203406551800870055803954105783605218905454280280800515088991802182978485898212338017918037518320844449208162909571187687486674287950062293903426298721657563759575308072033647942720468436940761786717165700399719002569383827070432184430803869294445017137092243275548159083836024185219816185857297016974796726206699586937352091564461637190683014762188151001495836079222239255949832180096011080375845215175626487847178329756271310957012187563402069485582739573748228752142093787330148220354804277949351350044690466993878744477906733071643970061649923297634153087251808573691516117367858213810996589458913195055988697579679809482821125201776602797967281460887633655760609677111008251712544923274786979366330536316160220353194892450878539367179311283887286306828053215061150028511580189895026466315516794368750504270990861108286134472278416226369587233950353476303346068120179985067380615004084206970549663211177052929049731501203852767039003023954055210404634866876426246640343406711331881642409921870839818269233570158741963288909941131454219857108009158568567734313272879174856227943014238782927265550630942926525743443753631967244348152588729889352720898795625948784645144877547626772938454961288081096794164002110757193824903463902112217291960817500794630812959845062341454820727453356943359368914514503237993686693150529669577149320450502053778314363926075059854098552426205360856513202180674294132870607487232968087979943034441815134492653686386304220182497651262705263532680154741764437561839304358060924098199187443957723228650333712538102549085500082651053974800050279154746542460120539946440314486810147792926930984972408355780425585981211973424581215887032031634383449085211113984319620650832819289604253714943951870583253939416287275445246255235852037573549474919867733536814715779908024209198718065778797874898013833410247799769194621922992089073184435758924691599400310086978735055004104870924260309469457097356901636479049179937069680451596026012011125157042228829151174348790783887513472757735125912574068288909459614372755314956862493750055903282249981441526236132461764556759821095450221971778052868825054948525378622949029633135739597642078656405171899829891451236786901313527660735238582377688222494787976985784050015246068332588164309448054026000679826761631599674512516544073793953355509792913924043442324719787283602795782740367115559178253870091716798463911840473862857648901895536166709365768997567656290979139372265103064893016828501630498954127790876342837475564211400586734620279951756210455388684206095370333676852374038677845508678310334583428416735621782589059198932608717721540707740747727675430751264466352449863077156582715519893977120515919110545108499799423874812886056317113740016741707775079853901617829051526356432515109117668068129704423882204316390734005716618263468034604247929837239608674937473744374284445965694006923112177936368869669941382160217456391088418445966995496587212471788371403178080342403140125597562846637783273653427044031063587664553121977319691665558832448495089314760508480613069615601001566747355073540220019411828096793588283760033430967824222244084185268695499320684647251811705104402229840297169276827165992445416891765196678755179260292395760212810747399842136875530958538412003186468572064430036267704694462339474810112588346027513492400129808712651416915840848680203074172812775119911645201703748859662192341081309613992267167215643544514411545992915763516927664995433270644972342950142882097154742007417474008950538615808251477102301566579527074945309495432111505787179612556641423830809659247753987987518267645281288939737136422744034560068923976911280126039986108894657216383292491609122657591094857165939516104155113656646122509178178611571241520902849630955007086143643931834945421480029300845806024919475111413322372705770780627187805540333799924642072056870368293848661245868127554877196556186992947536046366545825514581743785087433641315613557214251364706125658718921220166775913452952856918070657949003444937632869181350094700783596464345117983523225501626012639003328138828963486363163935702000996186056918076654614458466174109239125301453579035535326475151272239069753594380816986364106709446904941779752096311956163879086112159252983088143663196052202478145794997893847158067306000804056270591967775479291149036046298308697056812056566134373531341777656233557728935410194962917272427996601950873129364935895548277164242676226843755451032914060270924798795256127586481782329025452272273074555765503387747894733297650185272054837842640587815834701260075260990851067640907352651255864168040739637580544494354550536925335504850406982499882555913388260530469045160960005517090956158614900885011273188715863339783184586997687671310032707133758401454618593844980940252275212883239311032359766991334696780066729937473835760387338731161796983348774452687015168587685149776671988268229685008904976237808638805034909519384866338650354941296292734117515698761341269122991094432004351305884722969175934062817043592898375189777560776639720927494033412669411306454324177515286442561373219757165625483541459193536713474969760321789372069716293531628335580725950341181971182563661113744810234239405831451334891970987969530386883906878969830699827219285259133172343441248560444559051589210645494054479666100840070010368306461544573878530594399630032142879447749157411372946567106931972296563323419815494545318046486484540204268379305083019164131046612185655291392484512341661843899326248030641691582954299241880057763362929084167395137475306578920398150479253328478414576918597287873965933524709775693822581239511910626810949854670109206469040634492736309910666340615256662261113775692447330505147416744955101457798041713185775543312326987124365083982306396308481530550949483728238419413707824657241684085421574642068026454371396070545910234058348663526030858546467761994407263367926295975869257810625652861985708622591131427546153894450208005113860570150781796993605070740413335773369520413251787070808195668152447610108526989571466731650841148184141067596025905014155375272465457496874736679104700040194789377614985045371229814512983603235147891684683508053859893913170705188899117877742525196883029956838145239089478334439267730668745672809194610708412405188637080463546965038656159575290141281413244201263813592414732290319324299313109736058552089081290838021145265502827159468345652633279298512778842118259086370269232535893466293802926448570836594355531619861779973637196375663015528309525068657614586306475876034233097277775461215719983488913113767289857844647276952467512289806920485451962152865686459804625838555718018833987091060523699359237901186397786656033704706925540619986815790324287413910821628617541634702146933711101338268432942180889947781388690694842277622308300844374596104585331913499218405583202783719190035487909609165540174697332742609955366486749618023208246420904673494661986550251975474402955500646139993973857517720852890654177689111567346920292219130435171987368302915352585915980956425907876697916098432603509526031952760109510197440160862476042568580431892729832575418266211884305723679179667426791900701223399416123219527471954552908335373159471786204375884011634989478640679369694853914918736608145705330707453427867061973842713768715806272873887237835975448927217212272812453602313038911176263495513776215660833664006708049907140989447169265259253122969930962609386574158744640067408879025210928369834535453946584605109226149419051476452451610669416682542196790360920333749226743067079532190662530389567997895108760539185214776816098355044178498850184793362602510458936068893894425857649688492719057514979493197543128614050395788792610985400585423356992964616785449450407837884745116027307857060525746757772632573620937834374366902416287059091007746625634364978233433843113683560289250753556078874729000887241616485098614672550657972880539977860867764611856738864558076542867801866406395077311274329276059303482288684311883186730363408223091168409985460967282732990495747517671066354145740418888390531381902099132245630547693631863444759800662379266462727048936456748831472927882105238580942876744080118522651288398488568502375344059930354141230000279162862831362302648072506351866316851736410863414890142762985895226659244838368256007761083156851393056319274040545863018274840917088956479949159983554437130197840463723614621513843100171959406012497820408978171324763300898877617025526201194571470427107063086004388052324105442764908408219025419994180047440967373746275145656310023421892280315985992786164670460700697236237636655932916938588690839598812945187723626566266988250792547189142837013192600340930807161220023454590870500694876628590815547985206214423836016752216598836653389650490715775553015956691779424619979884567014861894714815953981686935593867705711194348124194100089699577726514823022023321028496215953293287157955222191045964666045133356589835303686934881298726665908579983340007720123634295453701292945513343448882269389834938171914774253094469628384122722305088040696637240921829998624780598625307010677309972135904186122768143706616031131063066705697379438290171120778061120244119801482600231450989367425957044143854639480652768050630913213391832477564896377084830781794079434985628442389621847892582831076922096033840523004298268406151040679521673679524969756364449338352180570259594479311082237638307353224977095873528547686600574682457683384417201053628009318859906954036538425689745160035567232587774472487415891056444163664068819207801097290985198127771992261057163925570957535484512188512993649432031828776526379108013013487396447282394440862719718291754112529430678985925813509602774145793819722870888069733446518849431187154013039319796234160563065488332888724975446215363656847770020132130323692478103159324336588266946530392115562086356448360436800183028840186066681668422334335430013612471526877022291106675158065081230670509314020723591676930292459352888502280450441017236101974266055046531780318133600471016958616372579944636765367701328698803730121352433951896572213324459837551642740624072873413363606889375764819577034890317926845187960704931767144706408545554649226525011340284353120336565556973853471181242405141497136911906157943048339727090801054770580251611054147980361895191915195817947024484958339223502303922600505352303588699056727869952365619176622879822246908144449400599396930906050086146112917923415941771964367774150201550601461252459675169498977341160360722352414874341795392867613111782428049932995120821673713460511688400415647925396953837293100452928520214057838376778691525732057758153004928197867721873399246188106014629100232118908169768036582351027078331966615947172116166599912568547029847273707849519774986882252459189300039046323477115344197447577099170460789758859205151515725466824456738715094894402725227592876595017031968560290375333049202072794796088576641991196880931592870039681781315895976214950908869939374093513440365068452177517633931860999762210661250398072501807723203785325369316488647047270446575842063755792530071941096371673656810306530736160555914556072866299129074203373815813268914518093867185006765570891533638414299637161121697707147208710323459604976532488705654715993534975908645749455406645330782977040207977226654129068142413803424821354795344147357822766422433389078075239250814355736177174263035821442740720038024652647584695737944611045439889086647587714746731793784916159826213139707859015023083872683276430548500312934042337876127730641226978814383458800797340746012343846256861054851598526664141988942603794050047151074442834218791210912537866153215575264734944357925940742483458504464924752840872470007219369046229565978175730593709298451114907751102865478928786073651111505008781345593277416057149379677395013310418374762565071320344192964689356083890547906032579848894756418892698702447681525246367205616742486882484935338182399900322913651144321060767657308221035869143427285867888957918159231113881073651258202813890906068047380645255704947885456971295332328346702415364936346337947861013273019209818166666275102161533919202369337140229199147401980074594495098686277819569629688706491785060151976027161888565174446992660741091316632425334832747474491841237948068886827902488739606790364713215751676534772545946920179656670066970291286460810817869856162360490310360523054839015401339154956549411752181840751543705966146536046740676004739673481512010118756766510674900500579728230118758251121983294822014927276701745364531598611162072739532558917940426307599675146042763812895916228125477096794149150200081692714404275919856020056400468772504780293652277249766275584261180523470409766819277500173178292781275460712469210815301760287278718443583297563659111298132243891145350987657423317590660345207551135201663079168108114763284114068103942544457894388021952148671842639743348559072483354583518196575380915454845107657419071288419683998757075829459766777234135411623908663428278773554087968449289491560787473060809078033462819618988488401386431333005944241719041481215475468412933806870576528572104099832794451124904339879000916822169368731624002732543830257358274157485111846432193791089304333076085898866311956651366421300513993775428327045561004741543485615667837941731759934751506561097873252519190810860057839428807957557668630586415910329666953582564042590339923719456949612802787799047361838097196050209552469149400691492226678758370500041230158222261573261099493410711309366710154820132255438870233482655253097271625113857288393364920052552827040517518288917576903235535199009505239838296523566360060372679725495934207730989790667881222017370292198877131047851537143463729730377390476138511975330799050200360545485783200719034094161694043797815316170728437654932493941723625607717670482750760342095140882002500168085551825053831036291757834736929663453179408006469896033914722801812474680844107865542786095081100281493245037912670867285267094129734111282924713910154515726643131757047779270129089094879826031035345376062633537288928368102613932606107523665570350004107528481172237887511571759572042931075809996513129323187235708825799522243565917966528717677063657946907417751939738462742802610047444022446086912223324041036541548099886599844427985685600188229115602014818268931384522277554768895955086073654659234386368727201316724318073379890147214688152953127226643591266279994644169793876799232119271491476900781986560233973657505041674431766936349204584084369924781310188165389766276416730522961993493596745523211720872045222469348583645322029585021429885285337903770935848977789202804189081021849043487404483412291551695750779537703863185818290684055512172065794978164927275099580824094866265848631929846079027821066441943710451005460416297404413922073253896364657335680472812546255558589954188420803701867049181157431784216026806296888952969438000591629313226864881694565979382291853343800623154670632992375151513008378553388726352269220032236173165006135531336453689417009661887412425427149326980227665714832353775218539026341311740638453453390557629538433954901107124964123579600490399915012124464562198642699524125264977833220088960419763142623597105229263644556529649025169926090151287664908565954772639405231812865058311920656649520292433494091277655471665152069236906531119731782477464455170928749050113302379415639590154702783557196052171404451334015295701460615374479568594509901598282443706989264257396598546965138728053140141317368784529080637426762730353799984546498407957262739871053823892643958485548533472139185168275555382433876171512074987168179607967066526213189307659414057413643823935462914052303206969677087929923426014714412351531329458785547968712680811079733076463758137128914360797437832776189878274223456635766902835009349531545222663918249351207136679403952650638707034663017359361736673479464508511796311336612870036220952504389784320217449401554867771930486349988851309065715138027363117099201394671941541780109832236684800886715124401586152047021048822440255924960347252190004083216214777264894753567317076014240691730352359119445267812895413754349285300890335585843849039104454546139554465753700123772044557144366376342778808723270243885239676911544486529941034832830730769297421514540088920716083966353097095999158249447019906402400967161259071901290849518552072502580898561734155584627559250643199965384780411355630503190276616217312211140198832294796772100661715050951473671411827805436067854442289880188875123810993329249217069100782725261362082261700498955461510697148893686332835139207332485236867438336307399634339074828102700087280411277487386214250755874624001610709690731938483593819841191045233421883815360552328510900234538787352507925502770081965198289955605331134398556116483678743063411818149635100408769288425247541376016355256348419979466306683319184767179900278372983113076204689724796652309891967173418273722727452932812647069061184670724696014711699458870116256343361553271234427162679887253953000254954119147076310700056243738183675299867009039901891922790756429106722452301223599451019881101823005844436714723517950054869832422653023372066135412433591839572882889836656230018434791851572381156281249244735343063891291386079530549746322750440267809384948543760151401153941840530903955733169984728303642044394704634016468940838988850743480958775247497906972846365942258934643127734370138493497646069046146869098937913439936634695210664614800150216517762394293470580941958805856429809769564593615706254644897576252462172328480474605124292883231964132409415354866110755101963547731101439505270266859153227755509175679890649119882203728996273687819580424982338408779158680479667428410064067752997914194514553891685237815577839197174285553801803629968066469168156207330932848382205126543919728724880923816812518884304918923238607890318782339963935385748287993922078577748645665703989341182835538597472618504420971006578836467331560520561597783389955847917713236426469811756101065886707700457474966782829823180092688374189407210858509916968968866120316826184754001253734957618111102787312080106572604761987422626006357071832851140003747243437608908795605281668174910690236815777378151276431851957743682360171683225659806593936270783710320248070283289406845992296347636846774490016792368619574443728356914458609358871848328441389729905499657383371568215838879281102111967314561839534124955796862331275006932763877430399760697410673518748135406982478833846149272578345163991947022583585483613443351786842387043100902768826184475600158649795545048254630053002024967689639971098706601687410784537436116747902647667388407390794165151396160705903971835396270972048599356845003924228620253929838581425509773953893153287254309605357924966721280030718882234492844753854982280406825514592195629779999971487076568320171178678581847832290282357924995937339646951162504988445109654932939299389565850968847627417747305622080459526929499665167915805471773079256734290259080288733852108821838545449226202045335839617674026678655777488351296640842129668716922540597808365216778944807454124472770639778581163484426549487770062319730339106893555509615612630745432019233735626773270687023873372057284587137029181175740594870395012410271291135534176876893308163922451957989965066772246891435621039040533095434561043469028964057413354809610566452041174286179588918891244569332842213330499871250217079838231503684351327573417293583523569042582630570914903506812762042779768727034441459392005295218639577016644572208105369314481725199828472250880071551739437263265344673395310362977191613377079827034420822050808303830286645677377433883586813552972474692877780943847268195613972635683849524373346077057828322409927704910518050851625245010119523275954089244786320832990638969407722731776859891365269766283400607930748178880815918138445753188763500415466376708873751924484286371338217550879540178722638192131538986431570609024038251113352100553589306138734207076498925066409890318255756083827571536926977528326311542361796060236434345050485965321291041193349890048395854904243231161490538935472453665228263502226149335194800896383668942817799196189051189951748619551959486794753983275776316168639482034405462936564081323677785962278486165935454253468191208865622891600394491176893316959862089065998749912583878889072192912986293570937935720545599375553888565200428019229212875719109068266723995569210406875055277339841572640834217214792500403449262455145110514048549577357048932376014890993950293110715993296805266352699396067725635409837252620499354694272691544818210539022744493502930982352765589739242395501682500205243400999502092397895304264465108679421833172431571080776544425026092122932783162776731148657640387243030290257908629070676122589895752431411241594156680105595075817489707283444888246503610923824151347238031508479547384884267451915118741586787400854051003251605826138492799837266523264204040884251188799412850255080418221273105947166140271000478337643615474494780627458384828552748388498156215739356199843031457693043526565920334126883695326835254434291963856684977755026937589247430675759621952624412318840410356551729084936604782311310168303520593524915196865298102208614205689781059624715105180509479507841759077649579345177196069328042247334716069664490109036458468555820501551139430710801022777351564256049070785245307737763944840292185650099652692442347166275098357061241731528377508581353241774432820200836052602625606437005983355730261949128654804985292495403088695442741005385679655259370922846442686411259748659491256375824490069967366832792899947634661476933724337182939076003597667375792902573785836348833197986710336784387016929732525646239548173018378727937767798169277806813805686713756366940905435908644166465339243931632895992005436011261705291141002267344452663783807677574835981499748099539598832936880697732128808215234022417829311825692783201845479804103383969143368884576179641186464631342751464288655368596395437716036400570394202741938113036197646917582363601145363437067643670948313528574814825199407456772401687902111962184265191524146785074183156208868196212250549586209479597047227524382310223716037925507127543291308564040191151783175650562445374049208093312567680071787281115383910539377554200724543934956851246145211985047260962455582782568072667839751273801250510321119094193001238111927175503398078674927466097829232573463577680761363107264522066416721382423797586251662217775024879656771381989640030752714128665304169839443504632912296112074286915761044882096021947427923407192253107760976784414468655532555185480807289372225818757282029840858782923947042706357963176505756369995997929246204395416632844616420427583945881869074875407171264465044942170143768294488221950365664947681535757294092864572037552666731369194939463191365334035231414953377630813087694816012156731838310919528478293839144651643485874415267497324919353541379202504158774964702590370061838165941640999138327427023144289497973834641261743307106280632860678847512786814674611101612132651970712160840534186680097409812373446516485943242624671069332970367321932371831513606217907935538091059190522278456841173243350336874129010956856093254428095702796144670619886813580114092879226022594176856765610213903165694023493652129760792885937516908051093673973240638769237080323949120261958150221850010293966730152347043575178740141657567762684379690621147401597109048905389210651062983871676444111299113746175027057120032946191921640623849442565474842121228063996279068046186942965250016381108115073941155349609593306585745685192228274541011661540446630115496078511743211566976439527187811922958039494173193372721004517807878369637124529460931681770386955903364399838829049318083062244698867308451589431354916940178574999187150602161021393268086564016373531977678309326494656747476745070056271416466824478084850227282309007518484504435058249239753328922821791636255164948829811384855073321379511671892531745927816398249808986111265238301410362188345216386637954892422478650607852945018413734747907275551915646070536088518730353061638668751993130474510488640231543282277192487996993847819360914472839814599606303501832046533051224972877487711411615787539318573522465445441506882030508055088133444589078452683054847839919841775187196104862492126797021472277957608479860280688272411930876755418852149905751563156783914329870648460563391391896568044522566930175711272029100452904439143612549983696012756770991800819835323269014674532727830922935858776857501777735174147553015628640141780469555680183590561559676517651070049860915713186514020176320147420193080648608109724650972234094424204120536165290571212175463481838289538019521699363882515907112451732311367238092427738707617683547224285748929553040174696510102010629992431482400323405516798894256448705875510655914824584560861918202287838621345135077296972137828505258912018271203572959684705313036616493885374389544158686001007471624039977702566937898814844842233191143338146124832490031783937222941365317490174922187632435103443175417924795824773529914885720254222890976979437402834593379979322976687634609064754417925037935370384162509297587847487477412669873681260989612991357588662332542158528034068527689791599348427540389072743940452159499423886765877646567282377229303387905771569220740608697716232664062871358285670465364342977579894599263493279168995912387924921755011309529124622959417847954693782800930613372656256653290230559281879309160949138399798648134795424669927187610832550458387498348154713746694418676096743845837348663308131953930002745371064406187573630885063667113135317602450681690404111138927613333521985978951730748106530965155569510956676928934310843609357763528863828716023538300700481199995488886404526400858383897171480791214987313274779658598584552316387760961337127462100052468994729536911163773085185477627438869327132318662275669902335398360739277196375262060201504904403424612285292881339772323867301810217843973183201815951763032002278588738321616624539152672707222407639956893799545216941701629450076736653057023440933728360829430502813367220790399781644856648398289983157960719142359110671018074610325971291402898601776001125328536374511261740639409618700906303520320271121695825547055998787474260417345353010429236846839092050406944728121181323156148168495898394637248487767959056800912608494819647867877574991297728476796135330977939643128799747924347938965514750595455809358076445803335763786236495125840454022086126510157419853338583052404233227214710723234630322809732953546479866624349443641533897489757642630098914613656720856464326186443198829518339771087234570573708117508762813548180004574482652944034469673511411690289547520144430840356204621910582007109291439255250892003205553980155604805342122142570470923848796712046962072189967478187340119571998527758953113469825508972439273152551850244430180364435915154582886440165316363142929399713386030611725312180270069726368799288041261849373928462011192202632454090812162024848355452163823994442586141516279461373610124669304787995153246119564302390184560307722513122303293367789176761550561567919237094804685827114323480842582223357815120477925481894676681910070901036180005285048100936050574153964887195813269797532440540047402017407649753471509357168255268198703200736734734675077897042229563270156721544197480069778100548898471897909654938775373346896951102862818477186890335777124733383377456743751213717339822552017241266532790278804682861084794933149095792521033593348529357630159947534156451386352937537123515066988799765029289546295746885917804335299242051448643156999518601655831988568672919468393572704756168535322746467875834776820974937795489435207840936555727685098735201910376624386178496291689725751452051849145317287522097828660492877265905495615425409728677775270296071125792166016686842411729009033458411902874584924354411616579777526198141624101147475436037098129342086999104132651442095522875762909058123343441997221021777236816710592740987646701695595345998899462862875276338319004292560313459269059846316773281832023527718011421841457118746678556499231709254472805445891962641800264097648563335646656046559091188613255471110943892544029882128713960759527141199077099154618287828409748140668323476247771743912466985718227640642520227442942811505386446744888558489570503275779312965238852395010871337795723945395399816334387280426704782511510453048297877561100434502689309396877536372475913696363188552284016151084865143051526974861910335540790980333325151320567047147901446396130753824168425816161854622499161190909027877331722119626720768772784407155879079265744347977358384223590981978793293049930050132093181152346836617453465861693620601911223671213779049312024627569297332463915489849460442755566817369491734723982642710470537910126290456344303800644580136539939006956222631920595687833906333465821895749419947762757362863568336795807881431680366706869432993016259591173466063962373605959920656087758880764571895837223142867458877060458160636274101535620221237827514669182555609530453625657770625614642725118660184764160241468150687817247373840062725883809807938159445647538128417251821770867401708292316584262892091892732565933258908226523726326061318740919893901433939504010109231371026318396669709677181694703961514662864177885322779221901640498344818811017777966485626161813528447036168656476762001829277591846508130724034567936098127612394339054437194204429058156972776784325223910511005419843806139352629926408854838992010619779971084548851524765780207127377854677893812511212925481990147444221733587906070096607301118109110114359714148912332820412678225536165990265542544509925859430884836001390192753911740975806519264876422795953284528993275647270813456738922839198748057458917011132805725067421347144743141080040097482239774774644817490906398275163986928966595398444147779232250213449774592217677081755629716778243530405510406002980323238046716721212225422778525679842960622659461837433370786573976008587291655686795714311060602649088708611624930827501671534654093247670102632180218979399681269401708365019954068944924763084948748246001295734869615369550279428584429923507887320793438328683129937622840421074845845050552611093756240230737900042219039683018898136696546153730049349383145858183437812720172756944826979909216435982662331230191892171764595252090779613454185712132387438201224855590407105967351488104061623233927839483263187306791639187001400893457154776192793717176484967361116845244736870254263191415268741436854635107056458814897741440750468605873143704888418755766466229371894018726054581574151259283936002079490531359263517268159486586778819004804114749276845696103296570835725647034760894612076362955992929341942596468016178135475906407624181555314765667964398798435338051994451749011474794918015968361846236763292248919071107808175706022090481951550178989400468753631938033450644391635779576579332601500860720200383924999774030235936495373168509428287406927883413340303810049159982986896039488121038136663731822226234093556298184432704606422784790238456320980820557464152009163933433011476541643455092425711342315052479821419241397232680020151347583039089768463182186006372762584664519183894857327158952343121413684074567567738174723827501149565802473800742160315275940011388262810758343528410060566141923313576444168306922132475713967019747105898962182305883658419970041804934970365851953764664339937790491045239778764987154803756042248581091596343079943225919332411707560919855548687257934355693045950595154577994453011153480836877457146951886938546356848937851203596900497395468201091843311377358070918342384469282935882564696771995187024714578029655043057572543937179033620703597384324196053104108397369268605238735416666513553126517060740462022740218712290841034402236859948010027432546665725101256999198257178913057076773691576840636957770519175685779108528145776742642429621452684034988974159553469493294250735378333766682700958690317162632886892513053236135709441065256786007031753074839800830286719252906521047143807108394248855428673926453464990191817471024616071439236587341119974727694892772529224637942712923884461130094316341835665580833990681974369145625753964659829273112490942799108124825368713751070918835406849243732009606680858715393494180983704956269806655005840052282226165621422353427918023395832847051989714047205627912648725509082228968185209373682066537396946116777000947678615931335348443501382313406150071743069819280628356683674382961440872216160317446146394256620236922146862883832185133247676244365561356095207110493240947917398152902709683435545774118010358158706162641668714442533075640046115109323449606177974271912541429013523619340566521186204343367686471983615031295402205336222444990738170047624939318633651175411916830937298489352699303694404161459539504902342332099228483840346324353541141892344506211085079356035564647970885000703567577225270393008243797214767765803356082555366823521545496282735359364060945453929689721276994202431554723179301155494114971064202854570427517735149266104848994724142750935435371516603856265406337663577856677189772872671460775531086786401146199592436136611189898178853644209334182371136057549163389394395721635874629881212226240326270482125214143182010418194988869911609898553674314626751579100610357981290465336183840929998357743681656832699387828002301497804949420004858714959395656056585054187405227010614132108165563640229310771884392045616815381246016874352098543378830886788216765328249967763355177034263382129453313543746905456310770877804328216276749383911182123369602780946439872620086454825732025686099450124914286568133022978068863987621780650139711476566913719291415771510347322157891549218310875118007817519052606060591942183614515391067006786583790262925833716826205326415047624569423048008867754996253074418021459172544908614553608591669987868526621217582926263818472332032903011576589667972844063924544313296241204102734142918612786821785595703692103355394018922449815020953623492966891729312622544673691198254021367455569250572366789796187229276222828041038634587547442068403302472601886986633243287763871555021343192006536312143260675937688719108914821152727138376039449677706221812367680859353738928120146263789280084514585867064137416599595677984943938302038242206167340807588163291014387556161733213520748606046814128507117416861311173505817144926420780695800552441390068093233588387141125585855398266907629357488809869235473157339224962350104400970102450517430762299460969269086291376848794362977180777139785351427001240877023895850049374048098331055377680261895429719612027310350285838159342210828606553251688228088678787117630049149733629975355604957504856872227209260957627677402242365326357345156890168941159705338376150007736549202769731993613551970104613320573151960437562536098068035180583008140854092911394877060167990871573771274106912984769686494190367130915264254136128478626157428218481123595783050148405415386091907221091411770363082498132724337857281368325850122351302076234995146128431338174185373890545243932097251306527428848963020230929335689499486662641819290967658030616902763840402882343846042529787266238391640968761822897615322615335310948677117797348364704123277026261624859647705776120065196654396952694581752835310282715109102030930679296549374461696694674660502901201412909098253417619096049204362394863722343235833702871786752312984768286633552446357087984143207467707130271382082501482993429601365949252825457129091448947457247957290481811612116724868932723598235862022322560089662421771850159649792275771297661882868306353885825104427042594921745307321129436042938353549222615860403818596051600584955860214568936689839900770958175708095766511180440636311158418565822286165864458359318765442757782005921112424519159485989405412469638968023604453388257586997044115666364565305467448319392557756483357093778605924343420401587646377649655293660847281086859012376020821659769486799214175477273827337870858914791030859365379846217376182376675356962027017615070128534755796238064117456795306979954442312725889979767560959944444344008359265760760613397445474465033921439155674303302367803815295657705276409033895406375246878312114430170630130608276069311037612194710677149064150711050486141821169859583293916704871438759676607088792371874202530388109036817060612476998304720214206610973646138340824770628512156735923552082931549741949334162308445037099857077636797003560129232529120336295326764000791883111450360855045142943618454728489250222240197105558204706418164758069195834907712376802180309757475004295157027650965435991457915296373329305853946547674255772106286337737489041641418946899718125467815391569599653867900220841330471748373099836321838098353500163009479450569066447087252819625418575370022144875040168560879271545297891310118502434576637118058286000685933957285472693185745782307013808055581994646967700586954717007374556338499027346716897159891470991462821347676849900674152073681341537542415938830333575212476190357084746555849668079609871364652743639250407234624040163887708460873783800530054207391190424291105390427343602240972923254500212591109725771410873722756381039815174449494088563375655576487253963079845574738608390847969791316108306057012450973820174586241670500416168050595110274879833612569464899247618822106673293804822236992641843502104510700747508544613197855239833176746585944198647129227391188725296762534104271159929627385139354322171062372106732948067799495681981763774444999520728711001254825903594761750424433103344018372146979917984197779662661948126046655377666116481995175624799698348144462198514082853944573224101460399477023146066584480072492708914500949691350357066749976564306230155924627354846096514165789500488925339696669346257934899230785659475017774632875733398464180012515538980658831119052957468435991760202713402584029822298560189669510522286466199566443442762127476090554054135292959819195511949631995334807539350287981866188393774081544539796396185977463797323679819942526973863657300242045588457257378473754101884106988575404921771482879426769372983546082971575145944337815095499076246273148821931679017734590830967511215570891491866314124384259141100993015201219202404024286215607305405410723870425995006778981560039959488099363000636407819809854463429853835809399746183264859489254260412548104970571455831043811468984488754630888635557654793419590312975889408424897195475695854282180108084694325180017427463505624625059785834856735931030171552202249717799892471405376920669503293349014504553173184987911756857283365987273766755689435926830050936641125219277407801575151230445853787309043061665157283935527552944497811459695509708371348277884116961576609851194390369840318013549452073967462154127640133278461537908661986125312788452364788128344011708841685846518853035229673164184078622094073007830802173748036933327426487734179007423100051612222111995868509668445289372630239472586418513404511831756055484897892970494624409620407596551176307665291499475570543471448759565770758149102708080727025436768375779203254246950924583877018574347755459911019347852577770467103322176465128605487539304054962657767120004701748964138708483379507450323555245907760361810516720664536582521435214971541505498335410069282852205107247456522288713210712657567715081598234735801122298287862836899813165226004989421830249360082421250223337815629792612465060247675198256121466521132952948171543585738048389977033229815775651900087179389724948446924906725381547269775089486104428794544344089656708137008691128341603942842164759638600957081625768267732454583829535709640262922613761893563092785582276062886170716294091642606442815172327419335751048372574019896993140433908963780049457054943580422581708276738905607937996525485374374441396363713504430470642116553072023685547069039326713609027623429751068738318467802418623888569832982584870604158655774422850526073773458542323531304656836970716468189654726547134327906880646077337611188506879587269860254497676338544457630410880272107035249254462796264034239034216452662600995011792011036354925799160643823337724315336027374474447884148805971650827025262564609749563395039741233821752842205341947521325653722215683094611436634911620232318637436922386034675441375782932834004552298085063515187801283078989250296284862414770038535237768686397999021206299302645965984130847701696363359068432848432126262757662378353636675592999437132560002046949301975821683075892628696854490838848904809309630302562372228487841176026895941658919641276766904016881240402990750841840823165714819372257588243333668916649805062102490392866240460325776856751019757266396832873220883391097832075339464870037445292743606960648786177682643255094101548774696554940628400995923256245592267023232032625760432830726704971301875810364377352245664508484267494400578792264562580422347378465800569674011361896621198177157500427322666911126609608388788157690964102554669666758219557234901620699089104089221028898942737489051247349533549644926720391713370434588119471274504841908927033839878512809990739629897848083872317489658999071455435364884124382204373809086000072857890613106987815244854612299401931760511865643296998508037356208757150689363435152871927708502229218543362688141822235674702063157480799625671467767756460528681579971448957501034539171172969633264506626254886875290858620849082359809223628152502320944928804030746946195204369305404419503725199589185097836215784059823655915677183699202130867100366052124106750354724686129967559512636323278857255862358715893657993399491587192238152302358037418144681930422702394916588694802379613442963186030889323779503468833351482849947422752664140616983146576172233984229946797752271922265049196394128323401258209997897369669883881628730599398358187019002261464720818806000384199759616182153188764811257171947638165759461830098065965349351204259318701194526646004422058386630743387157564779302170104452869043074691325126418792277611500540952241500637072244022848897389822476577572621711867027427256736342602810248397466023590625668591481340162577817006087888548999232930433263451328567216317369778966322574612326752840212877622041820120927561210071829240187090883117906918009009184632772973097732291408466734815831888407868736100849514247939936929787727258931343355855748211922670652113704516094917339064988673720017358640594085440385131595201597319846332473726135032949391326050234815482022590750053694784298546959495465016210336746790455744488493318108701610539339643181810923460787533892578714237148410905027801679370080683830028629242586869283955331764811569298242280797972606173363262957498897926539526691659289386747276527315637792156925107430971583724456158792828955003843657182144702123335997724000198616567664037712611229495909577100511012955421689895164105518523947034276614548091301801292161595227435018168522165617861539245715115150431356470675400156591450922463414501730973943895478333050761729887139335402198344867307049045094941711147473004182292187658500404942940652519894454511973948870774618746913997859235428230977029832261756855312251445836416015455805110813522133725685303090458534410612332587372242638930926050973863343550725395556040838322831780244794364847726816117401996550578016076450087231112770441667304394612360782647406804281201004764237273625203009169839526334414143903073362013623295702460570935657868804357915605311142232103107491405010725023934134260491935846005356563514121054695476259371755854433446778444869699884745119010265570382091428844874209467711412557251339389682697336962469977494968326046912538330181269759090519210660524062218111146641170006669278969424696553816642391161649501943228940083973435463011526406992064639963861145740699474108647326664047620847821818046085882420152373323782807579626168858490305343769678444692008883026775443555836530274452780292042934378650183730793848345992271520590793402212193637846256590049195500645140136808496640752322540074709307724959305585622651579965394468021244785036017041391444048904887682544592557080325044932897761580948076729465352235067949952133298960790836488864730457445956345505497453123338614634670373700085201425324140209775054852773012089559457270064315282983500998490216639413540557247893888998363559840221816116032464760070348778168505130315253351002708145906683060871116095149656241908599851422860246284507177057092019224234133826791422043299740808892554811326355561312431825758284860262281988207816495293206179905405125288176772629556342222898399504080583178991419737069937357466340494869772298182965284024931993491459500502710407217414428685982726512272021950299295396573458400868964187467396247949759122622078243233577708012243898233927231724530787444603895359077265503119452811066775965572631784387784688066081642030804383509199285630005821880433519875419169159456720404082783529430809711642160685555926365794778619506682209504772740575404798884046464093429187904536064958766143240787854334886265033234418745907175312332106207436741228872461583284590919015434345720902161804946183436975787325790194631913384374604254389359394960864515461939256990854131521169761122811456527270151711489845781562632826877948628165099608593166208295362827335637991276770724531165585527072133125400943914215828253279191019719509327494172412986214872632705363869569637663129182257606233600311983947711478385866514634035987254938018934295915507347074975112323417289000713562511349503428198479714694916726833411965102106683894870180086612038310785332902391186672737984428044242501867977222557976173630931346449155739991668874533206680862603853583928742967955056102211535385855463101421078036667481497006363882110258807369071583681428052339764866825729276135895673940583502074858034399167847612512956311247597531898072360914035395142085413144940986919369823496048698424876877979946974006995818820488700856481370105831398383140537012549510094987982641141040443749201465190465287568930230975785090901579484702183065979808393183515539484838483122062620537154116543918103750548815669729582219422000133208248572609973469038048379725898943091117491025599874781843213903849038256197975828372243718202014469458383948313528896664278420245643581565612333364385338608744311834336300702738094544786222733696193229524787279226937491902152194298237069255488451437266954301547952425961065537820242649776741725619568330915851592156931070395393791407819712233262941287336740500916353650337153966818157862816543675015915917787611502703414334740303729122163818550818368939180304009380138868164530711836980013095677762499902104249846743981624661575501685851482952163800111000624992051552901374477891635829953291368992966576306206037441425654634231041425450411066854028166145810523414224901326471670469952932803012778888369306958981137624750356225001103342801802742047360804491343555322695319386323151174591453745668204566659985249079311711242079850204336945812544263272369809427117031078228731585127544138019976621450396322655668977707183952020378568949281609281906526116582368828229583249129102725783367530301340023067449046545740908620348426734248568522440201833308274237335070665067927499603827513641315317583916538084050071533707326073742604467691086064225254111161766689876195309800458140100052862697070804222773360870864358225467058534869098994566300123290609482364463136383604551072911589148022698135972531880699511521903346135951559424825119538564794050527807500867171881962346143825685519126924513432269260513134227911235640623450498650491259827055439787499395784429478655529833300856019584183746987446432575022059334898402039484085213110717633766454103661595433285185749170657131471995062047895497260713871508696720346198005336094290363140314676328975058032213063567837687609761392184796454513918566089087074360955591028859412433632786305601559880799715983928544915933846201299774816602249949527757928625351239327590168194539640485171341761840176141484401652091852005441626871346486385146467848343304125109233210422787888306748243125268252901361420361049983525765308284458430582737122828419336100219186782017520555888978495751562132548384890476953754930606082915119882266999239722042333507707465370258115254917020457743205132072614037475716693736303881211172202620004419758414936184988942908436168309674661289018790155842974471911636192647771326302280948443431258641903818980951350572330116491370740813215600587787361163441912708760386174426708037614442950208720828645515227261317875968464422261600530521237078336820323736507250751836281652425547112400955749476051820947074008871169455440549001467392024807266162463912610105975533014556597388224838173723388153897393500261874493829551425206312562224085546143617951521591632350931656755615138640910233722103910546925355303831348382356156709439644935459280115544705116996847201139923893469544800102698705505501431612199860839254727916468207200864413159498985719834722780209564880563706032651704177309050168815095271286472404631407013188562359695978276777446167583886484168654913329603170754137764547223901472519224027727454290126217158867283818295710764048173009091113731490211846752476519939303146959337506347011998942481297179837072850490432408320585614468480134691581623197372593464204232681379853569023347674190781626656284445972661276916477775712384625985410307773326219242039277546656413552034970834419323593598701499107076838401882733556263295273249981267650132106693827986092032080627135288641439370634173130329893080438877393426099690453631719592630571999002086061164073750325213752401824610479750465636522757316481387962217091673635272239231099775936952130064505428399112458527928122873131880381145799525925388504781010938767574679942131760128921645038572123500769626227535703874778175507954219543766352038677142974508373212808864966813866136310635874969680499088810886012052570337993340617455017879850901821603822318012666371816407639137207119982225000216389058607399394503060449958239210044862501556057542580424404077802227328671317604994112527813195320073522147787791517104782874184802884804839020974472089517999632065025333949092944255864035350093752988084772542522282996297743780755752758112470752885789199973186318253100561263356064830760863896466244888178140887119819647384993126556360390560223717645555450046952746004264624811531768669322824180488395555608782598100431446973459140717815106288951012818222759765019902356761236904876153767452863469543398794447508528883490212993419102458550102635861470353179719589537403523332721180238629220192252306822981727373671557103476587310303217798013340220749495210132021329464056701068863250065437943006350307792194308235787438731353931786404375438281371115477132289756725538005338176293172869257163661886188536485476072976476231097442118334722401154373430299078761809911525668611250516057940104987419860305678274640035117780427680791116001753219623718209357235890977918536311721617148056863462165678717218185591714109731418571766554573067409567424750079148547284209269791756468030572365864417566181469116863408692973424975264468760905104237725040802908179842654886784528600219087914528999455756451445634620023961562836693806604098142510760987539342567961838065118261237015832804442682488204913640868652954737202550665609653665590869160684471400743056945640793579324908810299415966575445634556235713265506692058765255322701651588903163201942348174169144466426358977604577912606876228435122521228489828397618823389379981887021982966667733713776932105929021613626016442725967728268897204207274528186715457505341382192697688851423395956709203415783419693644017076621176993053223190987598837931762164437058773120983323191279917228097469606249145411115961765052504896265304372156490680544051527673826274677728515070236020579857494500187023032827716383866613844868780644883489626435154608384956716635124039323562760261557940766011146953693403177014535700591784474850811119628600988976748519353712267668704308918927201422374798010754043026121256767986941242765499533321756162677369679709336586268464585671980568005465869760459794341837067351206992153695795015693900600624853356479129482122895282355693954460227270693197619727407045456468149132687564943175328798286338976000065484588090029058485752037654021947138839074148685137984808079653428491156405697659964631133584375964474008218766768845644505818952203924066925357559617429093909317016385474599123101077818794758440157434005577564993541901738803228080644636485425688917941054075633110671179426046440151466327172798172213716247767782950405782408319359794503221813168191053062228920241924245300768931919715906050667113936550772983225286179292647272669430581354384086489078612682389051950860401759087817119501725389359331538566926763411208770560604109312488187696126041946261631639907552441425617953974837069605750294806211397000041879002122175427598929194016779698449439997629353655433078810273930697318235331096079486977572260046976630509621671945252177630860686008013341248272589172868362633708076274641905496479925809638957787779729827423587969966782828145095778011680457554821551128232408793604765786651905040856086361500921157536178266727807654836169574180310108635512195092266834218015316923204088864613199438368618331947184933023565030180697398417953064633126951457483584647295683141655910233854407692846444778800159135153215765927391619054143897497709960353659409638398059155948083008343468441292728315205360203600795868716881406774761932334122244068818005011322534806942722179725857162386360845431453113570780037099764418166561772563215090228268534830532128040798693899421701353182208924256118080059618646232030007513148398036435632175024379189435660436173018878329413000483883593099895039151832191413035966641934093474846793204504509391109746507034416893864104715876453900076329111444392338758291140453905086431345357613922794005179213864874429511882358321017141816490708038986415268740155280005062746265430192758148969546923788997501649479898762391792057822889305166020886320770645564958909039600844648644993230767328565223066248204543364191738955115250449871352379455914139011593053146067297036485082890565386808255828539658988978070672472935665586179899791237961403463942627120374820412702365012774406233967900496827882218973994864732784335019792675171611908363479878739630724826598665669411628430839865252833969766418185201559638363354921003748952972168809443010538846357333003382717947059368750194077232314184385428045102198277583447744102626271489694243140007717972240955817931080108349188964208778388982695997912475490468452535863671780175914479715693685496619016502379998909043019755576872113957420731781631385707449702389241945776850215059476282099894234367190823166706228595120953944062936425830732725662499660101593359948167591253832043004475161771554496788428746805497292266032403138629977919660872123632213885640932230282959464809762351938150193058446190925424037961161832576381189391762846472370756437389906046409965908585298434917061698955308672578076614942939569956187791299651375986287826987820961090366558919497088714032963122750164601253338573486321072370718471493758523898072906653858357308449281784670603875120725664314092573867747183583229374638183594858845753125838672802187062382314778861199356794061926088290177286560926658059370472387398990713121610064766104326281702879733499659624765944966899850302167735433740712621642073974668603556281729255355837321976459684175859128817808849839520055196307150053196097669330526601361473934370367026618207564641855585012705784612468937807454374212131959393674662482536285201647147376845109985654758872797015001447708178745397261335533097437702788232413739464721260036635110199414885730458365716581987932241292226482887456660683420646376362556752561554634337175070069702222229086431365228720405416576445127282407582160443394788798611089978043826303652550227534817323031861941214009455797705308214468578218150198036254007811651042688385768824834143540442826153855565537437063214122039149709145878700585334535775339950299307392243705010622415600532510825333365292689724059443257824699366939559497681978062500711924779537822026110027511364607052643867553542523220140245372265489213198721166691792809064708787126257067012972251109554139311173707949049647983084845979745052058482263158625246397337796729676145263187134463183653221946535256999798288424022575705855357330297377144933718944900100569924958266259802676904769145785474288988556424521712046279676651257277140793911497894895554738907870239862220032501961298669685224095012803751529726385426544714563018607590861117915492559437402739503777486138877121862923982457445840781889850081994532657468267586434816379535598278294028814557563714538421949545370845868704603279236116389770083003741993340715088258270519262676896522680919388977795695454927483512595658870610140502548088298374120806022535912760778072402335799163990755657559858211429339770499609217211206873749726826739300006934997197005088851269765703276733266013588796741870183140933156564007353893128424522305507751597080254823175513028648096196659532398126139419979964352673825391871777915926260096400117783864456084875469776135402732298603428690499257538507882789790241123023982487215025218592405984566598846532407000371144959748380826587484876045666299181320004310010290543061336217344045420438354672296973477089591792843256240587837007819333049457262098004032046919277491714256354827946072909139041049899840103417002447221503953485167908160880917563803994607244746836051569184969252327010518336509748908008659925920461286552051594837186105693301360063449763647607326587658274832740099349467859697060757295923942393642621336308659986037527013768570113154411735926144987682220739323701834508769990966174811778331313314764443902777011892766462299345551673602161810757298423806371649047236555518260268621494916897751370968488594855860048947594525906449850688011143204658642340253360123724375024304666930953066303066015360233461769557177014101851545659830309563059805242281529544507227406704104304792387822159033295111239220781910176874264838651805720176423183404205256486124791299139625234849846452763306048314545863853795676419823383181686001314917762278669356357007631946461168282952765755744855782282311441639659229151820744271819704066616413820527059287344736080143831571388816448059981338669116364247584374957538480929627479795867918669283593256719448111990286341332449242836494245971710031464448506396281566696293850168583613656233900394043555052592704133172442486807158954721569832113069802130108496041870874138309442645544749928613944578310486005530258347246892657214143522663329884471158119823145574021802863285740313842989243666326073717959313628650630969272949773960707843729721061945668451410790907114015149808198843973409580083192196292887539141842710397700383953787180110551197676504210373144028597952703314769899401679205725253313562247691540040712906186554363377078061429149289782816400629069228810231721031696086908563483675742813723016153338719899744381698232401431061947059071375649721557679846325859221949308579833987013856230729866198972181854415632993265532688936826427740716486660167637153737382186739911628397646155803036152594096680057030950657026797152730440584123893295404062682600554946199068446505460621682211357790634920653112000728610811577401912957958338064194677579541691415871919502189632183759128049327827522643066731905199894387836094351835594617228607306656052695047727539572129858494712282044268636816353855532437559362115604195114920627377826075076604865639615995668108358628421026042584935505414781371908891590758937210233778031219496252270999954526077481015457383505718948556607977608315077167761955899096761807924182044734307145028403976202066620039288924621143167847901869304366098960248850772633097864170533012016727402895727826130364408386187186346970203779169518189362878647853484899613416911755236136719106994017477891317178387305197915558113515838659990422061585787133163184765898665456725281010911780237917960860643807888064868528585311657852919625271258474671608861857959915788292174776487938336253514102920606735847596506533764385160966870650614964474183283975091531291330898132040525966583555652693636010693123237076893845913685002339619375019981237609529930563046647750881580819699865573740477748629847738625612907329633851692944491440438447724827128478034779215683216127731194613421389612424429381866345909632564673689204182138519934001314082805689436510122627049161398146950119464028947058955944526682943744732629062998524600231812293077241254306489667932294404700134458975655434544834347128468420677436815403510531282224782015469785080547479822146865636933881550243243642274269954589642409930459514961853133283951944049499907539085829736831267072290689356977946641383925057073168731428168832804317149946012696149738120688028266657697606391526571024270601689189820971064015840101646653020294939678938351887725910365656953500041747737100202365473336902742711627835101431520313048789652326969549649467995258616381189416138605464003888669513290097145585022978582890424464756508597024972601269773742528131241913722664714040392336251164014410225827172279427386681580303274202236623747094641078639014543308077655740086688848466416655552713021123177182367051280879537889126798263584032500696307137127616213688115970589144184909270388814508043735415060930328415355465858250641953454393095456311190916346693203154361419297013943654138008736561294991785850741177503347355583048258543521973465583902408793314593148782338771952413107394389120575992276229187586316019412508271337059553593120658713597028195211547744690690877722907408369383701781332933770675697728737180943199912283172524790473395891355193609686523830141330954404793470446813072861651251394295554811086353030882644654140550901285394677749885007725518921713701783372956422130193639585846523811538899966303193748406603042246991314995072267984293054646929222238278719134917253825729041396242340939692538327120026555151378535670564201171310816895573262586109911349662588539452234989229934566362816967730829526741317133846206064741959729392863209529235376974929213983614656890816878015914524750807579813001157162701872787380891695705250717769597969448348025266519512888015159452178159991894317899135085439288269072465020036551379847736395332743426288391669451316814721038521383353152820376241185517774988934569449313368331753427836061204987273276083711314669565645969788564335397340056563318179740179609582094386261608215636415888107549289874258097136017498547701896314449897152816135202093419675796652876607457995552600769171514554370306649143523393173736071430021542873736589817359009957620675197781068172363692779528178705966662689320419708445142062776146880436229324935942138400263069421687387629108818648590438070036728312563139596124412635234878075442766356909566816552958938565085994754690225146815721485806022739921855783075478009499533286755810623375995471961111937779639456351539805975333625394177855534977094158566528586932344402984648860843071003582744197398202223804147186680284508736145112068207707437444222656296551654572665892154876020269800228546448915288014584398673918052617243981039041873716835006018664804660212531582430478090164691770047074765572696291811677626770474661823539338847869106750367755352483882709473519782671380900421083473208781645234179686341249546218973265555096454917924133975410972917439047141307899219165429633475925817886916404385276818745071424070845464366604970272972452488131193340340262493758987026855835801044831180405863547231499384570579849891640628762269371533181187767835134843575106364151694697884515000115950066559622010622381403359338178384726533106428123761098649681177083932279180181604320446035909060030021301334969311428299742837634080329087708981284072619483676706769146984517381128958740778414884200049032292862519548914672080816105967803346841032172074244020645560412949484566618402005151177244894982241128261015995483811215042070983833358838336542929735496846845496408045492319660290583211093700401152390897545884246185016597911083824047100284277302558686144265210861715703253604240870962615618594752722668375997426708665779979285629371760317379758412697092611324149132586723190110503086157903232805823232490984383880941510747062217626288139354364300939670888114308893156839027474725848189528992184790625676630743718987228816510443873597490591052418224935067206156223272522491494718536541021234992650603175441514270618170317430584365141558610141978694463725654831869767406153227859258125440829162617954671049504288865847006967037019085535074018255501391870576257654610661501426985898484324828370995837589442015016435710301152846101645405054456297527301141147333592300588411352400661603860422331286312159680582373625395808837477663097665365719254251904171242961261845750341732712511553060326895463481401895313063431033862147959423350133866516260331718165107022313386320629894703792690160054629181781579935470647346377475593654495128292528151889751873308414512317423260912949391754226475870423127495072286548179365160288567028444114241221636644391699266684664910772028570738076125423917535830134392332745947888770738426425322041830528435758118986135854345415883736169430238428421490553337827312884720645533347124985323399430637578307715158090384682498494907241319543533838676604906785178554696259510938624675488713426317284880782966195906966308568948295774843434050148369968705022398140257397758707720361947122029980614785419624915087519326260223690021085632982942740131967726134084336991580913078598793591133346079786790556136743475456288578325649584654012924933226766238313072108296878557973487648795157397939046551682217357840308551975537595857201474541545463348295856112314712472274209736612360306170029798611333954572242536119171707952245888784399505141588816374305125860041545962276450283380973046877654950598205319278576369513505666747514448746973238296837226151774822267720085667385755829369854586488638119031702510658235612649272083931179807173990523192612107359348164132909564175890779940513871214586856871877957553656902526951414215406585858584843011157609362566921648160642169770552061840689763469438598751650156207688368703842902865566261085917511755544937596131963151460196162579781899571282566958125189911122467427349235078165654759687250475677833645507372393080035376680905421168853051936420453453052602627873973919902861335551911909387124899737918081584803599476109061120926694858633172929760866598217604506853065772519919512702026698769618298721358094704962142388392531875950686496690302660073618049041609888937235910951864700585624537504806559508835948138423654797940593800959761730406923851466272573328769176390808247252865653233806351429589141461078543344677937804863283345043721237899539261089292299415082708181518085570109004577061691560708824613964608806331606496175974788246691588801938360512359869435147995886522621541663506345390476141197942217220760808629916222865959721461365660719639544382400252252148588642442354185939937068186022689688106588616051182034705122594562817671294668919812567234329882601452572186745139213911836927308236557500178594824894380104009672493186440460924352357469772643323386321201563319090656201214416380706932757975010843307657810122185682542138751950306722535025773614103603639391706712450506020190586125589369791347097411091049042233857877710735939638944683908300019212516027944359337810653578838056063907702121026386184664869645675720809484834940072779056913110542685941858147320299938531222779382931656915549651275629762812508982076445075364533272225920634619686665542836284468116270858333169972292795096543816158499922565464173340823079317848530553976390485899067734137173639758982177188486061599045016093418006920564496207420785953056766554586167479896340236408119426572198890329297422052535134961462533492641829164300945659236232039184857109530822833372672750776059686172858386771112558772933366431461141086754132328408329891520741926894692638985315099737949301698675396208927325338077979208097670863190001211178496921109812189724010275007208548115710335720006833808916465054498683801963469216323070287332681607890151861538862659269714005900521040214476598940596460848114745773337677726770286071796073933710332603372894511127931100188804376553756172661625800927131210436056435660469022962399936158725444383622914090511734538921148668828006632144012481404191300711857009917917885526517907544121853032456987850080425197892163331369084201957790968839400744949277005299992066559931541250484665541818746238339021252448799813732456854971802482805459678225682091085069567761523404410481137098030505606573716937369625818390521348567202098455691261421007657337112266886185016502975626150758840193585570433032762348884769840196389585339288183582055140483248945824290381417016500427427551610269693441105082449980606785973918947173231658664789849214233950920113681248701921157703437276794173325498615557529169239910595939135115543476515087526430363028787615575396053224873800913536376086611235402242656963127346333783296675940500334199916922932050048119698438753358632200830967205091177041836761147006936027834773919513180123452246828039842266614196400754540526039125626082043064735305526127271194262676447044504683577497536087011042223972388490422503564524538830400168360235789897387566234086079984380581185189310884654984965667777079760704377819746826511733744234416761190617293456202952771164561731343106686242935009708552640685598536257854479895835818731563502668603396802054982669168162500085726489448201519649012044200881577871559997064299013378519470798355481693505215801602202818598663095989678066116677216988633623223691322751844786897564210896235500924029594719631975441893453217141051992792403978889398216515962507435265948091765921146642603013190430684944048099114867703937684870959192523575987344290739733642278087261349177277235876300776801240517412091031464284281655965113124720253662175003714850212236967713105644119821911884441370863261933216170641986043410095666481972570704677285929378577515943412566227519785658470380576912098768743687445076483230741267807331488564519835708389418368295965156380865511318294424045625047280599157937745409402437456076307477135300978953999323081126384097552109590245556248056434214662878013705881801425422125026575597394847180299488866871832638547990898162477025140146566483919046515163302294983230588002165507834498199879438741645803957496246989877283544352330157783008302607706072889915125576741288638961975689694177059745264263547651186092310657791834323237136317789846804852222649175226560613544681115992433025307549501007542205597656998360352000385417119799156695904993751533488280428140322968437141661028556369384959347905345162511348600295549525617814851937421728725772167128156684164090909367594093977954564558626628945567589597514177682477641430025463673301416365884273611168584968695759115759843538618444837579748706497416209005742382102676590387659124082955056832362419361059976616560707605791513367802303800547314636343231318790889769372520076602865086820195829430533882143614487498769379604360092171214916288045195006831308304821867877564964494167690811618620161683402477283091256572171056410744380702846992570447223156472701963000371974862882556905865309690137648350975285378043675439064848080190574145350557445814470150733956793186239229477779935370594750309159720567167348034983154791875262366362183277077990416813448881872012842030109575101010928650785209974552354982633803743292714719449013814126796632158595699637195477800972631601227380761410916095462847517071629566026452158386970068640394389492970225365397931729176906205409756092157218338725579405535286496889766986293787776423027215442017962339829235406164909269110988594859482220531266605821581173078348946242747274618427584216828326529386017935358314811889666586213931831165239758832543157504282025433334786692397127654593852986532489763371136344866256096964968861585959890903402136282626540861057297109074923147494808450253263050648382534783328900993826773916543032618535943909106694162112872836739636870070448117656677505160036746325583907463236280921563040252122022390647341311872335523489369616090042521280210652968010979118816798806837394127134069944363846624204151395531443594559564491523282457162538301247325376207458345046997026850433088540653210565691951604484478059316589673683711049928425066120156642937145197038717915761223206495106644564468306128096353026890203658860021220860807196163703416143981699822886193793573382766597477437408218888388388488487690787099562247840909900769496154432007072517162238002585176923587236410285226533458713848966945481146530660433515986797510830820386516409460365622582030112075921913657587939376773038658184148053037928090814458120816185201735528560560852870201980566710299826013170356750630851775169256962813263800053738853403090652606372165258048452747159069453793669846900463826796840743296295038584001596778103004713247804138866611721852765658277666936050228654570386048155856830353586727351002694162185323467431292817543316406544363750284815770616837151910509116992463705234198306850953189885780726614752163851506034104873196926795938451005564078592398423949698770459457590226761874815766164320493547876809082701396989110314172437018000454349654542600924021455930281450077702760178842892128516244887163551087364014296259039577517523899530710530758386960297464966459987490937631720038796612326056345349664072815459466343406898862390980911556628740007342296113788600851472331601275321376667469683763422677760643351848306724435352680390994332949139472540434209448680501510525840517846945182274006926921547830229231935900173137770022167037402392433014273590809209246622899731319506894688976786434405377186460780103358514332327675762237095239244231738495008037055261227312759096322028178669474501048314970424534245553405567341518759781149377691086791239817743747697088124125816340739032574570320936207922653910503181421266438858254952347849099618220043265857543008763517856928216895554257228249174131496687934521875476395207865015030395905439611694449037993582502290931615253886834161813185631992506767901218053129082107983783049118057192434961171068161098974015721646954032532351545656744602594426920937649675596045553886877051679807246797684723164776104390017637656753334032328634281911986951544845607685345849340410442663287888061690500183707632887853421949947139194141055241637510436603378874076039558386281773300533026925764521436756032345222567892537420150102843233324633835837608694736710520257364885884353078523785493415837808927962584738405235910650460137146639907476626210158696773303355678982212590310220282478952097961097042995539512088965158598444786470524793732167482098741674333856387389028141866900859983471213946430083711951919194702225119143186105196033301298885995487747754663031633599668713028867902921439673025455094992607778951253698727593476973679287583422844146885916007489184009422517270584027531260153378468435091487717702669070560338965024153023905639184665659408164522759481457868311049434233394615091096332612048119249521704732337832910019240830316993430815208263118744419874273213056139673401463613420392620124826024701152608942015695561811220675079566719401209559521720199741279563483779030082659110021998339758788365960949661938106525840179332360515478539911571869689153019060828341445001124874523326065181788244516256969190855835498972967722725014921781567113334254485214387329293168877402189006598534650685947989199033327268137628373412297467376352105885899804746243685498763566058009239562611386917403855906478916640894021005310205079142260571809438761438476084001767914324710584165468851698266921365131195387169928877498725580453788256140743081395986691367228008142450863304636405176634159619572698712039521624347075692028269910137822340428077194578081656002993501112903352143914487568435998198208405313653509801931623986335461907136437844083454267917972054137149372601705871648144454013362805896498266169968363300001550259529275280043507917491933233184160147528527403497986379045894928159596597132018228169443517956782796618085343865539792545583085460770068126678522108389198070477805506462560867430090897662632770161712234521819822823585761226189718789965802203119914934068602103242582088593498615342619473302022844517622562149870788035515575726114711745097497599487790596466814474509579493426755995095552480074902144357656078793347625011962597543021785995095515674751607433308533760113049678641874444433070729031945105252183171550916672305902630562739723824550550329150533998433896166194119068474084210690354973650202967928018769319183597160829923071938389019417443279230600016285647439879029333147757648045477096559845645694861434644825890898907196816195783561722944669869509305767589586568008064651355730268056229888201154617043533127749434161209703063555667930490047604917310358713648404930401955757968843641593133693882067375512421931006725736944571127692504081937368431853059391929046965562878301464031982593968077401129134450557431410850189448145260571505525929454343498558290385776468257845387615654428373673463415136411387838172938390903633802014308685000932336768330232772339970033449922032051911671436226823024333309644533348176961641109950841640608955912994621461649268553823075234856022569752845069710763117763911315507281967979802343041060528211704003117533995177342948247889971369193762215256952944243788418912572890526992133043495909185867634375443861832203880133407621429422562042138994247866938629338423166250323797075617927884594610171281611076831965774076543951882316811245577782454856344265298266570848162567711933262028252894518262984055821567388257559288319493704922928919403177554590107684674881706222364399510908273321620390605756656497377658154830499841613642138397127221362660888913195147302567696347334681219728415554036326589510618516427964442376190411476468724910061852607409247428964427612564377991645253665599516800386413545714412786582950453029127613989992106938942479801931488968507001184738145958916589906281871623506731215732190036696732265353391924885024893738290602428577448229870127933254790147124363456247237312711357130130096226910761675658736066577437919103915174030662819828849452914354131913266370782602564219109082135390737114377147635576403150515635015338581898413432008683184914965559311101571899855526779058725517757082097853479429605529706388055696456867826907383948536011496202291905227065575847199638571794154515158564218856382969255969267381131431177933293329226683475825287316765750866314767961857739845567660928624806446997694561949915497720611106511800112151200367329881662919886889532253750039342970688058226389267998783656359318552992312448491103056095293398852774990212908255181195292287806247831126233392265894188657217912795905232062263766975750683353962688496017647496996093091441772539007865496420258746792424309507987211486970275953270055304148280761913496798228537042311800323470790952103182497688703351245095716785398950207816640506117485807496717424302208792735743352641592218409358089750263688444244291823658374250424075683423113168294046382654057160083726817587340424815977873893719887933453566220023269338447152570105970509029197385546483729010108042052646344422179481091107436866026335771115447997567541371921154736611562561404231475355801738942758545652504276183459057316923954461277179565955844625985418362676453819724699863884149897746375996238486873071273672013092332289392100197339718972946711477300699508943905497046596509647877943100876910209039756007153979586221845570031498731911432784744563410994087844081819787801407596012028298643530137368604538709300985749061240161598665589871376138746198630666570193643237872066060610116241710503305181720986153271091657028066203013324234335609300877387810403508975877419530169551576884212240139145323303327607918161359646905987969381987369603318462071194397578112026120243378808419011031778742081501275987229068287085922154622935995433014947403559487690648469709609491719156283111221653349430351638664352553003955443843611786549070058625420046549030034614416232153793226286627418269553879738165371346687105273565749225779841854035311023333673361208521998825867727741150904364629016636133075201018545696127452053032054526089594902460017249244306109562899564067943146492580699009435162411924555978577235725063753741029637147079191841616692306440162630740575951602069748399614939024814743631797700625184945856107110110414077571384672842352833721988580194933240220553975649162052370184864372217503540707443213569362457218596599957583210011805054216065455413470617088503701302057199034588310388703111754631373824951311136498441504116990755321487618863290214183684007503504200510227701391081019413236956450494681502291883908934763780836151923647065887447665436651164083188369386812751519168257559272913544407627660678367937813906696581945723334451141120455562168794942604542027801762343677656045092605814680998614823752705596436872390778144693133591932713964312313151348524991468481939691870329666400353124719163907524723286941904206457801187255331113094236372634462416779798638234802111596506254252485318582774396635213484331409475720138268264171825969639817193387606633595784565886354232724840562577160329301983699260819312103148777745034333531850131572645212758585806983419119344698976197239792797428776186333189048939925875562847951419157427918158792941308571302709683850555038725944416620705158727529123587680114609795351932534556745499427992385280586101616814187526983009480941780989855128368012385973625238386257266672639823852140768301581868865680811525753199615636008625444522396067801839448060860258392261270115923323158726073093026053488120537949836711007358066229654299330218546181306676776280694982022322839196306524873872026513967378320574548293407004126068285365937565171397169701557809581615862254209773573640085145676466300956334483964220139935899617915395857810734024442671480445978739663834670726764434332234394945260163023843111098396391447976512382770144436836663413123876725037980723826353193322608973431004749025736953629483501921183451165673591018199489698168583766633700864569316900922224872027097406717875334194752865927554186451677604082277761143814834057629169820900720051650508860212889859890886170120927954752089707326258595224844767295944031418543514743912637078226006218376713335216850942195874927604018036752137533779023059544657701144341777025949859066725402840918166625432039989396319569039208575627823432208482058471232185038445444517081455838075218663583043896270421465168274416421568755581651633311547264090847729115277297175272659169049605144910225852544048386367825948804865103612431338213855519879232429279782106109850210407680955658885042178863886714038552323874043559391160441836773937419241301110094464683163715889273591086426358166426701470230368141223249618102970923750732703929262128788398053029825026709581334429161580371897019592797051988428633076755578345974022369577444031087652041306333304910513397048211170432774471561549920735780660125353219814458188206470308547009440124014675125289427704444688628810077480580119402793314541247696591164935297347268634525592706817974728825653971310494282350920285249257474676801711961206908453406822556362510009588308457302761641222915366916662388402944640471600067209986503680120198456680681574185248287248870049496797692374208570604611212612219752942243694817046634766810075095479675836414210700476187491483203677241734267225918921009698132676960637257943484247256825205812937354420946104012931590375124825543110920335837150775835553827306614122254493265709198844690970199988127063567781650741823604119625594787211962381171900647063218336485800326140578575403739806800292991021032739789042535998886340747025662768503241446706506281707204853943894547908266437899128857667645770539526631191768186968001070790970887282464150898090887767544110565283662752016292377841329796063922984947869751747446591790373466347243016595955749799985279804980961361079204442272287078243242549320205727158892021923344672962375462622682634628561150198547483648618722512497416616138490462061158417106085732424523932665828824677199789533643437054904915885385122841469837353878723691045994184579032110450236948828404646476782043952961042776013233235423459325342140925547469341055033007715749836846908979646514632701673733908572485668695483072453292615023655659152633251614293888667213486056368869530944907990295383162637888686658159148981038812961244032060283576178843866286350204169143288464109856805185453281655521971408991749611514267963349952276178607657959192451430799775336608408589420723530176305825956415873772239432283386120491272753036479842561140346365779020661332385011789328158819362031674560230298209703131629376842323249594935515300719019615082875243851887063316010395853623294148899711764568305223627591757445942815047699830687319216561407538318821911989008378776643851654575785265708991762913439047267996115556669423946860491796810682866903675784108653662836180739618208409316721588891350187170613110213462801468112529878236920875995466895146497363259605480447691095462136458693477280200060736337216406571503933877718959833548537650878739613618289269267443997549944756107668547373073145226630681651181693095222791023314194125122722037952311033545749718807637516145608708796991578498114293987043214268906882288062806799530055774275728112199752686422187877163530305234675121223437103123568622970684706566653472004764050262821138242591400497706038457453445210870569951263859877636111148949705552684674939346597444018390011108011889109651328415921161854491017093713465434334073526102713750476642163774631063547079110976145306254490412587965508836407082150550627994124523489778757336848170050699083329582081881645654775765932925850333003077005674472473486992802289918492724277960491405996572644683439815033509658655372420456255834825867799081072057393466601833759791378866309053539486524756468303110420848559092730858191834419477819851339800163653587628650047467487640679548761213432446130136050330340174908421900105248956603959341227390119759621316388650048400804382748786007743542689619291272824192040340717160303175646954397950659798050520178588832028233766691714374938624720784444812238592358853502366677856863388959313560137860246225800708359718773344838980295777582792877297360818514294657180628665435499473823724705680174969472382835219647442788264052832185086717403324988038893051608879336931387294398573539641825917875650926869873870104618538497829680307850427014006310366064008821539489844618925244535539391935011669573140397473967293950699639457451923800192902679682750713440055773995195430665732646158371425197679743829932394389429261307912567826419141468116254407955967330723673825117967978684020391619406403475436638467886264075584644258070217062025316644453251786566618885439986302983018374608710738841464648666279795009280792946248924432652710258484970023957576337153961072115461216603140478793641795791185555340724894395070662894563916587168023858673242461264915620071070667116435261478566068074329366629708812600353962360261390547844165720189351751726181067454153829223855021163485322033885454971181015105666134577676456016876794750569284148406298355791937575500228705520067250901110236524629334643716359564678571311028297287404440563565500504058356124425273318908600275506926598926191022118317202988973131653918158355934662751979969080901106251852316404195220251881579625179367686279077554838828610724693066492929907185290829436967632093974424469075448369160644193768950767910565494074885884674787813601106445486514015666815608882325181466820774215638530390488775628768250294297185607763407814039929493200660448065007195566010833139304225765031514040892883894171807435803780092389159140701165092837396490954521199213087509797042131994691008593088456620651889902340982829287901857545139045571418266482721130761375836780868479034567640808163417803462344378931367868866391315398478860076767160671079207315760587376322362537200720087716325047077034171761140250861449293917595073697234762600977264163746850599173427783064870455780698495707288342665016740109046586090731402476623937339591616866342895383304321121514087493376260068800751995130149532072577931533102813784107777842963394693162828019184363544506600447158513296617990609338604254229054731467661086527275190830836682790933951125901499345504023181246013288288241670226379017319407436945308443997092992053954178987526900258682211022722855952938732505479168552170914392982713980825036571869229075060575738548511894999257275393561394155878887430425337936942140035601816014324432066067858912672299273486235598725748592186975682815663003383169680772248627228316148558501349167026593427856766255477134141240149093815282566844858015854933944075190891742977908315936635333494404357114501880299353986306697988946905325712061171412626832619501899689360108295404772664995188888557340422428518881110556624207716440695370063333421053302358028671082958688969692391113623537789192448166565719495514682676376487677252664209291442028853018582109271691460481808183129157303841301676517102565791853835061967428813634464524181182694175629022681337383466489432774031288662688437705776752691618865953480351962104184929847212043049021823985775682198410325824178732034381186349069123426210450522079207540454123220096692406834766149618487588625579026175229377487930555485126619458653077182221356279190529690171143717799530560953740087545090816269352892962400468950494754957022809407305569272776875034398407815531342897522338625885712815220876097192859559641148997581898681400664616021700706476284736790456931320212974206065551326869739005966731664525763352068262889715025156366362878822399209382464752873246400571520446369771025769653983112611299935743628509352663401059568989675781234746453910742419024178169414428943796274471864287987693717222434098724473425908007601923227051712795622354208433015901861346551674987005208904453323149891266747462933510370292343595986386986988449873048697562410830082192381799339447289074950808232433468261803162434683797848222837125777723340275463267425474060920856411802808590617964015298818967345261851794955408525861567004779310921010728369668856888842364696847221659011255754410573233030745732237757195057014520403348867671753919289028757228077446680760627160358174069046019626275178008669765345288744096541132172186690476638080312308984740264191518301893253438679443389646772776026423991272461477017877013895501527700928208542066862088714258604377483848530780817917036102225870255568615859623741837886723574073049648593779735504652935681256187368840602671244050432726598380958806273171890732754778098579669517050248223347323304591927787237720414348549113678077029179568194510199828448498602388660768433904730218654753672823804351031885987736060193368363619711280907418883791388820755709007926457804136891578622511568134027763368485145098651801442775958592604135853812205384458603945266589048937938139325499029797237606071286734517229104796084407415941941406574569948086003580193443699102312615873552673703779175307389252959850654134241822179572332439722908962332028291651947976644208437409178677550002439436664130771907482492507003845672435236579717170423052000287971068246107764271108161830435484611099966551387089082176976071919587016668177553087563383114135772379317355214079646965664685262240882296282061794290596767919013916233863944735163892951869629583554039486180619916782959323763756187792120506823410670414100913143112716060133127901253629191103340733567785673820019808742324543122210516910655002358352372089155627912406752821731104092517106783057162723972370602157622201026219133397350013444287000671756803397801700217764480229100894666455062958237897276268540302468706968324238752806447619972712797972925808018303366297855418165314154945095031180110611018343740208237869902363991194347430100845796409702981348637560071381278005208928580815462099590285995339416851745964775038519711885170667278210962097462127201629613522017736500819240455643832806127236811073490165286518764186629113669831755263916251218757375041039593977321394458574945855968503424345292010633871933573497048171132148994637569698819087815524627145900028813300379700297350391806500387035634534616690869666192635625630677811419630620087500004017880651625019250467895677417849412537315199882848120575337079615010523487180752504717891233243122526438263132745192449120863511541642822361485297214865959071159586513025731012123395022906495037880984521736973158121841513549729144531744226342736497676721044482834185837140610067993172872450930306356833335846487071742459972677999906845730315912312118402186020770457018248409234053763484457572438287533011949296223665512990440438444529696776801334745222038033973847863866172749671931887307045843924462934017025443698453086460052706736024807919568975815862834896714833010777041423332046452534361241694816318637019269965018627310784413535750413384763292898200895493616655486007618304328439838692111770929973174859785759774633369428311950698484747174210155989547849482010409406351047020226869627657187095033315124495014171287021829874014548415819093422967318638361660106500362713299431849633209434773908061072388598139548272601852273417304271981506385794596433800318510400736616371217248275240490850146217778158810723489907629725159181827067975939425555893107172821292551433220972825767680548298913906760678999615908630619907887485807703559677798896937438966126763745267251556404527076204028796826918221304706905117674221110349537767029384156475474441797962383531288892853255201245506965397806596229551193997800630497085686828018313938324183260044334236478794319844275392005074120530368554846733969552273481649392319971340968477812505502924676618824654229459363919552360492463851893980983341309354016103172474580586588260232762670606251709113101600546116161966631368298603001624397196544965423008312386251095552407318261541960870722367958249320237080856762443317047631183614476026486399403707766010745720834468806658411656817606013823380556634943604883576570214991810893746484092776754227768194704177511185259394899409837155000037980217745695825413524634244090010598110932344434505236903834020198240304010131084644810827097890664116327708917436975537105253799054810575267130490868297587014362593852005374618384727137741571682312370801077308210140626680758981716053388649016204819762993366476683276306692502451242146541387784362396908906577955430778482331418204647847832802904304869566321055850793666010190239264495414489368452395449811127652905156852326738607648693850826850729166701863367077512748338752911347874322152751675907553854245657383857133968962735400756418239826809192057128361693995035282606657789792695465616424129333661882155614759615451102514919077925660333006951977456250592798743889542755058471732137743846408879948128173259145945862721386896159667597722590872256169098261770100208999442623870351938914404484895119874428976769531080448365913532176664611976446262631673487323621072736512048737503740835368137697722314886459785846107688229299940298759606053473842433117391414136157098076740237652139479617700786078493478043082143653546918025940394420918774050465337826598324514917565612980288225026653664910831373039022156568733968932653982405533702265538610451274608925448608833709156569363856583611051207355148358583461830488992613492990234614138922264693327480422611048496697507599338760785140915876098677822692566312319348840552289492488791401436209280781927868987906211765717158364973814200342594132084223637121749956568598951664075871993160137832808587036746932566765222179059133651188901412865301955690378558779700858990553470881579805711007197049567099116934188704305584807195140471613486331812033429786428333742537417157236972398687347830772415024969912917734024056740731524069176594233063491881029647448413335336928739660221101894864363732910380407934982899198711945110683972537327224164966533504059012883265333660661584834234923016338861022174343336820996917485144700910950940437718917243762569781751634838936251063358818561340100812092950635650706597712935281214915816442563393024281342684670686769433170059129011915351307721880652473981206259096060308338334099621341096282968894079918613549945205653957809218375107973713457049919242820375983452750721392269865716772365149558935187788058848546625903703809927183860058551188610375185728004932003635756046158296367906883678946288131352452603073029497513018229310380498785013914066090982258892899203281310451650400175070360727842012683282196628967550650643166507002096711269938821651700625204528411600033301633000073343646554177632090960192656303072450184773440702554315094082305787372971334160566476891236754735606083330817023862366417646942229887385840576136319708914488352293445561996171996825217640440166241655780897323776524000403667687767940309344351384943891779519273626216879016540473641060249609241927913063781599644213712351124689295010594949512317901392446718108854458637287012692035853123435027107955337493173007397862591420159104736698912640382394594056256116033379056340694343546904005884024262664760772054125750144766861227668066850236742218459918413910182320396864039100527091920439609222600283229077033028592453475544328244545380262642169460715064185600320499183640053183778377464501070800866892487662404334599850284755252015062833177232561874131516660432862418123924761319030617997869782987835972721227176534964085767389942703569540958881352547576033155050978245389328134128318841784954835863298658627673072266710557538322908564940096459779483622547909412114225592462913144014064928103841080077880664436990189596753142148104320465318182574875126137002767196935762484554462199296561316918575037861583105093893510486316876096327226389721775066222301649959532520355325306395173998738583724553448194153044397531851122158819797353231016556300555758605930034246168953820441790350703279968896729466722776143815013370334773719769254143203395916683609746184055602455040925923383970571674239704573738880738306788180066201932066915302124810418205280077323955775027266704200852198143070747208388436185534423849106666080059169614774539823340966138114362650053198106499603399297909997481700069756203956047768030763520272893934979398390368364424524524656438852315730832142666084351784358214315628225290859272905687421790711817491528581418242095838342385894759787539380577772167419992990779951594324035856021657578800196115788706346923011766882530630825056153969506296487553729618032234161947159689287566760590844883828026462927530469414784301274121082796554377213168608797425214671981027313849551565422022169808408621992356462677223890987891040611304272792407611007561391365681338122343783181967255737492524088506603068016841167834691155530471283725243008236653040989958991855989268988989544959195192365851346688387062685431867110441873646149156986975090275657227038002683294764399020343089565772878969290961817805201883316239564232615487539725743666962473194541270273164396804131753533415315548835477345162031783497758321958723549991074364025553302830088724663804847604820260099935520101441323737868053050468798663288073219905174446140282014350334583204923900742171812192062986409744825608864889621395728112218387661404828858325710762890274337583483841583369478006067755209585893934612979846832620143447772149851248170146956497555237128318977336308864303192570205088928156702373665495210439823127320442955805732773591949126597046005882495127918098876915959234471776402650849452694408438682144316413863213745201041822661962819247234737397975694561576190259826986884681101056086888396182472117712145911858133632985357079214494991124631134016033281568159664127399791145569157167472925478897776097988631412779707774654728491805779911858144254416520464502900763411471629141783123650635773385500655424027233189629807824503487002235199510366015733868036831733228221559453298151520964985051666888151223922095983876530802940711833850994341711352745179294000193922203213648374804898633184850777162492542894887340659824687028473623521833835408602298149470387671137057333784556638615185414316254905821319973054076123576821157219331202591116665916274255468726402648421637100354629437774960991339427860309673513878751889999011417681506180352740901318055044043087018087985718517156093198099070501455385258478525671308714962516332745259134882316643170441539749846010326307189842264856940634746988916552309415511574115515417811253167868630377304509494046469188514323845713294069606257822530700587203394091787981381438269827549222249361572590075791189058077414859516953536737990895273743775316123605791424476975220309719779690801816807807164784883691738696756764381230632032118604409208118335097054052846937224588854709914239012539989913356921548814754884981843999422318836212430685351397316554523534309381252299261985495329046074936049936427908550758766262049188994459080146702083994970344606444966296367821006700330246684767641595591402910250804903661259162482916987003934139839093398299570020100179940014359872424481736728059526575636323300154138229905632297527753501076970579209424067101561572144097085123257839662506997935883094575501817577516338888028877761043904011976915485208605923308919146189450063551368142732681196588497169067025986522274651503595710745078130723392730324725338560159787628246851105749464567107025355314791601347976371725631674398097843547050940826533213627886576147777983204149625439254395944696212585267329032605586123250156047096417591879359632518812876577623515419314626352359146263430012181067897524199309292395664310128950354094632648335412066293885837866191350737209767189164201225919708810158140056019996996508818853461616668255024482666522474658326348980371083923999182557164042285545570864490188768796326157445974439253014982091980926677303027597346232056324139004800347171275391759169307293236139371607224237934371387581998059937087511427721135829934129860343245599171763097166561785399010751077477082539517158367782388498501338753360680576520358041145550480267054072958583971601327595830469138201042912242934341673331041638624469772952776870674997948683532006167280193585665487623479931423342948933694992828577795421211795956019807584625989954294765023898855557401885337195449192180866648735286451849979343075320168892200985518700212004875566443694272347347418706924524888849665256751693274079582135062716878084172822382527039495291250392730931510810154390437311623711224100096601846265226134874810396042708984916379308576109640429441012037093107312768662509865839805968564124702891045968561437433936283488944243906736753337808400014191070266063616870508437590394211557485729051103403570763144531109677265862169389312178181284738335178620307709286046561140839916337082944652781840012314650321228446705931216462722438027211237265903898860858790925512035877804564573283153189946138750907105168612703014144469235675635172542945254565296189142497087980087868942294525489365560320814658587245803919498395291879740589189047731042961883342310355468083846602507703548639741181497641036921462284850086559520952040525985388406156909423249720985168540678869467311567694036808834933985481972736640387721721117411641001303297273464396837166267260973399039363524190782204553954640468961892018791309251101057919861313932488992743685987008543581042387474468207018903006676214002369630901492418908835365891642425672384781018885972037791021922200485738549786490767237271220225167562392297666108313545632316186442683751846564550732959183069788716712204779096672827537133097074596583872175536336119681196823541770509530624832218133409732884171539887054122792474847190000432404086010225696094390861482946294966319461286118104382634899853213140388754803169431171857955945778282842900337853842389143689424919217120367905174470296642700891135418879733434568788021568969973232370021217399151028814964673557648867070161937264945607084383932710309537249694528687852059293064979087433637848767362580654440663622753049796867756573719951789705536335141275149822354999885457572317805146887551460613913159778866214675521242126154589920192009190417113160704676259079545041804165761421730849378985161383544182783201797691425557339372365207664599616359354650476775067859485199599098716023984705817823202595675342098729915251567221466064139982956641784091676038008344144642752258447284798624151662908096688786766228656461113187323199030635909382204585852647800565880521885763755477263729550657270770384990212600825109789848838017615521904646543414373092789567898328872390522547437542014990072663604972232724579015592194386256956634256480805645205366791418471562773781688712907560045910478910724584004388622495082850412585408421041898634311054694909665573206273709560336372447996047124053465433264456918615845164348393509033207913291107213594263108935040617141795331788715142789567176999282555276743965069783931328110221545677314375881436657835218784979738509871796502037199698930863656101428835433439504346963433640505089115735991201812464387313324447590559822113665809048526303991979091818743474695615116981154756034888971585279099443762236172572199667338612661930781157907326032695692132420825378430049690320363840487368870621235509645662037872638270327480715785897798164661302825803926932786207901903342659420509241082383139384214704862620893462268209173336418930649281459896390118484559756814689865297251632292586942068332728397891261807412454762190381510902014462090678048051162755536451433224526165558805576220912192414361301290837786657980017948857462745463429361752776319104511978067386384886958390399963917583806901106921064930096902257739130021433593839627552156213280868578238864822627326911605834509112813614976991883274771484828699210954849858745559167559931746259909206417129360432831652076164890032015855851415164766308042108110843688005884824997072507150479053640828920426070163879910869522340577031873924148989575809979085338613104434002228326989786167223257528927051517643156702024306245921722128447185304988371393954481211904942935112395098161104220813064727516868722397037265727525996905695809560245746457506860585492238469040729266229676858297888516182635929232314485016337848283666200627990444863568839227239839624100922448230109352605919105439366981434972537743331174411571351014927944737871036344903796188630540677703213905450336971403182357502773011757504529205920097530136379975818029974733921973831908764117433954101487134735141295209604465072068911987638082389755761796494917552270674450199060878908023930500311779163263168824057516012018569711181091415593928325144988396401932861730819427618126459531716352602778548522871842184777537211692943320800637661890505825499195627727116725647407972692861787961694223265634276119806862957636587807993362680344631032642852230309986099512999306529460250756994476566183723153135279399138019499602342795568936980530750530056289710269665422023034617461115366942681782437668463489248456278208158693861661840777331322540769997075037694111168579270370177500378150790470963228527136921683154262892410423112335515914343688202491226012974855321640151851566340812781414298551677764752187768740098469010807411323199239520577484015511397585459959729695704463178394681893543033778442475672247629373361942220219326342842892974063436551662621429076146539361693279912875544602445685097865220359254834482287587375129300421429338006765157510437375470695494565782845644080398282084981462460037177270917715540938253909295796533640132886953590482320977503860692485197657370171825952413586355975659419566234811281026599919386652774210014663553555457781537017651161560592346665493868805196713134808730612193362867254728890127829167627546910724198194753906085460872963087869223544692156764242049721737690269848022990188813262862629098897188916985898220080133999381919780726129700121257147016018238929134493901739829291571663256033199184870621966716905114524802647963901642704123560890025640418452419752939984092039814700954835377253498303714918378762250504702806222100192799304490079258824663117273141387356777782604710574883589942247111656342582444618415760960694475279677206191755584983088334032094764677539059591752348586844600460877461211695346848095511906406985237207846983717038578045480765468680388832478215755193388640033645897309858404636819661348571839680461227217026577718457200095276485096069488273946629647740142977435486024459316643214577088036036205615619268178212830428783540226732586901976023481200438420854114170406101336650025662740829607158675663164486605886481970720197072793113685017039640115332547870903488179039804902906818532346121265916763193986380824590905837925686713651836088198910873926560166798371244928045682076702070051648156021871784597672840681010411636993665619463407138112460931327447772151579481458042517990907178076027381416475799391657441796849315762259268309388450588653801790036786172823102051526095606158865665094854097145073640601909276689275698290902390169418421254410564384772064784404210377399269957242162976352745804921436221413365539986468817439337297704145842173947877761633892993425535979169986089848549714293956215382351046558160473668600817940825846633889106979571024659895967323206757016283042143771604694783873137515188207620206932500279186160936197986811222008866489692320937648981920969471737432802420342053302622508900771473194072461687960323686033024818606281653084395637605210990340361740029893419888807396217647036247930894048018352102587061367722749058614767364950829422251146452556700950019061796602214178456869046565086573716288792088841790800604389491144113303503066395075408846046712409168984367415193889806407484537196137520419867402714912955547242118043710516652667262333188856483782028311425138482445365220796618778467983516397191008803439299717608854181305812868562821539625904683318925107451095250991258230779869463030134515747378879365631517118679858150979787454885620194088462227743227472326972594010401296645691744745916872178047459282073975940779724427096285722437141341376375020310895089004807210638070352872971907752513114220083813839360337234573484724390682482703572084513252081515147727326281823911705745016231633763285871568812068131328879415646423908039490307157162849171073718532399388629076863597435861820756800024244753781590991867409753514972178614045328533991377675089721218672548916355389195056425056547848700250058017961568710551086879432760184632301080560092973727642472319567351844875667145161680440285732354738157182334043637529243735479101914991472626307014730888654086877297077328971460600251155666516744808374449326478254291647861259079336026968150522880214396922652034559039381863687709802381667719031814133690107973054910931543799260075083997142753461956450524353381153188864643775968664764920085404928810646973218037894578476529166133992391704539292191674722981080195563199148875297887967027961467990294535474048367303311398284047807016425438387131190922860941021497931657980794741994822636742935105071359565033469998247250230408017048308401611381970574738964068000339232332331319553016299453843786853368908009619317713550778553385856940328745074921119457194994963105731906885531465886326577934553849408493209036897585348399957929536799508108000407827351515184821088438523519741821990635490559271354316855379609886529980880927075402931997787637954182119021375321772467903928546491295879509154438002163259091573727364345954278097860312321515303977700155712727041749964625635454065695942418615132356572307117198021095968648045931163783815880872392728342684656835977207346717934385445018144397483123128915246792647006897439993397240916289649745672802806198842619317351157846612274324941075524860423559546368777708149670253791266446116309934002407507567121795491775419844766556965025403887863741983059857219209920142815581626607027281572825508065740514874990841849031447125231023065027536724073334637385636632177255668161664106420591217158987377207092191915357566952171226096867289631891606554258275142038198010699453525794065017761432947190048280016465218021057099981767498336806622659522407676350677202261622556447949570280420986354801512120820470515875143750736989867555651458904236925632146647049618146443109039191514485455877796660970399087395305927182508065219813997558823562002918233744788593394903875301728849747467349494507854337971325272115503240207487043146722111802775884802522250055170126516435239314055533261597952808201766974611141331154564267172647136864153576556513312560179734287927743097136350482252132005490967221898097017518752397180496807128493842613699587289419299253445303068623112713213839941025589607993841082600933861220280902251685642240295922031444751941855635426810112860915874552614080612447760224716402634428452333086342402350249230632143883591448722501909124638923950582762594622261251161753145464526610381878821596911788849450714357762079402013980084372261183121334005729582090296936645804424938704302285198266674717415398135202838345324300836532110861767290522723135040136603062263317217883002434824089552094029098049214338656264568622344709145795920188043477945077797554962630821663138781102645590020506150797151174915399638844519087892435103814296211912222734673077157848333446347279548879190721492380159788442564757589679023134524253889589949703424305200707120918859208856124216709258549409412035994179997752507173368451290197207426792985174856102922223614874716140391143052012741866353859587635079229892594208325343068017468590223299918195845880272785928989903048369412474666726836474860211612411200573048603795651050194622989311146906392302406029014477678975162039444129840116493292828116506836097686196561875402725735978770220121726567021163304276105856028799216547511685748319098236174321141514788271637199326578048684105043659494623935511113887093082651563383705728444718062262757935530700875704216801924806811212172981543947089656185657140924698524575608441076791768057649232069124938197358787915409791760071381385297560579878436491884771932926631730334634981360987922285372584596485416264230364514549225131807326204082287542341098913076158853148831674304720940517207160925097623732520884417411722675490499183302534223883493468839298476930494349991636301436746670827645131448846289540351634628512846837581910230890207427555617392032751242934563679987565286004629547290924577883614730184121704226858563659230463493354934670940825715166317999134298641676267443834831784072860770284907073264280182181601724663388042939241403702157197184938817963935611927175061967843424764144209743326766572131765196693068949062142684022533076549947862413660765034889192449090377295324039073885944062600538627273188116340553813977128365321387486221940728158659593994296785252478658731386788871289193154145751767448927994201401392087886223218127965654360988529954053487599942377623789069717861099487167398047528387137511240334050887473679405778692646400024392252367039208161042291812298568200299603725142106906852912287604942104977881737219531106072579476681973134035121495462483090806366530112414226770893786547071831778790030064349144662776694567138154302739945802578701595778914704465445041877428646848628715988822912729080516531328772607917144063747521348685080062707918925834545902251652485111842064968335513824564323100096311211601827392613874586458413720744369945535072060876436499579048548850814717970396675017172744759610024299897501334657480839142257717464693256523873207517170814711814230667817440834426865697080871991979770266996506192555859376281904933303804572971118397224473592944782135190357002741681147240825437196304364991642211501037955290322680155472008866148038100983204897055246701408870473082441836159306079417753682428178791759201136525908211070639031649785536969632246173858615262863022509407301787427251005197642686803567230754122070319972979690109103765574409245686137755602664498113956801103850435388022902266401590142955689452498216420856431687728557963557117434678869218230142808479812097140720716619330734948640146391437034630991353915337226303554080649946826032253768712223815095606467226375045644905629888971486950622072159929054617876949933030697602114441625240077381035110643502471652022164587447573928714609047154327229674657903625530095754484871168035879758535401389686483170846836010101056261842767901201786156848857959173802872227063280603882845856735373973388977693711737857576525795242276915981003829658251533475981452945788706353301298720804765177936983424836714067963271128243732217202028980116985149744976091397496676339101321879084627200944769849247583969553425145622688242289447786472820628795894155039365503664250708336146593411742067120087638280199435144077265299015178778227587676893098686479025328613871882647287136751981560554181710390665155402050099048422848177478395100390824164499068841139837599365623277835781360026397716060596605684170119357236827799040763656235475277936376322241769857685684657826844949245971782335522103190122639102123064616857572024428769231163065236784660640722225634463262728878792486633293327308777684978047929063010288461816528987169785170144045619266764876711136973563834126446983414648606053128050890359737497001849064918287973774396423918061033263568690568948127662702557541693037343530649482114765787073405749826722608444441489056516676945526505432000491138077911910211742446209029377727989700785320911079459145072066239161288393456779956322297860063147351949238464412962031772310462328973635790030591148848693747263902826649925725298873825470480060095127602832315425522345980622467890953333188432986146417541651139037561534050414867240724790484189032099567654076399342752735969736923405599092947469765400191849208381402110634308457963186380061809284539594415238088377668733451331066636591500456638445534623131855245937548047487021964227006524176454290118639991211680170695601532630448520385937296403993329625408264645302390562709501013687509792491479678825767813018139608856229029322562835541813098159319238586107706205807452560434436314651106522024478416145975675112112382358205691541413019936488830915487144960799644540497651238783232844700666660343430578139344279635797724794932415588490010074471022569413677457417304111868870234417794035268476308407566626373238909679100642168404428007523478999078153128745112778481265666300766381108347337979340569185908830522092211349816948546277282956982290526835029637511104586645855197196775922130039179571619721485112452013725094759699697432123397219153118516702156641067967545819819706026312665371305371712674917174991620079684921959629673271807936239802189147181744192627141672398431861551872071422058290722413547206056711393122422403332391228381024698901410821641569765537782819723863144708326076789103783930802015980462071059386139270691247769682643268698632988123062601122413154834089838451564138538769073430899123505979216254304340549265654750693220138802395274371010907372163479655496983511792825220557449508841790158814876756433280125724697720875559920569579428744209078705964786837459616864258507807563959595342570115961191065260430327203901350511336024353298957175076903510750789454415946290177890320476930047549784859418191208502966636895529054322107968848874726781785056913864080239280599654982879299342026438378690284278735885145695665627987498320449576660907546584527793754260801741943030970874210325383921699509604835684823793309510511668964760912955456430858617371088260250757105396676030091573803941413045275419038451625146945791840917752281321994796349913406281330760581137739811864955017701625418341776362489861820446882615965521995302652331814144164077858032969411864567076461011616535689076794818936846333819110861506358230354451484913620280789093008065830996165016838035720325850544943138032785722647246679384880348233342465254998029984803077136290719834012713665762160636361553850511071575755435457505264095285879573001217438778306064864390970994165760389210321575109514922679300103318867261306194721830541817745980223453588020794425237992888860774709435042857247864791094042164605221837659308973918077700425689180573278624954023660256745453067280987898973347817305145311634334252148851877152518040140882465841788179701200767224966670373174536705928462279355205813365254641875914081415269736676063789535493089414279632388220890849807493113555538793049747978266193295300599177407952340723405118151962102226432530327738047617634182407799973420860971237677140477774808711137994399315363066137276466414055326727477836259947202544410021926788079107529642352884643440150240813350321510602106583994793211082024034030546781051579101604665357229029886424291555591272799046430411763509775091649751712869254721005285699321032209828579099055559798664560768786311442097337874581208128458693792141393043264673714233965919722824671983664418083922810188515359989130485183411218570904619261573911862057864313556630261748132318400570045955567513401044273962775554649573345010619648245901336761280346294185869067525366699474528071977162022920545821311869957641351234030979137866182668989747959116483243976841870093744878788271379608790635987769449540050660970955039807025781491447050668614952618323012865385408202522486335278649897852521035175953274672366778434871538656492264885483356309969812347222697877195834184763197376191421656734407239542733393529809236797371329037636159290148709697167004386724547462988128908954344090789893553351072821623230013497409140596688533455378012140498904089751435928380580013303765609586534236067298556755935703055825932166473706525244857201590926715190998440176230732459221438013588187006779054976095333991652958388727571616429323119824775637974081047155959380182168019963703454343505766597606701343165447085578933253993255883791877017752249593064626736788036846548096149728831639941340659595721211505681341541717397008316544527633022592547590391176575314772831577148638949638935977863637924775706819116335049969009254635370631198690832384267988544097455632901973290710520816372069131512220299130344919311035789857936900683588484028413378570031409293808224908633081337290416028149790153102238286652303259045519656453090672068738833706354192905273084362114926675037124831535376476613425470194838996298212097085402846226802023565856243789382527707435525181878011649114663771070371384781572353148572755196235068520813244048012722832799994876177855869305399333598302000609252513340270931150483611054696221971687435099552576153535241955614021343854298926059048243520963590049051630054525790659797484599687731935646655699444368745812923491448787847039419978828323391679725985338232585882197544467665202051881259300528895343182997201794093718584922632574100782537880653505544352066462781782374996618901778781989447778642506194839736218876858730721261403085588320983306270096509376585045162940726308828955701619364697156026566832582060815626722086911837567527242726259658596803361803719540525999601779721926993410116430575815224602536011565035900285411986849004183434469709714428160925993537408800978896026939492590576017397826975157558812387025314845379857459619747137101621017178028062665384028619581605207455640949907547850940186477303300396693633776885967915400338443998956376566571501711612525733511614216741643508797833349862390678923059296210957721882535070092635116973684525164779249240451179946299943364998516993572165850497855689501583130482015152542118472257569967097320503180274570588937622538505346349918257677044501356649827045952608026266892831366804739827061352191559764585136747833918155514749335489426863047653727546136562435076624376948341176693060510135244931696383610710034516577389979447109162531671070994890272961657437007157889754555792638237677769860665089032462436649422165011818738741955730192717846936323581802027437201906479922786453648062750191960702467316850986517003082195727622662487568355447650397591693955106874216126911795384096102133661993015499296071489620311938130941154316934718081451654269816340016505561541118449642302210679340645717909472153824659418826551397511204969277742773023867082414285378515869564271605310040759430828656532116599549143035412821783347289803290004241134082727561071961819539416926341913863705472645238601255616647916578417847304141922950363039201012985875618734255960417312133655601486512004179287554906159891638903523410213808459181947304131545892508279394807051198439350941415847252209838543571132235567563024806986400502624420720900069157650653291244537376734863177112129375860999539068321667838859319358080555099764898572742159354887256408072440159520736722963154484868261138160518434058088172765415621223509132537207475363983129935970189751916452675346341948989823845469950637953379057239446927698639871133827276491320295213460831153979364507636336705963787129631958069205983507615904271205230750625079467647945744880781977901022859050191138721520723936936353704403342350451591796936122113774039483664348936956332408106299752958963810019401178023653163715877128913783327917969220813718750387646668691258857490662039367989705403861916940125934883726699475583921007362703003196049399930527232109790825039085799630243281389907618268545937587856823660773900377194050180941261411213796556031055994093747939689069892661636486464887806168290523944100285493025071698684602854706271261445304873913904347837027427324556798903736551277606810482542664484095052025790078116638156721049835553237906020070783789698006830459731567060433891292527216963054879636554876359336935441713011156601411811289926526234524335178601796131494192558682131516853753370072757683923330510545080259998511038315539297022215700821833683805818490182827366335140908199079966195307874669131184834731505054878400313051529527734312344345508139609717068921893003954660254161675225840547681397576390008545600907679007890737409293760514721966943566655361408214359395268619839459708427074023884137251368601468930306867248335923689320080089862615668101573197946909508615468029859628851666772001197470331310081911018593933368849309053860177620899206560191759916842935570529324881167680160204170084782236325510332859862260656942021898683028808361077114001776150750262053637926369823957163833631558650651771643700248936847816025378822264079026654780114729037665690766391947824026004540122163702947773371087663795943010467405307359768623602275735212423431522386183750114338793447364881751692325825999076805721428897539011729642450246686535935193901017825290072181917164191953642183797689376641881246637150698828939072251951585218962103674038344292516840459849854633418799476640359774722847988875634537119376834327972005026360242835001148890962819056929932427207817654552217773988511838545590782031189233371630090520478324353250003650255014591485942963284294224686300121806543113617106594323649026503283503210222778075184073561002319699984043099424401748195200179830762378584849982892839373367117623634567725783760993693409228901515641246976586249661836350484840308462818318173374396442974889486386886272512182308130721798689834858173807136518014381478454041224270276783984841137691979084683554469028019164971090560090809669684757851941158716730219505884982214431637813673718013194950814363969588680472054992207603760035832947954624135466573357187489400396599956884939397637655856545072428454096664250111679558316131862413280666689926884511149689722371795017153053782489716737222020312420591105757197418220501848390443217625751067670502929107077679443072327615612199407859278744626963941918243751082169351485634226460684100330551380057240217342887424033306047193700643152504092123411508428565040312939960043838637166050358777110505904985755655956972905773794187826066358006294621841702790035332586899314040075690361814202124532827562351697147546659424584282832022790140438521986824688032448702079572755025789436479334353948911512305227625280742080341003206328731878298750405824523650801746125528459435418764174195926000727839471642468469571459168031944172924684661198249838967957369932015453145010334004697647001968933682416058512563040746402303429228154950990203780379027513665091540873061622942168426961011121035831700595919747064866573681068400708303004937738479094438633186434383722445398677583733334123921375669252140728289484686931248897164801394169726537136331752174631250178789469224582533402878803172597828359559013297939335572597030039823469979850453268519365202243775024003257723952079204825175421231868936773059311753297537387442442455495111260932023955711185480185450205561269415146365412747448697382879044497229584806833457293222237213430193314082269901852302453703026320219978194188956440164405421671399405537057180969209949229327655850906284135076880481193460166657314013168715502508302020679995815861522313912591474247743662957648470927127145470994213739417216788573566474901058695116171095738523186442526889952356780449495780768094297967689897048638599161391761205877383168568055015423333030097295222462956210260850101250711952065668188165681798868486854536024014424884960362276019950536807547237516679586293408542900674281566350098070496973606832100906176350123011147197832859028892942397884470028116367150872599240322439492826405042488798702376862741120592674841006191813307922540054228219276317454358869560451152550629644612422224718699558223704318720914170850407018810526268449703814890176902539171541072297257838202578140101498618215158798996792822519024890594933283227223613976834026996093265616207649961714877537433217994278810293837597552999195897667500813176955002851984964032314534254142914760947643949102060796290705845949876206734889761785975873458151679975580868323640101729476366799181511232720534482344102410267525176254974153108686004571193904806227914996413384921660405026367454363358449998555987353508006029733007760172348773556922762858071000125211878793272768384292899943455220261426941466085668688414112330904261416807205579624717569853579438881661296301722747743650571265248657782221778509079906396029333434508525844636123355853642149753729086504995915574994090863492967808629822064958637101555301046344871146716302507241618903106157277090662140132624067847074924187662152095320618260979510933674252440620522422688780614741493541807690521713988441718665305188507212137774632783778404092428034336396300212071477232509256239059095123733605781175153730016015721630123372011466658235587626103772462280906893456547569745703747646991823281061527530526406729800797794833944532456624827246176092423448020172304309237362074082713493673330172209960385118105274506143822507471021461104224640574977992060799053985741419183478345125398211156933608249615547120814417694737382306177059610933407898549332030050997815134405346141588309571596045853245579693289381210425277970544644327242896821849906219405361003627079150186385055519937216155508054379064283028068753454119464475611431102276715507105346251227833330043869211068089443082147557042826699791974661757198438473534541244839225718019721911264581933402724622001527353459993603887188101649943987429402938056378368374599310024844737400578549284952529170877680973972206214079739190666504716717358527359556516892728393031411657931826166354059462373981759849066598031226045889175327173238995473152953924716394331049845984683939155334866324493997187097067555122896197878063829186473012260055654536797628275437633632235953589434329864762420360151624584756123004390943630041835174126058046540422594943196113201810029105946369796239868851717296878162567166564715335319449641954899855350863647228958855189514865394766222850966772280758943699160892026822028699125638321896470816844490248601248133013589696666350831105130566775753843759394359434315927372243259878229501394554634791341319922867547556582928944231084415038621824341621145085283700135842441538939650282243152464210141386390614282025264530001719011609290291778430493862971289631900939831972299327836026825049883467477120304970933316968077215002334057223831497717987439566393047693172041044674192181558172026271928096946776095715436598573345764910919386762786656518293405368419793610923686052696019611042623143168158154861525936026429655377043343747803277857175866328858805526099599435316833776312673226782938379417947243514536028880301307405374791193881443135727215307673503025959219767598630703206826813808880981884674713720206940408500869075239491977937009654926151566372025291510765436646366893807415641271317782800218716115195940291572539912405640071296912370621491962012880163446332930970060444543193843006934386272261437450208887566408570352241408192198310838603947018165048229789119187009537616452540061181233390123245570673769386692020326231215197492106644023936711807433614787669790486923362691727913277239464404758181329002365771721572935503122769554333476103809893791752314977732196854790777262826201221423421019549425237536833038179346878233511228807945658624539027309498883383773994296600662116147904741656421874257425805267092071241353855451979298306160296308662388918958159817725134110069326496607128716549123848472217741474174253980768721335440241035032496536189297445050408903832624959622936504139537804723379701083340611013257302420214456146047253967705553800968045466742924836162760989047657441609175325432591509901860515305138245770513056646994367082023521236728317607009584327803969162414952138482492261063244902031896488738586284783230344407584694133914492130743846242204048329321796084473899217435041689679796968604030381148098841348584257240880050947241179918195344717386301556498664185648434871876638983464483552576801337248587914983533434694364452853265417141649522836157480374017241383591271588321825227712258960780789356894524629144957327528096142135957346762592900669008191177111573699720755674769884427575094975465093054003886682552477990375190984210622639173229425257236318454309532019239556314920522497355988492752137788531959038520018420604112081273041240449227066018741723958259380235388069409592985304447669035597016513837130289627069123845136844212248823535867630088114152848524215302970379337414389573078125833548425862379936619446231930821108937623362919749910564998334334973483689975739926511944418834715825399772588517775615236058722138320703718072984781185001284192769812926066927444104011495766821482941736577523154854777941945081890915807200319081476148393202981977865514666815951690043014530094329852277015227777824170576328582323435672431099168549400022930060882423408062495065721152222669637752145631916575770421704516045908455042560583511596132399445025274516662565734818167173528235669944685646428425096691143988399677174335923984255376539093134705481512822766888549465041467275405531700522694805186489658277757148842863232606718793305183484477476333312723499763608442060100523716170942925758369983742044237268220500466237529375000771916475367288682835532119062347769510580136260626170794916616226624728596460246097342833900811733506616968162490932569225786364640067789298131998743341193789128034657060107440958065714164728526847719197687275659819765361326879404460847284185744658218621127383576711000780864640231131312549710070727480254181167284095029816169777497243280643252095566715628091128644270671650306253225856641887488028015173852569839280849919713976621719230905071110350921333459775898962489830974568103413823775287080635904991864371054045386531665313375230435722658348645048441433811246754853197595470612039542213630636803419293251810354776564201029471999166817065014910976834147689364798553850554775871324246459996560883347782894232248754112522156032369373658615204391051212267455871428645152684547332634622960067996717754222334753604219707095032098369119514011345288901640347556564419261241828065440588036497051103592879430000447409196874401335606080890193084261029296976259626382452049144339969675191393504274948540590888994730863196540975474179906093239960252362329056091942599559966994680050933618836803514934090338336650869380945170852883532486934931616967021870975960036143822728535819731825088526979964128133301593746143087840443895080134596986076746892950256630854634073570669628891169182761588341170560937915207238234402256162979047883395670631125312209214686056262827275970917902932354551800298207492727771462087844457864785177418441512904339100514218357330103320124641598629447059907097267566461854225263515540864144677265455618967547422746681761823536147123322838845181160135527003363854666351723470364991580839716933760989044592199972351094636628340855884657338666887190606481731245093357374890832181615541096195307206997879861474962680943693633884350923318567578253593963888981293944120268983831084613835112004529862245886232478525447438457992872918199684341812304163748766363802467355292294144259940580922227573595064939746290640898287229211404706040796143300369605105488371279124960844559552520514188386025619659264071073367756541908085383684638586870582237125882050296430021265764549295496720769125756155779733615502058845208441342200664755256183351524764326694768068295479253518870817358305680979692894283142776085472185188126042388441780182744542584720685636870258627530531867219155765269954141430651290773574130537709461214449727095188781821514311622906182255300573860193453109954269081070417488968733419738169449414245918950673992009392875904420409383150090344663546512729956586872119847678249213832504054661548463410216688612990872742150771024370719030544800441277739716774910911355255090506027602770015660379786564909132194733389846914470229329962780178318085307773423045980536715497383132659297870320833566544769029789456941517908444681165478569989924478803693286923397190606014371096765584425877429069971016308041809591220814382840393303279222285953593735438495816519255529383565120510026049045818623999072135209314052163357722149513993936533795927047324524714845214091221286629638303787355517754662399289789266392955652765469362037488011502521133378525555688212864920122253181094779116896717909001110998261713249934255318578073907063785569972603207677399407458161274423593377116142204378332567375380134653217626430492984297667136833794562753739512582180509920366501434102859881857220307528455268894790862568405969252729610116003992217684362453976371471011500489103035283998423855611486986232391806904950274597132887261069867168329895619259181984201208138988607977346785733542215854573531042712096988313774955814654661108472434406925353065088804829203576306103623491775302318362788336420555087324826044367471150257883070253236974442194688204315250860819310705784336725347142342166267032891464615918027354161632019689818042137676723480168264317966130435566705338423504170865468881659894993829955399671128348064662611695414852945477224172543793324057194055325642706737416011567490826618552623847712801444376933390308274864669983376523908282412399421365445282029297778985707668640251950682461528385373824062083152462020805322315828292774019178503242414716117104024230331842956464252076472712641223717440369430231421144991616160680078761288914829812714948773667476932646370348692752479019315860044684785494394608743420181187082007013847205493275887754275299060488175274911762520864754943946150313455592720484690514723184225669850650720335150098170500521392447060944886401402486400358281310812822064245687876130638134212368253205269028618926584035663810045164831473277161042844617593576465030833356016876476164418473804271354334834474693683364690862750679275055814574072704474338895113323624036895798082433672906919808609800898837694805555762818414933767495138460569165175675028598411511558944399445402991034645480233991668727630806920023573173356966518125168215529443816616172465967531751184294486267092018470636277264893064609511868769424106287605843935668141141655608062145223436695576680068668490244714151586221072021744535043252126298314512242433358737976660023449203838174802181818630186345002475332113201396369635346818981716218707473878128871684554326629646793513517399899025119265960418000611599328331192062347721802517191677182068238676204082581380365165825491827911428585148414165507506898280352115141967811004199704498110086104450157773721444218858289425860546969750890751151108989009651811392173749911378363701829595538301711482250764207612459540286621347664175350537496861129222285825430472503938360135519220490854990544166248451330400905117549103777298096863645162127394790484051359080860998759267202852338114789456728903237757593188702768057228622046484110311054415589497777078937339490265721670397753044222649431530270910562846682150623287964359477305584929067187410544177644705842235290892857377334647879586087344402958355376566100783359587981634988682665461710897360134714909344899638874069016591752127386544536360049108421526985534750156134659162498079062467921381666337984256477262525716781218269237615813350835940431352405872454020163137935140085705559249922361373855890008676047245327153073403668723905072525515221321797216935964303897108217058397528819459782283240268569543695912316879904516349122664922521097287313160931357507841375606106100053156762574638289979889489708285627247858741460574647320904758047450721055882550487621987699446352956604186952701389781427692151328999734475558576744008053389096181983717060343296682372324234468567025268492730303888062362164851969628606011184723208251063277280890665900502369827680800273051928099238054202794622662890063616978063544461446569039140015227777676818523538642585321839106650906307342203356878336456975614473776610511133029262633372638106248944244947332313902410019683635064673189107299340062458757023732736729058393562235314066360297498471555460094915543352251937284154568802137992365102984718721824793745655760853036694666967793635129221268611576343787498587835587069708822510896279473170649562837559977241481453365992148334255677082672833650439691134763108420746212175018942875231539227629983601969160213379982421471896598938229717917034005637140049473394039749454484959790639392038116666146055379389346093607634245649588571385562808331441509596989820664111881852578726927004569059352828511217429339353310685112242823574465888783490530215864218731682754771700759722716785070339608898252978990445598907935176771024095596972103055314245846720211108088395371231483909239837527700062781222732238219703294051604156872484024920860494674186346006072431865877343035836411620926472315775292837106193358277584985904533092113429284577273114045885823968052492297435570764052078890577347084145353407069779127286553303706206159424617076400363376424741078545964522245953546324371356366928506450483126565242468887489434151388685724406352661617239412620119153314689303106422586003619629299108353767195138315548049815474415015421790922213324490406056537948244369972696978149848679024705688328604085948891287230315981610175617740391698425502426626273896460412370423524088957474149645878924489475133644767219971297747483292717101641719836394053225719212749268446929923526590371046121318733889193783532069437264420628701804753289138543959497713175449013638752392086850439640096190891917898186815580412650216142863505692076577614678516256940667091550630399871361872755828364586931911773822340453235348043161627975160524019316985432258820070926335271921387092794941189637271261882445726229055167352820015865056551809035999808041180419651377648343755050865288029535672347395976022134581904538869358499858363833353725502192915331586114738758713725486959103982175850081853986340040348708101670623771783999786614664332384335516277366298882610823160011007958405746948385247002479764294377837430701567603268613188817174932338806752707667443644315313937662743286265656601894691631753657732206523310483806158225768085093584114206502756433327990001775091001081619568148703572372788686787495250567504081002925051981256786542511420825834156096449873413637409851834372283450189184547794667849461460676863136556195431230069429791426048041346709001927995405693867885577728647779330568554493556334181494583538311810302829912347182263303402475515866822520684928664548260286315417701427735476668622562303787672931766773366699821820741830111978359572458231697281941130592113544321864091515598507085640399135370937859982138068882205138445829397361627723820447163386679207576342047565054064838177109931201327094641429754372254472071136038763086080938939491396086347065241717686973077554467158358732587647663557487807469085045040997378612804555917491586111231316780254887429542186766407562210636116140533962629581787516032514281166420683711613497490358453805448236128788156708832200177498835130654066577503001860725402849091263764640925101228513427429436801529682115407265545340890264665822132687816808991944517063199207202576652277098133986603469722950867373952710139702159665144779613794376908223166069722480535842196226162156602119708020495305418232045120905311977797229445298220363679234608775875367165275588823929811426945774861046021731089773234199548245030727751578372186490993911751103422382279520779745446163224121276448868576444543166588227683191137504929364423193925431592264532030519895346440345012640560224939103237378229951757303267037508040995358841249449377488476089700016622456927464353587424456900148628738070472846738412565443265523189519629409359814060723273420165197023188520355938301343012306910600457091864126663483526687034559416963250340521485945915987818313678974123545688088070809029984137445997841133317927524193221501483322991198171222535225557932854344957336126059812191043817631983423280916480563874844057842424997315389765433618367540445831501612682706932539558275543161362807610762342556898304276217084604112540251181777908679209902957397102876856547495958008606735402432941836901739771950641175285701596500933526418168753708124178101029497798879282006245584429765436269843807691790919384712244009968089665693753312571157354406713727959746402468421074896483799690984754206400797269105711963453226790801546082495505422535865355721055365644598146836357038620863832966813799243704462711436153031294794027211350876022650080552600846798478496343891042213432037197738668398837435587423268039710235908362049063661851934550162568288893869578142444066418253108629247692982082270783272945510223075900567335721394024322852812250559923001655826668254790910675619811154409720397392020966853371097856103554704775584279398469871164127585924596007521134081251621529893565086986182927417833345911558794966852267983856377435904504273680912418953468886551243470235664616603640219661083488023835844332520137508376349522096999738116575994935465019529398175411766741206470287185902474759293315113560642359406591506914266349346517054361000377484777944838541020627125562293848401722837789076640289621882267299782341665262072675318116506828418716136445132535533357833987058666707740816458461202913323588198205492252733634432253621011067315653740657087065350237783077597061941255206089507549369926707996745394655153006814869647302276182667327048523949952202820069908587404390919847642571180129938612219787102592860324639779251268445365151400381088869694032812857047875533388821643431747340616572449229732109883742984323954481446808351926648631164967827120756448765073864241458986249491864217156042470123043736878898880875960210593301942559289037570887992253756570839255705913522518068744093361637219155631154901861264618041953078891992184536789650049196942887014652499780941448973405515367233385923955162286169183088169539864659812276957765870581984865020395038506503255572172847528771818523067511977059357129247887879004229151399729192460236535362522114081624528002958525594261311844412634192635007307250992976586601700441383725375714627834397494408291721958250070836384030069901962406210979036150294109232059924342163066236292497823486066781947836808879842965864735660604619733923649920784074947869344201170041420551093936492759080724984087218551142690159078903655496346090385055135975164531628519110793302379168578999753903416232625508762236782902773117789679823407409300282118002792446786479152615281712510882427794311998006339871706569519148482006715111818388824240360132041966923455913911367048238201474072531597210547612746761850805746874502957938627744720960874915223459373365674159385575704737485801215793979244122215597173248799530916102962072428698677294944404846599598922623330130459825894278958988031315259379929895557040802609578035411733012899004953283450755238671592392609876949434837474921343428996421077387733860175373177996727409558029704325261936829459387611503090137325984184932025043624751115947217612593400969277505458988178592427555510344309469061502291846664077490958846839846543194148125111567735498343027892937370277042978755444065324443533565200614332246441852978895133389799319791312249024770775525373409493385121639045221233800165757636156749498637123501074033354945888072369856998583961292953221506507390150499427009268536907416564686136183263450253550177693042151117959348738937949776165540604859253683356584390620378822316773533631475651706612212137546042714977962685909502413142905148315898096591399908177035391945809466626188611920301170477425505496398723921944092318634404296874644270356843165849400560567600601277926614415661832620608259040529655242340017717051634477957392893413229688129077315335779424828179487403759450603489372001132717648730372553204508265346112338239079854182987903929799783633584691934101964780625552158293576767129568943555424203664487587207857753717497975616119053945581726544650717487954422191742152870750790451854753157659890360326633185410164363145682945104987372977715983869991917547041112091025059897334186123160218773340612454433781441254141109027787722598908482867819646570622735519864930887972921352285142284839938195862184477650946884921594107164196929295809184242195915320036640663107347127486745502137287971158863933914038986705081157487371013791866556131505925989793660180381752417359168697986989198552660675742342373239480481565355140999449814367410068768859997973966404629452089168272156276895858669113740435319547064466074067742665552825125202266152890900564808197677234805968022355533888527895956839892490558805033239139134965945365827389173666011609422631892594625604658952727519094373176684367491832225229672018447105347261346115397045018579664041662242166179551755821515836714763910509737214150325300473876822765240644253238392522341947715311339999475382980884978370428836919839097124727838178315256470243696836369843653773029748934028659610230788788321981802911413321795722226736916275464433072790531930810348420909519303244744355421917704942755928211098056757911945573942526340737065185430222747512035368201753975724230933912830782998810512250211056257848123627950118820001683453244784437968730900587974383884090208568673626410177377327561771681257799178669479619136200591675044256345257285962251087845631235813177667891834547233053435737112615359143755252415161895791638272976984344615862647092951254448925276626741114431469982775928414243952563041525180875487373267861335233046499432921184609735543564400901534346490594710455354872322159846606138432236561071631677961330528694844292826028857228779547446211903172859690538780248728782380013675065909661271749577950608995659164658753703474562952245368490632222122211848067282378235187213509617775506350925003842732344123482669208270005553664524259542617009905325509265902021739231125440814118841495176637054046163204068176976559457092894336478566366071304119759167744129024576246899143586547510733174949625466186700571584640744835300006397636581780431319521264658162644188215403445139356437002855929014641915100300539702825748625646501155191810895136830094100116605147659322071320922702389619804926098840307252303989114868729780413906276747303262561874058594514169624698318083359910865419815904844038067273464639389638698176133436131888871912092949258830405112091151781147040675737103686867413512281378300050369995415592907161291302545820817448840269822273797730311169742366110770502602414462425368161698872356654502780180744764858248261040738670792634346202885307999218016524410570734089647900136349208936889744963098883126467534214209562677704807251941332990227583682936713557193195390793863503965908440763233518435349564583944295078350233500463807271185426366754684365196564382227994159098226037175985060636635563623114083475457311531705593138532658741054899624195273092742117241513773444162704402627246805928645872982761204323576438174255400436128991085205675088408502098550101235866727494434670977232700197334971132823899668590637059367290834196776402853628259729728054118203295541481990866622564367898687218766380666660693419724169435111475948801443438428018967803514828234857824038076123776277723582053353582912022881970442973153051399000966229613882235076916623893802455645923387269079930429063767357149415334280032233190499669245362472260434069839857461220237847647557086542429553837681951308259664288325922367392819843165727488439846079568376246742466099061429776000613129149766200017850411939590651341559420680711255797464163519865636203194633767682488237520399328450582341633003236604490717061714985469684805806453877623101485137044669423643981413685439721375051793213765672460701187694626285388316759291232548449454875051730398609760682824723633068385906469482821749132259795607780062427705542943521977800838835148017147813841962198950891630579663324015357439727209053122153306983032719720219501339083120813404994009721286582390629502216154900391651101349526687966815795950727694067167045239628278509365382165737190530959709465198422463119753314433228267355776588106706907617611176193535078278889761152738505178693703111056032034326430131162965414952362289326825399761123394871736894201697381278152541500345040828692647903519006436919555706714626162341108959521246567758232567444809956927823811648111115552053262116916117916216833389463705019641886609946570016632517477399232668307619740846466220148634322120268568838175394594545084653005468257078253948237620566088999079358488066242067387115648348524096614725837310167683793144983745453309685697943430093578288917922030532222374262105401210916890156505795818467377548864256195034272437079154624449975995781592030211854599056115344637065700190340907988010462307286222765907145963769691996138753797046669029505283404234638150353515054600273911374335821508402780889775457943869229177340495335485890437623147083025649375252074023727332165346073536505919716964038177211762741408777394526877504313890759253853428661678500410317864571032331852606290762549131996607397103784762501230567874514926656383137274183744008833557137864640730803374798917096821334661805808537165662175542438729766237780354158301937291344765217201302965214556837581886985569762259864326987637928424811631377702025991091676029610783173692004933562578446656724564187242540634660566929903300719557767103466813562146432084240066669355772129447535515944067200080942363219360217408381179227835105869825671837167911500465547767346119437499648233290043605081563118938705132056773296174822617867508638012719473388330939845908300669260610211509379607953895804825877468459243046859769049598952906257466347616903035124621766687951721174921358126339871709651438144731810850425113815586158255802561240724443831548168115501468924309484958133313692753582086888781232963422289778653032771531922615961670973648693635799186348972159109164901916204048428513485327379164106116873670522611157460707894192453176826209372585206454185878734560329077716496228900305109058756219327227904800561316045371091479871526063160508513587739222868311058775636812391737765018860779134523128992763056401567798488424940609645154642282406006258304262985729816986550849120987608913677652092853849566107589171991012748639580878871814716132043747603396924154435417949949741005768542597991906105884421023621722754555238092554396268851042611836032732014615406569759915105483067541637250485054809509064998274363397859271914536077119697405689005473686284293123916598809522462292565836302047187822207348871387371603092333324189824110169476888840265998201441374586164620712250441527557888886598639189899894300249743181180199816767125951071878149807801707003852863951985711209248354433831080696073609431274344989492249097333230420943654095361540965673750294208017191136864805430593726895985469219865546846000752612472129131809096240316684008196876600893076857092118180654941506126353358513543299048621080037173744435648363724871604590881757236092532021966328642290421523274529661062853627073693148049184154395335660878880716664493207668422789694592440601029838847090282463194736767955490813850202878871153819392490794557325181725148749019892881890461451612115206524389906208373807892295420809230546503817467406953451625623376000365883499938210973957533279143258684743969035404391348590388718473829105309015937913517500015232546814021866206556077335487757435660792566977797354296025201910358149652921852903139598597454526339167773150160025881214238344028742814260524263222575070177905170889211485092610512648991340420430519378266332903490568496136944387317552194954259501181599950689182258933840150696573357191049542240202206855869610903660855627952572484874102278786918710963604668436149365916979519273805777944051198065824371718011134994365913668635453357381823330107062329208563492781710915150626751325090029269052166115473756229917543072531424399999507038282675880819322586301435012793940926177857454294342346802448429864019629863889866765482108883196303644405622756337978954200133326386291573579639760379784285079237288366960795800040527511964651979301561497312910634976534188090235972945069621299867533306932027343277162857231935250915204222716979276969195776851017683021881504939887169347424827327248224166490005851325164080277504194334237798387289856904082842019786849702480470100685087117380757320778842980812019837641371695205265495491443721916077334665890349597057732386426791301127520104698145291233495741113311084287445921889290785998552070697415297150502126956603745277282988551026159827717457033927214394214504618799695178545535968795252272332326845618076721725118030844585817754465269479160797872578922480031429537273715330062878201323675076513999454976530973706383826938474632385242729812038981710534682184195007171852063376000354959351817490556128103765815981534834289491366628519516909956176940199699516600396114354322245946379248582779035759203306201446480607332297515652341033550462723548934325355016292733278540528474162057112430148733026137871413342264419363730350146032485267898797185397318102163241755534990601755777476587803309282768213467186674226517628538375654177542777814679328113061415359198127931246078569742559157233342298287302703133843875223101739067668800179640256965691572328366152021334096480459241244216210688933203083211653123910852184442534145168138466056580028900066228563440112695627459823842632703719926484269554041205445625075563824454462258847969201387514189326971465399020566622535080354121506461385851732531740568888880922399047514500810790146549756791729183067268882269959759731945199357249345527618384762561769141649862806381548420503426426389750990293444185481328298124479043691629646656985927708908391697372229726731114949959650999309544826619659519993740673731469674532855591235495425729550882192892540620594387448096296928714121527934432915818564556653915508917742896941660028857080601270682844553191905038993677452912270424179488426330833094500451963471103470813272266577727183567736917533069490603695128919054714812116011755111178598670168140567868137516905499555450795762641712926480183091387015961810226332156901687023553585772804681809359098317186639248454721044532745114107039679907969333953036214156183644687390658297511947612799809576735703949501904911114319199916709676950598794901775672205897226012395411677848311069833844678169470327485470765709417133195950737332443164392064618857094461080207809343613761796080578551629588504005103859740856749304306409035428888119564597612839335242680513622152904693890389091286467240060159120794307715529600969726723642063893142426186016104657184798010484629238239358202165940133978777790901985733261860443692881705881069815952876294240713465748056350873605625421868265998354535319697472830256877532026618586270031582498479114339027098553735801651798346187831735431730538371552777917087889589144200132626626195843622837432830595227246243439174702426622199681432520254354944607022683503901655248050629713274430148688051872436059821064751957962441757348049974947761000719226317764029209748350332321464512422240581705527999036375574345507314472420546731777713324965957926514914907643358223903162006600038989926664660133344052753272709705537142196720533458771094865036958962163107360296954380346882184093901117130311913407483462906014837073328423612829508030111490020913286588718723263667300676830226788878749024542800737755995231836550917149827661959365386527555771398911221393583067173443668719081577979663843508766758635394749217620038782985965693947325883380145796519425268743740875185780125039420663155875226610336811524590467151113131891579665368835806839382402738397669288955294267600207505754261991232986971313372065831280324939826232729099925513249063311228666141481036864039804510196739829113007925683952033466103545339947049561869060516633114623150498319058420858346094016428030223956179071963209089287523300554258819792259126178176622932011991342497087900910716346919344956255084465514195963450062886783278296367519437249996508021076430329548376648399352918253394075895106856654857427197703341423219361734778927223122565657335586254077586449971114935534768411049565531076546174828902659414665309124705005184384299237268025465260489402931025475296375670954591823623600147140732406911986257627344310179106836860331254138389321704125815804064920088934575075807837234848582515999134815388354129609040028313485448847096944513612594619766858860242912616120999590757066946594374100340997042569385658235226186011525853512002486550450343725106817235439487058936932872467224355904257217911995877174547698669475171721026100943077782877967864503042360229612805737528929870895904092504943166765216627010857260885122465798794125073404442142987297555792450326066715822918012595195657186366980228075016107621362385805798482785442695584247793310733879965910874535828118242844041751378734091043940738686956613012073987637430992274323735730027252502001925717660640982163752833305070476373837102688628835818306907138894696410195379716165587335376246414850024316337550072835217501371217027933614339300672241046361437687074411915058588552491673414820725926839891497300985914563373021735368575917633168908564861892718113903811469725255962281835770932093266348396291463573578105539168642388866062668217436381257668122014589371375832799640219734937094681158038801617805636611891805410759137284014871260257093513062176588538503156952005684909290137602626203598483616349929476616626242461891940619167742000216462744485513895702553392335349054036826740295123584063090144512215897616874945620698118552412379738428719617634862701429130428426380593888073500996731357208416849850496847049240367571750633551989347647783857542968505053961001069747858494533444397222911642545523547494913836093993727938431636322345431090252066816726205348843177221644143276771084815221915567563611470584047239980759150077678904302457112472817014770558779050992310788010047496728886573992847119674059640287044350918544969436383628224986509926234373506512341925756500202698360518919914128261585796494529344160707305593289016453888994424794267238339089066857814941613843317789912293543016284399173895995193693838289336276267949761560831002766480242801651939001021421476713190359864720056501951786250179305782355853396079288291778834030787982714321726595849240985098843953762240882846141596572403788825715827837306307187609557671063102453053365874049776434858293527208067377915906960644320955111980505322714007910791372421184440595925762967912325854577550223533761393693110077836877544017205818306689716951803431728677449777534845712966081716647504094566755943796047137967799449352372714827094599972166820018010375681448311689316656440457394929489551379875468963003107349252961623225992327058806022432908737179508539066939679435081216378364188275717933969567348135698712132114906922057728091226108428601026949917366817642996542103428130465982571107338752841830267186073312109763136554152026760768019634832034897739918210852744831241749834716171330995959876499715285618335821740323611225418419222894726052988968876756392042309471097274664676195157987646202317516874156800390735654337456553649727909795207611145934916220492999779746018726281808272876763170546406749279546263118280154606055092628954015106288601448970743519306821681317278893713023999445454876767587436693747674758826771744928545232520441692841695315278209934729799450817369318091265068570118326616431765829256779276121470643927721367726037075695882187103337006658576883721522614107699101048779827214134826804867379880620666613631725649431261137764197109395932797478347230574161180736085667955674518214712950269624805270519949600791340032164411388132118762219874336778119791160884424269298166049451771124511139642415228763835362362783408144966646599103189478141301144538101617758021109018682760926725675763365520919832208891544350956930099780445314269401344230817921477443128339099123369269947263065261138435991578931723691588730309046771394035680984520468311801611611638459596789081893707028210075141321425629734929922002675203670583449836304085793632678398736850697622912442091652028613645273483940743080916245321404147655283176833296735054311439571133125162290719273155724861859538770556984514109899283877769676304639247936497556221807322868195918540185972979658434884232311216617319014555572205219626984414233258097003266046995612888922509138119032868903319165764844530700854350061269292697288655191619189149267926090555579417451137643189237690346238368362481184667766408152366075199403265421530842460961803589881735767023092472577155827189084385254890043232558786266229851486251613064788537700767222425984616542194697549695541787112028860372101499692906232783510259613507906518536789447310683614014322784324201961098031554600483249698045792182231255514978563725060356682399554234139523409965271233232722262382657813766242374808755132409452230805444351214289241689880681895231695503496950688391297704865610551683750320243466814940789432830724246481747880428633099643085345586112834661205431026452764225730577647262087681006135666655167923246389708696094226884257736264700043950316338767592877732806920002680364568714800059653382618029218597058035208912880096721011895576344593831048192768899194793880208265256983460753725245909211509092509759761900290364486437544252748360462587825084344741367145712756665128381128300340123966868768353199915959826441774860047984426256440076732906654051404917905786505456996887785321189640822849669011570297432360292249862831486220033811742289422088685979321581509749369005690427787132517459401350679279962975718919196229194938700909834318136237670988119010896265660316712397079742363617167553829280146802993238852300402833743584823772983680192137260649591057534116412677479551186526730926360270048590195885791261846306090102597052717895388572003247319331069661013858861772431794938113009448745427733248608258382955601708555653561322533323350364590439656037171631109878383633647142309447285178820621601707862158706782210832812006990596436195207480231566475818528197792983974733974656280571911742601201544909719692866699971311486253102074546573233453153126910097284607401560841259678314402433654407989321450460514536693638398479213956030813152258487591776532817224703606901079313893164377563217326301280761599122548912378588978151804840918136747846117529314432278779826866562887250050649807226679840261852778503518250341116618919634431718398660623752253440372167623359463731767907569054974942074510939817038112367113481658977959779005874106144987072851029971477375269445477945708749499760059918244458689752564589346634506194608118035946147063195502205658769230373461099761748646841823385827698928337088028324098372124634755228890763824379891006677836516685036862031428352475934066919057665080241647060609243068668366672092695832727306504910995736525583074618216304226578032026771234122049481886862130912788511896607935605812654477390780638994398259300118379277604132913899748708105568767964125758010621465703284289906597397534970871008913676607779091299451690996969305286088140160735958176146321619889810530175035815529186433441832710032685944759116306606636800969066516527042364622939161857480852518970569675921182431917686862076457202429461770500463349997267235006048508813617401710597559901590513899662658266991293415010215725722884785090307479830696562383734326480662127010521760478345893784558900810194737517983969387822912856268178550955615771020370271440196677490148280358503179046109020438779072215514538764503540823563298892636462935101646400972491683867530392675965444103197369548860145117028407846943836010716874059817413306784925942771308699240118175021597383852544493806498887827637668431511495695572187119368783012786954506555888898744182693860581961993415242878275541747757415262847907145603060887398320399124839110631628010761496086387903630406091357265829611636609486786969201974264872394854132652667332047974234831805597156027802090178416183167452136615914373762347679343246522129310316363082319921204963704574706086982117234248026284515251477384247713481522924630457239288073053929998177750509523378051656545533919489847493116634541712162304446148625859370358957470633275428103336999687888318488860051654439815018074259489213451042706004829906768829334571761127825072647218726910206808445785728302147400714010983207900384542642705484010415242285224086631335119864472301567614928414722818183952111635532309581361765689405933547791047645589381423525614336326815579236252446509352292787284059321868913620189967176555109650196275736082032453492235053853537545482538814510608718292055831847638568936484468566404936867134888493568273199955342509959715144515068906378987827387147230877307219455261951984337452545422095940105747750079505943567861759655596408377749992099980840554253432730219828179046320011364558520265186118846757507849146998954262857689228395925900343970033086814480402630839365228187550444309404831864462142756137259272920107496252565692823844635921901038215911304061105006914021535921884128965227404994625639028902311627074177530883019963704856463233945590930020432094419489724565150541528508118644283933729962609854501576251689005797294523417814423675328759883460928382099942634733583078887641535360334216781008526948456906052082990729459122891904225610812763910763213382213685603642530686552581711376550878215769185810659681431796827640592738490232149288418022641651626290176166662016034473953614206834552264530430592095816070334672377436439207193412584745437114003574038798346184456510367053078111191749346554256990203550463578382552858751766208542092008197525347339753027699133549148549212458969250762459975187223181999805334806323325183911910952515612124523166165417505334940925046207398649624289528509047558303949068410241345675510918269023912633651740473028044618213732169934560075528510572333529156443471252460962304717137757687424025139400588584664811960952592185628965868872802684029817959682624177443871278888800243416791973728181519114058976632735269002020688710483956712888784118506350203029194870922422333847360098888600404864427536499983368323546728262621800099659853248113793137280086616461488242435806322499278255723103619700232218332244951173135045935672614937462358864039883114793101837720677567843905510760135022099661163108986066231174411539104951812666299576012961017841079756310864497884882800955648265928799084955949137963003917563090322884326421337818025206173900275799924061711049582365597630746233043196382964362894003534762746535288607626930840371848945376116998124155157032604409494161552420885036736863444901595174679921937718188977088087402591305683522274534076863527251894744431108754012036616299251575547587452689241246108454849855172036258048847924040240827677479313971870011021929911367236754565117845988033054910453768966935592634363230684325839565410886226841711452470005832053969169882227634795760709518375226496765194820485244938300907852050759747560146446875602312981102165114324934950680522048252001992106342766729664347228733356302969604917188771840924362299100287215788475902242477998539543558567389546218308910979656353587552587820906566821129488233625050112764289939855551170388512179101571193950247277212038899209032124576456097821396305348842432151283936145133837810713703430531244452130265724932461619095463882522993613891718102835719965617003860754824280367558159413363985898432365315329338001538836390866062419726653681303801566599715585979677086460126711083407357039167288982780557792892140921493272987929197244827463057296517869021187293303675568210518155685565708404622657550700933234636933445049414665004425806378803185977453887926186803188013158370501753739153086814065943429556132589950039767686137068940233934995009721353880628634836158411398750403738681022478450208122743138553096910619945296626143004377825812852395029964751215490991798774793787001662932907669267403114134971127286919980238264553471961847612744159069144856170183879088610459478382086483322988300085497602573881555067738559116676882143683908780556467352689583144095554641648219884880286401618568106986801192346288830067012622741157409767225541518033978863425129023103391330351224592800167783354856119313477101261615568612041557848888241611561873799165385023674405779716893389443375066821571498023476379526025465310837837136872789225010021189845246836894706892842099429117594576952920150678608957584727599425986812525001961298448674947202270655557730119775398744065087597434971343424663720270993390565296908843761306800586549642279080813973898520941024525172626967982495039573407883420859754753761288051846396678947178870368733160439385591645950087865429355183143783982303061031853089965435852116979359314035727002857351658714202008067707325020586311015649462744090391901612707128692861248143205257085517734678080848525640820721970664185428628875113102441891818046817160312894205203848832662793650099703863262420783684821601480101260776796670944936009506693017119950805339551724742351286432176267510658317125842934039660520644390112874469723238268181021947600893436383013615263960666051928103966776923980356582769813499461762130894786256424473247243152943382747150276847096080943595032613073164844090969017780508030591035058873249446423934919373092703648764707191029409795383116033942686208014756159498586621559890736536077379099945884621484003613030704697768706823994899564607420244904454439095550531050094770000575314318802636962286546015830310621685937302397358648696775370287742215764031570428454710201793795325485730177074042168550941178285275017637500010939339098342595399319539626542904590917947460072253754007867157423870796839324479496943276708573570955938041907043578215367260267586157667999341385699067524476546935507927706091967874784914206826845653501338785357043633129021885244979213356318314214087626838201234541729697311786816303086830792036648352672507645737353218934092568169634602654026381869970093459049072819690879482570474767159776125065741805667567171743233075866938558626689553868919292874220554883558956480697029697492303182947202538504995488116135471389422399114110847925946682277318796676198486596484371826993675998777264038411398771508783257015579909432825823379638725685799746918623442731546628677769928041564863224267696977634929458914838673853220389257270114184932691997743518221925677128317607616550112300675985523384765067901962009547231811535346440480629734400538509169426192160736651360677092184130433593795515302651031969281222427465819168572751877124549981244371035189267488234106267453651936899572353119049213989616823271918693172238095144688584438381377943314579310305529893401845295059183478675703758792650497991940897694232461960640866462266636221137989890179253172498532510168647194586149687081288887447708159585495211845293144623724752020848728806722705409203129495989348610164520159603752622641613302435582450345320150081185458485066175751069516372039249705572098886436108548612151796189319978425310849963138395561582217126213438663869888679973430102034656556811880148881588689656707319103574887077422005951564306062231177810779313795946764282612082111342250445604793065181694339431902563347304730361610118437066821395065637984819771960073952949522800179298054375333682164046486384956813499009574238418442651022027413070714801466105885123929705932265352141748654119054840620992734746398229226491920897868026623124573207544168850118758868965248534559792840246330649684029080211735798045720482882267824166164153049584068470263050721227469132517964143099685044666602659313288680580173696705998337954909802801614164193327360353365214028062822183987318397018536481894125188017262914112129013081728701737552895390852118496473292716185149925937737965569607601319202020234665837724806738705609935866016675070571965893016402031963783001831545434762383953643666868460578048492184076165460841720578442585303364817942349105118253647465546854435392239307961326121798995742651396776918977053819077219385509589894367195222981318180480115711629907253272554172599896989393414928190826131017222066785871469877080606161204163050610771143693084118068526060506148744913829092038072736423108146042895625151020834893234565546433515783666322662307760985614928144364231850793735585870273320036781942645620860617005547887508380158626681297550475429672075368935062820014811180034972682426322721912330399829094205033204057395673945392615791068689710516774078900469115100175415003394062040381541479191785137746045077052778320577992973553871009535858444540260752109023273072391449996541206310313250416222456082551917226326513350449187915376889382596802179390349351012289634901120204523030658101402077285789896914376231887462031602330531655827444095930780475798084679521300319209845469979925113872535673135021155454340574955448513405470655461892680345189119776748246946007410613948169009703311512725965250580953720817191696830978144562745498847546350577675611589361164723894534067031766775229396652773907941331984673091453981010785887845292261108141435626566664795824551994909391883563487688867077524644194739138855551159928343901895969709355344722918626178529355972561323712218538806640045039915871933725093017192334696734554519056227632434132246380922674669052309415251310570614036873915427012723008642877771448755047127417664331558065323596467707631727009594750492140443556080531584379997257775898571801222846920560450188916305781096592420756563988572636043845401283928856272176052196545983268472181299833309243140050297665984167418927784539313813018026789392087725629685513681384352249722100680307552613395335206729015283077736228246166545873013263346524962121690060372428391949006609029460260608150654503029038240965230378382869709809200371348952714693438773144822047205126404968423298805420486743066596966599484082043549370921447553990763237867969484227945854775776327245926681138363080720763986342936939283998278593513186007646771964615180090036365736137843182657170653693980817742774023627473257012081101236804751531567721545933879017315044838288294269741136752353622260933771007103532285381396922020242993151400736460779146979305965263085867039551887263563496430317790095829278620334197511894633880112000937329638067107260931004516358556996989679465197283291765062215078039163121979040918887553864816940533045380318150851659735495984887110129381175933354056504040707531782936080750532848738366567121606376707797769555581159626376555444811292075727695913816971183403151198965880723373493132486550805596471166814381293629458020160441742080680246895864071308963905429050900519543912419299841812103075692729556866647802347163887267465013317784916122694693685887073066232737715357213516734815630763560471909747129635901238021473402687064646448672158900558796084344314430332176274160880870871977486638160201124907089774708891440508791470761438046029574066727615999778565064339488090877637602200498779676438081643631949876773353151192639290573175463635834789426120054850521683480232247283059505040984832324532052228626053942214334178787966683267256751243373189978871767969893971501694749346457008056846826161013624333306074725255625765927322476214936691052040417973315311335194943136180523430572056933042449736569482765755411252036082495965639217147085035930999940981761216754911938160661516083779828342377769071608582551306073407120538047102169485546142653418478021984332022328886805158120610791606170572381245032770273072645102342682387198264141742297971215649345473281843379458295929639037208441344383630918131055578423313339121727816750601515824251786647392288805401103072199185161978890747516021306373909843802940891225127910300122981304208317601198849728102086529639435802542683879835585945937520102370205510525488086869666150836174186083607388388433131749939880410019492819208618468534074526667637188807584065806212873107220663718309207982716619878950956680514352830279148380863958912577908736172798904114627333833342489337931709926899595965042151248914046878802411281167193834255144331267405394774452884841122245795951782371357149481778958428467043170187119053351011916929011830433370724607971906088804608467682921503335352182019218127875786611103464930753569142672514135190401130312133537048112130374315972375721134197530419939376295922355700512729401604998485958793396451394843904569714982761176768907808974198629328885500275707835628912818473878736805261201768853565129171518959913893563135684261509642600811777172787128398331804109174614973998154447253448534507271577614085600620242410230638943515678001890700035056462016421785175365689636274424660857883103493842360503029408531196377621452834179633147830335530154550952669440408956118682408103173232514465619855027632820410264490801113790085378844813004298684248764746430863677486836543171169937564708270053793874060385291148445118450736332318083542056115441041898755562862035824670338064780307107188685054003975672494252424486282912821747887090411815888920989479295210314524809330786802521453969745629471628597090838248609956668046550461530470966916644574081006582979720336138832252900136033200717301396058928511432919168796935842643487770097010071594597888399873832502613393375662823551892063242252190692093159049140041400347880856247837565955799314319757114564098858073606455022899096848635908851401363681698042230536099025147595894203927225194520118847171710893098570724330176000010272366761668694768438439046327185868756336973691483443774812566042144151630935205335565127913423603401788029996302236906460810521858288810384967163541539136971308274214470775320655792968209750754814905509519898455744206255204184279120859681188563834350947146736985337958179906760551075103593283425953207723964543613994856873715362497026409273753551183764020791775728992472075000412464109620582664180337667585790459525030068625414670252345962930951915265322064261511276738429631578589422802262372198658439739992984688109679688049407606222556582148294767867896588935101305910713454807254064858573029766541991885032513473870741689080577119651339987313642702828295799428728262329277766362557322051799102429011568388351368410461190382554514200394538675658592258060062327950137474203562840500413276478952285846859369296857600271485980526942019451483349847379979599229914916414552245447109602188257230181660672936098769603787537792019212029048854095617849206627840603156981534863649617404291768414350946097095388807581470949450351054750091444013428535327589622373184734964391280913741581510625188178307807940460781790528201939287395066383062343310731183117785754064176637242139020513973693928650526410113736958935373804629882484128756998286567986058042669734375933255477025582030533552661266181320269999360616688282910828116387156375391245111942758851206823827262699370145371114911665471961813704275681683831400663257214477861423453801952972275074045635854527313056731299350296080997195090573042051691719857932868638217126255775136763599094542316597744243895205616499539494594507290378313308235241053822528376630252131823409629136056688282673761245146820115392364437705196429972125083504880143973413168316566398239009537005705665192310275005329751800031889874289979587678993765710190834664934851195264452385609514239047266183556653926777558323044454939427351239877977681615494264055806409117763057584179386565095329699726341101443501620921869754428396325876384419181862457720473757393793942552503999360406639420685750591546952526120805111411665142433224604559337438048238840597639956522072259296842889556230554218149331130368299778398176627603399288987250788775815699868332065485100336951447091196250165151936348855588628307838716497553878240858705462908021862948587957285902607360576318549744854128480320044640582270146140398584310134107658963613232388385558082466177151103330582307037067980763002979601642118135382763033033655578264059458905479216026802408865616599130962243347652668145534495770481430337483056130249149004266780791163087111884745338744058601904486041584385063408712947587092095233980449368454624909193416271561224310597925438648977424152812854022976778478869079829152731831644294508694209488330662637520761363305587141092460784260223263492178902754616050108178096654142498454215203212861198970118979797605949775919925424310434089640445217505898388323432435850326110454558408845510413382302658107927959523480468529986396732052207411767005677499955613686798325017581744534088309356721282513915357744607035935755414288346368849062122899332825357483184259696382789633528924886164945506758965932161279920976711281112382358667135585971596339041666849212310128332014858986666498339071293632893126380174243210486798624038349054625520430870380381542256319879276231825491093897814816707667348650216141493762503148012287200332987798769724261578121932112455454878680565296009135237230609784698306820849929677074119764364030536088051773059147131245996652967976158404375052953624234040128400655307822053137601825503387317181262480205185432550011501652031660275465923108686640326974271658747246790146199050325020293753985075520513968610267923181837313431273057300760067869386750339551609497427082521059834955617064517679622865241103566645068787323235587690519363787842152421522768508530763429620153602440316399497977086925735300642569762343225555457614742107704893374747593211059385681114022001250637895035034678765099156791751209713511638885614515566743686222011175454883182415386453499002593932525931440046575908159006395895123466890807401185374100256717030405265913654403167020597518683587370147221347038304559787663362850966851298652753565281170153043039812506777853271397047080801482330005624357459115286309871997097350941381597002567979152443272614311794642270573775177991214706636918736073318140012225696173250876396880190763400259607259072425764707624920413572052294796178050857139616143005314458462842603903448981346002366784886652542535188470765265962858929546550630528732476894150851977611053621412155652663928959349836030686389025614609594332011146680477907571643609553740180653532856025052248745538703910230335131629908398779343005140045064652682062596435412944924857698593869215032681291879931873032013804095568348369124296108926473987762192352388547904860190009984067345517665414822765328484316028250828343669245511927086956278066915850423476707171301867655967978001763647647286478265554838020540595320203265278310070917086854891036653208058970058269046320081608611908288436884805192533063386718466764735175413226016641948810510585610232766978014293639357592547691517967319125344638424511179111187855993014619854009837505403503478667035925192966072935294611370625542925016082817995050960828264274829281121504290509137039464529370741395313307507257679687703657696895616292174683119881334793440574838229178464321189566173914909197637267642872970512062552020647750749938762068820337313579218728637149496700653200862455204642193022327636209965302584224950572364236629012997673544448372416212912594243632455600328964235562690207114104233966408414146801050494303869120968564055116806931074023931718244886919689404688903258771083657314084473088053991181530809565677578824668544632825424870690377985517188847974166175435653103199994622849311483148822931591783355357753953973715615485614502998775818718822233148412425044576648031451032944173530468675723458224638077075742038933897250176058976006469912857605435543424941545767073742215429724464430633913498975292856730858941569423302780855837646977638237605297379977058086438949400806250791479721761650504401858458666634280682764880423051811051379988344191430123439198887190927365367495672324459392602678406176688678196061620050148611734796707720316634178659643632428740604187823240866436905947277015141266766802758874025396483725441609408569522163015528230970827591036234967321209145462724239950340086929301329004202706116124625484456487432831210296219813181532655956031051982651597325467240709724654607459341824441478584657907432141733228815108769841230411959695245536317878115436876899860430732773458716170309370836373642271350575900124954483941723816544341142379086967192515823976316554274899172378906651524095715829161329175539277063890667950843553056436194041420706656416403592363377519552158844509197604331777715067665779283682607787674873393221969659027205403868293291379422727657726314259690632567823318300795930461966417994632221490574258635746804999428087767273710692691487899451167706681955572946659522104285303972944637614067186034230583753634417017747667386407399343856032707548046813677426086887181473255499276628398779219825671253674256176555851373621625106729087359367406217615026755593355563556155050075286885360723077282254441549313888391925005570160423483342941556269599026753990753528382362630271433128566151422278538021066854661283718650562788764460150735038457480540965878132409246124344382748578883201051551098677578298421512848829284267099906135955032634090169980497917648614207374830304481249766870640776568429654711445910405204292638692593749574446873487157585763432248053382525512231581465282883414480757234758386360881319162850760991242202691895429966875666490974575432257399674153587844541862886089245875275016581694710589872573429609641349908843580096579055399205427102107578486243140345019237163857428758867798219052776746225058042578652805407181302015224436577808743708110666557793934533759537464615771989598473840683579831145377126088609158996296965991315459845292959400100438251135378558115483533619593359945315346290472017140152410107944793278272873973500022415944984162368203900269530451227849635441866841161401505400320627558338400434637815930387387218645418429279922039422772118477722544422667638142894790978728553348854276729845481935659171259368523387307987017859893546071090554264512950742100500728142639288628686205190803624115798295951388440456144388159335487313048245340514716701653538932374342591190724565271095802526750685418693245891023179613255163596233650183117295271218471102605735804743517731778802145928675460460912553983800394688280151540983684124276755201765015365682942939291597366004005724922123884752917667326516043587865428813992027669000431142925039364296779674074875879116342816567802058058735366889310372877488650763462925211219071721316600729755394010722489137161511220029057206483410381250561848335160665463439329797213110145148196285314653107223980759580924316150523383553626738845683029157516371244542180768885689092710453268744850990954749786927036687594819072329700799063911077522102898232625008882118801985795014750863549663665663172966509904099252812914619258941544087781721113128540319207577707407766662723824794094814446500273191566223988537267360011442393697482936459520372974143823542848207674941520526576222012283064498361478312697566714337625592481729142631223686977475719458430461810765007897432243172030352451033245827191260096864621410631982046857078333654704552118450719145425831760101664867487890868521903099685383182414620138085116569801832956689138664418840203434574143420511608107314260277970050432201607081503419081198628292954062813866182057806431515925003735006271527539933444617353996129734965160059913716321809876863710082971040614499548722411006333420204118692880137538598189763409221729807048044765667753636330402720461629943573816410138024914850267734320948421339829864983781472962481198478071876388274007699664241233419708685344955786031240276771058115999801824828868178240618998063002607989178860185397262630538276557729754758942787941837043234275205812765744004569543521584213720702560578083933861016508444164499800304549749198738300530243036457051133139289929470522974033173347689771452608164820769418356779300514659389285076601345674381474723483975640375577842134808937692380108542125774243016695210267890713297223702552756545469946859616494262384435791076822046879383360582032013318035003877443601630202097822877810444232140908975336793456543458163491347585394722135406018339607539587200298544517007188687936562099969454985517809161421345412254357644260665961700308447431085910902104780129746885384284397637709118527188040217348962818010132385675573158538168750979635348492245870616382809257642596013969681803980474593537668652629232478181756774534676197535662021711991397363143941118229040670714021725314995337788871620677180663002491350947396655998978357174467633583163068329769691098699816315072691466890080221596330757426708558545332977533982137000292367116928686727452226069251583284390022239792988145763517939480596421342981925835619995710872398141182216113685070588717303272725399005334843674224358046340374013495399072325910788491476671653947381366670149325958739712862226290021231807014792497668592610008321576136162064525729664284517849757976836285673844532687373970191250913054286108587753592825241373698619839705252439553025029826252353153039188936898102650559678181298592218411069401707794433374951819882047141849324967902633952959610380240929231752088139713467118879942309032052102779805649180915121245684742222047494318920353558703297111418610844754850142315099020134471835697674614755616711314891326918992247441289823822203041034517285946641262490499506715912138234825792168709099191270596357590486598966153678394835844888956564168828178482852497752795228466763358282045785770977469949063378059781511538858639612717558450446313369767308855682183514886250935970376722429525117661951845217264426325337283633740115042128155445091548672063100179759564060251881922743147488960215159751027463678281081257143573128983180026925409788735676959899049797870247561788523021133565626904625313111460185826223255045376465373287034124017605512118040264020590760351587782189237843726135758103644986145518213719428095870015753944483727794881382522622835397514711827434645429580311037415082885978455362502406804779012941456962417954389713660357803817547206843295972800257634194277868560503248198740642397198229000788673801210007083382067946329501202798601269138120985928203896391162976288815007390046941277792351285927588274302238936785734408633166151790878359607317166054813126317422723494741263584394203995536873536568879949800593419506341709147962471771317715749732960751589489139191863336096610060951835615029586340950110125121448312751014003388073564782460216969848968685473639675848695321214497396692159716015420485602484358641491677849875780386609515376106302539874773147262978719899633424482391286650195158318424991275746807266113077605797150757840699693700657585706658098936960214527821826887897541546979149995319521442899429110987177156240696628871615539349860704609578231070745664272148365536743018741460040665077791205038827549915780368887203663596286463558465193636256297495216329471599724864341980308793568789921369621963531069010329011732931673315761100315613165721360441062330024872914413664768941174894161705370354017010452873644201637288231066466118742244703007029943470753622250705526394806367445835575879941461684883299611238410812351503628854253525980086757560516921655059000198284222586653739833434866662335961234831267125695746076082404681247041298948408633192858672936515504788097268982524273407074610705428814179771996522200445233403138799900260623696689135836206638236006785020503198792015259770338230858974656097295454791497250821476768055641106533509772763072586695507867253827891586994507287506507943390969776320438863730708666538889471624147139444422482822205747610658637399056331445329664265630915621375183101669526569988462589589555364369038221398054732859550935390933009827213519115419336277224935591038517280081011683441301018164077485243529110291210871205195301461312051729592405715329877111235137732613844347483184975356025057312114460290057982460519861193814015640794384647070195078578348617605967615627564187505961502059490501254362043322236422128595477275615029926078816420942736093162864091414007654713490463032073963211320300378246565302094269213428011262775424218284971671343295762901511180715918689109585421159668088865365732616837953510921249110150627861902440175078831678367161953612114970553919438845308680904772337517339553263160988200260078462650546943443790097068778666172926798774746995600814461358850225390272771994652136945300071123702940611314430203756834584325072948263037513469371174830156262224470812116501933760107694002708058316296520710974372186942401516991579882753779697865663250157452544539942085318064232468113174890351150428601655704491337981359736829550631774474168862925858844394461964775736947501751119560598869298926397491013473135662333560775922172744680051554877494296818701325972361448433126894548824739831984579173689065630426195214716239494209313881068876686900963296530451280754308757811144145414042820532416916728644214246009547487152689887330207686678521483515177885098330307244567141122630328119554332177743633990114150516515912500241019255779840449846192528888848888933806298474149784330086237368390364037689002083069622233169550679298610346243254083842010558738034145082590475124722788899069365082882484697531292225348200611162208741793016836666879652551383455856584823568320255170012216752650745514373082883154857864118961738342278605432533117611458721650912091714486732339215582939842111100374951817181766200831660154526682421720403107084247107479375202857402465468538904848853493955364387729207290445192532027283260954670654699915458665127636679093111344556058781667419043504851558646218044682316856730624157366359793148269402040003981057177088101517521634126365936427670290594284730421541232938832356758930494824929037628114540429822085848550927534970874003820237861392268991777424489260766005582116622795605008647152955350157841268667890646674012525770469413793573734820409149028257933038985254731229408586893278564279252532002412441899977908731387754223102906617724270954559079022122494121211319971970097124081416789932569277846273213909869456554084539407231311461357806120504597741894534638192584355736303415514306870877174131921253180648042061217064775131119167782731499134499306912890544653721946415312686094302761892072779343862532815158788891838499126129705911897588905824501341082175257269479925459390559178605851836525721139656829813007513712382826461755361075058241845380145765208361668676091388759946625903797995521476363584146341254074766240453245035802044968998819258932836280386627232342011984290713968082832367657463715463059991200254404633039291413044187937861672568460556403183386520820500445930418451690361716214196257039092064833465324109998386857949500979127044720712795568732820374068451551547748089003490187355944303943255005172643509766699813434278020011741440141629213790067728626800501572349650897951834170045096975326461315946413439687795090300087649092797477872521601344510861736318777236632832658238838640228377198032280039564978014007351744681686931888252799645851422685052537799988204060272232551673377610724326383288529107765709019304246936043553636924109848479754825226029883485881910382141952471583797030733814530317630821975795741105465887896506342271036552282508529540625210439150225639712808982357517715028881611577444822875947099349352147640384161730995392372355581424979346211484534370868087344971170513896387286613265722582730190392914298014932704818384135603785565693828363485073935845540240203188019131781177730536245878477709354661715785790843196671312276947699591505897813911797114341939143916100489378697191675580252809707477347518819836153196491345142234686951264934227078193046496683299025536689194246609598414091540041413854818859720519647341816375898255336904554562525229817819738646930729943648729521776871078625791841502098506779277364220159110531035274211222828005706680868329837484619065803601692646397119416246621429663581346931444047952935278919021742661205541473858680889640080589917725744011286160911209029722938852874535296889793253624807713177978177861974012616600723402835403881823203348555766061198245054955016509854497242417980899848285912663278435833751654826300515064988300887582466256548485887823215727896374965080008392998904539922038341225898151997431053381385324847416812846185629021635545269765779670488484940625481088495609230604762547327498872674586698462044510371522016871007214441733868518266897490044947728506991302735781739895149804557530497936680445718555445816811548442381186146590292641683653855502329887420287095005438619001839663094475790099370757650475147252627826774341666975328191160744594781138136269581651733882134737466163118651538035187301456866688508814047103725661033536958284773038753446855090518766547187171519707271957244088935117747067381961837500225544447117681093246823875896154610996041935940415806793010169419415946955597641861223762704104634189130605862316154801154940066532166479403712042790291493109403521000129523841513332400941822681124529736636055456734847649612872597047933338081553972428638252949608535743672863107364099896662037409266090016058762077573909948162689475026330304031633848299410065248716918922748596136998040980273690621528854802887327918310905927277707462006055377818668042353430334839505234797223171074070882307126409580380889459700666888282135680162843912624418203769186209725451600209842682944384840823058664745653810590157462080865130613033487966567811530142172035095493068565138398406139525225694861705063618649620911236479350159539544197322819105856328967032886565058435579583086729279098757878143767233276299295672026025296435157708220335466872282873759990640829453662123747062419751443000773810264054691490928333912238179291384175831626406114122626299722147660108916345151622013224134578604899110099387820995356331562372968798517670041151072853108749929541519335466001163515480711086296295790673924402908054445101816249525330213187644583073560824315797281743639262644112998836249840622500827660247176069084513955971483506612504571169505386521398951692327827075244237919204403173067825706118836334039450886037989342382231446301434225825056559344536218492214585925876421464341006528362593521432936476665803580190452802932779061251140828984844195596220568374423211622713147531686345530606048593966892219058978195985957807595698842915468380710370239307615932958456542445873225737584294253577285102078762164900975456113508648052313634306668738673885228135741973296265490961395629392020226029544232367107948790695958680344235278830542545670450537333474328928255536792034539871794688354010055528627492851315664647368801430427948507540340723663014221001234767038523270576609094598903460848132348738010241462184500767546751431095889359125799432148610267272915536935408968804352827460325289349305434834521035710335855908298209453867747269269446667139892399193314329525561758481193455263197617220341867368320220237130406707257535982246252082411231845483901113956537055663043794018232588314324468962610600948860638760732973830999920922524159617204761515730897412680999546370603213262493761893352340202045119363105905667710631220243255440553700028778785234122556958348301417729097857151869697978148565421276406598600343801661499039625574710857329411466654291400595122714949500922287979879699609307810617180549171868799060218106398606677250374930833443636364314107371052369976768330056339839624817027537620488166541478259060356361222670503827225774568265129062898173060043502896761338460508345959624832082778869628305640684297828154516808814913741658025589731535589615361085320268924451205254416236808012967037078249534339762871554108559244082774820359141005119604323082663091427873053874522434447343656774638796598001719408691719937389552760799778120451133246536731251490568047889413793392340595857231371671912466481228140972589984601171916352995961798841171599267631695668554194561510138894937814398967748467434345513835684339806747476750668332077647039584149839857233401995800257158635783924533650797802212549507748471396114868868272069939217677967606358799306276054147351067473685203438684929604592512019595545116233542726660602604779701080255966648078869750421962313393977011052252628277327562537348760675880985235333595361552732144415549658702037149367679392484199304638564161225539022912073260278345948282465893741880848856372840562318345954218941452735438895562609101876699440141026614469206261504243472209447251892155295235192504217738716350371881357105434635045723543786310957467216475070146431256121823556395516003333927620094820093613710106031538080416973691932489221011029515891759334499787494794195320029073045966777071530502283414852606395360259388047780643777730635622629540478814828290769441069337012015295963798489026919168022314660466210867372655701486503595477302945903744105862586618698363581738763976250274012940570280069936427357616907693732444178395320410636769585419639712478603446697146711035309286853521312369033957319490950623264705750363645125090626401064639271576399399113569090552691732050014152220280443117990296992468328505555424216079351264478219650701505828301835818466087363320563815791808324317914673762898063264343549986160412659369740937584864515221206145070456307012809083040475667146600426925474907060826608883523662736156719852289107499308931057420278120786107631543442028393636109791650967723034065388346954642527456407114331138261337722870765959319146335270433302342247987129880189962429945874970260478618833003613658631584348968855652047837219081654528235741322926393017906952818013274996001319445283679582871054466638122076543940918560540761443236858774158793745192786369719372256464636704979887326111684719578951047541237849436670507181693246040362684779549793226581503165484875969509128423684947077879737016486764392310699880127997150152860583332948954719487827370480439094160427602572239167155675835259285915407307538905411470631820714248148059646937527925841702082687975559023655689700868697577253725628448642652173547881521019255305793121569965992833849458356057261099395810508671886053569984068918936020936769589596671171211444655099345903262000833715977284451108345688977419689169315537784479966063164312809310685888665755088583142539577614282724482289071774149673157610911456565777478080285863660954532125693509757167018225384484899243061886147095595753714791194959835636697069954991247600696430656842602084194442098859892555228006507309341584758963181886195445316197748193656320962945832715443298411524131904061217798608380686502182808504556310692939250076581795933153427983191754331029559032107475041056148649364043051831026714079536272056894830342975539273232754959949278078592961754202913027434763060718177471624698877868961447469067914608106211388220819467666862889899951545455950973777860474909796822061788203993282707525342082195793368791150131386681211731601607828974173551118834052662081106920692994502833750694386968536091943860679005600693594298087560360861306751144516622275973459116131389570306390355530318717680384003718854759541376481531973413179934626320522425974735600276970447236070690928547709172686150890552568423177183223679132915688886044557690904115719557730928911572020197077975792820428572141583683015157535958978606101031632764790504209894776466711350752985467855357189579820615922900376804352573216907163638208657746248029354219635987341547647985892291182066985523606174356373796645708024952652161342190492119097738026545826134893377590075917063137202158666365167736980454861566697161263128496881178892918643357691329019062830056187170124284904607595168597528524390128610703329994212905783916059835069054877363780601667430230451896948955027333679657851881814895326675526627473447352498143129905909605316484843307707811506367819182803785198825119921791334477867060449154658245157729332067657377588301661027093961726069833012312145411236988456563601094044144468634982218123606552211172370095433532454926379121115961746577170085708439882684711106699485337476467769367807851770462145086115501153349123813192891910704256696021542964601679617654079630256513384607183116010459830521371690197891942500306725843556591779213976165447879508943992272199924516732187441376240160238850636540221360386612937131363037813028867239139626484591844747660895917015200755351346507387120949105419076950208165643116056322110436717015619203303419155035143522743644173609177621083436444540911334951575609487177808266645211617715130940129233574737014324419017177316971316763412429858877977579882699262526591087026373936074010723776050760944318008784045825720710408426903485683109606203803925006041357699933827255422001957072024944568824620563359655404519160726811883661429509230980187483336309531911326540269501977302063179484761632420114090341298783928224295330594072649597809863252332709065444565300107565848026932390524611100021486961818628718415200030616028435245301342702608819551683286763908674117223445824611782471848840510688002845289351186932056988747771315968741320394938032043239079382951489964503579340394073075820329124031614382808090368740832279980223226573597897417565354629958775063966879270573480307998331096848865307828981060756740427605241433549834753469040470439854257033954481178726012667594171564281435603176164868540309576565405503786460566141354734912501272179473441697983945439817559874479103616687090176963164706334069736741648015116287238488525834367362013110953024019402842439345112948752660208428838835310022221376133352485321198793145691749528069566793165328637532822470951088945831228543615056300243231512548696960918443895703497441086577391296821549848524931454065409746384330968425973022878583060271531378566034059571700524328089506076893510285731540572935651485658067434670027674800452496637991424641948054421273628309781773347871233909087849479263608456762066294550191529189663131360553749295276874951954161536107807800273403395664643508185574780241091915406083082885468112782768943646216794606258008831225379306131210071307021152818609246295754511374317594924664042625659581093972064726354891508280895879442365581001330974933183784414797624028729797427846230534395821009369029823305723295919294798393970833395011312813345749427166628057424474150247123988774933955058416703441747551589926150004187134363067196382650645607882506476127409545596952362838285571029685629639081216012020361524412657119447443570343554129193740535888953981932165334434433706690175831300295323393141493485718171143646656569026013905647610592625534433676739085633511341940273204251781158902253344770517508335318741646981964270409777205940081068578977422401540964505299440980867686621640383200423497991880981267689143003049722087252892534963731300837992199122737767709939217743072448367185711833262177403191348951110830162916105902800919756146401461358652816432732143526059987989370979530602160011538035770120943252868236212848453868519236544056105896192524544092943045216214598499008454754938343754118554116935798305739970561464862280327996238777772654308133436863971070514157792694797973206799633495781817340557328874955265580358835283259983267887488691117922202926566083135386919639880913375254636087183302935006425974333794271629175543839989701588431702764437906864109126391499055369752742969524724274400576526548467501330924064778567405270436953987610497754197214061864270654039302179345313563121198212680306834279646839945403153062318739774015667927009528303460576852374428023963749634155465986159435502781088130017756369623697261930916168662344219526849619707676822033034559002695003172324806098680177476879265412690124908090881881942705481471895211501091647413101491858419421574778199636511666330165636193049162085678551394026463577611060672899196221319822764239567940347301641599589091011749425461442393155857299999878330748509388971921616898798911505218128197695727810287923226929744390087016566482450298356769875676922246745366673762328053389155576333703523501123901796590559401357888773158169912421939362111638542731217687001235904496859387753650118896513239311482330183077898089597830398089837499106569622001021310790105858818230270360828543692250868128615635488429974571039732478750828079287733657318041306075065452845367468130803966550456686561847824267995508178912934868746503827988644065069565619224572680303523373016817814623704589150322274646466663040804888060581576830558287695254245160316198698806538068714226670553355804909854942314065709721507319766380485064781661162378761156784444454868127724559471368167072689149241390300082741171601342626119762403328728556438339291301655771509543015389666785071734255871596082630858934202145306837680394871388735921942228454907611096546634603135655322282611070705116160186163355000377797336406249938627960984171012348827096227752548429273352020967641189979758373009550680034109013879421777049271046771832590640960395123386652121667096565022312830034461971488413718002548966980086346013064059932816063461424470706651884211281650463312217919303899445287285280940289849790155989623410603076516857204557705079513407291499727988180559790545862609390992578107484939899859120466899651355432446881852980902677316481204826716327145190142691083997168334122991341541217360379141476965637889771183040039583185676949045750247206165346748731977344073232185236434421939026334374756088409956693177250465529679662420076680055085937264474093571448481008885139841296012881119301275603210082956990030492053624746789712636118197599828195607758868893541040327053696520878786386111820964853598180977061632609119030293129556605983055812695056420415917516712321274597452442108622003396126131188464127064908446505185798107381420704820571514623896108710237213663112574929122207607555333641615169584991452411394844942003364629614396396605560883557662645941085848771100268481924390812331405718548091418352179466942405765119776788459160125322681147629589004448604643336249996808330876525992516321750421256347315873209600218677578719063734997921769087597968994673665998519276161811749244919133068614244207685772571722591210387900847190386616386935346949483370803928615318640611049533126117420685242870037511329570795291407499468812437794562084340165228964971226837641473453626158976087360764432284188287153387756938951093797947300908687585242784763913394425636346610573270812640209066591941984536724213358216008492257988617310875803402953165078113704439728025996908347562593067545226302125126497613320319267135154878652297964484866639477474837986342602673106095101906106263697653074245328849265896553507255876041981680027874197740871808510334205408449179086282343985974004920077321045175913582105527166959491605760704649927719891149334381768600295127765008603465228671792995210147948453485440175038221943341374899783617783740137779308217769218753339204632344933482903079070435428842886680732876518347161837620200863417954147804505154056587193909344456226940639832979230608234269968764231996161739751105341202748616145750677076122266526971920236866894692409569567390188649709337037764719698908945578446714156206585361142973006229261651227502050377419389104111508887795334648473135773520685694774818422975448898965582996845333795324928194430229610986283563680234032301522859040167291494554891433437122440891001110602646190018573575807869152049825315541735606084423537717970138776657558149220652243669308293485643180223292913280611915101671441417448958242739406225991989378893893598684358504376774881708230616468697399519498931818503957083670142680134256437281705044386703207244776622175332643060402480332498976572073215878107467722658777813490936317604833929023686990177390728927901008373327146596245063014903169819616288145985503184001702957783967190577483860635541338535161720374671766930972184084831944033733868481225868525638988724208913072245007543592856689319851665415813186559117455429296328687029419395579080890605785437256658740461696412844971910718013190870817166849451770360180046409953895392533461482764272610735894676283269607426913161655726423124572431676618647924950201340126153626047971939279762449814340592735343966158951346483363098957208545345105073096808613096503756152210834850198100759446551221005732981732375952128982145816213441119992346443409191645705433322129211829046012456479932877333652086051245260180644022612569526775488884293012672950696476369961364812645634877264731391863650909646634783230307342978196823746874532092508927928191449203044632733762902199336847516737779303375421990965725651678529654135348061189243557018671570794233046646433435489718684652421919466239394256785903690812694478596870790206790912748283762851478479401449098524245007456013088802677709161152231820847603093657350452035923172905896282595106595056408896472994934100803794612971210466668028472262344085859555275912575330463304075510831521572229534823191365931225765356898612100216323974460645128795258191937600182569904815021354135588655554126000851195671760220641682613644137861197919805534249210824715398863472901817561839677247182281008048513075821614102340161669444442987432216426003446011726361918629883584038960281468982642827984019066037635420053676369660688363312685413600259622762509237275687214039568429583092364683495156265932676180062718526624404075817792706601831529793554173222903555390593209036620995918442259135730272264018403790634440522671890483086215424641102632456958081234532008260928760844809782129002117133906800463229345106941954804611929451269360297837165884288420880761464776128317123205393509204608491361894483773366326488757890644932740155971352601692913318161875992120390668812554625374385325479843986896566109156236009437051769959525678102998711103618124636830361201185328381539004148701195076894688472714170364012560794653551817997860369977960389730138310344879059414682963890831299392125687504101819310234018359384317566764430485486330142775711014579651994416163205001596755113710048535569257955999004700293961511554311759522468752067095082100288445281640013650404014409320810355518165555263882398525798936468364739871959005004621261809510968509655920249072777267027804317127828614621676807024659631593269919485709726712082821772274960630015413530460841001810923988588876150899178009689148498690043668263089701743432056959306173550235300786494605535549561381941078087638731100827989108374709232721888617620792110811698780454261134543851318433157993358766450097364539669421671093431147312305960975718810337939945338492053323196059948916319024497980085183069157502363028842402045085982607081535100192780536395394877790485585808299864111391373727064011059945783938499379311180257965935240131957097016264520451540822428467247607405033061250425870807789299498073426945635599921827177813914478656249064233262872894810736003645711538579611233998658023743733940365972419934383823918995327187558174670639707522710960952075344781879773487130643141238088790436882526874230477775663070594226851077436306316829580234735974510964760680139433525301406965195740877698118721329758843228767771821178504791205988269827349037905915174549056037377416547368331361675886303420102991364150942754507647394569627248578161912647245327690239196719468033441385782088506010872683023552892329622590323099558844744839716009983959612346580988951217795606935237200280742244669281049483251675363948670575173053464718381612414858391981162422226742943847108076742457903613842714887113021888185806491706096526245251584324510357228271931653991188747144134278495086040212380342500627806313051314539303413904901085531087745404478835071122090186047989048720629810139544801001193220145313807351648530524762312516944583705807548570755103937345544425806995235643836335863754814450394414214048276581423252934860164339828071067016844848176891083047824274220341602544222934639676004696765514207012679564674236346489706389482521980912199677530793688100851871970559480371739158352416749079758567457940218034752421787021661315310035921352873359937051855305557228850269497018365447185030171363493925999194026750378908922801049472485619590682907905914000167921313263564976386363554285808343671823506150289010462818913681922940368977839674152746163867503520346291292924722590861890780583252731893785438258561997737045709130471552281192210418881906877160392694606309655257091852444139542166815842204407731060643395299076807672870983032587347875617808720111747629780583398717352943941895327483303974908371116891435602684505911566207341911063076987219956896980228449906357722777877729734472566876736783607467762367028914408765537719678222033245366543475285348782951050834412780292248004814285417829496892685075780016486790077252309816757402459976719132479856407033810028686499868717053903239318009347456323522850173175341596486642743690547795669913419279158612712822565891173405307677933371008774039503181653285179065067493230831208968152275428528409538183786186461353476602416233240994097975690719624958671897356353494855161839321498780119897764348659435860532853484395549281032405291887867854626419590035835416586956455250095179397176441926856415370215529908841680582628890904824865210482504841672726365688433236078891935352910890661978549978247037296272991247913329551334440475595600960742639512488713905046490807743227002029136427283617458215007799672917284920383567623171672051043495190881219771864364092821777028757591046786477372517814915787129985368834387741030544049448392783264156909481226209825094277807736196591759712051720665186986208373641416801471200456991696237111475706164221773409411170490357630444606254109613036354359787247207286360412463930045947166219505083606033236517103539371739889655921026745888790960788854863547165156138458931097079223277720489296629053459659783885832061990554215300235456581081270714958771067008423451012006504740344282212953387898825214019093551017636679841547718502401364269971299580956440560646233624676661669508953113249870863421615707256080120797081260396394931664595039753115666084567929775009280089327498614661492677613406288343986133701239286841366628247721920805010896445200225711109237905094226564746550014421712262255529780405992116434721758737337435909593974910963548909929639405187445803194786541194481235922748477067204136373491152256932583711278979579023593230854068455856266124234762227685043795000914878701123543721224601456637563906792349766383626650879219671454065410587815959707755674402507664093153320263906496832296694147606582741610293921996745993098955810674769684473990723939752439557837713176474018236154846957408809041269506294644268479177878998353924723107490916937308345097760137894736437139727531564094801073560878450270470789383970428769698734279697301416789623159135432617002540431589357637016445643225372421953368094899233174312900083980852217691418883083469203882778893773638207086442411111229513528527102731078822850762795695946582609615746495832047645412057752687730481033119536022820607502350724886206585353528168987708547857266539589229143925446498237504569702960700981513733396679748487005488478331396373667361965476129667964168580475748801979739040918599042137210542617133112201954052398886128840817820085614727018322854187219249115859593475678599539077923358935536968482211516519627684879349293324705801294930165021189598176195713565797426588012243879560022136132112744758648121368696864185572473094394582908760841263042111165842800698646915864878637762041276115217843455387855565573898187919976287676089676161929431695066266976083876044091986080604300199955906257047736083010355627059980398218582229522496006141459317563123486925477421319030935096577894304905434540411834512257459868147147749951172074086224048838787208141299170512206828829247304628449736931779888278390921180690464148560165514414446217329670801248977824912245106329714189670008785605608405414989920572063802992136969704846137546963634818999120193333425371003222487627286650765532554926549221732204620674053313085588449686224880233591459160253999848708853344788544009048914939050335536356902425877931908972243427402453241164255399489436940574025350785013465562108929124363447485772674004635458396136661932183613812101855604169659528775705936620561243172158173683929291226798174128279515477206908999837384914391573972724713900017945927359507620885508046668064984250662707612010578470098540913366746510362830659365486642487908089112631999987894048439617707358355040637852151980274696347857821660293154577618315531552012076333900771602713432232537483523828955271786488601808184117581363354575541141894641192380091107677970656775491600186393205352536443012928622633924949726157604959590280929702704762951175705119539168604888771072650886125859762865153770237441864051982335040194054539404838519596294894404911023377037472914975894855156363372975254913190230578213540256377809662006196060693376446303502878669733106925565761484378589903899789623025010131387714963615637930867947909264997691707306104007566993161168523362130957929021081914542016513964714033169053335201851019951021651170786566049259597816188618998970864472225869784300950661074264055248667623484450658476626700503327961422849617877680574854272041185316463933931121758548351659510514836267068863352675095354421877930812986108814599011244127921027621218366439935323768511044568477765262034783117628830743882376095677426923775178045805013860233173069886403481368737954939261747071671062096598502455054049521549726438010201276074700131032865702234344972378450939762955274071021267012352787829415500237097732587970272394655774542380078674927166863142986618315310363143861542208311229641832107121802148530580199968582182149128438103974800547311622001227693210362687142310503205719894005171230846855505758776617663099720351781157878396474002836838317304806540252669732653076561926366119438189595380246737658589429385837540887920373283651657388047673541608008832758602676748882342113180983413373006883146649497685300092757217784228569364887085941800721327893882813078697491122765361767339775346344115196317269827375853394519767993573087841806646519298241153646871054321389423898352080769444481159558272937738495875992061409596779452027720974706785008137430131663270087418485050131699506264800590700453056330585466749312819108990575127457107756100639705475142951661356532551369592265683389851516791287492188287796770307732125486511645982940246745695507403328931645618029401435839352780609873910479196007558804553003886579131822094116826047567186610858607441335656731600855304056515045272773377895729100181868749179560907326288897006036446122844184437541642535130880626603584783240482439751820633801059195269364123832884055626001164355702099916328577161922884167579686531892476582155168108945564360239402211985745235054721447308332098166819474232657362353148769846801179607499829146701988666499314808965448266574746581834758232902648275800489205243565361457185713265592685103913877129557609579857575355413531584305371056687366548610364281188786494675500628327999578730121804360788611597478266388194406005135399157731788111325194831671073206935554788301544523456287591687147700487212570912883997443093723848219393890813644582815213575073873042259698640099505771727137077228131950016382139905371583801542868521855129747639589070866744680106991056185810226218347815444988697505181705329779336706317111220696804416153476480746211154789974010539001135901458257933027612491937724302984981380884970090375791582513219515335677201569898490819496342568845354877644478237495227179963601823317291853084461228581296609206745568903749241058130203801620924188198138424496467666020479199620838340350181385380865782569826233941416690003087148971409662490028178978023036416726912564358511494038988631530843563207491131807577482216370433208618049261744286852185693759891007595733460925021231507519522106385300887225443316523021675406962227535665690671077102330072485380986910900193316950170314895709156765663835665874956864624560414887477381998222061378099277183296979852891851322211363430990166566997631351529920058206438030701323436955483880276300596535967552785880700287239561482781681522645731925789307043223164312842848813231440101134136605980543358012338922566702221728893723925338772095644047708732179788647437696921640750464187385668077589994920247821959736877657440628461655801595183246408413655813551543049410825267225873099156476749910702145275769422237619033082185801543710199806637371683760377311682393604133763058436505347828515996724530580467517444960436568910187753621107787317915784568493687396447216017352654967627429785149911443937044809071436290670970708671670981912303976544790187813851769524307010020603464845059686869725475801547219552750976231374036819847916727218216685509902674679739134968279419240528004713321084695898971380051709269149495788775776447565221434103229957496294977917346702936037366227724871037041347578079273687253602579632932386092591593694597641329104146559838648816533363245466781569054574056038028759872793668967641963243863146981045774289584634781683035497865240335295970586199457511625197327853071375061046222827462260789960750687120589408857531738024257333537403274709022317910974167403365424863045131061775184951941776043270206175584631609375837664256457888260059746600410038614959593159385567281380205477922111758370299620376834058516174525024053774311444002020580026858811031823919584307539518536583840955654788311578027795739375450799514799026339762765204779447822068307591532756456363622063277147696636440413233196710451311494301729808884023313823087811669321204805294650358097609985991641240077756789408853602247874814304727105440267364163411243508550581054688171212840137611031574379642980069232809058173420776140912051597324161218709895197016446701535364155547990517025354189271952680202856858602351800404611441873374511617776546075193829820481383158713352476358347570753157374088223538852892964405529916995809832591867407419730220801497264381893612325082411122850910064266674850925397837139404148252953212629927503513720694371818512237823914948436162325251034646638317726059562385740266292002084470446018881262527257074645132118701283958393599376957926508256723912409921606343852802027042647758683194159959711950114000813314328542421723637307399221457818432842706581828587343776618144858800262507889824048581032695658072134251998597951902715308768357494432833028775391763399935660490008743168509906577467289342828949742054061738978467804286260584311425866958756980640939494691066483719202849022914970199237975682052867025160894102486475816172406174390613914736087732789758338112091883737613839563623502787262820532117048194835255823595224787956747359405704897616476763667100820962673952359088806372109594991948023792902525616252427627890143688153410816858884933251152212076054375062073956573474860226933232171893397740043925267169183189858669301099251462774399926696266548538958782494783327594053702899601517169265706241776591752523695427325268284318119263364210639468782178849967950033240740923516030762599637618908828504244960445597722827662998680563369825219636957794789479957620955583091809080085723886731217043419660886050963310332866829760094702556356623994676773848648775650008717290502154781275409923876991848293114075063445684190245315752896061422432190860960604184401127872368929289089165712738446771401174415719077810921017036428901628820155700329350623759631366259669014515266501467541749165080937769393625646985534852947367337258719470419752523666522620971314169324928562695207449304464776631101156294572553977098344051368218700814046739961080499974188718029330883132470223426022996583599358339190914135926305004288357619632540946529964420817225439676425556609651827176663474169135392767769351397507532392221648300191565953770000397671770841350827195353408452164049681445701540203273302039593223967474908593029563293335878452557073582431282950971779979921688726107962307028656597585653041500686124132358462023033559544624024671756641132811100912086650894288411309734232186552096356376046198657473784354542634330427797713183237680715982744491657615439060253649306974345997694643880190189314229591088035355811171646402530997855902064669506004948996873849566178870397813979712465101505320080028577067351447959404117664506346781195605726356931166614942147884838944989396264134747921795257485313741242232175495112320054372936663151727308489584764890285747201146430270005464139710799553892076310905466033266170694730615290359604544409767510576112442551055176171271623557746091503614705096162343033868878712823109577758518572142136112730945511348979016337494271787484279049122399928221692126737573979230505186609095047728116675991414708801748504688187358379565671660093987247382015877678498585421038327322089887722661549237622552947516372305525435847884232461687402756410573950365973075769007308069105720862505781966290130317875823112319380647026406083520943180196596416652449005473502496817535255875784123374444327748500732677638152150825009808778797035544662386082574475272338293333222859167440712118010204255161441561599678407811304501920580631664726192448390569536082211314468487854694269406797084984190837052849542061262077014555609503426223489617654148798455491660345060699355876453645346468988419538560212518121315671340878379375386675651059270758046484997596282334134413592829493966185893501076281521389678535119630335671895549730364001755947488482402562996808065821919901103327832502102554641775568115824777434876716059653440804098911503847558035549780882964732940748442262621989363951430894225773749134960939403576942712693365280976816135968950277671032589418659843764238802500802844496005421950444087615841740042321183547791097569751375533233355485929760278375663755207161418269026514768616799627146844770930519951634348316321223463755529955733464528568724227950693218808347107602521949641952915049691961596516571383774460360823886096964952009269151743686232569217445315603827770545553487734068871195867651511321714469335423488282926433382535192675737840966153276598764448617505308019972419995283100718912433235464124769071541073728145888832958858860349738446697084676417937228686085476168276889002364416132072545990596693620226396156419484217701747415104393478208384520568349864119546759808487499595218279930766418859269522564608251772976533519060043789936632096429403421278990378017803421742705326575751882291189246135147764789494152082498674198786003296605175088557065077305661566394537461464019721987197305020850096059923154883062361488363787741682862579522596512215647788354720477785189206800079272903924779319529309210690700143433183034160654941622321443529936408426442858922544774768566256004877559069850978425098790313924698657470400647448378879690604658775843992010260909093305220006167408330581004463617432276912036679384332755858360936092487320191731222672107740398842802047764492535215839934566348361693264877109894300085331251101500099102166527381892841130928017948043925302161592453513863364043940965449888433254022352610700171173542885841124193500247056594782029376503468066281269025956281358209508151732500107380417174013016325843998317883678193277320279405283558548463871403205495465738566728409441089149911464651629224182607458075903672923184515704854287106438792989959369219113251106850039888174606818903182416742207108436657224232797703632142450638566264792374119735993370853755720955878029268921356491782083457811425510967480546465938204867227297303133080526965441221109774204842135155815595473025645195590998501399617352176108787717706574076645864269327487735403809445743180083539375208626701685588474767698486423511680322888204188235001279294520880481280128620659264528212979448515084245843357857051100949446368189816099793595779027442806632507405785332141364090027772089915691277505708408754259025394047858312821268824771905337327921186578199455009910105051867867905477821095597471545251244193337409981009877715137634672332905569553313326384988559401562399115754649510602043941722982714168690844010118784394472932205788115387304334853441169148361126609973654431318047020353910745559708038256312359549290528911274193319592038961623102454254717410414853469696965785493407768948429883756572353854860131637473131224764336347174910883368320037239496091518169507463925344331361109486740263625439829247059450116614419043364007103761534064272342613318063180876539850721257398325899591993300228289746292271093203975294474722669099687515467899351899658106653908886304149983061674814797940370822434795235734327960728939886086381962072021267828726057349910623582420331333609931707886524631268082013464931238761244847305503767177274660288958663462713386304608850088578157012600872868377276334532211365362010480944687583435815929769077905575769145994150658296130937072043048427345678898878567346996928004522553362715688423954840054086506966373416641381282300509388292595250144198592297152915993215617588208330996123758971695574465114664240758015335516114231635343160206938752290688966920135589553336967882655901637642930964597098498267448071788505869411903967582182308947274160752177182829023662620409518236117260967035176935981749125141658042096345298964834201339922919613484182601606123713130218791371247482787993149954746201963842191977296495750758069489738110425386000751574367485399224054747829733756158658433216309020742056343270335728212642936354949838681150170557920598471853918283287683592359749553730813970785562722098484307069401197670474510621474593215581888041812125600037854716718554312113742759114698415714316461835201152389719387467321808470148566176906811001018247442907766848277680257866418021409018002840543648019987933148687585418473665730010026643162596951025023488769887420430922232973424317862731385947892184987306505502998008205477427778700516993388224378971994363974994196331345050929324622239329535768657178206427506017497775679726533374801699973438593960430087428768178194363002262187913181485631054597264291132814698912953637621099903968352526916174380619709185548166109792793620131133193007769800028570682471196677155669249661530148647814676317973053612080122627855079514191120807255968381676205208907013858706141916323624000205706324370448883349865396720069857763313339723534814963141435684400639853908151342655225867247500929362733926418082032497304588001082395799734615356400349363108559750524763811215500796249308549351260231467713437548386253948307442799193203203604729067525503086414977516288182450688053198709558351282568823869936751521759915649254308970998314449870865276973025700933615177467285894614851901703750795560301252274045330845792207627097226320402736456183173760765662478626054132020376491707145858168522845107578734884431765498477730455810084607113063483113859689335943392298852187895012879722370953094142216718822912369146717173093622535297266755742685687456725194729026475281092239804913385502210323014951436467366179981519645426711447476830546713427468270896633828424905884169859466518627395986614222831207644197938276904750166109484560376096752880663030532666549713262981463412058888845119903091959950134314964002325504011383595959167808775515454984204650828300628337448159882406985196450875694414206095611655366543807613102928373151465899318479351755787001912203870580435782063247399578712593704782226636333142434840317352391793614409426816685174094394747249198430611667926294329454025982149786788374979508232664397985131527505149369001909421055979288597527319372508350873165999771602006957909957613717597023218386110085145918669050211420926685137760051715917375507359212042251711692926330334166738968654758503337962925605816818585663464323186148753786534313857825019720472362718287762609178516541029326398082489393175692425333101118389134072810776663494644965419874511600898205057034881034593845043864906306797999168456260737534951890789868721536475945889921571691557835597269385581943298655754880116748626903163374914330008608815782506329957155999783580325585921671234116881385638390154861447262215197395568784320461128018483940795397487886976633835799757794186174976690242904769348604914544802578441766967172505506574064192547219722066020435008822609784055249283696799889050220104044413442616849105490142294701254154679045039394687815830603318542340086035737466370871350027178147211256639333763965066453216361727822031162322056803783829737694102014344232024618689145502878621016064754007317716736891724631701814344155930092410270725100287193387093764749182671419298833882799455298042263459437482217961232352072171201671401342692105153097156325401311549276875677383598368555827125321965991441490622024501528008341524234106065560150951251593455259774426498938891505185035850685155560586529633819935493436073520920485462783107317635071255900228155232979748483429286709350932592612778011863718016210778326450178191516876203390956908876155700261258913253036588330557652946380939148625986173809386710024749171097301696947452871596146364109085878661055529265710576050730928883326467014625354097955227676911489877016591537296574567253889055619878689643491256870603068425407785167367652971344517616280497650936087023002421554661065309626806480201966998718146849377568189035796043648734014727719785372039915798270823201019092709396682643840623019896829296248751981897925731192050202178021798422703661157534432548325068535179953760693415669980425588888364405380784513477066753343421732028647216363298632441633718217147877406127505426484932920975305959160883782704871688331587107647536565658930493682151448967737599113670893498293101073047553473373568533357209787762699548578644287764775413648722018760082599319490650156653026513058302698179741527434756287381982600692862684882800491838573503916182092003906153398034701791667638270934899986920835653570540153161445252723378328612819116038224806364101346767010768465691456808518995959102801757364901524428951070170951900149220194108980420615152951158091952374129008998642951595235590223725609998785839632101731687485109070349845867717509273101250530153095090291982451641130467709833039953507735302871097292214805058325458291388242574302603587194622413360307662894557213689050798466510237462116065995848805428615369918478219379721590862241193095768699171627131454109626419405858161572507830597083862887527602191427017947960906818424810715971829878040250463830912866840884154430300917838601899636111457669169857319610715636822737274915206121664202051378474359139110256934047491768612540866217880514046276246305796793731992219855377809146250384837606816920278130209503391968344487206949981171410175288099773146182795279983399522238051542073927122733278879401161244964619154517880615285761667460274874018386938112132940179295487853076606135599451276126223688512689740971321671600872219373330857052248425938459297166112520699817833632479256110643185150416049997463535930127485997436355908343078573167394482129236847145759714524805407793922324981915805279495279422789300770889600385246680237300537360940903925309940739345273196201037597531808128597884002969211610831409866970854657886182345444407694205401692952811822325349842722817013123807872548637587792899888222316831589467601494016700860742195455264630362547445503953536899559379667425784446422873553529243872750155692586024261371773007648949636631902238672903317433032832122881712337899847422290574951382932770629879797309718914338130507320435696113588092548639640071335444945758924998198501530991239732973528389669138370192213859702285428035739271253927684906925946151959365456001874937130258072565830714361329379075803738229520714814435572709277778999370939350319377381682686636605030081999553011092978886237182830878280417454692459967471117598233037364338622980150741995464993389287052169259862572343274289494881512509609483230664474573480894929771505590166662878090968037110859096696926354378874714456977268260025785956083914771756888547304153707689199131635231294328269445134139399033951949028596012606538390763159602490963781211269116651584972716256584771372597721885592102812294809872796254618378124326111122027576844434159459404017702985400712313724042811936093613442677820700672828028999880524275905966836710156994458662489049439807997505360702276116662800065199876646920647700054707648737123713154181437223105095840445961897691463963389196353641589468087187067470260126648880106494507452410366420307433426248171409755886192371453095661786273095892446100310393339641810087793600320279761092626011634481584542246015138150255510815484626308929112453781388226967975862244682947299342032532628213805532023163992617906584397823200623128658121049062212354848410720488505599312445393495761050793262542454792987417362259072202267983353629328976346132914259615853160158100174766291648533717898081863154964684288352781459152144342724934404326707412823165851913918985322090718339682107433009697127428329567260087630616445698775955195758889798479735930470251848551809560443340325572543103638871205314153894862526975328207814739809922832925253899254551817082665213330073086707062454572675688278550448833366739068076224582876265628708203875986040782032698903261069452355465704077638135622202399925222227296107361441066682678692641642260091605196116387662091497696298092200694437309444079282020548220440886241398849466533390922333504839346668503798605516586974009792351413680357343612852715322292415501216080709343103017190736261320503719563164304736424979963918861901720637642656459115605153942731803260014575059958346990354413767589397846878700761515942324029202914193603891166717656622861414867392890289213394690999310705794955264832888576466995207435680704111904620259998276737520404571103583894412356223520673315810480231578526617047341168806531642362746435694893327714909325914048466820020935271499701981903656283944738804187578423941675929328599275103127200384544361057420074528992496420463175626891890201657740934565852346287588973636580154539620327196101868404893187268340183529408894804080274695126531915706406387670092653623400771901972050119741455945405605987587146706020733949357443091437087568559242982177815716946089268596480440611963266074220995601445409717983116560030700130761447201505654203799743942663954179376432992086618465760753070037755949525628910088381674751423938859785764595319935102085483547110715985311977505992039146946131123162477936153714324528356152312697916200170911129779731859372945252002183810096903932994280084948455597817558750555963925966725805377735436884443470761218329670592305059484975090839760597414267627123276919821227675256004815400620781533143177234531853551043649639872562651873584803921749830970176607862987484438611266928003330234044860075469748084420510553604345529032680766202834239884228588323825938108429325673366034959934107028637545231216614455662127335349217174293909528284638829042082673683394506258191996091229634850185014115936198669582771867185164195121412206463249635682210322387043771924314921030424492194431743120316849823613473672304228928683836733382374280493631063366162448593495770093821413510469735692162837786055437347809345079703382853482536527997041933792795412642737758805753057115545297518899523632427483119122125027217690662588292811263396656364858591657528264435921376310301499080864273703501970170112332710053072669661605844589404953915307115326403586894672867700377315487853152008768637574220259544086356242455057228958028598267572365890898228362470485717141568043471829875874261299348199913160754637998267918456158235874231809333545327944417305579371468841757310550070465632062715523920487032131409505942370698327771301997529210756188545020591223526104974594513805497543749867916382175252693687462297589124990404046104355144358686277010058301550247515484157641888154501244957333496577790319845879384187850755897406617265792785575467410831694647376037155555019473780153400419799053093278215267695671530059030629256625020551878024825465460027040588773581301607952945643532525477677874506990586168522378386313691096765043141410162515647860298732035067529597332788528798252687900413515835225055590912012664751720931573734221988355997430923800204627938108112494409637245004745792712912846668221759347375169103689718164591261250826682959278968392965862523803077342470121144668100043254614491501658110669911216543987109462242323571210043270035133676768598551394449614579966892439358270256725740037191787550614237168420319462152483727280183377918566836595794938695306750716400001165327542703677803555492785025979222841279037198353908094001081301990519117786023718464065430844531356372535779606815849115223097127819984172748440690531857132222734805660774361249945145072672350520075663344017383306995202180509826419545376255818818969280256458654528991748008177812639931530931152030311857792883278603684054739043403183624791457216335057920429839284848093398286983449108384052974033112881347466277055717876387026616691417598140306792825252363762775366724983361979454686274682250859335128136580079940142874829560823335960517057711497532956848006421161656079469654754392406383235019358675715945136319031942978857040050091427041236598330026561675006079777486293712540343630933300450934922710131852847608514766639034449328118700314280356909691430614398062983702635829542095483570334845607127631232449595505243056026598490441060460037587247231124987615148716224162592095999737438394958729952944893219591703137544931730189695092788929738220960108348175711992905747922509724603246628005308504897043885231816365408512737358660896117099592953579992415150962736555664854027133397798139766440134120890529263126627324192355810812887631750619355566473839583355921349969982273431627930702275939149106727524998623707365874872296719441027762490863044035223122425468147301226452174826507861693816809706304166647866624199007117250020223372095136482144386678468374106143573203059563104023454501550529320713422838552224018208669206252076180688271436551689245917185346240622996630441574979736569684871642456372145327301702806925321670135375632573548985980170769058146870341412497628227366745230449490105033148488899182804814315238456791399041131990464769402742411892079688446131659910313630205746968263089944064985317607768935174584025328771227411672033236765857537080316127547712510432385391003457626733848328350714917395893307264760211449488430084296141815987111429880866119359486234453832652841492957188385229690530646650808735808366970070881490285482573551187540163780944177418496945043008623603327302737226607884479828685412951675346924324766962424903334490557365196545415762003976339091850965424139886024854334930548232259032559380675028524951894253863313929617293875483410402729356326009290112869896858036085240206026136711589493852708370719222502441095365162828272413265832637024499076655662545325046845589472969246866988530757085531742672510731280370226533536204002147551833328888110145730082023800826309249151907222907505431507196561384238228123208149832315613096445261546476684236054071479555059834132894900431728619602872329549444122113311194583822133618734005311532700639500596027688722988497791235697493094753955495499562506164957266351332062284512301491018539583501025032802952943158109820166653772889721346050576997923911128065987733888453807965231829466068285755252053002333487903881502826973911917252109607542462351803749467584911617620797395126407202231948351516066240990679625748770092783985518966207162415298583997824598567228697163218793599062542582170002834861864870606199124492827249787712304678644420814829026407560997684333061063856484350136506715459352373249275083340632969520765028310087477430623214433005074384191125227640942863409709773039866231228803927782401833667596366918479545336979824127113382077644724268066697736070473582041250427747468125747499193770540943696191128107763186869741330665664911782449705494502560786486622190646592758608676401413120812450809195927819446371341203884626020737859555629804671358077678495736920207898405828973772875737965052430817477454580634405678376288566605127036411555893084157834777968168627121809032754048484512370526676407934795006981349754359034388196455120960373994189609847970008638979781667328317834847626742126379687228060535720759205955291500722057862107874926144380610620619001389361317407248776061826957837603561563270830189726128864428800292388992424554358590880985480145542002237828920453351990758779259253220109990341019242723195542232142875732653495738640184666512685080346700010296245654583474239816785723972989838423544426208613186330406628602536392610839323758599812318585293359399563822827930548919548342272424636829361547644767635356485190299186491826544175510872814399447145557299013781851251186469214760144691812123454983943539111269168485913357136277910162877473362305524827955355469634300433144580427210439671699846281917020013941011533167005978439843732879759206770033294990322632311790452220691538465754038633751486988982210746322244462908979806440652539088376439693560312691775786806996959772763662833279061410635918503151963973402044211190539545602161500424413507058201372987949213653519246312710103886689148383393564686628531022911551294852904740961798055477912523974221544714187413344941375728599126781206051666862349551449047484307597157476803933196188564234840604825783167569674154173712026837365825688008242221093166921259520731255155664226634549842889264639895925054023188347525496181268828903506762402428284940220099502474745397952012863640542525996287603843186824680446262606319652766648051089794262694218037865683567389498873140826360448112392350180048087199330965346146209660700462722066424509029687370825229790345400767574709061949049625004066611395433541965008153873667082170386500359481454487757502269673200424583946366608235378890324197623226783758216065964991537248663844716980662429641773473494754641474585684357506325180921446193549597130867577471476485404895522411992816212105991875939933649469220281439474839918794916754577136794306699253672860786178456509061484196985481299312668124479516708948359505232593296227290410992554426883110985085358057037321658593056635330033307260641190376557516703988600769696210062988155813119628894312442730018619538281745215898909111661298977473131053766616837316137609067114412517243051182232355455530231248873021137356534421617909193958420220391310805631002758698193134527967567637305391011653455652574795378179292488834743068189528311836586117180249570893178779476722653854496444096341312377695527900538000485453265773291322410668371722459647739883835412669934483366656250507582820375296674142268404076227157630645833907680533138770322811193164269448158574542564069968013746237981101949808699195641603146156764023719134481009004763837395641216895601439431144936139813983883702636038653064483501137184206350161294907490583730191111769884048916330175710581668698706021986332907056529474354549742456242527440387816163193985885002745139825321525933625285565913721213361297873612339151800217678053074601191564980003461853701311080737726033137721171646720287103632948939458304567159712626301007905678304569155330221729272597558678811740684216966620498352170131389099702390865094208589219263334418641938925336376404710665114815104441315617627539903503466707308592354531078277056002705856488866756904594231443768614009086314811989785845520508187328442832713326738047891141134060435075439097841433936466901524225740489184366733821702151388524670516903512520980614372440373941823810944073950561252002927650530173424999623159721975179798288235287609374295372550588761723636855736506590142874793773989970166181542553274857657743409752801778710647187481007363825593943542485010719777884087057166345731511053279836277000813641733502184703279252522087560751781074938173829606531253051377920720602646800484746422214753940277468106690047015977407877341618877876874565951167530999734133879064046220382603391502956974016651590192075912683363723713158916339347749542643683415980851024076774581196417063404818954478166641654871412073337792589280180922458930730738891830118574328461224448879986283461443661696279940103554736672895094565575971779183589283309803817142974756107050200730864252288532260116099773443057348565538329588719083261853423079523909534569452886366882849337787714875458026576711375225061476258517019148486914963994066121274294292156701122993930515490679166931329326239272644933527043974878609320230842541889515287160009482813615173843511150606082486445092373644649000056620408850459866387482920071199593325876365633605992673482084191973623652525654256443728993167695785860030929199828196677153914057002903873972349141540654592649094141874006214170629757823131537894240513127808301933507084043647989025083234581113622165529098562920347105455857448604015276041727751483675586248873704585455636324144648893672720717315134715049019884748460219156632630451216707192193929732597301010775792133031659750970758348152682074519021826951370554959713041052818694760906122874885377533179557142034223752692760599695966153784286058594283072198622668135066847056585879347447597268505975757136951546357414833216712471006612614135946180633617406686055079270990152263015392532948598809070266565921034246279104831306263515613550727771978483133065061572400406543683080258632228602051956996966133877279528093239808321263820329744775333535611505424450730753607464288771394337523328438612085406122299077671449083542602377139543866980853028815052582936469777155270523533625840852905418592673844307235319696997347041821113744583920281716298464681581542862188316346383882300218822582758311440300216625694287967038551487071445658571276877933559802857598619583399435692879708666889451914031499786521160963449131554212620504161641258756168561162486942631452508967079591429725750350311042513076708790752243015254393353684920198932530913391259629011615181009475755522878547005316510545867057648634850977851819220568858978796120718824546434204214989783354754521680421601178138912817852458281898166661641663226889694819710144199200824325173984102486013582160045721794657932485999823163496976993986106401922709485577345489114136919877727964715546692352771084663073134929295570587702279090324051326148186605385357563872734154834050079722014253481042055590226080269518897745482613715238443279853074219212175735925459360147625984772927000038443954028954005186317847710369364995768497509309945029580438998565547316720756280394494770742945979755879877984661247576347740006405702565308085613218766614713574265555366220537259815836124817953351677236585545038451378016092416357159380545090607897794780746577500705704516336384171784236782908293963558408528034733020073004538318110194329062279719326624209712604052688769624445372441541839004124682152590474328461688779052424920760140388221177292778600635476136675206819744815674096120975010059674781600310962194821957559365704476770950021655966891987259234564377111604758705327472131588183596378675376699920952458252983085210116223457878675497153613019556736049652273774669160209080753514457303123095582562942051922742047371428551474751530889297853095276420307740223559104135060382889042684785792501768247659653266541841281713609193401032270822103782777209817116800575405678476907218247548617838291304055774602492630018550536742652106174081237672660077413109699967942672631364648149493345110384895216110022673128116709353311939402376644557273105373953002101974104132355861698244941846106094252181400612285601581781146858366855026203357132624698562845966285477801603176415985781413306302905528279652968914113073742852928288026863964305802784477457175909146475008657956883024305809174755853818620080015893436830880163531806760099790986562488881071866053637421515895837373648002951720029371629852631856252737010869059327815643766761399456217388985349396753317568585992369714908924128399198817843685854746969461514043248629942746837006994963645336179384695529239455678419621647371314534516334400351949817898000467786283075866423509142828198590072554018042501555221107205725658097777694732653853350521268486879762104637997670555852925166011276492348639999749890699481143710345985550548235880004007491557841161789461851399827705097569555426708772622905386212770960937629332307553754012427757775834961256497993215005123744734586230424743166492275884881940257539950231340282489988788707459765524087978514058229081729954660350366612977465159301361373884332862820099316536160654074601693392652162170611484065315822613655396209665399235235073460380458687152410894451842437533838942082931578863656457280603233895859075776792224432817638874551341714190099370940640842167940024971165447923757780844172529341823405543451069936937655433919671987611482684972892763794834883433891415780444089580057570517906419373465208426571715439478106166795041180675120904134222718635484174445371352256671468580930503795038016362032241433985356063776460454786449124674537770554715650117855131988076014225840203735524576368446180304687909178421418142742108454068090918793033324985371783696031696726368325441645699823855650984149356084103802413558996917097808623516825820858895984339891674406370272550096528048850514433359286787059453717870800127501975050151848906050075158624493947791176396485486615538452322224830743796229731298525364172793142624351898501793857399944691879472806702993675212312765122042445349168510997952970560063405286422896280872982558760357055666480156415330809984066320179523515429291911326092794344156969334240989910800508172288809741886124201388903671451143017500099219058368934574677548877463339231194416186599126188327440579579640389630715406956411932105277144731314588163141331442383723414210770017232029759753675564479469961733934629144039967240044010051528082499012350360588506720847253186830250604911861907799300230685069909442529592117033186032746742279450783497696273577510628418858572589034534571062193842730720016361927758653864407841422851417892609860586999462343038316027504572711627057922423899835702621960260326362092551715637014713070084946320004460508816491723889856141885380008292972528293194143379474691298341108574321842049038100664915189708928298381598196529784507992507835879051281507802145575435356686821784405376707012381259506551731110432485925996345372595846393853878810671814016054051680346954138913094784796119367377406688088308097860930902124333982098808700250065654014067493978418912869934333499243601520254070892568591739493710938337530310399212093263079181086102838356340181045279476308484627801213298507549528507927085258595585659506229874443292740830632004734141028149656891814721544383185079656203265595372478927820256801963884217175573420600875270495963895193302305718632531172386933766897792883415731266844599914028599765340448207138342454869616212253641260252257343006525531930165044030929465536368257495356629737403326420744592372184391437411844774884004633934092308023119991030437252965519726512933035361178724196882892367699785341522775746089598082945813493101579340053464536091277877081479772938533969537889154798638998921818623844565561863911781369791424788491800633219787885820302081691538931669301322009450118728930176563960584888409792318162993727428820091573874216780783085031043636978190847069838669719243726005675148332119556796854271565975225092452786174535771792371573019424734122951010274599989791066796310276092692223474440613870593199597401529833754304926585212772984708268776047436880423108316671614392020303614285269335427720530149481085280754187085152585909623943068418705386132244120471755396826557291537162944556384427471508533418068188823123445611772686151559400768031591794600853260444272988937656024719860002803046606268559511594496909725385300907559988323049444748548485989094374921800942009494775286377131541503734770237884782322047401436897180587713666486556590971588187812799904109528215173575252445320020531264236094384851315968219313964924301848920744018094857237610822185002749364681001789977366855912273712811326952822927572492129753185894982266298485393529608333993276324525778298168029319650151822483398710573571821015259664743197143803783303974953687319748156921760397532048303395125316140055242864874939474570040024754047932791913224566071981926869521802257315006969625523131341896173533382880406387911907586635648213114496150891257566523741941728753165068157592147983532986338462959788294311630356501935171294329975407602503669923583902542900366149150617887731020743226219563046930561998854287928563394630521195321170518410547154044280013176937107444329636913419988517172180069106099963866277459034745954174664028578492943636734295864328494593216841291095701674835420401681062012251024774079885297299982524387970901716846229312703861886662318945614589744026016695907387716627567337140541907614785032028279178642500213181816199157505679866367098409504141996937315490187518695113208269480182356856129101537833266786672910842325419540970765091136456324875976491332488304085207772014037258115687153740709390077459856822537662855130545656864658912270249237107131722851734521078551070195046054583333518079034526264066271162519993677072389949633810478266835126687296781131894888011684375977871310324543637539878426484123738436844201350372954702244038612947620832603700474659729407443097000744986140682888737317981565519567713318807112808328823662913086733774286781503588004608336825949876875601268890926249817066058445488941148775935355915150396672000888153168742559409858305716025303609025150929223670883164873943310635688555147931326208554566105076804675361904009579085168850290050683746957567971751430570737844481911123522716337599852960706363889098835760881553448003700047847970675506478363893534928520925550034330280457730196395807923780691905496408308051502512141080435864965776657702251354396576803064380817523000644892123506262081942225212362670342536202687653173101893614877719529273670822027775653115885826739028830192703781346678836105496450272957542517355182772127193904905781481090647766566328123069079148152981887515148765382125924238889963227499929822319137546517400019724628572111238695434690115722516753707071714366759292029453355459401558813977877986354016104282201442128148354486898928798443039817819115809486465777706815427393294591674882612671550613145808230952469946817351806964024771975359721192212574587022762186420898419526465746431949177878344415534454508087379379642284140120833379487145411873134271269352594551996425249669597778659549341247535946882768747743578965739829895842084462078052913073389101819069929704963138470454068035347919909980156232006415803288738501902205448834287191249330405950917768057779487155448074144384322993109537526249177617429397954766599124947454882417847751480811690439487517751999284236979342595094216164805540281399010684967375302937713469649140580766081932675050428542941352815877925194029561388899212461127141158527316384859257121464093788744779509941359547477025778757490453774679645330067614770901523003427866969931834291205921892831381314178963587629996467329751397788401569283720785724465943698853733645301849532800042545845424714309471106503664513031056807165123548116445760578324652211456711833569185777851949345378804725983822989590286918792430274014214338255067279865502713369768758409572690458030971829915048545229883923000081978277997565584852321519909462946812642575632006797929626556769358006693925018432497337714041480481615742698993180521769396805462519519184232900514991817746196798099283713536562789370361231923944199454602380375753669574839467103508411996606660530300691348741200869007060315404534562561462459934512765482432286779790982938510728537426562793052678578385098402239806871935297925356853541121271718627206893842154321700941212117484590419701186638974560245480682572920093634325532847535087550446755930555683310680827424668358834682575886364743919363445508867639645895515872376758349571279883236218766209127171643565229373884605251844439729176174459680769834561163602446484598902827702418211977932275954178985071674841454159059882942200624483214996325516616247794883438217983035031948206234767616182130702271963526658593982697130336117071242519180009837340577579763658367599114909291732186193868352055011168403550706138912182997904969456029873241022416575907933038678438321220240381367253408991637173363381203638310879109189272963520372329376493132442144623025971445825306462787962213986765562432252702866137565881351782229714145539051701286275205155195266659026097392798513731678371152008758015849826978863633272319125902283318334725404530236889532822126695328477584331527657058481365387425532754989786400620431642402305391773215316132162122136321503530342930897931560869832523178776961959026130572672525767373002624726447516624182050858732491332552872514062451418589451898834149124695580657713965258889163617984814387093664187866177625527907208941079823401699471578386927668786695704765899006470344676171340533738612028052204996528507729928706412903309138319184371602092215386024322295563856400090711699241053551671710718710135106680131918273993996199965060220552211878056342587144815161025123600199745923475973820659881524260098712631047972073385644279497766317802798267024143918579324919334993727062364105063846257703001344431549372941844131430458169602123994186365224853690258510618977197678546295256589897938402420289441906718184643150568787537687115343737048406207509087207998508657491141836171682840057006731596880751394914597833998123918032344857845945880199583724334873938267746467559919005533254073252043902930096832025540761598627378054258041700469115199998978508466651969884326221029155397358080520084152111381114107710733276337635626232082839988319754408922876882602173440489455252213814396019133840368624939533185882298662911697104988369177700856472940842124158834311030599328993756077614221428421994850106112901959645326660486880760232758886805810051106116425162120480281539284197867879914538462682965279594917830923770699831429544011627830243469265159208544895382436886262485708162762067597647856047508887598354935625156350440241743283332314170688918883176676357129839596782122003093865824338670032822059293745645645890975245277366060593474336423480602726417326593578246628611980995441769175961476090548665123615651622842875048920244096801272072600850624884371804510878981110365375092072451040061065799437071073884755379716557249063456894155046363914643473020417979079019310393077606355582943385936967204566770805155265032143569400678038007346889231572589096346774689260706317317623763109235674199960745601856488523003967849871414212899615842310247320963364970845177887858679742520020482848119881900157700157460002132109392614661542001906924178762602045774250157373666203796782821951197209965168081135493998784579622317303298612759458037368218393593993869361897168019282873930333141638421595917054174684099751970888415838598360647452555532445117721829123930402339602066434675905638082071306433081491717012943249083257797113519602548141526542233950891237784940896631734096345025937699023965877250644461061910433891021102592010039516836262398170428652861784701153596598302447262353656410578747906427020789634991501062448164222547684350550012993780089582716783808364291191054733685928640522360896270657120628033978450313048578693262756159398901898512033327799642678235305679208895986515442267245073795027621778686915707200318158518531081880158700062072843186068063687281431801937371191246524396410389976838887866603394403911900242069135632220544824650696256756044537809359148143555601600898904236914807378294596365503275446722916485323038438548656443632727117937112456298247970964273662609851332186173425409694642313675166918436904135867394502694439392839227127079557852196363549371208173260827751395267170786948953012197523921073138519725735267472752083219006292280325381970776709685598892112391569484927834335368949005285655710011069120045970268714672780472116453167255915824746805647050197287052692579832488617042935333751287349695965306181789281784532416295219982369055635788384047188436652368520623277960441000467809227862301268965347450450529960580686563642366009020334819250513824784128846997430372815660325946583541318111936887289304965337236696288640640133480138426155138113120228556997009366249529229859865665060953318810441826934116654454686553862333405039146006264187025721034601954929416583522681528119326684439809343562517504589305234284080803963953083798137166595168958122215167703992824517935313251896884916446746346620255178134244983961632798332762593746425804458765461382550694735309641998777201561816090871205702516087480655635055282835673225705815334286857983037674706446897140505032972459789047305171678734666503477476983516436716612932950684895970651538842343939962041289204900602499520981277857298674919482516580356439920390233513528654878523425227425138578184683506619394281174397849586402563966564743312959552731939846857554454219935454387030286955393756929133834046511279292433477387697684246429015518966558108526201244919177564594709134939649624637457411076157490135224062404559595074811810201349615419640733345785970857831950216863345375634736664013954023559367609503460044088760689790915104016823278749435739237961337435735479934287361266405717549070113164149960888091937431909917661685425199024124572209647147175742765929088588265969528383954061831511312233242256464411319626142043264636347506025743476669583776314900350595645957242984284215868074968411023916114830159257373311026459926313260728771791472659184878034416887267576082943060715514359571954020021355862445800114573122022351369730458706779440576807210719729095673136443723214636049284187574472845019841120422411612258957695824704651218274400301690267391845633035804192980154038842632372985174313314121059260577302546358894852667555287977691954956961645589917376078431561940921582512147905012029743369407779970545142933101499311373155691821208658588825779952852523264071081560143745414290549372738764611293605082595196447752578339470676688360896090621077938440679782538812143071997176741533783910317580721087298768138136944226254034850903190379904880916394609545114862650704886867271263004170448580941442494539857143645819666171730069363384362724356661301385797285984763293337644562380089033929043561504937881927084628936558404331774723784963068248132471886816045047446557712901041290977473998063278726353711412493795721064206724529499665759346847368647331609348949093304406451300291303605617583934622486752622410458129717002688936527936402471907920670993948458874663332819703942602630982288013385998615362752822534474221863492893661067496983776618408048594062239777841513722596003396598395737240401100336095158232594458238471302644086620635160875794521107968946609336373014550776322909383795494196202525490397200453778182281689663045025170941319311903690590012951209363425784855191094040094789028591358431901515360451496856947050539528609695500649306462248881745593694321801030094507950230977721568459224906776888568979648306148685938796957470292483583745023173121689386148306369771194040836233127126553869416005878713503660396278618885317896343636030673947355955677097354027395039929024307607014119757176861065639913048972756406207414435294640309764516809322161338415627816783166449529982855523482081578159777878221573131331550986563856416331271794413097130450693901287651413636149175046657435359916748181758570260602254446748968548556744736737781820911033574352310880861654065829376178736731899025456271913508720507182489108581330519084206074801301055502886461657400591417061030799449461114322253671518166894287928395482501126393327510524725067387425056388091495767670544536768824795462735032615697128682680156120439314947081692128909352462244002897063979453527987068954101767185785057884918038148958566574714375519758465563583646935546297823239050812067453029165761338536087551678683557833942564903776946784909109438144786963992034122400284824822794000051247661630501797955881726503192544069432566986704229733839201046685717987791015096024834023295252497762570284322076358413158889974939762483834727896941592725258218707253952031626650984748948597401810629481243637585175942352863902970818772870526352359392515437265443413762700292957904699348337850578231595287187325284568775945200285266759905085222380019868166133715298826959513337259763388118972485110480937875159844945412128920303058311612602217146710634785656751809506621254241424491778231803820097139461221488397205870162210919147775504275846620690939901671420693503159072110816060658003547607468060435293925096729578542223805438045409952563229336572591713521620095455103519102602745248261281819655577708077750730157879882974601501049745893835629853693804501388202280149971494995312127180124103991367411285525088537938982788974363031829836683322190170733412176588649485378554940600130557545165716307829010396627463933297970898011450893612688148729349781812023825899809881787655243635003476255609568247782171291068015174975550078385283268268214444296702134323127553098949692815714461946467897938049028298001924382342106748981145378695442272151423139178023778974129523545713364263962174014578435888934825537648685606887259666488515438045541854155354170314319393330599646467570074165403836821339758429635409481425317607841720808774191837029918942524423830457607998293535082032834129461828187650444124333157103228848221177637853095087161949134591418652730270647492083316664424986490030336264163476961579690443095144354653037334198897406263802673556629477214308298119922237562949914026506539444807767625695412964543177600641522018155950757672772443127440595609467005832082729966480001721324451658638876095799962654719000081739948924466469524605810043046718633186982171483629523950443137045026468821283653706715100483485671284447546451734073957265095242469403513695997382830106312513866743999682320537446150974935019832714867779436368918522918681773354012196384635558051197393448812303654713798659227975566060414205023706778224946143327214472884023816807844070716125562746842126019070329026536137589483912892474346745895165977738157300204738245807266466751699911633229989465667921567158797998646394102361533915358552164919120892400142242354188686745296637873559690886898803773287999481558847047842422381159561635475435326742062626528515992870809449223589026846696375052136994576989564566233203342758865939368385014048411302549513819742666852700129404638153194237759577399001775046281987757135556303772963220232069142899952108323228270621450616762536243681617814074713388814557818423184822000167961384406443810503183702045778011829165019034732370556143888577865620660479004868618940972094263514109460281376230020105831938671899248721170405833212313832705079041457069276261124620846479347522097586868876985494343075885276182573754075101672009944409834559806974070441357665340794008915008938961612315834149466355180555322610883142059537526688716407206353666168352542320132659552528225774820244422151150850484429810599580505773335421527317786325510079520994497599636804451959565526901287094813053181115979940520134293561600593978262748260028798908527024270143686820206787205657535178925304352789709504192174793882016454819773479592565770066973593713376225624550799667959102141280626659149804059170070575253383026026112675240365712480640033303804666793668759691517387908918286885805762286737079374370139457394631247210559121441169345528074979118990535906421549066771562191420864640090415683848652822367802739235872866095592467836221339992610613580766477087450111004574689703191451128792915897194185850905726678293393054310678933783838331681629036566263211768641784477999657460399197439419458725338562538187732072479569123966828849881118056927510553862014402584267522347775941913825297793757246312327657908688441650882288639945352022578749846507996532940320607767230546689999105150760467266437610038458812760203640550824786340175350837243797352519391773843904518138558891828500056463048987005675144023304919782591223242617967482304930611388360777492006103325217774075479357859924725739345410367597856460413275252672231199035323888717316786495139095997479409765614545922367048595576546307188748315959213514296886089907047100775250751291129320389396591358738580462182731374810866923680434037277259764020257355694265043319052779367363848223891200578068982603838201915391532383738588107481610646401266061246898023933825956826191765705148238104815352024558621996236888918230021975557700747732096541047354205346963268864250231067004776639988216450755523115393573711850616060815307503493342178934426931395590577425251500542396091952948476748787115998936602186240899292515535081384767516106111497928803259288587258895960889298366126906179522496983465173936985339740064935860190301655780299077829499451635656531888347982637607078299714261082291442667070632670511940227355359815936989802907108349486762843945787674948731290116661450699995585881281493918660941028050178979517821101327665526926248530002804669248839794562683372401447761393537795383646781063970632413419702930794888605625832087062805807870793313831185691602477939885300390915616780766125872984598936618719645395309945398081023841541908792695950322136757878504795363831460853287768185310148250693177496506150158729179069955967494858384211096254583459433604378696254519378850655527847848434129662312413077702227050674500278101158325769462448226832773735234431193802718029331952664069330680058961071264518928100730291169342857430941319088705559821363900674877995313040804823474935866893702743601091394852365803903432117668826923550074616068996600089834951010054589392224487413799715815193844055865330535856667334653954624175401534411256186950849993998031277011145753233724345383822240940283632571825728018799902614397279252791262397483500914833238491238512346762007466766755868932463918905680893948183480250473490918625623690995955482021859415690149714995366490477955033812863335207832907674730324877350812778995545467088283843770174602584461313905435672402835510072572766499518922339137964102139253406535365602803863608362459620858359079783893004058171780171409059074598526584654107423206329094428330828309521749211138156075651938127409003184493672839769031557455005491919501846601659596005795509073711291789049452616549695288088895567613396909925816675958223786054675138928511891308995213356821878663473821938689395091312908592949149857501971232096653783796207052587401502469725901184531061726467296377643653516573190559024161304673962190351799478076208031341070013495279855164683770035151384137255965009025988463134361938706568504799856802613059056304832702833060885515660991365279555463515619074463294828240504012755976533605393102593033170630126586125331684664602753727201705823831876932349482540626483729844413981023724443058012466615083428423112557001305126527551072400990840322042399600132199223192175456675994527259252964426508167355901307880796755852301621707006012430554673011634078592121349684490735511759892577160573144784888451419835533651749043706098373955039743743443237534232892614595424129949605117233782173315692052280153199068578718906793586654649873725384447704168060599195790864811369045978235297712266573368890939700019725347098734529568135684663246317114675713681859850252817452017931785810517613398703467374271955333145370994339437473738654610265215611419185749516183378524931420974403338373009930536005794038436928341966628930753142511900807877929862411975337910204455692502816062561179046217875888776748484043515863167976102298683237370252248448465257125486175688423716219304878499012303483603850641678402184450234682008935276577422576516956647927306355769547591420539211995416686593601192226238625775249865210286812482351211495179744337014856052132527585612624747067561572839473399352351211215699159527247531599285358752694378461720184003752569209273525272049978021447380532999295051009340670407179243318417618627342601022766216907705562330615537689820053780302640629877447523487672976479179544959561664976841412687459563258477084145697802298553010961644357701766842935707009715038493714895862035331530454454859397770353871828033749235486155005833484693121021070532279913446375873298812640638679431775079487449298350655577136276454159164161665966160972676198849019544272750412198026389511900787487306361729593145142745641907362941432496069084701055426662792007506336881078240974554496671437521167128006923692677128543007083174276446395561903319237471545522362921966427183581670190052144969696419626690834122886241481390979238601541200535770762036508875670916983630564735492918051040908391334944228623545797955318246331627590251485473715856846024766616158018175598193775469190845603511534562702539369852382545667765724419464830395954955763438487742476688185774800695744692121070568060593874497894814059484563492635022511549597103030815108164359559945424134336827350671435144154798007456608475971904560953344810726240289439727488282848747569527451735406470723381105822256735316100630584539913880853182367196033208405599389948670890389640533122199603447310425696968626942112819220896177177928579892554225660595315373244532555533144617757680721132315761233634919069044156505099382149657484727110678019449398290866031666723841530343151581786356074796761826257783013337982363327223926943095614865989385079108225049995208089340606569933579449336317856614240441364916550051174946585213806562910229065614725081026154970538818185706630846737861570110050476295682600749989479735957808956328673460535282974312250922234852066444489669667880970088850944271706853691920683946472617785153260226246386115367306731745777083304889402824630930453880164205039911672750024094208957761199784325385608698001215684101210792066983379668673704239968757798488484556215612522427240894244184531367326939127877835324184654381983506411756633245140284831137252343191479941142192277221204225022980329720170221442159891863616305345343377514401509432261962644546433380532274090464064682378161376243712947906181429426645185601532785354488505142680667659205382758373655279349518398374639056693426147037773030633630514386615797097303795922487438281962286472509374034739278694144452094219342255068469482780210134556895486593155612856275694961811818959193404018461318778682636921545487039282009722681812848250977468484629224584285757554846848405960948397201742575002798567980065396802615403311339426003188355617113606087675906073660101866101010317525143593418018703797628704401343490070970779833024440726470478283890956881013762916153686635393862801100448847174366573460072624829757576098326869252832701992770667395038793525519357741164281038356804074541126752091675058437138824711349854751421640823643115956045301167011516895285707245566694146715578507774944100138288747292924133986791455736543983580172440245840705996148056572464424191709882862405491991269881094744782339520825639713116595175044689245198446040041863230764854261921532238117010991910762010786614239904369795945461198508277962982946911415850335000082522203247591654318639236817898112716626054001292893749116444067260524178664626576551976147844471261678173944126803212085883730546550514260959270858297182106710698466117421768558908585881024147965068264454576832253969384893477686932903692654907530798103894007118718158171588886355194511094319048476763175277298619688321098208304856259339834552281658042345886586383336234662816171022190000411141668379813768870901143215360312311448489978479859901433066197835794094712444066896954003501361089074586599241417997830887355208494149896934080193093835682672164337244117793770107195019728980967337490887991284650444283681450374519714908632152786388456010082071167301849149650573878452411220060885031912016146622414838554476231012483870371099203771775191843328732888159382880812615151781258578801122897780462184864614656923689564142507295250513303502564160011792873719202275147490426992481285999884150897855900516772365459337905632989077338550206982235578191221640539269938010599449610350749410733459176306698816485774078715417472753266598189353498278265810057529186552259242491538274791333690854453651872654643449878110528485115456927393135160386903417355548202973822771794058815373334230640570868500289508733837025122290877031785340320249134356444940716362028500415271610616328121774833199137221326547663904398781112619075061223578130863314551663519568549958238968973256604494519806806551215536387007119244371081948457123082800554781664462662755378758872402542135084812831271437945462689151863243270093472333737395702389339421339096141013528201161988784600323469639294488570099661980141140411428304404744317930190237564068141624723620237015939573490893328225960924373699237421969297519566033655359524670580311814431206530430049853373660194346507044934283837800336767492553787439406253540177766614954262869272216259361893453686769372388932367908270745762088891258960321632947224766211300189259408564163981569765927383287283630333131551494181466821796292879742810687082635666066316562843756822011450332526391875272806381605815027536974103400554643632351120944661590137920132968647469629455201216982379723081480234156748907955010746568780471254517086330141084731306020377739766541353719783140939659503526059176797491343531410691069848010225915527109368932739734131076982104798754918387172414089214307147564024584379174088045159205107256585714274068192850180854956478912015394259713676538328664105222090371243107066590435140871005180773917777874173448793088869434207984964429252613497210765201612747339980767989124601828239584099590755282397268435678253189544555459834509000507196243581839551785911939923047908204518668526796146796421494546692643330009933908575978967378004707118452970317952469486171271528525113657480118581701685521750700219945091767113372975198231608961497511539550502549927775363294243005127742289645645318878751112489924137392066265699251642559981585464791505001638679312200505285177099543271377249872989294754824386726164840672405195484639608034007837530818205675167103175756187371664438587936999991207587268637785996303750483567223882750972021632489221011412335546801077809043159291936090106029800631823017994527270025824280975640612331000759367985858005187705925840268273280700386995282302009545721529598538221722916901761587111660535014261317222258421560375756859662032080438550019828378840495025264862291015423919079721135008513977198077476168621200224040468643201802694646449682836106924869428273029737884537359861653114731071199776436338345047251053511736069389009632735925201269331637098426654741406779111733895454320174805176304564918601947444297554331821669876809091172146131457415117619079105728875260661651513375453471871865216236528426652999765576961190092633612957247465626878361293084329684157246529273789280127245849071934160260374443467370777652455370694889056829265257484729012779938538538483574234792066464756001275461152545760740731278313145433279016704420377620435766499922603595574170858527001770039430326930770378029900962471683802448496135864869096691152078227919692638671037553491116846630052779806611185339216278435286642128591870398492504451769631151065929795573233613404054655929776559922284773542824662164982915768780009775556533428464301040576722868297872243686860426046915023150907468910322668341157927098199081783356313059774899974353480569806147209335284503926654402776794746297052599412409397840567558032215714934201422095171746728076537854310415199448104516166629748860328156346752087621223618870652208331354017361862304758216312167913235901501340343633864032237417644958904471976415069939896415022909637029083594558139355704035202673539973399885723916389664668666547486085740350857007996746582061224231105358462291193427717229875523629312262226720319801587975074674242406156512726425432457026384604704631745678101994443000422984159374708292503015356022636147699623128410716345773169353885065181134935655111649369541802316553990026697991591204169883209332626982942309672594300796415426852117534328276264450802987190471193585018297724841117580742625448186687976167694528430292746690730529034679140181555941069093861101004674460701143618757116362874749560822982658824360072718850234952841263200116503855948192013182242230805750659787050185464310743503037320457569955548128237534396127670167353110056648761944541386298611655594110280931290098072219429141460413057214820369548522283335267021533802452634284039528027601591091106053193217186534971348212252903726589868813082680045470631769801373468266137349814615272523690776725011826806935423502876693123368232392667066851085766189396250592579972735565821120528734985550637550281110568068594166844458738975795940637356313675397661637901324901060903317279457696893026048330455291292865893288017108528635497750725374691562647957946226657179543076524932354277528926346496198076850235699352034930480512640287797375609016245344120307795263698517498399790931768286928745565085539569327922154824123848817864962794261411057961908793312703229531271564336879077147234615416089696019912740517888021208795984932014508583739033749906276182492461715651389176945176986203155427752454780505621511100767017276554579186617156604309302632810094443786750214251273460435855730872556398662470082333171663974278289318125956466514518035484026150486438177845470049999435226266096931551460542602802693715102112749913232937878362521709370524767956046709844022312413333498165182711818183973818711162067535577403849181067911322275590804490258140550287214088170776638864906421720233185325410479585541403375906506099059502056264491537040173787727305823253162707790829850343580076448724712726500410781015295015627040567557362157876145251562694692485316015861373483095791147170354047456554941214203081914657596524120134256196307839350372026128894445553898733963898670458914143170870187428373611675922545411205445523593661117867311390201298995543514197359905594788160999929764264012520286872997205842323619899215162576778724978679305680077185340434983034237756372226749033177346411383862742456448958883911757588993637558075692840832166522967911169575225784781861410407107834292071649326458907239382851588567585929998974750655509304796652841459736440147417334901503754324368300086187354581204678002358902699203398517960886603351891837609540091704534756029343564766391996082451417157197806684628094567507803634028491213670298846150416851457908113550408869711361191630913536761614254646641430445412106359927988043048468373452982241046119438506873582439025502537948671979095695091594168207445039351520554690632960717576181279006152231897883686168674896764472033060299184232725508656616765264611484782497338672448294606941038909013253294895140074679606935831496005841940462894112241769425938917270573130247965373468741774072235015116562395970232723663046136981956168363703832089638670061924911239910178078043478280290821938535899541248082402245536568844832340234889749279013963516886569800252174881508464941700264625805200342202743707793364072236589832812430863672521192529854192258889169442315649508320417201288075438876162228930396107373225908503298039125546280353141238466361280918858270960612351666771133768938619506153046467424283497482727408359834205284471043047691800342134710162175404920309304731089543818388315323942452780316506346967670854148928208854698843175656116199165176695458087845612323857162060425329661864947906887858550305829282553547511390400542888789499605784245680541930064537076053210186409851970769360691581403088260265519883718730223643598766246459937113677322253978478592974851685551400358862890113947902889818789289655787628386986179764146708448395945253567176031597095228405816374850446276302990039408926383375354668864183419675063093802746119136877539007377184304602591142692245343605219344401092506180680637792487336959980963782083970356871316551673347253211403712092320631350625012432894274352694743356650598543211463350720013853053103396562381355006197876938493009003652909159119603334459403769275286902824064738322197710849742885107810187168876963412464867853927286652661718797963443878808799764466684671309035842993364755409531568776309297836867425426157788880488730674194561971337338061729917651664043061264121723978417951303812318484483524179856384464294645820170217709459447772379317996669580980133122151624628313472663360645711446119419439225786593011790233742470344310410431769167696790512037258510487015505512666224491789541351181662351644760451281273487892093839693217820934973847291198311439297632910523341116300560301466184796754854236289688377447011176369290063879093100914200314200443608151743104424550912334317649743736709809713668764018323991560581103434793721192910270328496293327764328413595219479685644418989367997498810839496198519918378883700992505537130570242068368147982988522509702633876840356866054762122594835728195676444008122501427520270379785030349931133924295461984161339715775268747561298233813124452965448185943132406709068143867784521727243633778903155462917261916652389797169189943430900529364890143171127886480200929458346625043281823214195646599793640727497038426916314723517878752916794517085976302369163402211854952480809531551765076858730296165608558883843309962480801015687636310396051330750533314985027378478885948351443733885583183066153179564169207409164182954280923419472521478746636895299869300186425950778073903689266903590425508324467165763789788535085101537604215340547635157678624700589305284414405494152406171603510254972125190936593724808206143979648637333264813974881639171610664590524186745618216340107713712627329259071912259667591750134297836695314064941280767275191968843977753172868493479884033593387223026666345814720829498401495757306114317649103861975307693835046651495187856736235975683047958122086107654220023152834394546592359070609729902375935080498282372451067758146087744371752043774042885458301893707857293433420105035259314184975634073174332433809708274607772503988539978002598334158959496928695121352780165146061368055981621026996689219984168593686600402622022885911812440234103189747480777935349976975184954651501987734700042725804011668675327996475317428472302642983530649684683898450944451170859226588243121509133351694195520629184509901259856588880551003168345792373574116174758976490903530277345290595219462748520122743285387878622450711310767224530640875810662362325274564020251022401051008626103162402345018890579534899149266025673977975656800446264499294071489853622096214019570471540927490767943899883189940073424881172149308473635939816628966918457653021324925219553743230659245017237356461677374549803256403837583649975361467783538471344197131503306755032958714771721489261355817001043533808490678957305897597006145758752208274068673721101245736732553543843337162034706245948897316355296224038849164201087437925234355156705908651738871050102701759291543843253962539506759361414558496970972360328486451570202064271151906537687446158161454886027925264866578678143473489208297493655317595383017478075823516964072087490816471293411432565052103119058812585585303300928886664485092733224790847607280980202548825931383803748409059744786333231734186223942082996470490019417021246358960111925827975318967292193800260481064751859102303317703154387776738200258631307846944402757714283885058883192939136785080014133453668928528569146879738216852426190167898084245096254811272313381844735039087797121191000865106486658128974294762938490380633592708823510297959017795012827430473610830843637066876219937029821817610115641321357569820510738295496238437981427972201797746350254061039730066617169949784419421329508145112928899466716367337167973508799519930311405113751655076147294258151754155953702928462057450650688125792138135124413886438421938283792112485478306067397688004950271091133727514874352119099521001743288214384134138648441769932160289094492493064996761227907124210697224708214618397277430414643417559456704419041797374786071195760807382535365296144696553815709142240540369459836815555521278246052674164491207032106884669746816235816203863648120902371786922026674325044758698318931904452804929901223429780269629502441167161861344701153438586794313836018316709603051332840052409974807078105436527522259299539004172454333989784044191033797338566504908955577184986599560192692868666529342129000892052089337658008030113645683571702329862110714731634766848685472538737210077232635734525713282965572028433632962002589963764745998498941846663099834387867672143214684320131573559436277541792905877291734638858368372723740609516565827064036535163459023812158222941983920664798072903742623976644003380693761196958845955337876649762383364489090518341661132400482634771847640613781630713041956415263299045486727032775425279461201343602901685516654193386825684035778310280804737031880174698880784332466912594031285617574648208436674850073211637281060641414293464347147662229764555656793355105733628579589388608156846883444237018849131848562339134576668188498338901311124648535724068659519087129642316180581978967664392113163610406580045961654827345593205633683073731475273500273539220347488708808703135742608168967328325711823361047462385196035142570969913363818949784359655847817949575590686722704036987165111220571845817051757066241714779744725464309753954476040795490457034072196742779470792412808976662416351962363792690949411866612638963759332223332152089472361880143159530238500840964035198511222320516582922437605622337507581892351978964191409693456222738377857391001566475616902561609574662127237937743309456166567407872172982849062266746391240388545433662001015907717398621014491042759261346295801890654266441809174117407687665456322898157092215471917325694074038611989328014630809309759318588566824315827388569814405140059179782875736241242820928883066082254694336758914549573986657309042205986604737608668607946841014750131811896129199321863193582246909990066857111323280154952845770709387460559577248290964689365194118119747214032522915102614530846704484482416376359178309480554977305300055806590576859611686518419549459049736480017712373161034132035997889004911574972969646043346293066352908927604129552052145837673007801856745032275321827573812050529677397390439118076733560876532190725048505797272800440328847319196379812744245792862082830099334515427578853610737953137865872116880358025568612807153367361578790529725449960172672739375354180161499633849377871352394842824066976277301133945234027532985487115649809059364779668570304420301412397503528541598588217360638508809076321369552680643976831189078283536607072329813454078453583497660492340030716852455177076206380540600928903475628371333069068668551278657748729891083969238212691034071720087745356041724467843894999922899743498717189677529180076781335293502980773666713203518206320713817692252048556337947539770959476237377113797477427931379721429926268481857381577630281813035774246564022414017450321880586845370320946851967486061038202935261904965838533386795953917828766807475264281856060723703280403671353395860150822192576309383578949780059294001943774201608857294229712631781223665042589838428650426952024144956327760524859446829064975471217302544453729720251421029424670526428801118090498187542365904321379907279565518579542070392544359385493911268656309683390789019933304888960175286017986704529784911347333653288540826718221131282428072516506076915387526647231296633194184532998753023623499403894763373009264687130267520410441032460015952394340176192856165812261118169695346001206962051520173323465498607752907019097628553436481517407167487308585735264398518482377514108716838535971017907176614962164235936382769070537751119092794887662534918614457957593709258211046529450815031163530027144422565732151600304425968939337696218127127548583208967697320762049258351625929434587671525450495938288518692949779479716041551266162219094288449768341000270722037305695949485314531208929746710210849299245399834642020584652931949087998064022348910525771916292628605086508249793709896580347131000043040336409493193703671262985840400942424772039344151685646286826554756559305852999728258039379984709848575652094850608155678791761651624294156616677347166141211131768252574976079900955107990587668182598748936385269644128237296372129465849491530964033349131138417885212357565381640008302570136380181271312534562004304475367502961218627392023628191149555945837275466137502429875554247780772643758380364626477301490856376210971218712961472154535748981997871068172229360108192209937637538523007969204609780185854899132103039331908543239429588424542933793443609336632491209034264161416170687888164770289056462032489603090651266375858459386200396153897839216446767692190692056932967810746675399019991161814180532047512995891329046306278956656812883304323329493336826864426181375419741489814853994568363929475207022048947025571456916946651036135326659106696299790011729719292578084964451891460500952197092905007869746285146120010163352251684544892396368964943241028503253921251105825531969011001895010339024349695178764974954775240965958952750751070569873222137427429706021046966402588884923471281031955760241824276730069665056136903731886377936310845448831441182876424810647082059063042168120192674874667884102642896921952161939757158968928291324162324600100016362719364199450594153771270057637375624776329165807662127841040432054466865786531758463265186511935794951025721724152901010249266515729033596748132581656685601488062013343140342355228090366235462351681001578012944444964531781756222273877505200165754554238552395580930984424283155345876082213855811714600201386242362059551064678303097744759365260436463657268753272818584909096425176851579305782520718286475185243152619295026472349119897336941182602649651947548161718188113412645043484612329227197479194156593595646705502559311679908373740837110162085473035036497825758521164350996871447334135583585868690492404479160333399417734822090966976135231084436464435814626835176173894297603220363661332465374090638768867046842744177314478156444445434554002520214992091219419190325484988192506706105436481012459670292287265956216329716458839301864840885713743271296116182785524897936033369876254105828930135404711011050054155743587062368447639455544674561098712335421917736035053740575692195088367811905546311414211181048073007411186924972453630302205081980943397177110344708967148603793849516548806901841175281058972906896627978443999791304395572480933443932105543948639045119330109309289909467531102714676534219597711430590768290337220002100703763972780643936395814251152803562353683412779068951845269140979985210097469525255111700914678043188803410960499708935712284605186962813056541478188562470536720072999755621471297174805618315032078806629715288614073824849283877412696615415710911205233407712459017355992492859767004043900814495397555589215724908241105560687751152945764247359945101126964407479584444727241203705938694614311989133604051186907688156156158364716036222677822221459928496230554390058916579892924983749563545576481897655425625624693270330772850927593078784163201392288116599606078531672483744217108776553803299862227410965809808545201868110758154606089838089115830781249618946202721572824141687110413070363896773829127939156709869141670710427813593339207445056023976521170376483878950506786793154076449593468691058946945388122016242806465110283976171347456900747749812942513800424852397927709068795196623947218064532401782947968259640939228215579811414135507642848370005921327181666428759724859798957131204007110403557388577788317045797450407858447033010147176514853906289966363326704110733118299698836453710207055867654459178533769182720860453021861447554985401548076196117340879004990193889943276967436190719397030324460321016510780828350678533561807996686988164942448382601391445465848227105541223428310682982672930600920162833611046617776852585440616356250626932830847085438851144862998712772484190717228397968192806892792994904224627154530753328990609999467757668952274092125968917727226909857876159121202444662953970035559870740796395929824061423747596930956258595702740668604946424631125458557671121488123531031191244204244373293350176780057408520150862829236873224012910663895595257887445301616303499559305890266953547928686842242122112757630055693275332249054492709142591399944805511336658005520061212903760489209700153891592204509443906987373111693802040695416579583042279270286523129209554435953046906351774907482293027016117935165314540782112024118835177282386209915249927784294169227224273069640265222381419841140875844958068458412925481022504193873136666731737973689751449499551967227601450704373725145561891363717346358481802167386925109019495662894520052958863641806264715903527553021909222098019838212357911251019782957047299129407866936244156938337232825379290835849083699089840720340536969488645530947803281950319034418212907230029396033075631663144533278658386696520373636288478108467810417805011710317405963083454200482322443221345390658170183599274029704165645158390668947771573622273558129061254686581098488114147393688011705145185298301083970399221465310015358136873904849397495323223370577205304646109005461315098421190932341324781400900146113329225398580550936811493883642517959930876928609387618688659001019615822775676399913589604833970242535397913354159020649592131595653875666848647858784774086815367690484337612814000550220082705659997428168679352749689747647297476253396575486402030515830863644624697375094322678363525582749335322726135080834076148700693088883137489225132177861602997032718051954589924666946893189772465873132483216374479724393954586061780061038000864738796274092206103411036631746417625798063049782091560884908280625700460366252303882076167610281216786451931587800160352275202508050071374246814998301112159223063535012963690572754026156761519224168277998555188019122976972105410734887839626145885972473411965855871858719519569240110466680712750300641603476512649909541056849695131354521471691203924842341920253857109150407502305728985486677863062782135792935852801035150937787821635077415876536675553437965286737160217013804664159185608163351455111408062471544870669705243137518359653680948924889298190823147292073881786571990566907512972559911754402540455143258962994905467991686997039154384681587693498798580082473040011790592002922524438842813057014574740033864420974145993118361625930550663799391923916575827626812115447262285351979107926460112119313461398256787108624216474228119154852849396918057049074932858667769999418518840599315119617926864757061348579810870662790523889640678555828594026490931609476142441889717543648836643429518869539577835766709204335828057696859788102068718416563050941574674093186156969625283859161510084295032533371453082666839068219833341634225911943788574609910867927801006499664998052199705349070739323335763564509599883354819688844783760419101172759935118344764095791395537053320028993007448462135364590749970324207710491063971555724449323190795634449227518213895675394082963894540249001923653091077977275150072485731601474065732258788473384425706051374394279839601999352246495317516964114533437406972766280286086462776197091376747842770020428668045704553685509156424854852176296315455354917544611246428051772349559166147770299043911213937534823944128249814159189094194224840376483001025799179328009420276539431123276794781033080258689294869685946466628828945776265674233971563849055362115028030917336025546648741830628337330442128642557036849306588538206504765074656800358588317426509431221574323467107197414619456528754107533287116554317162356821663977882575393581599819982628960067425498535317853193411031748646912878550895895188742400980856083432378513032215743419230933504470446242141629409807033645473188788953708246236264792013212688376232065709010562159182971739035925297683770101718915312578053357119803519585374413597076520049772814672303337683662683814610160250524366175957665316426586055940629427645599593156139571156612213682827983735648896626725397558188840584162451707182181307180186003698210963664365133847001531648305898251627757910580332052696553351779462097947419067802410955641649616861643206317020788951497492359789018476718042470695904083181553805280337647047256782894247148863526167429783222975794523703792846129508067207547928392020808025013120649087013476913789293560999752587771741110880626390948522597390409363585988350842583398431308055509610806922242889757415281421753592892185782881346888015156746283883891705687296968115935048960937214992372935074540170167710890072328017740263496746120692829721688677688545467063116886316743448434822817363707394840385697603542642008898922749284514999406600490435952631023491078684974653173681239065456239100846247037567992901812915935781337566160347221142944759484502871057578698761306390517852738555153937303435587637404379589494533340672161904780136402843717988639893197555382465197374225296411158385246344806198706967194459081958683576645871304078757089062221694289429597176909433339765347599407488593122291669163367134199787987717128495026725585380330771410344038932487130832948515563858160672538412551298919547172705220458338782332392474015525498669919672133106148605739892876180236586661221646701331859460904356212962617056514492642084703998756119033297027270544955753759465478986782167878256656523595013653180682486809289635628199379528226672941499336113444121923632390774476561210235358882043274876486184593436654546106155337195083476431249760812136532819056464132755369625019407808453435691802313515718690697515731124328361555095315350478210401830132182242768505444927524460236262401089675623690379279182177935970856652251837699740490947323553777015133080550285531572954752260022298388038503085353244827547775399980683821480754492271978134952332639132581759304132391293354563244171064888398680823812021389706934089846710212508823867772015400361726453109253963163701136725396867054797596101081910481457573585237656768015540047603569316566823708429638323422865598774764590888413358567457549241803017835797392664176013908320717696666016726491470057612901140548047491168348005577440266667843207832882163945690398906794398697261946181488972953753612913859458128334536181147252959835458733865336497254135165019318350701103745515132314780060198136375781763384111750248778214163866648605746185666090149939975201071658078763966279516890999287122685656614113206612321410898463599510189230213312942544644721703389172876588983283832065283580855149622992177737817924064072608551221200196890149155545281533994378904001548551847895806714598624849001491113889860793128364953001909949007051432680830488058799139905671241318602613095239291828089302064961508407065059675978114168159475071331217863921783177180234953681365281766344989483918082544472070522282418282535929679673895849213165925752974817463725916990835497325290201823433533329708559859696043696801360048587411481016287857039012742579807930351619648811598679774539764808835336625823741269189551126923297657416398290848589710573947851737126856792945216737461102403212579557374428661745130405149277169242365500939434441010804182433486738558102201679372466790898634201739414487500919033035502060771580878791235211465012884800392416773357319121065634731612267752573893083191276605447872432168772606979870177231716012776944205689399953946861109369471793119662350385195118230804239142950373506099702577469285502985647898612331163229122890458882922154379168592398837117975895364624137967573010521451510687806297134846103311775154552395059900617432976658293351832980075417802505760878677952049948951657257395946058583812474325211477809075042865873139239898810618355909642056716272862608177501009107507210147388491853373401417696127223455240412950065056073786552078227764523741568293374480911407950811867355435310967939892840090329870789131963598865893908661561313273494755972383234927255336579836173243156013880482167301638551930007441532006266534839085200372781118014466358346151980648232037090824581596368800172884558935463486600971148288795163489563576461497031995292444730128074290043692988196010573662095435839435872582628748934073203066270683063427013399220403512071496903835363711532440482178383752030938215681053441767681914565708580229944739372963168129895826662581732787601908579560355989101958393706179501592766651657659659490661053944478875426567102052047745598506683759614867996678238188144817310085189119046442912395132903523505392036263536660953560086056771973390816053199648358239697241668143505874927706091153888205216878108570015628672078518384628412021864103079832156647921247827653743664579115310340460990690671053067304896811411509638107459462773950880702802173460997524352424229965281298042578646559210757024312070436011784683570682700971504195606253046380768990286962591965113021756218468251428834477773902903079231455334974161611215415801600717361463635747542395113808166614908337608879243991573721405520695361179137229363703374391644662420018094313876585936544508323359667231707515068456432334760308000339641907525872590553900616857179902453384122717504446158782470846481364875687761689275752469271203451231419427837478212334272478915872501035549281577416852528881287314943073853544329053019408478539223552416476196751743639798286645152627447301684652005236440944451668347033132097857004912121173554269879462468627683374277749085218096569162955236711488742572467497245898137558695881498451809718912048259719413938285347137126854319744288092954368555622525398777621092118998322337916286381504542311831303469507666208891389700136642405885167666832943353373049024339534149362020979350897799843133585593482233865640381928213475420522898246370955106217499456138797673825155890770526984346737626789835923658905640607807151170136651617357582175124430172249559064036452445128871648987916698964414492239692029555096842535799284337901218367373616010011895717369860998902245261837918039945106029844899371647197901059410024675829347627087309179525940763425536050904544721445274472119102875951059909669229290734748342881013204053590472768253555106214527280990989746913166622424154026112468062110211866775166064421552573397408267823813653410426739643762029847785984498920113192686382950178189180221433635356524999640944005259731143131129296281865149302459134424332508392022040817124573324568795215321698501385492807233533313266646838878381056396257348807983994328454595926332381059400132218321102755432787528114441216613706308197194336887173135534972789295825911878031886276467296553414263818816219964349537802310792784280436672528556269218921908395707129420352947797046713744082390665563839768111260131728596881216331988345899179740395676272374057300750502765049682100592140123885008513734557363457997491623076562778850994465824296056566388091112290083582694471681829728942628625209256690834307951201806248131802583135774790889659228687108126122360928891734499623193210777327805834755795629968078971851614651164105030676567345413404705176182234665911533699023583005989385473995833451728559644281383594177733963855858447887781858032904777075858311898175558829033372396635677832082050106301003796336185882091941151396540810947165592300484888688135952004089301898339339583419870231349066551041837418344530533813226405388883942732754509013870167294071689360249474316886774467949522535777833120092777033930463994115972432606279950005052490875135129281931401671878586134357553137935948419193030257770784250609930132412109877316624673188073525334072512204049229542065691007214870919771578218615592055450868331185022586649547196281839044630909526215950236618863138829635057035226595559881309279590294299253754342772216960691255656203348349519962168790121005052000408729172438809454324986462128637547743166258711735408209496123655953559790296944202639521841955752513884161323905452809006811877796714370747307139305574195983963738556256317182699349622982294702906999075373206001534271834949933552448901214846981861887132989905557013370949118268707562544547969475911649619267650998354516631189120969056212208702346676073916534498996873922013861976596106390527018239874173185413601562345510179722437425332252965679181483933727131630298450166702726205374487957592263035075093097003361272695886224315863594242988258962874514070968374208992426315873124846014107559988289030195894654399247001154054105208810341062334744364974587119592133723416673479355497838588615769936457178128857631352445531309032547675714482641387417546110576042932246112687246189642666657150625621755312518306710220941447721380289074391792204443960561984744390747446655643948612143897593610620847941535916504901600413999697799289321728284573626339158023061481027661646795406893540676909991332522065365397248210741132839647757236470076802431440014288596874738079983543566367023810155762402026317329086069393360754827137037573418049518916972234497863987879210836436886359587958784445428282474134290855615338701831987386651646448715987889394700031073143826747523678132086628202333706177595040555953392462974004484535434153130373809317244986350117160611020847123755227059481560000230299361968288967291841438394070310825052279156306854231378146993743182500293237044720565714030673694047251340335196882267025453698605003161272993417868272363597784983542116543836925772553167370114676916054269673752395379744590949803795905961982515773225102054427877910999727935387961773326837305712908601095201814979002798776000377979858901647842641385907124948698032901750978520729515965708689533164316531931282486496846389825822085018997780092786160827599984364289848302443662931082133242356498762075228704710881509255215957193783938446259315824330542633235999540831693671075079857277929277752322839618398709424041530880603495526844332177757800091092234243601369711218679430832982638898098000490477934893262573157310117762354970936686824340917083026688325208363079074868922063074000906506718139123445883170741505067542382479635249517711246827036493808053028189391986559309205674298970292426985104583353955526954746841674529033005404247089337711062583735884687542074224088517866047797664368834944475996429631682991824947193339946566559268883318908577533844849706297266780488433670122420332719823248615674365139735136893888533086197185573057067296439923721222866352292950167111555735595560445920797509683286134221002291529297945843116193829576662996658794573798647481002119531895718461270125062538089031706702724448354772303640814937638569685244002088906293527519767943910946328192547787162429949951566818159163132469417232584021216793717319862879376873331045087246365211146055551546619994305726494664686780075635901677579814292756737480344913120739193970032130544139240675516609615093913896056791997324032794648195622071441152569440999051600596310398636762154387801893973314104026548071433259925067898299139340993549138870466373439479786555470843882074363429913758684736349985134013556036300489148446005037956568630271222689811766704135534255351633782067636930152472962782414823411501335574300143128981138686417168853456554528225348467434748175565863440872243168720190767815375545781510462464095224104602527737017348980203399967802644097101736272013720705133514063288769922524612740192555634453757176844661613297781983387917526485719870245165599647192962146660866597329156516387083706249862534415934050399135693038459616981494644654894098758297289200615789736551781118011728572577305587800921498623944188451205961206867297127691611931479955630560298868139087506650856591707732278620680273263678496361592781421504246994370777281854363919944469943362722722482036563684507875073950585209075096853580763672890952802506106556212526074693781947553481375866243922697088379923745031297508724871259748194540083108388408952296935615687179516087505864400866531199629727953112778842876815250139756856269354512214368734034332748843375325864056494952271704227687376190038086135595060855420564493011060692823279883788990637932293073838867266208253817404170336432548511692577583899714268652178234852141093591236551338115205150980841303659512364788056467556248295221659443199383965938967681688051037835046072985230847028038545899787177462320750671419134072434250690028672590802280601622551380990545632190494175903634408964852198094329372188901812434477463657741212413866919325943122786454254287022492154374593501637196898193739534951564184650883077549191340700635291854915030132355917059370045862391180709641805874975241941224990002497715515024461063722602219922893124107968214007829768869972509544325849818754891562284070029935810725457533670361020950263861322307019944654805924120469217928099909291586632682269054692687401817128713389116193012665225746887602796918315813077370718141364850115194964352446663043934140919553342864879218383126837174593191287261483907017547366344647499835712797549252198846021870230136186773304426883796149149778328933107334529484751089935035917819643011007146973423407390523525901782050043064896894464126945851176094678575325899172515069403822334393240575900998005282171264559046117186217143818474809623981918544704364213920725273167622941968436548021837232684052064358737215494728255634026528710031057220841425831700784906820787317914286140923288922976640631180771168916512631218029766458994612257374933036471995286696433594924058741509815596595198463342964380488463996354308996482634611114419064222552110534892083643271852463905318712666850575555292211827438349549200424445195611010974230129480101168416040913503719144628103545419237944605430258331594088661432931022824112223992958095452167782610288725425838997401353009206151218756836329766764642689390804542781867426063376884635815959836635738688397205768465564040162191904299744942754048998080009920355984133430819866379359097906766876547635088812679613363479696858243500136618554813969614984461988880338050804704839207499095383125849912698408412850009881157744064985094488633572170416797366936936179287510703735370399599690605686235809332084056357408202655332435449508769814367671865726271294764611032507947550942051725615124388021300738772906917405764211958991196353478232769546471417334730716399358603327600600720969106083614691650174994090566192751305822550187616677213587598292208313369161182269703508806914282577976667747727143142087014340087796030559663500001567826488718716845052271569629361792269764997639490757749318200749686585628607398833601774591765205988922715886456697680994886730250618232202077318249889294313122131506741278430550982997317515978367504206868464890046666627482673860510423251848052956800074749384728052721565206011944143522815203624355194573946949121336972218855406786347710879285685703029994393569924939560388493633797539484134881777476973889768098667386224010006658540821705101251993470554362720446885622494319364494812040853607843224809536835222506063612745995874918602685309978137722645529438565204744038636972032611666414092571443923328405641867462874202544832074224154310245737073288975189945831622927811293266884388257370243823436040450836546449216386971132961517714715655033235489004874371761146015478486702486645819596630951288536572609058847278182166414455226159286130672818365975112289853221479807271152988275491317614512971043384653035979531078581081541343268868542524973208934531801037117065172539910450279768792088096759014937912009061268845565269090977735708804551047694879426744635840723340944866026233169978960053007107450343434076489566570530790334856775451188592763274899762446706909273040292014459340205569255746020461253567282633634553855766730137779466309819441147040127482411172975390052988206900999232152306532232678040519468949171149689672116568642975529739614154230296141492408981873310371523580362024405597220955259009243345854647443011376066681272628050623493416209996293851895207053587575881682881133825783191161961113047477248301560968926810828568553926304967451107384674062163417953392731211956493438423245022773523511316974654674894173082384403705266867284088986224659882461780202369000278816547489054709700421225050507790092134386525285172685356821534276165535405456843124540003720325341153495112426201745205218019489380729428161282184468300738605671219532859702612003731355229141306558402393139334833505110031805137540471954300920574514513090586889034283617044570417248195317539150900645327765617200812783296166325994773754212210338542923143870842737921233584105287813097617866878886898295308861988989771013306139532509831392680271545369122247971996203924944907979553451933769331119989353219559925212653716954222828618653509737712095006916531172866178316441156936368526623648431055083058869711496867547380463791947615038473153451597476079732477051066142745633637095615394599953810486140855824291817834286348174417743121575047908112264741486706445284456182255713864665416689650971845869845330191286484012854963289796271113933254346492150449837968099577597991459825134908502505484916209284976438542522157982107313809889346635450192171995030106109678071636754902038659808868534397025012645025899325905000457502413041131631448054676096201554389006777626079642542313504014361886790714286817703454399252896775724703571592407921147251695764588338057039793436549336109964175791602081982510682233832267398327574912561316113458242186601633628763988914086590635223557265807190928748015920615208535787554496680566269233910691857706223217117032759138244121017160378631316904276387886985643478671901497195765618374812569517644930317326356074164414483867555895464042360369811135639858731545496682461869441586171586710080329470787757270615462301742758920404746324062681564102875705922925581252736861446127379861929172087141428979680269991661543005215178890010641365473647070489585837673007898476169103309419316801526582704867013599666074263560833771790399770653180093799647136687312674582178808488511499496113761046655431146451728436965366102849346782954456448967003702479774465933239893026282094754259340001475221449840890173870108087108006078634943733882998638485161098841141228094499175921595689930359259524304466689466267565650081053822848264140941131419583509128146103610114225805887593762080496023881086664652585538049096847040080154460721839942004689796045416230682774039400718242793672024261425450848053587701756024668124905624363614728978601037453823804574324264643535548872678339518583993662481867211100827889791917011896682007459996026616910786322542926763974471794350650092361013744598369360580697150605116166240899002878501403167194023466481104891873700476697968673072395191104406747386587115269445298184792880427743475451609746222405653500275681989123499221483753427808808381469832631275717386937188382707480373663089913151436361008389122339307398925600752640951719312947238979024113807772829576989862346404908694130210607273899534039553441280176190773379527776418893072291356887261171089172113326272256912775687202789813086944048406986287311610370105437751904501385129279323625183481050201699091867883289211104075240422266741196644131089646923055181969124322782294150204935257111726709661601477995727254148567481123421597584370391239536007323014470016867318544368176198833720889559111184712600324830895467069559100998199167924966620540146126462825450708845347754790428369423276187642167115172895410196205513695046645222179649608551747147094488564841276308253619261841191422811598028676580631282633566559886217726559096756797885152567240941987360787117572404127423687871497272915839237155791037985634695741926731196763318320792876378757762269009032794635665975870063430403492121805342649549795435516929634909212832088816158763433688399942188377027481347714320636892551454121652043784447682797508840983653908238941762738645385806893651406128586957971330323375298047974454819839277401514055652211394355943362189865659256742472152639954090004502776724371728788961263031452938618554820084232007229039169832434372380558289459878271293904983968948614435901813875216110029566231312974481309723689221870169018526573452425508773875005824397146360542128338944298775099227103039435542231860555710018600201159372177602640168587881180363852093257545987189555199965502174038049480765376639582482673501453205324913081666938591351460322073056926718399892392856518426471343303838738037591599086160877392402083821891549545623044911410650359823881336863903028287584023994284544972483751025021243383522053436783591408914242343929411590698640675040375902498995073385154544737920597070545588066349741824777973486889794947146677396692561619098754898896979140695597295398592176539677213765592324528810930152552408597013342758297537012618448501108088626908689384143157882808232335722859796584358822207669563399048056146130637616981820910952815566388113354497789854674021359508265033494811127479614628256823307703805456380498509899802511266375901915414548855447157990695665605788526831510519473872717652304916649261801576502166839440267780709736962853255874563667895893926826083850857498138223268431194711990311095159988569065125867923951348109792274496179234983371227337591470091931984323003121665147580937814343160835827478092508729403335345714397656993699268399967707393894681319633723105950307472270488080206302795055072921081276094818306101439872297355520318575466405099405380635415875858899548810665845024409999444503035153077190514194480240719165802971844379739104042839913166538482495426867833674435532433725079421690962892057253409589122139836029918436166357758114957774643865376577752933661929773613448427072497437529005224191859433821927702367038553731644742851825650192669857755929916830129172402110250162726357754489909655844706842104163718287241895911687236233789327900336823734743203748620991102070752709919529276725757081952001007675374695302470403631358144815846466375531206019644251914382963506210005541012582435818238677778987679778521090645979203742817554355006845308517176251857073387817319792101417761553498972293762519665771703761610966254549712240928085451141437550458431816118643230688888847534569032875858258400670712444559779084536746773806273162207175772150878124767947627113479963275097908853976234857628329970459580639722115837664309437352839652547095634188983265043665195730340040689631628771609230695693401936359013240621619339023867335597178692331315130202294751913549273430642565895222347918770466381831527544798408294369549046794842151150680890851684535565317448861837247367909840308236575406783753917343870158628569191348050947484993242331779236808602167257316441138543618581363103838555835860265074145981557875133132954228822135146943416315483122160585708231882662406712380512016162361213195105130221714825221949086261707157539038600905629181047507374065398228852381216807882274038887316539779660482373928945219378425116981685601073688206762322089321430826271489654877969238138563369715519333248139496241986021913160805518734866102722697708979037648309834894425343162545756686946771522571456375324910353967417234829257101588218514556182912437432557579887148051792908479110597290156486997037076598581701864641620378659844316638459699048021184642617916117433525068275436292273868194580761021848706997226995937971823549790842278830185139159000977751188339296680740806275698910249556097986516403161766972640149200207279693145980158490392866423949230629249309396171225963907865525157892921665258283342592386053483837826626402105519025712230528448311639016958240789605464487347625739239033606930584104224463958445697949522557613233705858327832998183743282320565423559360913191483981212639814315471020896262329011516786366305054794700965386189523701309872653900479427546393191863150218948523191453303332758243885267123039000814816564634261894019823256750076864187435807345896879580198529674102672966453990600333337691387517719889459073325267097827088621775219208071023946134475319681832190246076107947112542948220785269815641413045500640013243955088085285255960095113681282066683824267092121369631160424125037409495180491800219764889883406162094807726986057202568731409678241747442683241970044025945351545058661552308769512692292328346775807995485102861951115928332352188330674416125678488390706510839948363413143054980577101397091851982515833026146118167592722835605864410113043304559305298467126299010032386516090929578521198586843697661411960992877481989683600118028976486772068006005733841937630760596725364290496926288844412586198798580807013203061012854955650456795076329303345555847218327954147124398871902384392726673709314441670065904876855436137605161547905176877514317126775028016406122684005667352344822949220409886380422480638640655582895235429317190947277173862130277690833255227868173199298886631720196429501068286949175233695916021559837377863177792307644874738943385960285215076754151028908236989815724773025061974373427376304936559264385219885149608350185523136987167647790536875643866416162293495115892410141144475128593773342635863302391075728485783254866330210936823998597003714165678639182015122361662408711526545726610783776517170020742894104517697806558895863133052458376065628512193331769014992095208607289492500476393851199474143409025571149892839318641471845812533690347339333120980107025095165134985868761792830300043250256953752466323652858301818641232010146785507162642749897659204102208181800525694937626780477203922081003140352626203620996493198609649834064887476770276369890678991564939184595788805207782913019553565534980041879501646020235923161941764939400769925326115234292273668640008498264229359902431352384221620497915999422326488456865093228624929897152834576058268115132701566201114832852224439032095847625705912732775593806352521474091066223458226883871073342620864325607631323147838838054871977210677495877966557072368575291141714771296852611408329972314958373238219805808348112307997344569778405915692389617097000175993545077448745404665130429297731674393483867261036000429224980979899128362511114187053735453216160187213013442300695799754120761246121187137958243273228741467685819064026628377266956016286166275488381596516134151793801015439496540731114221215245244056336397424898770997447915417663260575833131236295765091441242543844641575948595902093785513447669816129501544592368745823709065209968767153279243972755358578419449634379991345220475069268934592799143385897388764044579836544371260622589241770671691749390189617733433570785664499213650906058608658938418342259031042935882095787240352123281495929184186596916826712633986521283346152272834929429096633990989011383685050705568389803243352549641517526583068802398007798851557898657622389905043066685541244842251042226485269558887389485727457479504180418982922195488623486831848210527961164701929583939948106040086252980246178621894522630771847475930442250087803218836572378165251357088278154939046437248924142681678117869026938149873332600734140248883811118439038759434634115715711075572836671434553398744676090123610978541670896555652660447289105437820224039748279214005769167378469308121115377490650593515991159375980742473858945736536319521962664697684347056153383740526568094626667843871567145180150190851578676822667062813248225479274288504969573439326374541624048528947787153664956371215577842327519982362534484619112288713940007401939144438337264323656252018728893964502640458916168674093857436538529715436402930681678980488043623196195317791360235493563669211737156881164410447828906233397326004022859319012113629551954795982606674259886072524971831726012735054733634708634633404680937508601488946151399654564521698177115735425587769910407763042149927227332197787113817115398322973732386332263862604053361297314128271266813168749679301056415297638006508018802134781578422745013506012298858078754035568922118194844811782787904455601509399075028263860166739373161957468910628436843799569457445573107446672090251861977555543398160917854126503649747751021785148617695988375957441002856585842766329443961228873749573411707954552480390910009945541044682465702193659133056598741960119297377028446015011392713157272150987764666793896493903945645699183044780658112467043353290115104402657367966746650913682886590627506274043631976069660697444309772795599078147940545361809582690783262592593860984945077383121415267477957086304553078126870631020932782035939531085325943285299980373073352423557961813598878370662518886881475005690052776064381142374964834218976034736367867631919613090785014275073441767502126912019398834913680598850409631480218223288489915213982958324727495460853233550934963103077055699134645324144767822602397127485860143828313848730665892306670564007621845064654571426892613909283659708510638109184420245413539995546348402535356215355758642955447404220827408723927847247384804666687830986439918026887043850851284480731884799941138335760138186187355263286835556194088270793800881479713106812895779869372156693226972241779697015223767919719365366329193215404311695798988756926874751746709934596825795595839147471746050000926729527882141161880501309282550528696282707040502305911801859855485539838435334667576336553269865408831896877685986135877814958423989175177240304343447166878380751523044767922158109486151793658128031127452268802903418165804623300976808464237780732572619402256572977907250632689177902809513940306811455970700126789588572552530489440537304096719389560996672335423307737896291665860858517943664002627382052641013386614103917080718948863628981111604195255692733898641661879291435603012380977743309088868764351467183172911725250552261624817290750940540070240312983333986843170275431996369329721705315361714342200008853166412338740364281585206929547661263534527319300686851701626082918143653791948717138885718975278730289528917870112567472869314493878723404486845092811216584707221365934882861575940980417504023420278032473988562172914419736132616758591135863302212876490386760758592515612705088433310577573045026294388810100310282451248573683429142197612799847481282567613354290759576650975605748652129404946640101052223732636165912326299494046814282805786182220097891254362255275904797847179943352250683365352903641389828466416366378453233877684395093463743839877430011205749657241771684551278923441977519311834015357416371262531976733502763690194975967867375748042882970657912579984952065976275750841641858121682586122463054588406904333718817002877873145600992112305575612159925786535603462212016184944789596845814567343266261782017334116641634164750716236695066334740635349160005801595309879974916075650511239622164424242002690082801155288299102184032581127975002365811447194232774724938383985590359322431054359991518142723133680048902608018154622854345033387363086944064732601932293916582230438082203728668182304400490088228428922105127902576172379129289748839543261061357760470786160396960914178501137963852325540592433804211942872309791413682796735977877498804152497870980707177012210632324947255619504354703370065466795355023291785652738708529015327653607363460896591566984391206768449240618466878679548730272494705746271651027639928595231577965926462621430439629838396784780254073732661295359585300489630537090937456773101300213995909139293797212979266109834858923023243087273964259972555259564991355157294250312519046524828287449866914708147521550584335658824192964044403295720830866014098814981745927174705751763407285938378754848244809976508885118469620076252646737861246917979394609234053682618903861592230256003873673827254837311596841265493976221205894323300778148669338338378944345646795817694563048564922840204538862179986238235536687723969487462994929450166155895174484963868770242389989913032576643685153055713588225544858017360025240609473367171957040739025493807986449607046887050952039721364310766924347888180424720045115994456465714765186951307155483184853552729544860805416839010133581833819789226220491050423821023450736592562214196533696152286988137137171826975518107807087245374189490545617325318084128615690600359063690487168647149326657735107232697482249170317845027851607954143373224088985882263335302448071489256410048071025106710486456214682503072191077342989767640924694659096877661746697812762951292346411402912740805530889385228557243917981388316371208945903623436580736877100850968680919772673384606776817619504003409663431135578417872218002775218205632865055738554502634604842260625766304367224178794769014452269716309872553456798277463374723371066580812860076194557470170102664996009274928515121498008390030828410409835959254578896765709177094775027963082250857171014254673720836230438441694697554146448177100759765453770596269550104919949383208433868527721675962479468842571944885647203019925065361440943231584911597343535918578161030227223887697979545067438263973531409050067269971839214788591155190885219986757733265494072493174961589845998514009767285696462694413660249710982605647130606789598653234514938109349421955906514524836507244081451543141234827598048710972978838502644200327918066513319654677042477935168480595264937756397085711968703945150279086916191570574170284142131626097750821617542483084993463849527429837019639208206239707477854825040411494581721803730529928751086607545921157350638006498997433902319140214787706611015000434668845837671327588041277019775868130033506072589060865151980226744818522582159959958116458911098738170605987249980474413706664542618600269856946392945451932368402878841165807288607824059706250092529498552700936267323906724189505401348557861735121260309894573344109381707015258712147047903436009216634507737760456629222309484549500123886788116276288191502976844583346128033098894642177721949801951482408246314417237929604952249994295594444663522524641133658816916588992202408073593569683668596366034427903229633842580930200275693372163830951594947018998748814302637726110028580441141887424534787080778664641668842030688895728173257476714680679672721458503727432498952963638294055902184998647793510094627701011787623617232230503389316381928638891230581150165670876232967804257855297743348383664893074690085587093407496620963549329192485830778274423302179585114947083445129169057233170488611283406311001522033601343008774076566719614038026532726662096979665752148506717239471295170320389873582449423960724903249457139842608776729646038876262751826343451151624109553311406011641836305377340646004891826158027578634234090411136381809356658523483920584708921743302162921312383525852330368118223955571535751157694418754127932118212961571440037800062937697658978780900987508677411750240517702426334548634888936356573344867395552303194605544286199123358643984021307938433596818725868669109393400537269741167056884254472263506210363391634082363255622083107018225333071612157852085169097550678269465283714136219546944641981177812437013136370653013581058288923225146281151461714060550236967002288720026900914746137891343824356771986687944574345620387057409097304239866230778533417479514758667227426811869683459729981413709137698164643628731515632691633483605547245920338386228687490202428084984671591209686048075162197424892751681391735655510905562591995992640883095572378620185689035677985561752237126286348974152372520155444535176298499532117003287469609397508147011138925723262247458105226794663826301869525851130997329435882193218872292938984230860495811874509525843302455230313570476381060612721404532861211629228295410616431088038992854770171332652506441509257856830127338238262725726341249046294977934842936063674851528362049120713765983523581737678091962510533783331519403934459733702668239998165877933811280201751027246189520492836021763840090710770408422089513574282611626031550359196080311746021006942166811953995990612898898025533869971988666446042298837105616485669127580063257828708175054306357404083618682464017823843523674612086474792708121924103271219277073911402711139712999543656640351056728521312128440218047996933374535421904161531780151521818543431709576502714654946072814618275687468671628305347989968320829387282429656709090749214375103717949960536690221312225607600955629329018118808413738022765176314146198569376984851348069015208719435274292511572218702907910483472413961292294921563777737955826759608247661712025968919146976534698830361088010247719472878590493169600136994413365845564397391803646767003628547768384886718889684569686662625590541430975014141445536060445253300460809455651696944230729882739357858979582939675797248455719840841629179711006152876467799935009379706420176528533381010839224154311811047725500010850448592250937467880180803185874332094157848020198431089212406861582811056180939573320645876116269623193773645231523058128466634167537918374340939772967838923059209821296788235449268324224282156776555754033512467996814628083029223369964557800720165351246493126122737596785289329442996970724684510041735038987370346439173047087130532820932134106198050449887917832012829879086039714875055855533464785578844292915944684602006521885893967050003591167640415593871313105313670023852640079610465137114553582176347311550887698583711628724100310150570204092270765119065166625650119609061178659998429136865448244707972224301503848821254539800464802553624977772684483468985899170134109972677707189295048882358462047188019112146538435958009020187324616070276221100266888601479229796497955706599996330198345087489351668679248566904872947929316124062258718028949747788777855739985303134882987715738660268132849899277012924386977423862653300006988463086172701784112201037467644903842847297157996776452240090265325423139865305846800564204942941775568331596825222595908115423829242576558685796732557363476130091699292624591708543187525505473974945058870851080063637535107111347679643634201341985446176995645762571375701433539357297033590394730457372263010032166175387650534617016907624120909102177640833045441374451549393074994721211286633514386783207713240586565878626971281299045401133451421900259561499981672319198764499500958218156847394111227630219010702710456658588628421525148682119176421245671089573957965081663129562543834619807499881822748258852429141820556973310981558341899701049081887373380897851049723873927749281850001364252158616929443290394421342586515853785452104518085337230413707001046701487228795998738866691028526028482604207623982552520837105985304428656432408330138570170509806228918302014904507993083443519954059057435428995751157457426119285083902265140773811653535901735560005017639892987075413770809428741599627234985425671383845814025201449666281168224730303293951715586097026488892956457743866651269314849776686991600076467419339274984324698203867522537967900204404448569936835172821471364761317161294422436663255647211964237012624524494798338449550062575874915108037837052390358509581962402147008274841148729917620279173398751921137742164134419387731568696579850360511095286565954377286714304667540495872241630829742279677844823760404726091936955951217879149595613941111211412530539663267182392079629286877171706100139044595369074096817533976615374843165816822197087083180388267679063043721403612747096919248155198507681609555143244794613598271113667205173370644275013860647269254661694852073831697137502305937148733096265756580912590787881962884559920388341001762217351313361882488028291361936911303937442179896644152820210092975397082882200407714115390325393224121599654254236128827625852845142718804744901339651405892866750140574350000160692240954398401345733510489132170079902466196042309141377503696551227454226888434686267139321892034047033125580986206778265136087058682038529056277593272111967363165027142836101671149317430019160239196903715634671120736021773820936786090709093619753031910736470278654657373861816565132540648225998121005717667912085830251112937197554881396415471335570698571829644279866443213945930086128924887881428066859936663264326144867889272723134019887482781288226153319898373275031923087729494578490260266866520475380176337999988909398136828113830788653681023882155162911140194328555277198472927438628710112244593577970123628279671522073753836520195591752652110637052105129084913553176677265183033652231984953757015144818938835847304972651931652184951477215413736117485791901071065574122554327237869311331791795652516351569087943718624697751105276813607207269130557682687904085434226413343811585302096009458641320032706514873775325492536986363485774637884527761702364647755906687380230857683316178476326205107821030803527368045531299681839291821655811656360770518073933822583756928403028407992658231476603337309204581711560567963126714850912302228628516343294396806483740246931864892881523536548461189402042175939756421848656942202109839613929863521109636773984803629927333691047773441989864974488095515851699799364497240162686171357572413028494863425688013017932206310691720981691462502069885131502569571958570798201667198760054494996877969245363422382589293030252050638016547220067168555524376292700633194209813332835757272805435063138665220800369968266472470748427193602899324845190024603223408182884303860003259066389992694068760731962272414437731174370331139031399047611968725561498113357473589034996842255513790136864603400938702463143070994810840825699019537441104230577740099810838841333803851458380233298641039875630266129010899230381752692258253151844220647448433131283545027789671628626208393100027278263388464127026389452224912355284518430167633415011721626898549969359106693814522534359868912574396966805128865678528104723757106202486830815173496480640769611237699156138253050020323370272323773188964311789177377257674351511790535576064794531160718470269537117032196354853455923957346819311781747321230713251904372710856896227502350409269307935693344192159702974858976334813735688636686373642867667652568782729169178402915600575801115907510700651170656330175359653597188757205598566177529800144525861166600751910581832097176355210718288887110843600710246047493494368675702787023360246289864730350782128409466494444088165841498735443476241716983147476132452778384917105364227496001197669479595156141833214985948255152907654607046227547174546926504652425508576390551428520259154604869920961615065878884481468714801094659566942239980067124862034027616972944341162658366989003595498378713958262238569800127942709834991252852642311072015525875941218158272049512747305832362636893970433887045689175153752917235168777024104905450173569288055114231383615623573628040267025565625209010622443833899219335134284771643238518240126134039526065406038904149282870281397193066820585503139617610410051346830125666901889547789958396062522754765194762641206655879655341180912736399950637764975146105991872348406857408329080495356627423599642728386875714944261660003219696187381465668642780750909778944364432266143822416606363856263841502868381448176730392585307991752961844801423416227406361092922115026063443070197111067165263947573497400038254366780041638160544067251826112105187220249063446373219676671997002623050967979515678364088761064565917615087768490232961367938263525394382472433675993356772815556882212425842393297409000619780140326930218239058779587272669289679888695123862812167159982535206814679305227219712336080902489690800084352306975832224660526346935110667984032930636076784903805732340644009302923700757842777213275952558313408051033579522803612572051357217412783648695354449480361402763630476641150947240037122150303968279495216113092049578041870472115611915296397329432476156339013382422032454395917189393612988371054261563373552630328963905749850716081067706848119647191630678787846646180089285111317091044385759969136474131547629398396494316240946809422646301983529234725811100872271836218919410151667844340184356694967598532200311357932116499894706531250346360618778774216219072287031254275602932318427109207922777784278862037334647822752985247511354265153934625710213095617198196202179488350259182957426158574002811092031718229358424340488272413985730138296927400348614222276930028091611615398070606174991658341080279448859450065490259488820976614407207851230150882983249381228960085666783628476865651752379181738121250629695037681098032809733869582305496328638329889047876247305490837469513052259063540924719066620510677496917714761810541657464907462341287158189510874994137928220106036901711785597157683537680868279617650815634669377060704890148329474147604486020253519248872348078092463577352033495774939664172054820393407250498112120213323433279017251103900236222470142042504277905949870559770410070641163579698681553874747518201975752465961596528219683059269610833502301500928676051362105129480647630181747524134556993666542245238910212497694953415409503672450859059133957333419430167339311413959562425860206847325590423981657342140407103538350836842591186045755211434061794151717168949548540501870018353704301354642330951914681148358164490251144270418280671986320261539704373621531194146028079763102987500566062456611936179954416309675278507407722486367447937650144762070555989164304176724094068089439040686588968471285040344698152014274422794452380998640560837664354540041883137792406420147451758471688607823079055435936286692344572900337354333997327165791206718446799096845011272172988577373070309886684819709050820289321713666546932601835558699766811425071203685057079045271361784418829487116048886212416472098865726963538573209789156367507889419673850041362133851769922019576195326770287030694607058801196348130943502095384082179288054684465819272144151536206837090555135618982683994067975794085846181266286831530977973214735100936114586977603276696159979433761711475389869167281381245286965809356115948355021845211957594601629609231514350807090204882477951208742501833330883505805145230324471735947314718958990387187358087545484039660342144090448804224087842433506668830964160251933869780408899709967410098883366049439967199583087182236887063571003850598013711883154801475069243927442484449377063938001472412307045626310637579244651486646815554415293370564972346733194402470700285716621172305165059691737975786673791316577758200505958326039339929621360580265808861664951293871416708834090865806432602918166977049784227066568919612758687147840485014471189712195066902763788518225440155082229642703696989908825553936265098287696374162773726024011703574697693566571660478189252090233596587195000302828508999764696399184730918829285459628558502251580956697991817910807982734764766990105872308430668550124557584548083926696232051798656320700303950365995957802564536928642390120047372376098295491685909738113203913736230204888152166884974023095607547212655465495637350142132882427019401907850916453831213020432768887029707299292710427290444003287083111215487851229055730510512209215613209352593237678851838783895249276242713254363949688928082279180009491724625605102762037251317345703317815517183030609857520436679058847254287926568261835791460729975648605280289622936359270971029314751856793103473343037399530930695247054585343738338278550629912486897253717623762863579143079337095783603531729250796456057027810863704733602510269271496503918125704852244161368237477001591124897158841282634064998072438090675998473347393825150118021425812349548534311571225120135111330436746012786586719088983533048609691347064936888482659691696753803879862661761368738553569841034430704584998711228792502003183817679397066909009235853586730277508300051482891050268844204673062883759421135028708652171143426071469651150835556597556795146412889907685444005317824568813883843690605893204305527036288313840801044760204631783030798492094230637675617242429021780612643379343231121093207543643194763826622980107505653328583806423883048053206562719798596622913031226332512165261926954077474180123825400078891305833947073783907861044187736895428416897910937595853944575336745900751201468694298589595311222030913834402581432212316958654540358359070711210218199992221723250408389156696554189391268674780369764333112082220557219508773876122851340246591187538402110151254915652114226895775830657840346124273669155039857838823777046943759299518441986287393960668915260136298248681627623103934610189392222193674426947709249655232284013190696207640100861487532652203833086107527084035824192638075889221999325028921464941441558309855961868293580852652319221684695252426515848629098181793854035404990169946319431995367801442179302092435913965789662508238446221374352930741001736146045596194674924382799405336023403935570144919881368760781666891806799665078054986303249337146841549224571654682782265347206629934961018651547984273798722921890332553792716837716175668534023960281776712017031977960876578831155693553066535342145286118910388313788947078742515773285991134054611965768365676544735567210386181373868703031124655948573554933659528722522028837578072911779618441123679178406256142894656365559167626914017227152901068638107437903565225581262567726351417083314535362118984877974545533191994815678048721294465602633579782893939102393002605628488133416162642971991929743163674770201760533756101862915598587099250329773568769507529417403564312041840791889637537879063555155604371788456669600636892287918871059928126204713542837115795200287664664969689280871425712478351725616935064007053704336547487933125199188653635421227280326477025807079339892223877759963299604133477708445825733999569100463119053792132961627248847930375413566437184013724844716966479248542056039174502599590632537549918177145640603780330192009084914585181118195061998728834636459142784440206280459032679323240672556445221590147822730850049915282881098196238872822942494666025683224548842295803326286802188146688308789161158500399655029898661858757720812948930239851129292701893189792149458334638245131164117984576724814502157407341356414569103416121642488571198019303030495835416007797259244188171658567897250047363830940746374174650925516326293662583784062742531667985654318270551485632299119602460188163500802553179290262144781510667405193702688530687073420617674416374840036761530819989656494393020153232899716967316699950235894618423866679105962016862310937611557027023906689676619869275626342569040760648288852459121995100543516745352540563907455434453332736623306138974729360311139391024134573516974261885983729434015621266677340948911804385354207089877164968909719489778348886163823559262588654282735781336985842436734890516996015840939487822759841841443255159149038863344172873323831637231600662250589031657553203945983781017271568909360892188623391769490257649193899471095097706095585813570668474967349988859864367663857804049617432957325699922500110390593284916358838088603216750117029275252915792468017608867568864805220589166124842609200941106597114010322866357798789494949729096020847002909414895102149669118269485306131626918774550334846104094668772851016137446505301014135610356327650025083978818960831922169742231243171340689884003162947053324485556084385509607725211360367669461897545146227257625247593430624437442786576087825065191736302436812246073207652353535510333120639149717632451404873520259926520552131126385232064378597530989396101333161316166807073669654332876554053199324544620539923365535225361789428398648814195463772548031344548551947483695161995637664558394638494125817164879525060265718576594513675481568887568045089065616739069595986939417620026078466584281394504226860536728733172497375035240390615731402470711350618851306218416628684152185754590345468407651426224724928913699303629507371407630715360541604391437731029218521819341360031136747452729834890585594487136930020754454514424710645452890860979151150806934157942235597823444130991443841484204611909485002238731467354530682834495216626901932580238619044995080245722575129970841246193577094786555437578305361745648845571217949466261594188555472849247107481123268289535382641489587652958096123672422448248964251731185172071822772585680118243281814716260099548757770219323292434578454851780612920721777989544327687521928577075323582500874001293769958304972169280095056163713062431339548917113878768474842466793504533818431671038134179419916890720690529142552511928837016898713844165567483742302406337065338645227614832811545760830996157245648531699869179027804021032577444736064728633866562374502328936310237521136920994275082446879101503144564150422600114048229821650197575369939255473146218791340669972653031106537632635407385898119293468879480969552824694941302191905840944760195638320874289849013928620477302013695864019454339801824211377685257235211551044474617957814799694090415733224075171469689082146183201550435060064984336438290621068485140487796063444539441158682250972062859497653428837449804002343727528596778922205342085887068116675601524365036775202521200303108925763728699614463858457448311255117847186322662747561303303647573424741747492718508277185201358483562455924756344730004204373894289934906075270309822263964734890200173783671018711697553303878905532627500982467607736780507292418994464271606800050138119189506032536647788465932521051552922617949812931002586941315234949815181116281252902849509977314889387578476900535920054861132418695713632320424280703382931387600440466809281145904466197590717239885281764623180087267116059129077195968362653862057053064245629904337507108140188931554421237441095231032617173516360579391154212756428795525587066362898999332997904678451154341307615569578467514227840291699468657042219917328662773708831691049807245720351237250105102813817445898670150201640183571495452257050551715886812683022438871009918803172145326842892964752333690121584669212904509143380296412046063684718454470095682798985156590475670212010320003474967029412666952204731351521748526080472929796915865061285164351534836665815290938082563172173901167424550307475491439223869283773537656882806428881723733435296944084540813815497374863774166658501401526620567553541059038859807770520585886634457850739086761622203472113982259890183157253612389451129728268295891990385730415964028178648980188673688913821401513171272444955159152668202430013324271930210772686110762910903216128461256215961884756874771368827287174219128977497262008915748993439054011003968193619088278718110023895015482511591225780809496234459066274723082439408435592645153909681370978607046892798691965345917377903339286512811511312655422318143544299725716915242207238146513731702521641353662611268971568942913319566149426525050791821555321632059840314079846202043885388168404262506502616481389564195549589509551711257563808577448575910064921376916494443955998668363490833644749477492308874489079701388010193637419709640289742647185979275713771644053762737256244091594840203314080019578559195339312466485026375494542500062157775416810046329392312106033969423915421811003737423256139267242814181920694858630190449290436841184339641418981566035493903778282208250429345211978796345700714012177972698159842238997057356417463170981003337192318027254493215782433153767884497950955332955151929919144961656709548677729148928553109145758730126260805933635919108063391976960143312224034040408086280515212722410971098286916131193574029074054371393422773800261436140145665186916502831918418803131249267012997994057180314678243799461195609956854768734268734205912538776434520176392193663339528023492719823893441148743677125539701366791970148430872599441412862827937814603477045419423794569177588212479446861958269159661135089475273615495647717024603692502895897743245305693423632745038956523866629502659865155938480828138574135500969507014767329973048279926280379603812080492703157595576200703048441122679732048664626650268230605044438322081108470137659641809458036729876965959362477968187698710147865565660813437609814100875615277081054103124405421018361868558848698955442913956775049157658684000245710672563461676439258375856545069314422394339637459233248751596076075990626061851433677822543263341631374838553916133450605386198731743079819433059930491271686503386233025166439538833185470434561493319841500211239282996826651022467256147820751100734952349197054108360985957567233767982201333294619941594249925400383149786483795507317840771359299119079379097239928691947217409795037838887890793609032514632752865560736974116467478545143401355758061896243120589618407662651209693109281826710888790314080280110997280990305725714959472988258563676088657823448617395005321631505300738995847400357340795224393957235049793551892245377439052117799112370952704409393754470601656868679070833507906663287551063605504132944724403132546072229089543795306610722512064610385826479241702785539136759491871916495260109418424344732227022522971328998470743094628873871761537857924579883496447222284684693430770432368710557427710850575022995490468265367612814426154402464817479427110211863780208190879689647205364891140431641476155882114353316234056787207966467128578763199921119739767811569857490984086538994570636353244662338336072598704015818241263971952812274092619286400124730814976086623352548002135110252208218738015086722234729437239073181366564134955581961385656309684740402309362093179981146821222110884118712499260015323856684817523219072581576775128127500075139020637269629645042784309163357445765560753580388132390426578109834416017277096660342246707073302985190142814835160178459955180400605034297402333680968298418075807684179838817135940138029039377162815566748318628272598404825590185551458630017500379195298553876757907620146650871492990576920132840013843938495412148175828244437098447212132902144677060586224337454657249552529635559471805774934480433354319865607489076642571197622276151235911664818482216646565570270367233581941725457068846521963353737271284193812552651558885717382512835510620525375413757167140078924324177664203234980933587545925265382501666283220136741388747294309732358066202924661439998514430963630994875130959735815950524603695979121153306192329077042795703878276394839564435538142512829740594503078904791138620750856769831244802442096421054318236050256425624593028877767304958341394465380348879418595840420268779769830757624369223891384074464234017145319688138450457043442561152296440291621063359483119489640338634829600716530106439389435924747383992182562945376696936499824097315242585641366003013777333559642037423811933442753480434423024336394173746789003750613007953932275252409171743735818824435911466024350053688651832556143434942356754236836251582555420124758897477115426869855783752500002402976421877163845241008870434969729799522163099112344904867079387014580199966275174986665939371408618356067747310685234260825852154142572260489622459184315654207880449977179259524145476808991293351670781251024158821506906618694350231070744533653206141832072980610577786195148354678860552264611079552051247678424905585515472373167355209554493756299307138585144931931358337769556428467682236794965297425243855965246258370189356380913767160982397542261524384605174586439177779853750434537601375644163356392759544718244479200721670891384365274053874748247139788054953692121216868360330561414450164185052869179258346085125631352890968880028716888185454700626172439271506379631705107720667871600989842118485015425673511041379785195466837514590216890035919278578358758543050587381007580663080648696205679770980842111465529693151064999593870209744825851437362143330671217789306590056964571122737731756764021201622815693484948303211136001701338850122038459973340224569026670064249113160225708081296276379237927204043102839277771791597478248757387596298077516957675701433249037863082725277790832295579797818665837037729624358635830734936264470750642408142464822714601313593857373946589043206783582729263449334786969582245685137001600472060375567971296406726645018948142718073194172168324189711886505911473862356166049228064107210369712811840098788684624958976309848288043850100321427984386656348068798132209105069748234404322970129735746557145395417233946807576253523235165176307736989748794505774031005847293625077387674609245127866323210559776437859420001900191389230546405551222803416434267330017504026180183435661868330979335254155576123664425171790213649311598359302371562181771689316800035403404362613171112681048104284133786105122891498311024146195543155328726691980272337793685111969637091690684644964019341158904990454278339894017097220548011850707897879735940205934696059345876565346445156737804896988948099293972406515207009369417810458248854824148357702792788105712352671333020721287626192048843993403964800354215647470829351273931053316612659347513984150814067804696747552152349555940249160980990523563425821879966384663767016532103548558095438908872332644003274625267467600970156031960448676357059265141579434562117317205135341409161136639504204927639604519090927800006119295741744508964809544228322880853114629330317214153574158094680146375852713633973169741338691449674773347229839437725162391722798937779914452543195551056562208304336890956186382662828113997716019080589487504676933166626526104819238489608670552041236408223535948887537954270781144099931385095524136770034254412478738768463743329159057240387608449417084729096984088846088618485850235263370891064203993851867308010793807395292936823366801009715439362937108257463708553852757755254800946423174986573506505589039710481271221359679454292498405747800143218574318996944598571912462661117306702555062121949591194019195401216289068614255284032584386406867984558111578356900124985402974723737323994585558618264986312237523351417167932472959423420557978624166115394220620428717363668472033218856500141249675234472697578218056936099854604685414469400308317616444484417376421818993810891795624634567838940257831722907244052520761999478066990980177708736456770258854911613793253115188029410349532636797932156158574106389664530649997158459996251137820707327625227689640179900865256704077683118498193459865536902630134458375548106042924404084704375180772917130740433752623291287742513857890993175071965165323969749011935797655892394694294651434542041040966622386352079174049277410236690527362188304323626062234522420330045494625142182191675654321509493383558997624158097154030334484206750514509244865045296069804455300823909485723408172199347171790937652156546005808623205221407896448568840294852545470071928560490452163285366613992686786868895334852459451119394123406220013933878716225530407208343181725196352464437380931421863489724643864346192731337412785067399485460494024645163174636528978874577472887076156357816260204962198426088317843394232334570124297384292293298485875565022249585506988747924204533793395012667141747718316366884035091677795726533289066820827456429162279657275902287754798638181144102998349423834632977313007620195927573679788161243102186229237358094111153534206759806046471364811131641725094278311182051541575512720446750160435807671381670848327352977837510997907882805085761791017087221923533211052481734624831227081001975082430599132031883597136899962326295348143293838238518079793362512873915958655542079747945072246702742221723866380655739217968871167101927794872711353572826846037770555012228007775466679615060881302540930323107968589085218475486456427801333116046786143082018938820138811018394459794879304058576899451959328355777229214101700856329136858849401840397301462176742657975825327520713439454873061741413679968943002947345178139991213592260665529269694566154299056820832961883006639453705219897672834634850568399595504540037014432856073772619699005454357373867223776752363218639653821359063415268308042099856784024286814941226069314501332168465888722706985555013545402459454192675385140044622650016337897803416046986162121269804151056092671393384485804767663973900459795086011500897463138715509601512747921058770717678115685310624278519623354268268249209072515683959951604579019391629656955361945264866259625177165782182518322377287108167296283952953341007784722859997265418078157396010762576759008086832551961884545748932839801581796319708122824664444506509714878042734745207712754427178985650696631108922391273440430129729008027001748434137891315408253616129054943288664028327139164282771087060576530739948732424673073669170164837914896737618643750717596184378420634889432627119289965012675097526323197895589673137161032027257756985430638742879987808918520294374806283854731083633614744269470629905715329595247357335854721537633025787625641902692867132840479441880255484963514870711304271461793952506030601568242928562293124106997840053492826207616874968672090078788399748018165215251999474117638464981710569864925926247793411652831828382282449600637202671867042623295890122150169302358411802508472093818357439516835996120526040729859648521553166072715172087344140195240370713323539119361028875891533647854421951717614817954221256076726150145791256714817230615222702321883462740284351496178293450876974183024529702175636143446030758195654743080995430647652413827489022131799926400359446642820593245560038403910347720154136214075416432029232850901504267379677045842712072746838028863830182216725920886618122937324936945018862824630801390230298721679796340508613369455258896755570176742551044193143501099824841119414381605251294446660047355343389764933926515444566839783583897980268498363624507285136503967399983965294322755440277288013032290525019021520517837104848153115024155166738486911910321932528913186122278688544801544354932483828644059197967691586110969386458851670271494601523246249611833143104818554581211233987750876966568372229050876058428468787961509806520942168533364127702612892068414782987733207968393937787946023216334914106970329461118134868602054324718894372375716150534948735109801554644011570082650438685628494587803649374033846587116434583865694362013071943342652107518471756544633582423767267547451247438786566475056816704829357522022894148927864670200654894884190952560428913478190685881413486331567016884823239992547871288608777818955299517964026973610273733835427460138361894383960188486036730002399783930535145005013849694343271270388168865482368698901865106958066307478429440631302433243657797873356203102670357335601415364957618704426089095101558562502488260734402262962625981613648772265338157763023659522113163048407446432145510222098520191962105950249428309936677623645898471647019978376656997911749756959154164114363308304923772984479678143688620506353068515649861648550593000569118988225249280021657611310647460035054644096479615631512598107319982801263909578607609801424276221404160430652257403092452657575590480586288966539134025926376272926165733676671689274895321372836807059002075737874622294134667253890195238036552826019570976803294767167172437991379251591956270402511874435282919035330184011981636508807002980316065966269725882793322403840133026597119589817010729190963747135640588396004258706519453163029601496501082603864611546034332909825094787173435230294061578466217103971278060841716034105947108522172521340775599489736700944491420764115764311405787232462759077461950341026674863668310598720617795755053176438046325277956259884033454232282882331234101585172437841993461482156781148156826560624729705962366260070675053229151676961463753490992066768540285405081022184777734308882466476444277705678400518236605823331202256111563523460559297707091764464604145215703975955933006714744143471006602506849994489730848307191209741778651662962273284524243236829674124230218447423496094346361538443172732898185534693792735906201442725330031103218984567939429624525951672938291623465008359026960965129346441105419623246520707959183602432756830435767699940679924627802782690516596011478770514535095643269341502226553294242395184300524649037035882920387246229323115685372459415364462796463019466814476045272697414465786905891431074908604855266679535981548898545658170531648039848165407674937841725346960764556672597994758835517400036802916933964262563239237315430688153102569559405933223273535870863616564945775247719390690377964578843668359522457283743716814783064767947060780566869792289657521121410212133740549426285835765412729490569735133253014886362474931625367141510431112965980762641947197642379682968636600551855259308153223902927191634735999121006297300504004432663615113161898387537279304654738652217653134998220326889645923531751063799121117081047443607158069775583888038860677031263887310292950385359159935818276463155837798602645399321110773532390444902568065295599197515924690851130822980484659419886229540711189140286784808565782472885418107566774460960316663225626227828513366637670489965430260079818495781761670738973131788312540354164131583386591546831791390107723829183504338345079809609000933880966427653334948056911606244113210148496668755495646111464105894263532105753854275755094919330290623674603480824986998196496691780631005366570970258985562546863846221295554957282736004912451677447436585475236150297347131697501291301505935849466112615713706780815065715958832072105311196483358884527303977652526964289562670861932878249232490822657108685845375979374110962852870451017226281218154178498470733862132797671304370186520324943000034340776258848604980283226198647737452147707318242101736565660555727845692066128426052615937370223743783641228557606244181607932090714536363559758234535102333360486462256134072567903944013420256329371692721389277687321768527461614221574715873599012537773363243158223199806354246475821312290456295828995846617481013125952316287332589387293048124634834132887500856381912608568408676399828291819483686453682215260885699936655508542931809690777516195276830163003764833980314306109463065069307583337977408972332841140285596174646805671133308198881944747250652223042373034258885987824202251925085843300214285745454943038965245977491600199240953284037340343569215740333587549898876334619718969248809381990640425956618522896891500510264025761273832578283950308848614214254148853407506034174120199138591237371693262887269746217631005296570519809729386367624422743646702419561300855889362406335210620820219916191194898769314603237970964194774975710510346793676825771549472104511592949908976633787672045558619291159247350026452970597023234200047615422128127534624046935427008924660623906886858404274599012588563272171011922138545184450415683937265911532583353121872786260035338411588251867537416022228241394454986213240211473099113841167473230321501153853230354842475239020844721783732279796668569053846455240590962109752365700930273252575508677669189683736593679945718263333618145855140525438038841258548260243493784138360390394792631267976054955681234678612265568556671057035395181760198988096289976264980435552269041046670478475802197187967639461529072114346939225373721241041907874539555498971827394778993518695282265712607725785724710442471261389523330126731213937118249015252336971209169947668492528338233598691784669880976094167083360365957070508437463031501972185419859818892165886002583883799261888530371579599803291115947988729207026807662224476844413605769323718839474737329100677681022306725507112243207405051397788775321376663421774003687406345112200384233981521218141189214387277053801148941895686876699759030801173440282507888368529753846719150932725933550082036402262208055199939979497282507913405765040161942146145938012013533547039708374954303229542346083301101519563548810598930421373292776973137003434350759014540801453439876421136630898695668175403346523826265832671471721322439861853420133387400811242359492206517648054480520264260456537352824481141123782879424101014958609277416177588588953854145084555591610008073192712381307151667118207033294628986709148036830239660031797241333667345758568083515176284383425610257663348125636640510669638131869702880465342922800702372393347919565473214840138880326235806833812185759366665386534783092722258123432312478087237237781285804443585586021655965734074723807240374949699939177061930280785970141775072023359717427134909393566700394540987761424851633380149011998598571529031510050296288166147826139825430896212729392053768645142843709980754737514896311572331746565616202964501129682426751566550696765513068744963166156874168251921804483998707849775939508433742729803012449630827277885269451226977166684147821406980908765377538974627032761734913508664465384478583546681133414563344589989714813113969297531798037627481186247385939945239138604474834030265350404267024904357410049592353720146201971334022111902816413476402004811208289533319309394570876069370491007709886761198763169204012946745337615488736203258901647803204363797725903659239989321301850002345489298497822990118557820585792789649600524617668744836621497772145740597467453715837321785991520636066249214328481031123112836914429982508523728612773016560146130140824763112726257013409318284076701897637780186736709786188327311544341362008571408490032935497527034262329735637254659078440140064365857164221147264269909838835679739264120416311203908959592563525020268508889017244496536025662083832192841936554981566037526866008659429301565574619879038159674769041892082280813717544100154312588940014324113972032665418761859483854032794742874040684725619457519472487246712512719209085970854841621503646815858073079292588308670835635963159967696118021552335564932527546065214880007209918665795936500829292380847368776973821778109451792548435548262754905404772463435404293947414789513417809641345776658290535294478058768855154963810620923205541053531922323775522177835075595050077186574371656054069349284710605031433778288234365252550582330361579431443097271323268363243308911173992200491832093300236907255495635657313096092502113894716914148188557794151235056017494817639628148100813181066201670607559120188436573749355346816288858289143380760425423404255024584562194062997008838919372418944466781341478742414564273589671848295455364849297810134973133345114335738802608540236715838892050584302761360425273885967611563276692793841872589212050168729405377712384606828833381650781699243933105500046535482636474781371868365474424623879235865631038410003060462977110209916947468951255716050172731540155385286177478806394068860671518097202534281931953622153665526827656576998578131201217786868383482232478333156810386664712990590207766566609946907831545220384654872633053183789595342261904016616800198265030819362373639599371428990332559727121258510049341328978200103756648622983179512403874528624721832331123135482654963085570423934675052643764256339705273194587905364500440730026154441418248588129774340789142538808935194287387533976744632215589982443451879281508833270388992642636807158298711538605873428587199191527637708304712750450510336471970373759311181014022181481215591840425088793437647026908742575564181167058496356736830743747267158575009779163890472973942382675115139833185468037561780538560246924593030427542017120895638941951959589965080963928432703272561528857741384622526996157961917504659195522509072184195791723637163251502027354707564521642492216676521909493337856596248398445805838251723671610134381326309651524555773271334956972487266104297696986246163515072492296958748328279423252711329246709606677327465052764975750570878675244836518542553608128915972904052200454171474473419318757032553349637648863309751382848156014312207745956716671751219859485608692341684684709488339789269266696776886577052801284718555578613328704143949096388617385801236269766677647851333408564590352346878048826481442232509500193187657352434638636161922685374445724145305809445271591045138541329168022648494427019349178953290816226234413459489181313868123226966683131786836443054990075034115348096179859831300592721128279809118508322408189084683782499105374503547208135165010510900488802831713916090357347389796400004616509381656894167209197579218954413545308602049072086281824306046154786409842723230286666801430739995530889353859003187461299102961726094460203667927279895721202640487040438666774126250070877995406543702593473075093052452533473655559925112144967766560850687857677768023653265987484675174374142404296478124477775672861072587202320275107751671409372331391837155988725923027343862075662657119709044688810718795714153757042704372679835361680020586748370554935898898231704807771807367378115666537977879357990759585523333568899334973627775086056664104303426182196036180537157819315590414230137526261929047678339234694512182903506470202177384891021108344446175870831610216731202590074099932746733986125219789188506897555734899686808249263982974089969308528603387569629157247162232182319202649038413849542271358152364135509498838658799442272109333811500993228436557182936021303491431640406860236486443268915641255726630843347046043771500310504509267276741749839713806658190559266250214136563170900333707632758011699742935921149539342755528065570263349224132319711729094856115685447245635287305085112680361739371678080584334200141770386227680662501071796421034939737511195481609676416450169304622665170044420030453010327689418413926572057789145393498405036473296195439926978722297167626379504888258201587598682364976261043779697196503812047735417539333644960972979889219478591504471358558295647981733158728087134793487513165566101715004531921922444615491584870207567466736630029152572444963118782127190879077140351882125902058767270183443502246792395889323099289866564531163509688264454322028225547064014310977765360997268042015616450799123087307170327700898471623412869260369525681591790372006780322989455428729768864007632258470716507735292499722317364438431941690653424007777484137293676043844742069277998231606509092634118682860611009105610009351702425666453630703072864259387766574135806100622548389605985986098908954948191620631794687342336839194893992053889806099191865515037660039390948274639291112001798975340471750004197202411634195391419273196932552477454390597320979418267963943537149327872348319701261267034425251374355666520062321333350566021328890187399989279397845382640198868739342461751883945230939371686447360973435620443562351774034268906618240886858970519882905456459904246161820714924529132659054115088065411276187355209632960596195013940295856799044606803388292305317749656425305767313021075820161835714945114797328859890080918658604003781199555922644155913487539150770843549697510906719238196430476230368752827720351274795769389007413616162577273561629872450758308909014998869788126859997646687987703669250629101157673018126570976216377940922472906170801541781597054204920995972636208466746255886982578103712196779170888517136824153728991402631136086942488050519607127065212591503971497629030133266211102952170415555563266153827326593244722312629764270853002648986651257458436825899646614431794474474761782971006944534777143581847350529608590864603761724238768526130793897185572202209618024334938211178450962775783782669553324589190265991996186510250503639221200261316857859061355120442444561750322058861930654492395798302939194117795996007151834269113946397753451545605385196263746811226541246581548322587137141923438489963273647890085461756141390574948369235322510378107006207196505430862231750428760869467002309024999793943504387055485086031091071371434677922450681950697660261866227640694320600334662010245560180150867288373913992282036864601291938039632453102395077790881305638899947662442679252616185781639281380296380523453459084720387908865128619261244891126972735302952972421552970052730716665659450423805384624392146941644233340477619051316230851180210615705417087572185009598682846319313241694379385852553059619819321645349821858742103596931214878374137382824528031190144079697271687642833371023314588058864514189415308613965616801659481083557817347385307015951163088042764388900287108230302546619181960299330878475781177005049087119446091646003149226948313070743561205155017134929578610929743382379224099987443968257560348699656425773897891984290928406216674479537835234805427625535264420138127878382522838720070294320850234636933745121071674268200594914412831709817833737550145293419159835134278050087767965896094545491956591965021882285227405047063640261057368953944486509317131797775623639523900831917072392614821497600178731727063850632537076074103865273817024642033641155617481955348367132760501201875132635113608563264001837290557819718939258558207788714300476969979597406092449004738543346005043196448008018335810572204845809244773690011267943090338093965630107101134471133248225106515059444401236202647741385436083557445500925888445574856482769392578794391872376612236613400033690543263967364977253144053099664558779975116983874777711737133578443724497524661237326436071159070493665544960310018928462376626593608110516511299672754197756504415077609081458864275679034404290386101752745281977872378957383102480196606656198712774275518362620339912149947957950344751580530869215877412130725265672380268768274345939725098477759142493069395881317379503290566048852460644416232570810271524543795020735279622766716580247359032355909261464456807788745011986131683142372286270434565326102029791485548392061668102135362278585971582094003276508270479211097675869788920917911353055098714382517457424938227876058995212988622017238709441942893977405242713256006943074009862339320757972579582573662310903337178297899427227755575825573467859536895687601535790429015447754221856912711284343584676125381901915336072698693400881315184334242781578012953906284163994006814920398150838243711901941358993499720036228410876567142732170191339123814348796593688868648016022606166259032165269559198622107536483256012706959973696735111767208494318852010222391574104334917606699751124638368922790025305401982415860451040145120750451107369544479615113411347692806163780052847561576899592676767009892316221839148637925370647252456367573224639791823973205683742927755910360032280161346776179304131193363987702126046296731440289245234565558236497555081421419706775526683016599109096223949205819610010130205859778814745552431676506046956059386168178139486049478322176119206654653215579329078016365605215081972310379436742271297074610907944914849532143315618268507476937332006476657266896436240285420715800000538575220818004724642004500604714894066639012444233237977906745911098581279585713495058968356693624276294499853532975610617274664237443054621096928441218228160995669348918503554740040561879616844878994491878374180774190045861584599248576745458968211306982032009314241947646547096507496947589778036227312228614083574451985124858639174733808590113708869156655793324042051024200608032153470055533838489502299583499774378524276636769837930458677347179749613756103022716741097281481740689752878538842801403255262466181233912069618347075702745986571623107975303838801660326850605914281547464256080550707996002831530498939420042579740951184968914397342690023890963566561773132193960346024677293715895915279810488032346283037016166575153555140975749594422437980088821675929658007029671643374888154675236798712059159227031745220317706185131743608606538373676975286629024968379415924368904342887570640595513164713451312650786704784868559083295363067876167571210202949022124899259069110402851781427894871074038177375678104388255492298581806460643927896462604839824684196264752968758628959444461877151165589140205476502573139774821535567945004802509448953635005942790343373923419820964056951231069595095548717202318750950575973406526459736179974733251373572828421770079000272016852431484403215170317148406018522726005593921521527090536513184101939580711679287187604530384996995511155442617345869910273364086547105786039627390922869981497804360581615341649254466139415809297131775351930412793408852603142966930308948022281606891184058699287127009891222702381979016461517821674122557563537935549025862850284189720848638993357893368970672867075232928150777244164936151250568224390948343289563691724202481493091040734954782697791779707140002335731740764619089914595498459064741975515036254979384935401330101942136760173565027449277088068231318264444372342320015079800035228586378110204798697068867619077992700739008327398132612690995364903048704916426668115127888869399547900056864580281249869232768998004252531449327215397531852141077741519552748644925139013924652275971713681755459894003801960467101695514264053098148853473048358628239370829993578008261629340852997827263929553766646415247588527538977635357210436958684995646278749164117173766717574315869026631848212381337930545292182592385539994537122111652849088201309684634991891698786130149216747648166140587099528481599803759542436633016493650079249346866617953457461933736947737101760465678414206220598467690275370835401124913358898732170460113778977474950410059797606754348995069394650544955996423469988621669142281316188328449804347652174574023638638506865491052791673433246563451345397784390240161045020595483806200625245651517436869965765858949247778385329268924712795789211331816916892286415159731626644740026911997418120244107939007540183846206995236257726181904088765723629559217288794557879429960271835738982118551780087867241246220877300511255364279532090561407156528939368884633715401038067927558650128400932008354280714393970486551795360936831908165436396080349870191975451028833692934922933904967310710112094471993978992812948870447521744714174397865255476416273157537305536586371572540862586244198193566535999203204515295617096295664628722265343263893353581972260797621441700961176955434501354113402521559686820065371807733511800530149186510581721652493292495975367906040264650442046420642470548060755964303591260129318112384314602399165930600369585560498613802859667533681260237139710653799435689327527997278978780391345988779107505249094962443106965498063657598488679275005802419045319858779798526757156138350156840918083177812432484498740605230206260912321231061221041557309023402536545927012550800713316573337660764632368254108016450894818218111858414820840697314301394690743899485410339134788395428324942462216866336938679561119318037244631709514659981577589059942936063986303979795684490045657586055178405665951619201197645423701058651546361143172265350670307949800141111323854522020300412346916774511599277962748002954043407039147028171354014465039588566547021027508391437043992092050735686540438550570284080419552808521234391145530586113069098755772945971194643117854731387537646679258276570692032090248323561933365964195415897014514179385465764069094367145529814255932049242674489670594596403234237886718733110515521245211242083735492979936666503786486995495201650052637962154027886589207900722979266555774716036293171393834152970783845352181370212106713663352719425967666015591080922131776808998781300476492481676882040872556525335232189230895288637358446894294275726431918088288475446517863897982771870414560208817259838952920103662867139442307068392572507625637312198346762593999616842997359668780999771150909550491303101352777733633391801245148717935513874300304667557083916589765863856939025936299975386177121517614437411044634816227163351159604776230513944673989733917106418494296655391305254402410302118853341772011487168393277976774141954076338228832121420510780977435912444598257553019926460117225167970698297826428208200097379947015557530277646763316334331776578786312340722570261578576209469416267026984993129550291333118573800006377121706279377677531768597896204971914227006618305304764059088867410310776298074671214260418615490284200082994481031233749583198249614566157287003126978648564962044645797484184893184053279239157436135561721754031857956329931154843263109321212004699832214881389444974816854093944581775496054026376339595718741626482698809254401208887122059731060576005415809690540661945723440514626277973325676305501530789679207338694618507233291194252722350467615511342107171834269211569641738414970173008099531408616186686753558221764322859033790065996742565469079208274923700738893540461077875220011207370922844174513301469671883057492594465227987102034327345874006298703606446863217376478222521936121646952150880389103557700336172687982970491491235422926681781633760277138972766597727181728825362232276766278450561226752265420296428048370921996222529356226807313617222278132246764882571048394685216308711900847911217983292715481107069567652688078180921244681261971831271091359864477993220580812191072767784369960349121414653797694656588893272450338728223609623356733885492212462103053134367748483956009247162999587139550442733179667115030703043175192126747473754569567414763991101568784489834414092718334710476350822179364782041926312728410175269478528118057545999756502453665132518810839197377045715524120531778974092053756263710618872832673555010325061302856320370694801924303038551400789246514127070918944685523534503903589072283972085068425008579841175618415288894724059247586489290624236304084463619288409020324000599721272892447561584240175858055913860529382396529071543102282932201182027842658739734235478430085449933201388864905263704539632982233837206100997252940215107008412285966681803431595496574258851207032744657437415635240378657322196009176090835897978896578763175331108119426546006743332771147034971602976832684478315571578364474366654198446789573233173617381439310208469612249773974931669311133434804351985794425788532172465100517079377792893687654075814520829732846015854857491024968560525221517552670972594392431101663598967690598996415674353751111654171491414477203890768486787837752598806983206634056760214114976095558093631369347571788619214361002118488526763664409084640884937863863057038175629840233641648631486236167425758039841401720659886310582763009640461950760533955793954636597575266948227485643123968179460675854553618433234095916495400474241277811586692342306773740496873484790547917366772584989117620313768529441135309512317647492492550783676795236581090233868502021849429345041177303119350672893700121260859853319878190676661919581931799866332791814650277508097857604796064746220066286968466315354214897546073490531949264148937843577449546089081054510703233941951459830372948267821867444407865205091698229820302844351353185921265184928863624859480131419433735889078260552420580984724918665777332309115669463898755051566646798641144346861232050694509968408364201360104644784868904113365707720118534122882154627822237058439473139354021943354985748003586642700777446949219166067749463116915125833774521662198354081329364208042883393853901773105680100372318590958073702126190064434581278814472869592812444130201811531978374471029054985004256701237863120193944569011380618040250345785095928113949994681422393879676195109091874222103003088548557894002240993524959399226246565543927305665850070339381633810253941725641203189306544591465347617821293328371836011132507653526558924187674170619327664603208823869920570798796174089746202813557442077393420423282968872324657429706929828247732825283974747922934135711558424238680174657848920869083463125758960428977545769567822849077844309210137999102306809318016221008970519023347985858070102364222788588762503207944477358229414460257060064027358833308125922710035036874842838572411263664910016862962913535425207036186958403442065219010742551842044716403999759491246083285447823409581627576141068463602896058293226356896846195530392216089841472200580872509246111547858011535394703473955040688838099537271394104541219022927395229837215142857335355475053223976789691464900191252235369771594739877506620259290563003538957315359607828128797335991655722753958594477485959721396701151210346285797294116468522267796086141944095906495623836830125386991478724357372194961545768858798418243988513816672584985361695985468206066039336646123415429448251335741187997671884278284625100372982427695873691663945790846434400362371072975619650812355532370084508558391230733311192645682176145074599560387141406848132798414872839531185444679883979982103050180465537585571405634898158777968580468962124855749820968020774265042737671223877256052054223655571255635298221981206096361675645900685297305036815598813585741545189666761584306325945549890087185494904449249127139906393237324312552359058003303476267030811241931946557109326722115995161537882257455566433989481939196481533636368409389935976743796750268532823121832708345057748714265690305123519305806041235876182009287378588432696383402823084268541571024228030748096312355283810947257275132768752587326238404359605217830010904086349458912792932439054540066925864411287755691699719270077538319640978422623688118921388892591387296141299207328064278360476986766813806115734282127950723426214758298180632350866535739022990954822800916820067720235931253633339508051140747624976367734649732727406353512019547735740488737154569843564120625529950066196267030849769185237006401717009332664234658074576680395690731278855005893413606594786895933958783711001399479332555310960018338432900279483068645358788559786247471582423106119455435274516436039362021261086226571834909462969009752729157035468835552832230658709513931578068912152930104631522925211826563247453718489632880130492666713989798130204267438843093602651543461698755417884762265420496668133668547934392259272111141665852450812473365795843363845391359230607570618008545666357052506531185994301214910929042192073051891011442720579800902440671083096590287873870842183514213232824185894333545531052844541760472570217099352975978429710582513725100160199604332377026350411953570429997868723193244427476565598736083162303520545103828293015205872131231202920475337438318400907582971076367141451368565184781125917869084998519377467389129263979663432088576562041990538377573426591051424901146486767385609540944965563405590499730204870747560176963898110364096947466067741058826725431874829657887206215723755167318571103029380643541847644120707130967562666289866564803874608098115454531986523023673230292288619798400278848471127517495819417784628206260059814137892616893995086130794831432327531260967166758030997352472306429479493561293459140965019546895368888547466938130646521351329996356246880487456313121483277341434667866083872095359598258501547262080269986810606881768224696298817871884916907936201279380196924071685882781877542468969779962314324487613262807584603261014208830760686863411252406145740674997289498846183220923503612663444149878888646372988866296070628541097341337280704808566152592115196903538966951629047245840820652343481861556386170004550092068083899660561804413412958688644005043240076168050888539693029764532649583536482238187611385099319509554376220923516106695173368393068522386738607292694123315166348661869260222413402579342779565540429273031904114048146747058702450899506029366562654803268280285246052057653033180168972781294829729562550798705790790209942908681189724097736596357058517360282439853481845468323337861351366425570248961333065854758823359391524591930161914461868007134693798523450218048474889573737203937139362856635819744561522009394797892296760322236176576227863711625983138523025603128797094858968085659483179898362830154473501824648556295939287706576983555180358716421690201873708537156220655487905420955213841151623510329849032329666693976918681054340508633657512435383638385057751261339028467800820355552061993401834636466062867594341418698463052650967367126942664418729893962026941436260107786710902795240961739065655895429995525022990703860343062687358526607550429734682477262197522456230580340932050248264596615841476222156000861453066524027738912644712333614174060765304400547097935484010229772556519432191629094168424632236612382898884733317788691024187204623150853520747723932083009077823015236828199933428665745622287004020628247089638368201554159080288851672873170559389917739843092424711429716802465004015420669198457009169938252823132106355105557412669973259076223462029087213128375225142549184009010528717729229052039427056877761519819119774543232539070891162166023858974787827192515647685148063638848371331412937058184910281751196143943956682038594303900996552098177843181931287746307297401936189584469510277846311746112275097681454875800338146462209181404789527544504521746544184568664984108280497918537873790947877277157382572229479991791634930227956990465363377777504981763604601860254537956626176398554594963155650844607684529664005165550675710037638049107557704037883215326563759537893381901346348977965664153389927313537506500509769324923467575164197220154959680657811568363619595015348356649055112284952116797844166275329103683542120705167154293197746965032302010522998666597717501372504846268682853943159911304229412487829336705968061812016652248615235644490110928019152065651852926546650011849956564834061680669260732079792835602768536257103492561947594950140821452346826996011645180803351548650690472979395697857085286575077098657522429132790600108620619680218316040950241645658897507866864210375817534471013873376490426410524112450841340889978060992557909566083252541540799326171294292597108016731574439602618241705170669048930662066145971629300070049613575738833996792985233843977668744506311820623019527875958338521127477816448692730822195447038506717322715166497680306320590113300940908654247419579869021166087250425417978568718170966244931410867219829652672232447120228911312376477586221896569879986443076741155099217807708813195289403499785575122777149057422884715925972201981627105730572247129866889543671266627429975923523017229597997161846093582854558167533328459522226917856521117268386130638107113769505991475601584035634031651563580694383547053790320241076881797708569094221426898736118848503039615838815386892132085599384341482085130212964160477236128274638286974604597727821272748080789432833240747848104438630686400802683800600951178744118058910574898694114188125844184021602730406301451474516192336202543927177107573352189128525010832913827631742779528118508574229479571641882051359790888960466737096404892697611020171784944595431090514757324114518201751583111027577753990179150175231242158213524192824084033586335992787227864560926987791796210335553343679178870645401179077123372749588454591010919472111648562574372133197315099100468738628641180554604756065705234465575580176235504504265910501097833562078227388758651942273911066097921035034157734097177217718161009259401371672284807655241915187294530270718338305064042445785581774989424715763143653458124800192062243683972721240540472650665915530181522895450256077271772953488073543253335309731193780093035909284921596972317793780433221835132969416633659641885787471976222832201287654085196213117581895119742427403881299946802375766326660389232779970897171517816068219346527364416295499025060717300581001887465011422711671687008690322375925285976490424735701385321642500690231566058803319941689324925701924848740168914392367515157046673087428814449085813846378680736080897381137161363886358110630241978920463741418814766124877631214943663993696613782831840602255432140389432220203730182407496595342952719557718075175896592082373462036760280784766829474742708712014830819014756223548694367464244908481449546083627885755842818889092102533829157171446374734790666279137823349473078090871025423696948972940261182216919032083583403542672392788478389926657788885625015344158952836086881493264226228709634383308633166442549002492100373683067297037860008711613440287614054804615591126503159941423886727692275360256973754519494663157258733948318574785754748005744515512496481594306972048151053858085923073309070146656069255699444508414670890551858554503609193276838663584992168675760963858464504563393833847237407272016100664222041120854483180518877394480367309157560715548616836061164317650423843269193608160958222115616938306009590580784976008592202775132486938902481548118268029706655446344797493959976116154096663157224035647322272532089339270705960027423425458914236445292962237151151796297893075394812685613243733895874751101319480052131949585813476430989378314500243616910419214039914359377973411456140434916299518077742167991705178003497678780092621123464482790288846079799061819951898224380474017813754526558729749800056648404214721800964468166145291809064669091814836402915954394922574440663698499335297980693453785938894705842048571711334228996916907651817069433508158365798375263923318709961473490238210861354343367964699894422136306797144786844642699983948576741560993076114296897373689806795351654502659628219717681478012083375833919844778316750075754098548157203566512942202002312271583455228994006912548098041565762375853901164820048385396155471376842168183259645992190989803688728635909505596567767190886253012350480560830284611140494690370895706468715208379066368077536308642461032803805773662542261465944304992978696707585787896975633164953115217814460967667711622360767267667673954312115416608793531553507070997662061067111682626323114325935960016838311922105810632697525872254210807074114087601892966977146148894350708942033235146119145440339970416875257394494386393052959682717943744370252631407393350022586672922418772836430669160593552933902617696154983447138939130314606022466265524031947787553793410206257699645460711526701672213398101148300500724831884498142002582281163937328228834849639572119929565339106370006132948978153456747066463172214057380484454440173269298783919268630888618998997844831135620375138607682160205490454655103075398253268892119627302125435000569447201833287359498362986740755301373534346612787993882304087655738026196550734670029696320977639638165957749257431715013425457517580814719965503374001175456980449590017372256083246112871488650547003569809665040692491430353031536726588486565945469326828568860892551316057251417404184455003960116000278639350652626628574234715902580703614141362191176165554111291209713044696425251386692702147091203501174121698010202324628157767924021773256883341158568360993372784497657253167668380119753612197965917096016565447499050758629870300152279110912832903372726209068519372097465933585758676470429071803178177486336685490024480454996069741383658016432354536233968184869305126907668341156406421728187570975144122192814736966943281412971628637170230566299862963389760870933535600093498287957374815552824914083979798840686688031512558516858865688881940495175864934263422278409250382583042876126963680744438167331889105189714943421221266889087603681386081065008915933857354389270498268142685153188826176753865140252194379702433758316265375679238842684448900666307832422868935388155304248032410974115141736354505069217545594918955568649240872205268902274936190236158583756192909402427149118309393787927809433817198082350804926361118166966191248531661517365634463464870094505027550953947076424681435989960674198389770700853076385012148256612061930683608873945852484226605584762198817510991698614466186244551417485922062807885767954839813343479169226984545970571148419106404485228721329926042774993981593500154182024437157376386283024262447553688692031589686995759644770297325346043045273667481601810104926105346207347953729647482716015119143250634534752209745018467162982042119172987151511434124062301916408700867080481677700044997818127690075349674858938813218620990555067364201508512442246137334655697214126416274052029149643664967012604110087685332585642758154437687590973571646861397337866162138550767515395228361830360797012023569502542074575142152462661339152321726929477938621086957040054866424394610041609496269915264271811860908488125263474239973642655492879532244766400115997858547741827462406309426286736166490951607029535014450131659454257531289508361034143993923393902324240480037600538477681213193052470536152225734363775122101204283917167685286035122178049688827104331642030997121487219110114873052738327572589684018792415950775126199291961607101918482913596132685121883552549717397864811239627138572801971994672092691686581538712363272944101578367376071357697756060929054251611564424374312443871420345203589353055146685805649094251880501251633721782270392110072609969543680321182236911533056246586764251937560196577350195353963008326302567423025005625769654085395423299192181416508415334558067851119795779286036142051585784803114255144291859229948369792586953732457735951677418955305510420030091421226762321619573671746135597081990243445104438327358208093203356191628218431038202214938241944173607032707441814407028650343206003191008229399873500768848686103841178945045036255673827988840348982641012005693613556471474963072561754197440918330765950889417191981970908809260176934016252423827633881877881319552328568331365331579465954995137651515003079753763631626739316985451576753552472794629499075975255743251443553543770639315596170487109036379685761714185759451109258894572444135440517067361730633521717289198507611752581986413806971934474503222203784862062176624209128481377567418269370013991317073797067743883786093287344345182011577478412341107562968264325557860294284701200448632910545914338736626215567614795739050199171041831380371010994582314188749288824951753817773249213831939755055945982628425028543094116586453329249035331410320374522173934594211820634692741303841823866464583178796634779075413531057410121406881433985477783267529832810515533867034683143207343877670352733111560992166281095188635957011614369241059687335602279692516554324480076275572477454304338445612384768342942022843763481871008620841939572965723794434910210812121281192474686895252949265841993877976958363841846705731713064532944209965886993271176047412611099798431234019527184609224578204263578152274828989564155635965724242445692406921206146529055354006852111404945900404153716366677969923979327432419090351648474478082450467514627593693024326473131096511541229224551613051944378214690793808486293024987590452743877792858651614438075999220555830299856626627217364576850957384709690586370174530181866308481474932978066427184951181232937158709370226050604368450406624663237365729889640520982219324754509293651329013968331753989775185121365955468269595937716211906575118311868903522739650660906681123613543921993769932687056899260286920795864378594993629771493461864983695444860801202108302778866707543472291293623476062858536781778558587987969586850354435015497824435711016953649061619930496464771883753034125396321838434258712402742546526560642155243195491535067943072623083971254247403819103913794786463802009704173155803430712534909204903247237653147617266826861374979495437154200333363488663862514994417915580128069967232192027468914252458183011947049450037324144993746193802915324318396071141938141680079049668137139197731688915984277631923912591248473811658530518048554727632002683173072425901597978889042700316774821193838456946246700677619669020827637762298121648611870430079484875802277431106360415065823950450900397881517400707164121882060886743792074490252563469376004539977004555502708337141175784867430487302160315078541571665387968736797193429933995050423461890769019424494904620813958479897396153379137239867641679344032879173501543887883789487260608553504671140975546783064428408282197409855666579700233643242112308300899826188015750262902212676691941891180306274554441703009868678046719725509990523010550806966898227543389153875798932287452911354886706911977066132408461250363360313369674312291491435930792842426905571807783550318391842174932112147176431863224156559222258809006698375688994386866917764955448932170828945048329600235730422582793297484752562690486192212629249941842717908394834111931214104322573397984725783402920744053093847829118932550149087634568531991222988719963502702724420155633601764760137499129956879795113271845751713451185465499751165194443572188812163254412554764798534952191614503174928900936480228432931210770069828141366261322222033489205620441470942527338404249446373576672569766900903032069625211037612509009951021184696082271904331953451793914939801344925512121436000829446037727673004378749376239440395966127197818941001452281391989304477131706056841315123492435528290722196352346480237263136747174641569746517556642394740414536630323768678261445632542873596956822609751282648417467262372734592053799347117168755163649893290258245551808687677533694921377942106477827558476060691844587681560679045033041478540637276975258049126235420129376305282240867612176567666167968787699766107455074652665415456247173955100903310336076975887275935946309188261503652685133624855254237548250506221358921919814212870281513113339004883307945131046706108158499977623103287230327609591047356781486169741819849097815971650695297691959994128162084558746993677299597221895660762321282629502043138185460631287170489375492873962202294863747523531196510879053795199166755512172286400616172543811451995237642284825406050381881442192487253519220746800485766439460899551118200896661625215943848539029237873099761950053139559030700467825241714345404830219087636748111212629272159640689167328558458092748768169864578980960908716603870453061177588887857800526347850847470391007762638763795103673002109945748783845199884165951257300212155770231361998230098879699291371468672709141401391487028257116999580829159581146295417535025412537758289209592308474096801534777607477471232438503629232135660399133821121888639904937451089627803582399299749232648331139780368135068587412639830811710479231874455744622277615410207556020330796754767606909972031002048077402238552467056161511195894257103400966652789370523212720654858714921817370117833670825949161534266555319579891502858998966965259285950759050591609971741908147301355986182472822524352539083260807036773959571143152459904453497817214924647453773162705980506283190013143525394246239262550270946180368414352374140480709722964725691243361143158191387220746175387116421295379427710007768841732999496884148857794369583420076460313563942280495477321803386363004696847694889540291487880527776322246258340688375099823302790737754363411018414537950583249919992768850187672508170392733095205911370958960859140021567392414129745514928940419842960194749807237764964382127772047948902862564967387180091789363624751777256738291576655744236467541232654811861973800415846006609950263490441306354844913297629690426872031108525153925478011793632686986983299506522135070229662499609696867314038386946696308237360081021034780589732909488441580972587921985004599644675385357927637373859917495938046972975424255813364989607427928840861863004033209321574585599037613095692310865908875533147898092731209644944577833359691525642086532639052274292353851556206598018934789930564880893122416053254195668330858040151551941704933828263971157739658597320031097022970308020554980232946151709170252580558353277284196184159913903283641084706391235403001755857760985739570881747195991101265471453290181814974475973844748505354468007945076344455556060549691457353869274883141535916324403638768657345329699614050391100421184172619383090163400970021581387252706239450093008844995602198515784925223825882171094848741229815154474950668986000716417577611160696207922102610184659162126574441116994590697371542906985454048523649727387972474445444453723706492659745392604865982488776410867491434275375784164778809584185029931285874141679284173054988697613938277896590082241478956519687896957598238622091099077284813612682939814837459922209172827272678833854734800631220296528322757588718206848253141758865254984566028366107043198873080553008284721411516982265095988731481420903928376157568034368866265052652709144214521222423139182110037215054691939222796841601896194470272577806095828551863606963805550514345931356291037344811069706254841458222594768652079187711927262283348790711241019067509653878803338743322538925818907006415103283298847523786158222428624384450261038245839346625869490536176658709741899191481034933022210429054960140830974376159416506687146974128942412350842392860579623645585028518990216795779550500414880436353294704942181702703157486356743354747946091552580371035607011167640819427567699979748649425874464443285364707881838109985040305552839730447047208945165237788828507958029784687542952340093158126900714910205038304160424304613853092173271848280682427461843352698467878673241742236204915135122854048173687223103980716376017167481737323060371577595986938447410577881750879739538640156685964857065602491666624877363560320519012415093402546741046399337416712824142393154811407851727527820851751645157136608524009040827429059242397926840449164318128498040805257373362152954931763252352500636496431434086939628387063859147777120494637281686326329505580355169913154832597517386646857469092239213064558171382121443543052909817907427715871429869278488868797029000494598363220690560229294095096305484182814898012271634253477717688212136720308149233196735766791137237875292663278065811318615564774919166119339755958113457157178007824382019729724398213316798691998104825107686179663065414132607383599598802307028236171191406008447243903239799429278422437184693912084203237727034996086828749366323803460095811136226380559292365180396853615813985211360980114697773136292843066368516395247819005911321125056787066285917965197853291914594773731878797268259802749969104503415077211242707395688843805114197465723140339180789644902849237958322715063753342433903937112416750882894231403808848329225334676355454775943387538441275759907790618238900971241522503131469113214574078034203908326528390518000617059366564405789089240426341608672127984283226319277525474284371395553334594377682840120719573224042181859538806628163055534076610532212099313619905172112990108571423466736340559608037988801128496671863280813420246382193787337120845610594496551581165580556013442062987203114086265522045956568730195731192471648106724782453507586961933744880353772214478715817263943860876969055124445328509819127326487840279102258123153769552441773528713754826089617170988095426834869076016904396945186543929607319400269705619166734632468484125240552406920779977950628676983292556587016902779108085820629441601812268293674764676554141941113634608926688466917097858413882833900608011578958086886055171463024572717563867170447384761030525722817209062952193791651283016070875160921787346394614052572760874258969063740173702912957075241420375686633783869464341867213884468627498836581771640082014626545019882774277476377491940088324944119657741355345790914789434150351687820816351025097275007301899116383248754679283778358184944952410386482183196997893764076942897353959407525733541184869988488214361434063897845857144147236455851120311689363105521070473624605545302849394593440597364377889332429641718504040578604948528605657033736699358273117172010811730785795173328837137697122314608058472827746708947340652176224052075439900405107657881789715280224121324986576578059304885766182868926774602759178141144155141968463038616795843001082838983552707538255012168211657611918701030252703320216866913993659205624192792012014349995947043117778297004725062879530522279566068619016909545389187229644463794306741921906786090065631787040763101471928493070528775656409014590416489342056475936503322407009410937184723371799673324561793159310689840419920338423747839033206103687972274428042827680350046986250176433645260308211110130482207294803064180087116177531316788302453205857479382865021130493050292586693133651720895565099912898099132241927480116636842501420206989235533311374530117499383175481919537381270315328503302707386828054346415225511706280104501103731290522462790318357538153037949896683578696082894928303896107091900029001538582552250093281906755920082551569121742134636702890320460005475750015742827408533168418850548528788627674950185151294815097100143276944115790196136589121492400492681915086155786412298354536076277269352166992206794873905754567250067848831455994048450176921606072636471768254496211353539242977113629140651844177197241941362237768627316964873325483518608843137393266303376093096149776321962320667963094536771035636059139932801017309938135189666948704499199979668704449958486229642066465688490809363024213331881024057911028590223971747609543145438839927835524131794511159316981348951774978500078819944973683066818217281669409087592045705488314360391163357300493779774768518003221724474203520393431121646439597670170293852983953660057789345824444649218639115716428389471753532282198647245560707749711614130001719253355466923814282435378840308770994952643695936711541209203124867903694876179436720582599779879645410169440418477722633868757260468459397824195572296324035674336932863935158344382836353473124154860125851210383646721572132487588753309983023148429823139325951021019804768931425779919459384306251271489331276859651309102368311166201748547807271212355833368642092046066699713500079534886895823022849153811025300722390836031766115149322327379817976778253602337855666254143830387648266770821461822583423556832209556496330672889293247210411840229187683590437892087439272263662974779510250067621773285949519583214977239976463309937086282615202639605168957034377238350861977113218536159569338999645961132840187210267354297240918114335447156236773222785160929498322582114321343777115819206211352401821828877526209844139537919820156587240438478645334336385888048292457035799349810272575464136827180323150492783384634680250159466169647917847652537207826845933959168642563343694649164770523673121492640157683960066216941904019952426224328498705305547451500108096691605045633462234478516557930429481102904783744888152766501694976094551636137356019223104683632208887802984110368602975696050218557522076459988124357836353753381752942175031117084175788805536007295414090650982366905057895030873732858858334471781569182721536614407222112991839212537955323803232921695740203663528135418402895932158706112806672423223199376340363746268702468235754073727764693589446644481621160951475814608613299167099676018776770132762054520849769811296726531078343660956741595060226852529970637106793522103202833342369101814908634170347156562869861740966774448766884043035889020721908412900723717931399217285239898961241666446827199213002540794310946934473488022932904705122923013730151871407875591563869391171429198701155417474941684151815462546443063624597045446685797610446987509538716188023216150203604823735410914029890453550744276147697239103032700331201762579353417499809860109584889183849833082338462413186393450987748385851919291079309787702312772629314383916543761164705610564055776934971603411744523918592608904898498113190741736050199766626870499438150283458381601885852214432148076905725425801953313380939399880621013046624495884391847565597559374745331090659965408919326634167556014447849027698525846787825535587924356385844364127239499817623310023967331369254849853898376963018138141610949253637492651255180841001490354864675654618590220292205911665347554465957607933400906099650296436650517680623166732129289005700510204260115580556681822380483204547172501736169456653880360482736012073914419530795964065889977659879099903458975413778049998190235865067310289176946580461760673582150837598042921860361888980942858897430305461809485170976343505485505000994413862851743503253452740278534283214470949873612330528511157011781634412119771786540750384197426299531997967902025554474030952852863965188551842190759852228508282009506377301655608710083817762558534392993986572496553710971994219158991134429166802062092302250473203247664151941440576016389013356006973921634646235853935395362993397747541654681160308464385080008294715098348017438051934196303778930997472734155806362493377405491188698880707717466230373576957197119114809901975125873516623916186726030149688255524548448900908420499818414261505746331550244672732329796153110495045193418682398635179932336786720464578978792957839159923594457869959066108164836105257297044975459616032820577567031157521540185734629128477526111938532998707088746108799711255680955377745449425802135539142138075200944634799416634537979162657293378957285863289355475925073879592372009223655368598007782525490292642487611196434979876356572379543374341990790076420995733841808604697446158924422193185731343621758931765509252669195903890132949827862484512798059111362724336427054133852398664046615081733727123834087974427926733684012288623545838345682364895105839995975153187992983575506080099619262070048954338110056579597487846344645419883192521566842743952812353006926994485809738997139753240913465549026542233011885372964460863283066916797459251895804632867305041569630288654879884889844858172550543131889609101969640887821416813667385936153511000345846850415801452076494619182751202510865051987629175092954101336746615662862529047717204864916312298620634605251705212804861641937215564443792656103122326580704189894642382535782034123007130939175272368058271093464543216589995664504091111995509517843912632142821940455027098452111148140222155752409925866732002436893906410840907997132866928182926460055762936176139317237700664489325651406652328981024023178485407232203491117919001244063675679538342625399040925567871866389576827652024476274556754463774311957238552968726579168510922908992358730190415019847048441085749477800142591127657812111436826490711394900115724699603387317644916219777820605659815568939982031023808460133052843582200617410058305634715516673090138543146477354209427376184242664049393171598468003877813478459579495224264551166655759525387760794379881109757242244082362916293559517592565715252911539647562778438555724302226179194601968105582136638752820477172779448030847178616694379821253883933710331298004554832891056809454192077306575554973600147889199768233658263984191314983470401879178880776475726487312668480554784754360528376626279547912644946700060574970541474072276344995581039357343131804392200259982715876442244870223774553811539987697029782923790552457423796462338101748951416379129547696879723097692859208827975529723660472777707957342129450701387724337520957455603135919748565716414159906870623001464812188023511122132930490051743917363871711353313494156164670853446984524628960602221663478727191940157945250722646923528666254539112450595957396932630957747887348833604419894717960068076948326865944375725910473469432844743410187852827647178471829751044646188706450241762760002722439877253054904938265123832308552334818743642211619286224331505818366204839563718577900804849128389397127247962028228216061896339865167948197115307897028322397768200950158652550724841347900380157309473921464544591435707223324659682543980803198354825450155240340891436109760769825221080561942003114178027460403785610780680333181327235075876220966327237065334685479060993168422089167092003197907221210346256338396069012472357887437992491690816377569747641762571764021226432533732638929333759580845443720453895605835242551649959113756908231000733187800258182092506341024152839558109385427169064463891053597263369425046958600608878546116894670671831119924603087841621557064779766005741837746469172956552500885344508014274744668261289144573681167347471458938150841340309980408025536148068854684011428669555214944329800260687225636646465093830873601921964961675778419551591124228254880018906399644043463744533051738088632554064026346843804622107706856312750245277703851275329959231447149268622219068916559101302723657001686776299364389144218214558344260310111769095732696718696236224206155907954808858255575338997085781356106718464960077828052826426061228143489432297567825992453500309331314320124166069445826176584123086184466837561887204806539975360677652226501520010583181677377842281088061608827775694460839634371168028257510172206831949442241502730528225631138903727014874747222166669170931951344962217121739962981679014835187329167521828485486269244501856285291696359627515303630511219076383155864392909923548697177794624327285718534613418572506734313468592454203841157764096136795712601436220537396342303166723750843434292563107281999079706587677179926088484587821225814894006761330418073437046334714209151326865283670670699558315977997604096978282074225995777135264595562466983988907707617478920961206328684584791417696647354973776258206098652300008830978744973319180606498363361303125737614215456213118478813946234212325702807809249374731266694303639879663797498518976419554033407264475591429893095305505362224686611697100312773115903586358538973538427300561327612630451687192464991640383571759484598102305859248500702036282925593153223774874792518150059149624688460610258514575591334104886118036924807191229517799514905898368640586814366088524769083259095265249891124528564166240356966601221642621789684091255550245475800539679536075152469023550044237084060517922801729000895186810995631825383665543710386199636090729958514800620685387701145581610704180219725987114844442030901037112899275000711513378160997515647003678452620521145904264339055511008242250414563368017679040229351452777838372537566987555572115088571753332584813065524685234203710569596939413494074586048406197674743615782659154593822903362740184649793474923010221612808817396825548434074175700335581423748221019425875098109168503405787827712711238407688532065264360081080556206492274964746438612860701572238757043432117626244395941965115942181991811420977206337469249274728503622474432353758495223187395911171979227316436888058850071236367389957454338489317517955090408722769306650412748814774802905010415468309905633311834834067158323356477259588285723913925294844121306329668832204288721520698339183972252240116322909718987286979958611295897548511369231175701407673129975940015323666175348872183877714748021563260561224856781707323025702466250997384980114416132527247115955767275653944594697220455936707667572621771129368495625235256533242244025054553943180968148035935090159073968539747491418419500553312669591487241969671965456708954273682055729325347812797361121000775090986098403746427120235207082187147608289401898364217424188920181011927378288500791920810590579288299512903083627333517458226841807831758365923562607923026569741404100478506870589338143650130586235230369894854135433941058483776066924017887838919389374764282021037579894239304480326655406001423599381688852668614621786260984119855259795250123444301771558272296333631365795806507159852380579022255715899204869490350190239115557677850186713118176315579823050193337849813593818563430673965079323881571105565301645635571982947580811174876247357941323904757741364517380810666847539988874507413221616656312041175478326347601783557524175264693879317281449281796752923920593930621535685667705217851385597569651964388782899003786390593581519640741952200367214786614518743058519366142781456595844861766646524344735452835282489428727480351438632753921613591495989005837941954219316521777266234252473498509555378650979929972050528956342020045531459917456615141048979032490473749840600900042941402982759808389035628658087301384503323198545792491511388880331993443859611378823913610976183410356233856901962080468616338118662289588541222891493010750593875134658963717831731094554251592606982199404297711425521217511518024332494173105009978188899679105029554448888445813804868933873921321117015025847376772281266188968228361904775280647739168416246888675793549824476900918507999707610268085075131825637798901807513752640618909352872205530462488766970381719615742414154535218698755465714195133831635300419425631573089018495059147928282910236218762308922147187392082819084240701430536650549237208675843282575656043536207791674128895637449956953561296937177290335431177348029582605564692171780387684007511203227130822389129976305445161515343276432587140646889456104010385179207590990708274427377976686520695745069637215210158940060404178329956695377726615796953547767897931895319733074513053362361771373547216492412700878167586083468702768186825349003295238423674201174340138160382223598901884077292291036821130433751697031819823408575085729382615055211681510523933137560307830785621221079750742505075726059198004414838996237658749299045686069748211076395567614893201595409749476981312879514291613002052344508497713161798451220416986802206232605447095641610206349895439500291134235364147002731987489013379120974121353761366970422695200945392229538845100250620198641640617483982381177173876165186873149395130397207506272355041847601043955467264772974779316142497286393106748647748878015999451729305254555138499535572248452522833038129271036897511600582762309940534956716434356930569993202111749442276654221524568918879140447369229744134840851608398305706039593672341643420166700393987514443812040690654504428575563371660081152235398448004155396048935582106458036755047673638126561310967552740674967300612802893013888697011175596941312912852968556081536969044030106078926274746598508996458545934670669576815831607356380853011676657956794991679284978840909641272185236013327374522361572834582510237408926756831825135632598197348225118399557982443934895062683598468295494303498877145377731079825681202789069369397764339975617465979081283353897346743087811327979740680157538144248750836401256730959353129383120253558974700119376695785632584513357235044521324222037094086379379393266988557298320734651562126526355224985352172158084830533925602212646648078257509233971231124360178259963476810205072642949593769201785065063354250272596616790455343690815521761965905984943736491325075224523273345564702601535604564917877996258357134839053071379448444450360154788099120404443348006222492335297487548914519674004413117676214983063662791524914009748374926962776271602496844026397359856718128374829204405189016137909683703480008524753156340128367655277945801140580086408854269317713879871853379389592841950364606561861755010491139874515262038976104620163690048850985603673241281220238219045521475809690449421795433608128254539104685207705561203356847333000677897289320685290421456346621916634422818942741448679412000241781259126573231682677082050008358673263895858235321766904525804477750341409400013141081654573356433382538416105839403047804835407602233603146350523791760978532611571479908473924668788845292556118323011271165172538865360991832427445563664164266065437527842672941821506648928864757170775608178287361790135824326114939468996515991150679995913452009393047265412965444541750606521744290321738782997623909103906088660990874751440621963501319491004530686354065395165927067712281851637296988333537543551082139885638170340284077876426219980442529878380421233549397022949471519845636322283291264344122851290482571002795104070464608093244493423980339512295709796782629829616624307912089075104762059632887731935240581618273613597571384468398906560761440769853153186308149307499414272271298274643152578134306247183040073112873198765064735645104185199326696134133378739103073382024793674746856048708304652051716419682560433360932738385530461921651098486141175106315686849127840426020406569214778479086397351853754685601744530479975240513184922278258127425327073310619921539974279707963270279522145012167450502407001510246919017987415539645760466748146792941553194901285420530799392631873428008491450856599583689853211368147835393694656290520957812441764270131604507464763821175772640572825822744941656037307625318637313710703810062195094538364801135546740345428930151108823339577360573739958312145307384557975262671295129990984417330075798277127899700919315244140813425341787526498402355632821964668540432098876214275579919240187554392749809200300528713437128870839033082107163028684162802668800304657790662020826949019016712866752406397120179001850106537037020169686106391595535766255796806616867451446332646921851006683241176404564882038340430789935560711005466910560535351066361843925870951669863203020246112566891936370996675097785209841801143863212661703289531437360312441387788661700701715792913412722965387363623667552056563573741152187615112228383747577567635582041445857215001981407692868661864160540718288117270375108376855916337685426047862547430283713179089770552125642443853042047152591615240952357365181921043226821335837482347499446234027322258620927296738766879098308213375771465815163999036706093137567965171230732383915558337039813191490253082871899847341926623127150963302184028848275968087175059695399355777266970232776178909459424585501036916386709283369714852508982631163055653710034660439308666579380861236906602528455040056858687580487125774214178575990482379442065961812731671773117350961937788085419931516086241433208776199435590967871936399111218948975177344632101111803695345459822483903763668093088049680984936384569180373924523205925067558659091383070816673542553248493033120213845784960677732659017384938817739873071412224318421122117839888716519150469960117361234094943412243505767030202385126244940235871520248114570091737227891874670713396577005685340668568324353849599912905320958483473371174702553652050497049162891042294249931446051667021338635971409596647626969888218734499177123956716934754460236367823798191666360722729748474370491914213591652626195546221559416655312610830451166172594410930988764736797163668704275527200511282110235878997060696099842623815667503141264061794551552262903346079999291467300661667849272287352821062007554330099408472018807624802706351136309638074080610621768911983119342800372495518209535964651662843883774717017413785190259337744180061555701344737689585298026766421081694237730456702727625665111071797539085299425535203389145261717979608577529465372178059958013906039666615833054816279594774087096265038157995130765405500968903447166990010337850642654528117391924936967227037965137540811612858083325557563959161359976033270044997521778674072748950439555217017535488578069223240633670837105931119919313225399114284375414315643226475400433168403365792307303848862376656406458332058072672053059376825145667479376273484482578668892244604828139372535690178808443464196847812085799061673099460898606450931594552148466280757324290338844974250141118619981931075936682525703770014029768060021852060177415275062256351423277922329682801849331807086815783710067014782065557313505827760260904276228155312933178131721833633836656632896452706029946418229684612272146498634040496263246784954919159147960251040905579863756981645892838128598683048812862931072683317006735277916284049523767170707092065220143909644613520329650706057099371925773979619343292389994668988738257258831263502937998976191249176377190011946876712242810753743233205683847786686950027230421299872963218003941362338862485377627002996011202163169801132058117553777786988411827710098725902262957899812927454446979150971906778773568499037583377178123903384054670327707630744728329928292125739615722504732482150351826853986632362662573169377493421908619976142869031492407952726531106442477311946593964112446666987619579775353379613366155285332729303449949047081984903089813345481424045131686338691053083470414488090171866894929696965938343730245348231057574459124391189949422806172850211261526990037781690484110427140965516376256191575234529996540781872227297295731261056950072555907060693699871785105527608436025851116329790517395971229312879603003811363432498918319509162567910206723098271946247098075000866113947334007878147203051500030578404317814531025571002143381117977059026900980610279643999040800679127358832253439028204229081674904816449200969934048025784375980588753769522238462292364678442608450492387961599580787987910066943097024441590822476679161371145222083575969004532525322001845969737800401976732907518963018687131421206180468741693301244365639515579466695709726532122759507101520440116445250483739716409020544544688873426255039026087775636003563213194542631355975664141634008408524680718688123915992973684563884350889052605956841702656923576690603254229188380940935354403606865291149186455580432102174331401932842700224964824106751361738376877619400365831981795065538334527636795915098985004822591402326130358362180746257518646798248245894613696525153016166028939651296930651631404932032727029953905258372162334482754036272020201470549326804831447996841660437209651513912848418544444306526328391075187764798004909308050559786066962712598557937210842429903923256522139388813823221559575085030384025454248607109390583665895275143345183449069106760379014298450487297824541069110297057014639368824147697655492870380664682910395906290005953950569383682544899457772649681753985419914930659956483303101705295822407956346555531601745420032228303566249557239895466062770565838945292652059553360340746180767256456790725018521119704662780067744503425398020191810494559017176701978613645968676209872357746333674268211249560931213153075923885421315927659217479492820679995548338384926324903909033029525180753208528698229757112363178956848772125381588987835069931173337378801372553663630442478875023991645177554939628529388870606980320945887094795216833780995971596457106606874211278139139624920124632041308914177756905612806048565344223998808839342633251605101793969519869289707683270470142304659099419788437505375658692791617685011254874210426656556994891581153238328244732833171147573022289055057351540986271820673816202442219022580116168348088455641331397482982750457737369514843465526046629550241223691546169181605222546573683481129561218172465161698885363475703513338424160705651141063093575741966366566546912028825021980798728495969506285943602607476284026822739919457456339553147855208529845283442946863935930385887271835619444462310658012402376667108479709576280814558271969508141788460253581350350901343764383449715987921917429543663310826804630658435651806286592775022653351333473057030163325816288143126187718292455674498064148008269550179962716934468572431151444252832688527388874478230077136282619893496177798196455550635929555222057216229364115549370258177243598424118042850986544353493854895460241380962640970457021499338616480245054126300250522855019054087850279967488064800087458165275835463677142072136714397166958968658217915876697309927503816782559112873727434537701767979592685789655590991727251424976444795560194587460645353923477487770928010407852810529929852312503435308896308460861390806960449277291308217297769355011442765984977489472435504153196877536461027940347676329574867625401053614670920402598644190705621504373637008846223650412735098636119507117264082505199598490307737627224957620788495844772425111234420552159049763768752396971547648046881974812172433884425310270892279311114598060506305071354182638181706662467306461183008779370707172338989448279696073905407371351238064495511149765990531506422696322995769768241669988649192411157379330346857444800515055511187825188426033563340056485989717363462854944663253953689767595730166584726999920689940407087379652458227373115559498926561930391377996960966864043858958461534821836272793177880573359911529958603517800177818788796763824203173491439425614237317562840341570088954186023840257477303242798980509369205334777337331323389306682517388354998131962541776203090009033370663135928264499141917339448249381285823634097180748822853701100075034663548309560850186356317640331815909586522830895923494139917011987657538366885982496947646808423420722930533688809953208319257244300100500062112402820980785559702780707608115926977485166139809991225448916180450044478624355579859360520803190628063149868624553347806362220164800958952725384514558165086299095996635901569847637668646199310815652819924598827217911542570894524522799150539405429291542236848290627929800082243113952417324051326440628606304462846731534196029432614117888941739718181997278735050043929689678392870107156117390735777094542745120676908021716544250215331967368454230116657519330288113671894822526907310522608134262528508741341235042925271099739822201036554436986954511587233123986725421062386324451715014197438747690934059072544585997060114319004506120373146922238275330390655417808955833482734599693167732973168000003855776966771929639583781588497380371555769113353090676730521687227751832995910454941482913092341166535723620137307857190197366154085306703694610926398717239482308887707396143986889117672629449325609569466109050144317704436805278279913833191315768381280571380295178851573223330373873155971555879837274870963189161272405488195221892113867919723562941916562675153299590923207475288303592892973720668041425281660146167567140890703530720150285935537379949971712786244081653278194776855632458406230334510177720695730921823310741290715083020364413393075299383530216367528085522317180091353379168432175793859944340173407871542394042500569689321255403921482125406308942874666529835630939642781160156381074074723540176475961207975949792509788307211115010839800871735132172020263483172177196368785620648943594750837177690877564049025010252216742233186850410956994639613651707067686238760588485362137970083117643385146174791167593957510455988685386396904570748878034714726501212050246505355993023607597893837235649938161147854011592313135909519477702913595427896329593848865717923709739757427121127129346175053732618383771372434083920134674722642818403760453934647121222920114870869023283031009828390966329843511085329385548431334839453441796225242060787800250021756934919529597679004002389907645853602792632028544429565149699196768572301246464676483900168510908985410484915689788269251106956263594872914715910446463215885376523874451917798343277732868943925330067927233617111435535204089693239847841625687613405694949536686701482952364906853934123804226655472253127436193989940989340103712205367060028132233336914717461163906019659385733476230543890010682564280226449537284750402989820523574115373892835761065817972573237936725609081353363658594345015144573799723864206411710407472660746387537912575521008783162398415469353627807649428181455506406053316217899140932526285114666432242365333374348544562749170804542065547272183788260154826757958869964062988164554506804025826453878541471118686358313149305230231283877650083271051576686004892695426691162869934474223791432512169968630535084183050355515952969472633517114794677770897436001642776152307471258626343049336823126011359994649290270421512164604150323165020542183286611248931047508747005806065477684181659563039597611866104028221708838618900685044695665258605305409259469147721495822146568940725714964118585702065057028229731355002070612141783652530646387284451516685443392623580446943309279952764748706183066006838134863827495294612960340518391229812982169506200595301857816633465709065093838362904300304513719361833012516379591847221082848320595662200553046433910076039185161243292443452551759661399566408794743717964851859937317600687321282930876635731583398182917240449567595069490907775857994248185436816515972406462451138163324797870767410116880245020385432589533559225775416896164841045733912243683319486659046246775338782521462862913363403541579808166031661842421950705931816033410416892585904184862864186649791028050871947150300920510077097481091483141230241217796519862454489129230665160076815970202202594206470322879298217192415584116227128260105729848468999826481887008464024148706798545889587613395335390906931317720010914888439134776993421642148810974488446243753457939074307800898937246145860327044490771324379375299710350980502080277304525416749578341378716283923453681147709759708058243774704909045442992647055253754672617563104340904435180179880266458044867768624556736349191062791283380421055717384065884659929893216259778081793650006920272239735377383424654329893488799315963379093210199574060266417320397079094677068388275886300435962207988115822296760509974451643356906972849442743644626368397068724783441693370055249734804277507230112631682552370221921506893873785971371679866540803999952344456005786866678901185501360029013570224928106005096626832307688569425493662744849821140942232982212052026407745535405093262093582915529970857092601555720094059771136491787685165913811120304860117179555996198321332316797901874345824539205249701190519468242599797072381284998128544036979513029918674588945678886671424548606613768153095997570514030647794138260475514658423177945948354498540137882836415938035418676030059159556510826579541075944378909106930679136500111537821096812967361395866338210262540420012678546270431529929620635407684649141896246020348464788402497887675906103103715232747207740645873231568714459395838695369949805165684470851662259498410340171688634897323507353128966866965046658130821515975082376224083936827767507056452115528211076864289545029577298670240186319216388571901265995211637593793031129494276944178910459999187643120060343155874734378023859380508080698510772422098686922013846491455964551864303436401214204201667692853426952233431398103700185537807864015560948293751930377830342197672961484868150570411432706487836490890654814775933714119936587864327448050738592406979318399067333590621494642557474586420179882719469691786240241665774391725107660484523244891693306597373649063196290263044754144211981104107969113771487743252585595739089807862405180082903631707227767907062728333864473054262047149283964204889556946724723916140045002177833274662567699546633736574996059686907274714153078473251072426875801769189821334637160465692713432139301151359866631383088339451654615331808723809550634450233761799976669995769235964963810896051075372389486756647708851707898073184028214731694743942565337825513073620318937074462695928721647993141411267050663924772641176546951079089478903228828318031297481377252023111644164456526804854926004838135415052569436432903678328172527982738505329251175893815325207011296981391627891358672642722228512514727149635205948028446281936254500832514000196618840126167485671027606639745825878399975349240083374665837740296232283467042257232243288675678387821353890857876750132626203176477529162466747439566427740257446256637844472314168052081411394558484580995510274501697372711420409677236951149030800336872977407362144972728382264126260255792040243747041315614042088309576434815847827598358069228096870538829670662434760425815516894021615778410343359468116186762883980884326951470591635970479991732351233547688443488296843981794933883695897052936367412871744560669594555478115613023152927385294329558145297900719772606316159917574464381612487929303741255003493784442246422532152670566063416802979503577748201553487189607669382461281991215356978599043788511208336808769339915970441462639867592159764024743986386163843462932015508924408258542340686589730832887923484605486516018754754746520847450993359364606123515175227743439766250788283630318850878435461186539723110192436069514889590407023925794567811778503025106810136798336234076870010187380839320797697001955599025278956795739301392618652069708148320689141690102035057890850976269282723351788146882447136822482310572349423350736960923861279055203184140746887885166070899056602633732587514365389727899496367171182085170563609914947437970840982301789873534733697474815263301610570597811678927040316459868692066732171463375976392065418581649041310619293106680562801858181614285207257327304385880234761601041705647491295735264831936379668967923636057070153131626901291527826982208149472317725497594914075641828019252337515127144650736444741338980347168091210551669128292423322843570591783835189626434731255821606753824405862741251643660924112229509373071199613022071495518758336207717069399692256526980338407837940417373335457256463067935688951765199997721427788186931114290209764738632917130795897655990964733145842520868314226368437492036107507898848236906770153919661792019839841754549582871336040416645230033461975148205685456156180362678082666057809350331656074361564810801398811031011509333819422998563336032518234227136352922947638633273690978370803765077823660698410073087822367667484144353358708420222500138773550637732780064908138682513679227747904168869400544388357360713703669422437193057888708702688356259457799432974374512216578666392276580016520275639168439746848338160473675839339375203474013917972863909028327636855676407490963227892264591254957917300319669695883272263989880814295249377969013959884730312927054669078038407035693824894514184097708785452026138989421166711721023219087021660927471030063614321378366923549880830232790099903917756228967743931046350220789951338336198373363214183873428587218151088561622812696021945047634216746350933045061065097731040996162471091252941214657602963044782168009680163608440236745875510660694230809202721014369239986441926193073601308207998309203487145081111866939913264515512125109364502240610458221729507876779270492630392896329289090206737605511690649411055861573115008416544507648612652291908551605670289436675991875205896779742317473736494349803955905806830825118202709307324045392898386605174796787214313243496974288677557643854366093558876310218540070802543464068220321146037067306448855800184223574680966679357424659531936303016162621572983057055075633266191419578752275609282789414806854780415296405553549485946555142651750462887262541077151817553688766971623164032463012695513932605791648713321134686684096716439336161474285133956118073430142321508675858926333727664335950263590505759794346550332095390038971122389639698170037925974756088264286627067183660160115845388477802748373834915423386376086594951015158078583048269093364890087401636938481461996649819332137741086628488522480097919798672747649007455344622673374637143640216812919893581311212407645346518804942980515723740783781290299933725870354522317666938138407609608013541198955214220428627219810656744728896836686339733373270648070897705965985490632995447079684567038529091106536164035251114356180164695657092711897227000063553099719591632045455751537931664875993527572688859337643225300711990136623426789748730783285124438837917542725251232766090324419342937995362907667921350967136381681780945348341126015490366833024776291210249118456109811903470885708130441290492864650451328323320252609463759718498095867083874414790948996633037905892535204034307477946040905558147553036032909351624047189800512528006619854309332195662663552751797757092529527481987490396850064160148499129288907176876570410169675707644576746389664325180127606269317109261318502140585950029550828175709546393882410543123017799121437718140287294342703674484498582118248610056805174231094173814156377430663594257914337431972333297181493317728249011682409451788266033503109530005169816937617825038098411719362094622036675200396677322423105455910359402796932700045659810321400330355993997709601877759070052633538819567050027284758059806028161054155595093448296914163254980606374154351736812454051522861951069148859746690751223492874454668642726651815728477530248421823096955914295484316567567271151408548100292555231662984070300303308077493659639510680472610030919212761727601629548194376402409251797825719060739063079913549739236020254006723719552172834383009855003329864735084450863731288038964073064905077974919221630055503437367154965942517444170391371443632930506212242376881010107583355668655946044816712387673488008864755412753163233138232641265750376248069098481523432726765975026738836218168599954525205759806294063599034973172866184857377165117492280831460708673778115289382774104653383804053560470467794807810758203343301898707077460529900310150271230711472566769111423097019668247224913121961207383291088868773092570875460113003018621252491483871710382239043411075457323612311936588154751269553487581269124019381727413345196050556665693347355918050837181744381816086668417403047001728842597887231624549159675696840718010888449256877613652193248046938818723382688875293147235350263482275274537260042679592738601383575119622378255103438721924672903430536400096487374355199013345976108692362486830986647523180579111937156278761696653131920836960567470138086389590750767936706087488795072325435355115911275285696379263553499830376305656208814004376758155464773722456133152168291987147475168680131224204276887909655483825213765469986544202168650724654035004858751962484964311681039854824782693404826717745461864992065051605020855227285068762072478085694668090952596096146230137783139015754897884829656966776728554288247854596743677248318305296893131683132849254348415233963323845053438099491414981302662756356576843847242837880396573908789770762705863974927990615143818480294471385490144227273346879606419922516814824006615838329469041243022078086082735952966305827971534528615122010337925295843203838239807605940608421272745909479309070665232346431747223073520980445636275783215894657078888097971767777956224659911590835359167290082337729470666205221803924609395406655884042223944610397418304957982191962681772719152383308738418449886521863768647163533366136146013967170853016072927286956897857233134974094200314072147215165297970314046781717417002955877727555913321223069451376936972871616665859754135124281084058993213248816121454918946366135316958155593508648021464113673529581064111119673088004573308082710566807056811155332959557432897429563005565951981957651292657605809391247476378261259050311200191991557366585893460857670162963909338577732796776711075061139677529402519901394528863899228872440467845822408395016870383203192814265811110940163933939185866818881098609224436496212408618771097899052638585752773054068909480188412259384535662105552113403683865324695442292405903895153849397615105794381786670045518879443957612078102939862656853284926142376988214433227940730537834635496412435971796634735192340143016228280614126760889221395641992066352630387816351192350798805548358904472987193740446972635478431821850981206007862417846140441635634741247117056904008848375346385419442513646205634935764610794613649985938879176753462071778323863154111550216850267482492061164860210161274225954271140512624721782288585302101177826237421562445461018687053943041488095513782300254187270929804334799623355600185700022175571831296009364355327825470360612252967138389682483692978964552581136471267371123891101293573309257602531717173084233725765502666291854713559053462662976389234696508755179512858170969303701290420648640836511062737968812189831429620937739227327950518729953600981254220900868696675264555105822529801314440045399895243444205279874656984840425881477360920531305735433562858253322939384019448835019670640763472895884741411128078716906556574707161809221591232302337599414872409007717503722642363276860811375400403703941417124883503742181459493169930266382398998608662839507551977517368063111386952345638092322055295699556352459061668390125906205650940467531508035874387827359968526168428958515181506543857017932783602210421993766415675188700217798619926373902348083667311552332426955396453750931253821208019463701256832875439622960821290364282192665052532062220510193454909755363786164571569288879030835588877186899234891242014684947939601535761761794033225671258559233248405345741820956616496936686191186614894054250419249842588529542036554174339725120108755310337269349747609561635261522452758752392823014328310540627499744599189740506200765539545799220051385866968486600098606807144696163531831761056596525725755814149778829660252631737524753396967187298838565538677446101096552564112328665767939343732506919444363927626983876128391944706347989959213063142898041081203975799194444310418816561795046505572849247166195712163775909718017990921916384488398830425839679283481936515138762998308301299057636689518265569667249778985631093110311141467314205314272782360100283592495032644514444741353598631555937059348851378519597728508901193918033106656235822478686814474683772820509834793181834905915104191465290681705505898429442248917473364281638392896309404128948379959996628760412429683335602300803250326614874478403582060009133520672982206585381913195455924039154512354069916838814060922085403146412747924853629387697446116027567711509340789148430832910436587719536516325552571949380562804431212394142797632075695021863891182212238513700772688910156051184354484011534720348600765357770755077260641120529887745566254551423611559299891671882748014764428386211707066714978238169857355030239034831331610274469143501631591783053632692413761846134210777051618036730457917182428314044627448920917120287133086741419053105261245593830675465987346842942388099873606685639518715329240564148599431277867519192287566765524304666284577639867935111947782860727452800693905150978305562301138706843789627638723249963152553651108602544242029167755570189664523627078240524085204963898832257012749570432734612703767466253307991772194645678961574986866650106831037284125475981616220980130398996885439386954197598054085815646247774282295515606019002226288795028946704845665801092734626876956668286850262506863304468143914348197493227512861323383425469111401111419357824963755310774803799948217656868826229338034208358551100458450828722706472211642789104524224420163482608329042718554844303976130567205860130886762828469448377988288822579344108648723262706235290744470269774866163727207493220665958556287660163460105111731507083129041668613545670623617655751226769976287887603069055283611145582641457168577530490538163870611012392338375660443969888689295086645075398937166098309839053700416425741090449060217432782765006931323752727816034220820545797751231278416127461930270476215703311827995565274082887138826872054198734106523887944305432319548532352594384118641615409182362837471331625063855872788046231966848289419136778326552187392251625265442236233683549315682356988354710725909114880100169320045026284245717079393416082174081745190769676615920284343707210027813398119589391273540879295299639125877057430482601107928867234467621848720663163685513512653769251011104787868105821092866238461635204287749667935456230862992657976416064028880099676496712544074656588733169721533032770551674260804510787820947328592278805670310270730115749592726990136309385642595692330891298766069967240948113035487309105424574416486915115707321878705660257683708950049874367992795194370028161620973872902137555433556473379605070821954601335811514521237091784489470769118888584000001269077712165012267190702759744258717019814466043962144551427668036170901800570201036731892770627959828892672810179025437897523197461918427117472904533600563771189499986506023338987980419226080948049612682143024399086397083732761227375505838964758025961136219686184795501675798994971116086474022117663265556298956931993313654858129838875836780525667864665662298905638234047415671728074736324474432113553794507348963486983794342258264938295272060497671695044875014167098870830861019036448530435205507606211572825899805955727529915914824898565739158030335268052977699813578694532922737751830465224375371593406098248552469724627588947371648844596452100456727192858093031310382979063786030122631724380556603153793672971907644795193356994127667072966610463795669939696202237617860819872024259250522750047422339038270547606722689130983169100720962225454254980263456860364817018320246623727878968598110850391100311649990706726202625842702438433807023020308941585645357286598068620814476618005170617450010110194966499414604239021574685624147553320719763169500686753714470257731602136202528843133158988035585474705699346039785875210715071108889320826956116562573119279716340200638182433326194509450517198926791876714937606753663606223357601270841800246194691148834226905837909118370170788419242202076035050194907397342470945283301239569720986545846638127591271787299267428855291785722254472289851697492888553501311167470478802484281760510502390613670749497921034917450243898423918211052884896810387123054845234874992243931299246617944153439043792674438569117856543714120331086690302589029046245571804733213451590722489964907649063709805061291267442404101265696973655305254008761841155023290368455099125905785217749019635962140732757181707289987295950883615011247163931090295822316665112212308101519236491287548406987165998166765896186634722455114309528057354293162498547728871177592835949679384404736383767328911690589413626527150076867279411709337411903905415059370115121579877569420922095036261052877288570898222979102759682786257087276535552362805370141496300246082345828642279985284812126816961426739987369076783239143738482484198563676047731883960008856474899098563392890993293295409164064756644995190450343602730684400693901560376009940043052087759037684091716102931822193203819084725651980583097715511395139875343838221717187655679220383276988480432379220651780651056714408176058994864597493356601903257750187690198070025006602744843028959561979116649343087270876030422045287328024350306969035464388465206369533607912418213477528061353849311967107868671728757702672385900940480503147788565886097160806941206080026848743587096656918901770545198306150167274955086719321289643749813076028342014880496313663779338129657110157933465617686175075636348105892278305806117361294963022511040307328116868751432958719644444776567661683716932263309502405587204251819400833771751276115066980222662813661773175797433405749168228605418117365492031028086135731653521000133610592931100028601293952590893773677419091077266581766673197054871310744507048368574453034037200247886953182542905084355112603795682011513071075316541367211152404646006508221396217309538423173654220740223009192041268248859040076571692897531796045864012435873693077922867883430273806600924184466924961444273200243019520365489712611281664878686676719696585729742628372176254930573965884758132233443531688299520105232860207241320614907731183811846213768401198610349841869606948084255425334275585278287026927028516471727402033276944182914996180446905016476537201522886393687319747718004182286268241893946565030420810743106069387831100206746070390206069683323935568572076076112082355069810900656439334539002025384615785882651629570403121980650385162434995229232887633634922531435792273927855365671906507188567171655991737646873763761802410097367292997347064796224185179660182387609278658256698587323108549753505340208840661854539805509427840949443146390753456880745042325103060773513491861970772809691744090749067886591035554354750611579504278552680343287378212869783298642436254486858956361226742237097682774568013833585371656687453686460822307004610424355150051735495882372948119078645705145325051033899089836822937923303267288243363618349170577960578209794319934635084112826933192494605434092216930628705690063989409012441617467736973210270005382273641782529868135004137073694718912570348757728150164170296822977013581962396753937412362086019724276621533930631546883527558740588658039649422394282675183331080559348611568030945322931684298639027172756183512633849029268777757439828302585526578038563201314538444985894172827912927065102182248952682152542506968191723405307717752979673259350016713004538205133718837200783294812503482043518331723611149830916524980394968804903539112330005117649207498784426587036853726836775274704476352474084684150082441452848199095863855430720355025117935798629654956505156948836499376426128975840476999927601740968479461198394560631730843115938320447395357514991627477771281795709828049846828049548412197932810226564566217028495484053935927178031918020797155254062958528969870868083981514905460279256593466106378743034886646667197464972773557607767993757705805411991310943619291828223640547153813995246681320091995682724369048333675534528286384290827714627866284265000557633108069542803161044444626700925121707011673149657448116528215608421802039239925288609868100375244924244375012716693160809232191497567620936477704593942128793845795663503395219284229016343715335372609275474438581484728289118611229298633214002666465407684136088087288751352951841691649472409140352862502655033402360154026116495252779409225793768299997473662290723170722774129540073748860075723279478064192534678627196252061919674411128958964067173506442067361123660540092360107733060119776534735171030646602894102852588070980080572713996964460211938060097798885182066462570400879476615782345502460406424050662947419797523330238362277878177769637152938633904917518027642439176148707415268103309634451396902803701962205443351232305319169434144028155383329451660404530521051585166018252988922774131328133696076633417138175117274329466635369703622677363880060211161671248130742157762023410475423354748485242934053702772243914831770696646652853291029802803990813105964747074871683727519679505358578010003530972341550375615301078802894783334689825419725369138259063360351728487229759020598482063981791048062728669724771549702039355935231390460699477745143304676126070935654002535426431425051397255897173128902602711240518583179527197413468809184384894516287573145527158716240583431318592574529717669253830876205020179879449889233542027292872872592812687434021148342003781386601409476666411808703246778798169525966223046474813859251924565501565833423044831239403562735645451231280063732860603503398805373755130248015442228528468871260619856461895314658099527605203179154474086214488329909745329462513213456057788686407747354508036775691233269165973297088499334003098185841477561020149414394195267990162641350267171130045055945106858642898887127147954858845553694860936991917023456630447011126852638598537090407349639782911075324588620802788231534449828255093859040040274705867760312066436012615256059076229641688879690919952210425061987049183265784846252437211978780853005922652936915478951384157836812295996794472415482952535624181400230516102612288355652840755873104704414908521102541695496817754604623803470272217252355545855020220702289115807232257016282830205899321999025447203300297208677135107974065100274621221354840589451405550173346384339699475320752176539365370679460262093940591280571591382942466776663423472301999515317902335397202221467646062630056815655926006574813513331582967906988356347514963998176206974513629663986772834187810652162550915038472184295157606371774576297475754775367937454513231244450887729654280302621397042068780143205961905558782916997206226205825453199160356173189849753546262123469390669956365758450066427080221113940012900223842224462269315302526102467389745530362284181110042920379293782028935959606157030951506887231577603812023202417489994591830249175843369506237429933795033773096724681462428924086698867255898203520231178460049427850564645816592923659669162741553435718567991746627887910379894883544905963567990228456151868262773616293826431275567065775639495514575576051268290912581546587523205438317151852564731676471337929267826761868085733303543428274921469592381135186954355551624151680089129108100074711280949860490346291896195467759489666790702604919549982501701639029310807689267584884389329380050920844225117291186992230772330923806953827896916853576216919027946561836020885541523900072306134700961852704574360225266259028502522903699871609557658319530594868682247192984040662918107647769975864705630682221122173880062914710514881033472133303030418913977218972672943642979836631638856096206059397877924203347890402093471786972664774773671671483625768246038914501801512026316163599985293435789633908943497231619599279390007253691445028717589656280500091874341153074167395724845824471901869619523146186135674405708281507742721364476573721888540414835858910474317516060865480209621558817977395024064546923216630192777891832880676781459546816120350146898418168542738596283140976930601920925570679459374823947712951641229078458145016076060041668367900498308481051046598544857859653346484432880913710639018504467986592556332162629278053190325245368289145081222349339778453888616482630271338602701532219089872706077282301945232925517891766453735907373785771518417684421110963142224858999008590279103460059125101534182627714812648512432920790252362520514909302527573948636951563734303792315843479310305799147229040033548680410949141220265744938233319266518658044154242547384058830939524719134800963705855765124226574939407313645155115491936067911269946989993733800207498871488445946767557670560896484647395326802221792813965824670635417396069920487238113905402777785511825356565833391815866266788613716091046551229407057298489159668493513671189496945179652174915166884500490987647849124984465735858912155566174174747907501974363920420870012449244736939830794533948435420506696762466851096162406515548034258990810483220520593326360392971958347914963123158582984202287099557791628403888256208505588227914710290450653061542835580041693972763037440132589883979744951099483734389086228043658964755336995359485773546250680720530260204003902141012082037869689312337134715000000707844344007170894215288952568068450867060071614368617449822501717551910421001838826799855102475947985014141167423029497661249424508063854678161652103181395124670343295933289129621451098337199065134158745111659765005853091893550253084922342776544730058253603961305778417598808762650859627538406299619584245866668499210235932768233557766618763127829726183861434302529124331365880881122850861757848869388832130007675176627927560239761801487883594314172000185913282397245241600978233833729554744930489597800070515251477163332438418075347427107223128702423611791956853783349449391072642807336233422530784855815697716859564740668489060528098017372621510392640293851875393865427954778093845444933713071524311337065376755093918041514444733710285933239360457678318204783963427438045482616209452954106382455962014046456984171831771038901947787364159770822851810291479252682246080061854907334705376800936857003377029111237334803476187675430186766342039829323788517086872981644859955182311708766209533188809036621713401216578082645588685858721025482568862456302294095422898957032337456372847547951388358427441426541230854754262685776051604802042023612457392297128129108085526578816030198909529219538169562890177703954044366654309519253956658232712766110436645958978078536518583062958443839967210284136885987741011223684493665890704936165025689629168743967875517314756499405031020845754859134383245988270449708802663310009267621392655066649602893449844539253741568043477333167535178066386445771351581684465554329524740727569981602174655941287579844590972339907141936141114529863431922545732320563169259325176970423302858146897758496850967043364006816687226907574158252144166521042553648172726717751080630172459080656714228537870127844653510023886587754815441446785530575857896910721540122693134074262907305779302086648435265742069280344449334476621601512344277377307194748364821183476640920549703070054052275456227327320069437055126224480443899951233279591990843323040497233475211604993917675060902416330737824047476480375675847330379495678176803154280276631615005171142327163487628584548405078490083892299918498021918546176804916485247300274026855309850719165262139247319803079493633890515241232381879165287548089490206186140279139558402266351388744665812309695871923385345233510338016088698062710063224990493473334259843650415959769875115072407551100526537810189853824078980763581815909019595427090842887477393482978135142137970730192915384947636524189987414447610767376913751822981654903858210295115930433361243241150801726134683771264054753831356434328864402882485550882871736592399952134584164242481796374415274521058332704328116609067146235289110703823735937239089574510551917357036503076309723396496615105581898161450022508722773057693453184891027790909100635803672713325806683822236054170560267946837700244120587890368832634116473796186710636513834619259103413890363917040893232564408232607388457009089260058490413250511724173647844693360655834027426888422995197260268938027147112460676974996358025079732949566268477339310745305941778856970327971466594961313231157836843739448756612805683073445285953060546333047930517337276393589358620056152984452639370851345003396893036862496658182771420324892896417181301228728531166779320327590950750956431569474314217865585628998016487283309904802567220642664356084575499468758192115239737003862972872146693556935245773305065339035029873104967111143735568608773174224728091983172804282660194851016042897998397278631930154068357891056870363744112457782301022381394725036151974796330404086206995599076061580364972803935458500851257767709368502590866734878487915767000458568074411107138580150435585034867924120870715379308933960956067506981743467288895251552667269831919342925850668405542402838230578684643347677375296961784973438183231937890278643172693388055825996803210950058730583934779997188456002134440219912975932100899751260556212345160902005673532552454699567672054571585648681281561931643848132686306841216320799989802320452059255270599202982428498486946569495878283032687315189889729042792825252349178371908841058243562377663861779141695454913730906593325779880021131622561329478078843956205675407771077603159812616456757448231056886599377125499315583774958136910950237152226512254446257167031089297647790404349185687604980687649434562533013686712708145006136070102741059705739990511594121273991477721839288863104485037884400751272074755511133840839136578079650913580468361307702712985727370075950395379340318601992112622440728281748814481528077186921236961794947925716360679062206220908536421514590059298536599443837788877729120127981530797079267359160675078563029688060259157044630186140112696530453553644600430524424674254800866498816594420297687287162082632149498142725396345353370352478106755399257245272134980546407220837609836310024739304858819241127504658156459516036405506924035988437928791023199301976992232304450641335827099684825714910883361875705751684576548590008457227027036947827491816456306919489803542399748122983757142743568870993610833270046341510166088499635086779511697930447777748643733048093149073387883953442527530092528907449242271825122793407511621289794667503371110564445259846872169114267647108204984090194265542803084300045846640047783456734552000961346180937508173473424437421979429059184516748888540658246183809568644624268531808086498584106692770681984771496267223079992802081775488020429164226457801079293122740022188082803365745410601635234257749243351599453743666575368932085185701321910583551310315536761498007038305393867376921903374426512446110135194697731837184151097692886434625351553948108983878221983501237421416775176186035567904937714849542945596268096235237923722338541937274265440823268619164663172228276722045362508440514044282280907352530048566994684850080646922913521956261927085912394190458250352816270007304732221150256314165505593599433176594804306432969815943277497324173729323725762005595167095528460293055055756731709326324703413539383960609889753366817607983063344848286399867087036586350617605882410157791353690737093470095260248764010267940388060322008556642805777083100182530071825008087389430957919002086558292441558575171737968023969022121630334966736282688929519585703717499787732274875665300532293351912874952879758305072254030843960843472136832119243569328378219388206093070340384539216720344745894307579625317111738488438123678074517308052310065499799276738567834854614235682198101298315830183954558355440496387183738985979232636914011167450697378365967088357382360604386896178271031791703248629648469294396596802140340910666565835604197640652722632321103401858928924845553179455219291561520186024644075225550780401070566733135437462899507731600315733054415675641028146322035127087265636054016547912488105314737267431625319277292218533298392820427783885938652222377959992681862728551839578178279202507809747574740869112736826035469916086978903875359565728869085660120379431771996194185591916380769875340999359815701752481446940354041664960718624882241889064671660233771715932154871867702771825893413923922058837408927874159589753770756151584003212462638529608598905463621473338188745193730496638462927928552735171045871819003342687897041904366717469757581187546956336936552939075809352078020063491418041875224704521845052677089894325050335710708606170525851299855881612445297457369173422877615247996828453113409836681211934804527415266304649881040030845719949875523801630983191645978372908352296811150820581372744679880682507029101611883236131080221340810376779910889022663929539011500183331404486266459845194330235928879898152746209110325369096446431484417843442878436378709925887015416174543489416592003152610465541268360741453199630054413220283048134449848021535478105557504908951844941438779838573798286146722682825558868912251289268806680540895859550928570158281561252716080292659033838531368791208291989334999551366982531410785628470583164602525526748671801894449533405282774708453934862317049995660078905474072911773917282160947545951210706131118669756585074488437751728450625925147020426205345012012900328441768827820055888698848953802123910774331472931987450881214531442956268080209194584184957320644314066145670309391915583735765755328503184172323051146198669784265993746355330744703805007841627834724891293261962813218652052133511471543193022781312218416223078746470151094158239430893358482809373287761698442681181399482379273253865135977847029452241796966508199059946909621951370406315114363359734159881835831534300630401129697337573514978442713328493210519031211370832152737966585781463287466617315217963610815811478095362601779600656799013097144592138205435480173824497727174965314300728051641081605088762888635835072261796016463337813155071381709965731997677568006747930163485818370371785552344245562849420811097036992669929763908107327461158869516198170260009775430679893245134748446784133098009878273106334283470639821979917349511317787285106459918328204688367601045183701150763807962484286685319440448320691803768823914303296790372654434258026100741729368840051133846420131898894026594467130461106065239869754006723099038519400751817772193054283321631123494749037458201345547906925518193489778225252465092745597979262507775497867416593630657686290372976071723659785670755769260831852058786079028604923531838834026032366863442952522890390304047458426949260756069132077867655154930535292048391867427870756409612588139575825745041544992047470391472464733784920369094207870705547281739392764900881807150876631638319992256926401213767603605784794024855354239333561290978510910955555056712621300877911787409603360276131163602363505606228925662562533527249859571025305552359598165354094891118059696005869954169581974262496728228618810068727337257792593610375839454428642538190066040907297275180756839283113163552428285630266315439279463611428678002281516745211070698753312507397269211830821715605823762850010308518597394585321753834752256446373719258735478328857405459073779566809573414923040481669178167548618573390986032565981457673143171357498016934366933451543817661201211878854345912142478979616408478023297235232504181934096271751652524241097885784374772546061338418388640074654522819874891038733149721771558166870291909830564315859452966603192078349331518639066302040773414059177183377117522290222677909689971587994480005142765570662319860711485819933083392133923267391087896112609637985295864843511232952904285806950444384617161690683504462780631440093898188508193703445315801207757427566148252180350450783800486857009289669816849864141431242508849455126455558031450881973169602032001732102457534103340922587541460959966869508545797991072335016989213207561243654122797566301470025825232909746837979137838832186969809238350309131853289291714160318364333895779104183989755807096623194673549362112935604125671817911194491814365790323597470473114923812939997109703446180661988840151640522547390317815095424604331710638060262928670974718624125877774457979430599975280406318162526259119501085691451296263298971795765186945074194656188127596649034666045830399009268448710140354557660278585259789398617352562831733281530877212758677775458497096655837981421635995922311506115696806106971581915848709001643275172974996236815362296182459019972101993777395103010003266948010234362144773021919166957059644128968064926115332876823872437483434060728082044982914160606756685513931973387301561926525504017597594120187295856472925960573771404375151797081016143442820592508150372615359103185922600262979960508610708129106647246620747802418261514257583345680769392616284488348071235738094114614030547354263560180610817272389469623810509881914950189958626015850238149921162492596213440560699035055675202663653064934447475651184095114648778085314247950063345366862968606964155718040769986758631052362618773980125910642848709699465603775662057885088810699560293825488361928842039876255068466314567541248350829678238548037520170164301291405916357506705191544357199358851196237860152118529943296813885049775928882439112249106364662934612067946956405939360657838054082207998843058317567955305483595737727203981596910613051287029513347599939064107042500430990293964116682892477035927360353033027769701693591231365791238850617587344340776822958638845015137015739446420685828105416297657789378244949710736837688633526067344106782067179460882755735200510676372323488504425012391977100984284550390551496310094369446812793331374075656172849674895197144842375582783670581879806660227732121515299684850898234195363865410950918317353301642512989253829236837088419726719760193766927041726653565940751674724005505796898013717210241679002651177923731276878759237087865866446946979852331203563455935356387703359749558236838707942913337749624634254752278917513270668925146819616328127846098184572029834657361003781400398318445948241544038187013373330101028920588132723338218360986059939748490258160823528266006127688028088984070978345120732639342313678184266686407747451055252030034824701678196350809991629239625181284948719334787765335879863331402724264070849969592949682188589724605006677116260870075773710379046658438177621230113856848877309010114220320642077505713202497438000355324881507895612078140102159905108413764859156123982049666922326338061964786861580464571678778874900270468807538030869260389412498266416739783073636476329213132248092426459832412667917304289544656911392716901087171673682535185222331867240392560489677659923893686340643425703158220217324794102954370296983807570948532600820651352687535161753725445048474257975572024904425561732101296592883790432991182777949172055195524398849486861305435122676792152133187457293543505464043967270095837574756695520198705523692420594844127496962479547586691004805852306972504044986244067423162353850235903991505739076316502008961845943020560779479067468175059189187027347072576368282630918455808781453294950676327474141698584543414977090553829497430861347441656950833215075660660581383655001132172220414579052070621415585088789367361589438648242078313128970753885237690007264592212236855811973709188468906930412294009086973560495625075841557473267161115853885758991379648372314917589625180961735562579563052118105735181063727210206449566528245464071267720696648668511703055086769589554077664578034702342857196464358169766490696899366458238572585731741555197806548151794633079564524453976488425122135138026734219825210521093675007772654132288106872440489839831093836414364046399212651031231632213709859045265158675361338231418296473852350757783284999617147702136372849539814846935153154322278421166401511647184812286258960700523060744195782491875807784100386340491127874302226665692186704407388114377642952063383879700940116327344068446443420314053489103395585141609785222211662829791791567663942406738008725620163075239168518484328784660397862631081364245652140783680581242156102584598909517491135036336315753095111574967424557311010280709401592527873719770602740923889966179512928741037610884881112504152092004722478677605788972306068442098338180620292164728387323442333650270448922730746872004777017543538243435258784267580968172425231694364701661776789174684185753174803286287399368288137944074758003494775658710828572686655763860109238011556507250944787442907810094822175195343899610108753222372897977215636065890916237985344255272890573969932662062232839977320708684046422052767283904762358489193583235949879704246885216648252541191344935566724866672207964619748016578906978742743432882062679466229687439786716255364211199674964741648726990243114184811652464711249240668767946037395659009304128388441105557230061992902308055146851205194578357538428951813653689198128726361018474401180731218590065133154870994191346761753474641668416573645160092659131570264302205109783802367043528226319032225370721642826362623931042421232669806541980387400633237978074952248277200635962471643182447273524648899054216424536803611427617130683609776493678013344233396466796920745694877163965929874945987865441476089924035205021421669281461639584823719090082530957730340099225756370523052151792662011456818970279313677334247808652359751217296978892393027711368397429535092970563357676034529111902404528723100801754211341097287619294941827060494738117771008114761648474826584892650127147501512550518904617789059952568910848105455236413266139467174851982351762220216246331301620299047496214888765753653027532134928076813646371909913811726320729283140407067955562568295918020117915265281006727592944595826588734521701728013940432811987267345305414917559315255120592578651829672057758292484891557561321954977201274427040917067012814270993920158281783851353386310644526373826832912310833146491523925429149174762750767320467994353553485480213029085789818062226004023286625545007022054172728295621789916568272483223083060370321008309451107257078507347319587998123496479822269328011479451116842802437582382619203553954187733490376848005571592713788744179608053060289781295838073789127947881736152819894687819565845496361060850371021024265447362152970573835398615271050778117044006885716300342394046613248281169545805881208965484896284843810041379400949447609839212626365783453531787408899125198975249937208210140731946752158147575637410409282291587251941544676661086187213589864347499263085333907885509373456930830575439903779425298609601945406959388690022107212521534690843840273481278139115260287647572983474622540021896457806798939716293722738366002895730000663549503117894455377958054296170157077364921270241449334101694946049655254881307148853253287342058966412665330898973181628343771900342985534262295211281919870462070097441080820353308744270104041766205267585520343137129816760453063875125396355216496085223143459479231467855170042253537855362615130794916436302292432760130828591507891906681442177155701788912856445531152599055480858677257501194770712797159769201202463652342004721426795266105042209562591158448352501644785624406898890891971611450593207597261132469307981739421860171176180193085270968508172336975331965323948055371222310622894890869694150214512572478469921479848396621294938961918196722988005032169345914191508292100443066137508836882101198611749485846454764095142141546516451556195841056254529739767559739313700609091897426476092105246471343887179786640675025895370305447574123054949135516624995595905577948558768558390925339013423134680589373304385247591235523041769380021951514733921358124276074973647232000388751548062506989364064512650829700475442989736116381779330820271226140698404104102257461351347354204737471181767351106401062516519462318023092020578115718917331116072623710957477313373144976320731530754789812286632322416274677128402760217662297044385119617809329645500131272715657293520012892299394024526665881298066665962174803225622347834266737612145817793423892218145282119963888199849620473974170255684202016862487543829843349690924682991942080707159918239091277789455245968378315211804912967386438208038309423291740823035668730750050960708006418601933320644825699180105033553737744518426292378145091217663409235619970098459702409703229270832441629592567745708673782496925564147375117985215652146728593731563682425930946211517722201280041175333134924364618234769942465995734549009397939691922697125147938289316441580074062417607097188921204240762333837511300329444290933964672953089037150560600523107478645739027817735330952258567835538184136245973104210882530968262642023465495821116893607472339874174805977751575578739257851202736052403285966583425581152077532673837257349520746080914982560573191285921306057125699738961243872568323357542411673843102584677240632183385149948043728650890084326875149316677136019678752993093792732098120656158561579724463079529941515835742725912976220161676308662466269250278289641729807215688357059230622503988527673127918481309985374967484335807601005806384365362136827596025828165394929052434815399895573620719320750813407437769930556787933912753829061157549743741128623521665161445387656219426128894257022769407154541622082343333186918189348134031227036469728529809786181582050754919757901297505153514973557514958794284934401358833413429560991108271916980822462148839432270284070268617457135029325499427332813647791409859438878203543259506746142142583660144380485143493924771969051452977730999773749785514849276009378940557588309062990519251849616840313027978196450837412994892554533182533969023988345611165866864618613346132037557475958521470055388834905311346804504657924032860821079816572463954452624231160908567613382408839898312332650135458786302663436970692280437805891903639289231002522962439173635370992426157395978513312855366824705822899875408729369444059090329495680642866119663174270549454708762441667501304936738154097288890226510578087203468185662101152517942294969743542573651135108432881082096601461068804479520237202603060469282884028552580686167333415690275810660081580045563545668527113506731820257010458156307426007345310913858738342667165201050693085449323344472440239694139715868398108368072772456539306672627909828668113402319673320744166256902679668421685944151539881531699945987698439082529622096024719559416042461714908219052578499197724089170224619612664079675244187509953588447436089937210307840960603168117285884882139232360214231502434569424255418175467405762170001547968083385807494575685985089557597011858925456597556708671074951001373138024124550225924686654057970030390560033738469162790471988680505805221839330424566598626869367585703536191997619834495197616972818587798905679579201212447937165606003573933913117197711840263904958642885082446562348753661506701505767854301129924977923306947640546592672755087631157947636640955862213570238220629265751176788311878395411954660043278239190597493788988901774742734577571383424106005195146311864872073473139071069172868842135324743953965457034193607268886125175378852894343561535274703820496485763702434911291918096226793140921751064819241427927352061190955874397131132957536692332392558201180973107933699935761338854927280940616323202691339404212791866626279540271841097016423507358013931704297826058418906340761149015936018126681729076359051105501628163234076104947505572265134217083864552289295255822255805215321523694124742367285274743528150598834497469339959102841593994881581157237831802808688943860808955247540200081018633120840096690964098681420298033409122977408937688233611545103947152731645533760952011842262588053222396776440248585139954569548243746658315732480691096306461120044604120788284323203280762108240651656151986751835312517168099017751867721593272425593180296230539699009817894062029563799890973559735757992025561264696560797129979685433594210414415970393829647405618437616843408013832832368737293742502181113557697168575429098731281792950889683055953488883734737069824071877545507203915470859331356538870448461518695668553256974297970947253568781721445240688998262957339560007210793731085629078609066918927044642889257698753105156287831435925855390407086204276154139567223081820334840586707475995499775911466694296645100849039009473869139687183349747279462232323041368811354262393127724389770068680705180959559097502984092854728366647939820705068075073336663074870325813303556882706278908885752714236886340889339908029382438233422566192359630269555532167729939815419476893580266794092777290248046122794619147324756648928522029640965541103092845168236878909670640456547552141838252379374603565714760880968605863942553085528665322369478925718764472822963312449504464847274859710791047720474141418127797321095305127877564016319542179988783949069109936388470211237208376527063571291404096436323108565714738192540978968844937104475061136107473401298410402244712257889351262449504814220137108109969656846126859780358665689994528186283037718493090217060812957153790852957889314164479853612341107613059330592767344601715652816586049803499261678972274183679325331838587128356348257569674784769939218813080825214606818793503802120520141576537230356469332567151016263579891831880952888702030880119992336774516628992754323485828121932910089500054534949955640160893283889620450693637543475207694658493983105362039223738150990027719095617368944576547957914960175438950588794613679786807561982249590617934195523311910422871992968774542571752005599653791433057689743294338825214551386096788827411346277625210598841153208048922239085981432434614333350616770694819371427075965152179368035457733249590983673191628145003831185681659712839853523922259733745557695299413280197319358126962554295747605012539534414024870931945483502021795573981756763136591285043404136407772504727609227033416383414955109693177281174243083756708301248073544968474306202088470500314639422081423830601450327525879121557680564764031734905141982539558879282703507847590951912547170794685036837214116867091920500771839105757937103231091436378917702395687303483158434024599159278083895563242060901361040089599463552520434647963086554629412462239011812363418428841721359510918921464319168217473508375845514023905214049388615244767022952477331785965984687067285017220708285584079257439402012151568898315613268032162296151555502944653813423168222656046114633323784524976573420684510922296764994436457331624062766556172529719974865684823098628861991423255488954800928428844355156584189175322032903964022209850230508257765530739134654292113387841249381650759840941183077390573417264091793430427862964642481133364241233320524195038856529835714133754557664532533088134709521076826827770106093324823244592693504112486135926121930827839714911069834119856432853994973442810010328988420094713151876805766802001773041500532342651056691686792861917051509991331814365674528418446754382564112289529826823235365076347051905146035809639865822710374201345870317513292985751758929355843166313377890232968494434505155388752281137647431343775513758494716331867468678391323042891507634296664428092445687885182941693958893221793768059741864574690247251872889411377895553547165855111790428093089598146924695869617591898679475792723725549271229371752127601854319968758085586714646465810994662721697863059502300470800708240992798302187965169534865570592365063972795158564320294706779305688225055650079542580028319701103127495098238130545148380825980832062406026754951981663891789583621684457370371439560178344915550337475297677092532346774642343650313035173859803496177513160069762167305914809877707905793968145853784832466786306421014945144980247664540634785697730431746212104059168070990178138434683979950327068045758613557052773751859842240272397696185308298443382597307007171785487825167695604913617092272799461906347107018956649112754244009511380740685259865271854939171990581118525540665664060448215348786994893463410504947952170096075254513028350429560746661661603833716946013405197917863034700077440604870098760422064337931754720317464385689995951986172840095979498431064444236068697324163221341586659784722325710346485292035932869004032713280731024180825775979054142719838879145947405781340679774939232976589957389154870038797262841889515661355052900981104091003067927079874450542076956382616722536515912629025812351110939971300760947910214525736265701682026298355888919867700821124604663063841600029302913784348715471186047988413346084038688474127398338449036000881462501213286388717540359081094118759712244896295299709061060663429122918687008266741312886902841883924740074644104129565182387056378326101380634641286389705451125039645084817765454926429661818077619504907330982765593020597513477209944991924445143035085584239455598498677659906710112555749496040666714129609811350262907390576030943081889990292622832226946161907907626241729276712336804060231597249494629281627942146056418199133731096489516533468086067879262719000746686246314919328439354648747616793990175272336754789816652406310327915733238212322967303196076646070568746394593616955087063944918354606426766808540456481248311916465122606124636583892974747943974512862547825712668776831786855819427829865526545577292609866598743902712916825904883332588843152755971346905099190490380690512226613781526188464138281474718460225279142609428540368117275858636072465932187738826796289192766027175812741500553881733749745276569458554529465847156439741052830680086720096993692102886382516362065618169369092793506268042626747134425831591273210615679483574871521923685325694319484714883315625737499109516074088763548894480082026267582867939411204759858799576505690036801542446765613540279260401896455504148935613561269990968790887670436566223796793202206621601944598369070482322694191788469269093786400167938411317939233389782710539715615144644597009797855862952519845267188241276466118009210203250008829565451753439225569249663659360146972438287896327824650095661556528580846795997216909754788982712324563350467895847705753229160820704658943195832953934660504884864493946550630372319044759522798234635771509533291814361872458487546266247520134837194468493078669574664311293701845107866144208246226255820010087276863643158218062714702386743313007435051642533666575688348865791946562056815212914515976937705550230554925723258060811437907265906149903564342638074592982740087188279286402911101780585740393744297055267785806283717583398249292269397120618275921513925525153865116389414018701133649868299631888776508570398020188235211877278271972494144239596699506775480216806405910848698549890750661786852772347380861538883117684044577631730969894109900379831480018413339141986142459730470142262328447080665456251654017453860471756587760244184042118465347084444000934689617440679988003642167204165305230840170421782412172880151460964017758766738196900830624475394671683095974051700046214745176362157736161048227684076983278631916347867551654628099972183998442497474423017417725652570064950542971249849396538783481587356504638868816242254684338074699226121931169224099557526253020370849976593779824375741743085626566286675931368209436863224509440209958199211799124724877369168713461284508043103215598743347129829612360251826858672905215631402386950994508687966077226948689380773479245311479809949226850049099762077323945850825958358802600638405106310686454885375687120171554842291450603831446099528795822028721424686298322378205202543850993275926410173306993131064498900266847249469559692518774614015890850912323580259138547153443990555468824539094709001827271739829804919706739809547558798918421293868686252201533256016284332647178407547515806525101870602469833362433258857473405062909175334453230149965727264659765123151644929651989241585029389572135073822775114682776681092783589267983406521659657137445673106393631369736692141474461899806215032480579785270789493159452268432322151724686962949542433150018141671588416647698058356548956412516511106228014360866244140016257436474249373744230021487060477017625570528397838778232563864549936133468408040292699075034439311720644076519038241513906888966168957299866817700425363713001746420974956955355526496572076357919415561933227540728697922409296071567904192930017921763019010782848386602182677431155274669904941386057152691106411280243750945592022771512160647138939607790410376651958436809619079195897986193615746497196392522012317314191417662139102022282391646420911444244503679271925303912715331064184959825017146046738903560118917603724684102282459385935216909208535372334096017881643385503508828735359349913427941973127740939027385330217833853822718536567676843458375391872539826819233417261099206434067984554361233654921398053635598587168050558725892542251329620078799559304483307584158563832434681107032015335877439294932411948162194667257483118499644720067733451719491565686255916205194177120583805912573528124809795879135366640854692851549882018839452391493560335604745505667290864217040611652087676425587798732154291714897715704294090443418619518242272609743157710893333715513400896322086820859608594447193743417273831365701804653801708204133424582123768615039436859485220393449442499050627624573447648171492984888415983333882538245872113774388116233492101527228054819505887147206526129072990957593800975756915266625419940634231348855905513701271871098184090978384850630752712284617282124248543155406448051996532741880696485165369452890714714642438826066030138817985599970919220496622098300211341008411336472679470282437833153935909123926694599132815890315967920489461634131556441365384440099222824066283959702420799135104644405668683568076176108883822385795293423149684744126976299703344983757913701640509632106041239830144951033687684080553520112787974235398215573195445552095802015656218138050090918218604514381732671803779115813312480638866519389117743334390660840963901495473799073816878585203923962876775609549972580612165856767471960253019772177391744315932897439122257197171361395186291784653797213661873118832229993257338981217325436536577344384869900910195386474992556070288044102925052224280639630000378406107107114812601150191184450841023645488705649249134027637617839300304461154725966482402105756306743827623078018842601670908587237883412425682741355767296619834200168605777096342645366482068906494534714089975561904157053664319066895853620478787813452201503886669069827592907836027016435238856829200116633786638300924055205977596652848865162817709601302032066613921081573925469810048620591172719755568597162378665564181842260712988799185424853585873110928581892635101110261737336386620571685302859604847456387821193849999748660083898734766425638943145450989579493137156910419397491730831936950535491014419969395273445393356643595762578827881672405927988937206745573483415464653676463842900649483140769061545175547040027689238892999331544797329439817114210401836786108249029970343886217775208279058322032322011337287065921800102467667519563332773038881032763765729456687936616721965195579936357478016100131007664374729359568469216310669918058956563111478268683261753277049762109887983245466332161146831569946580992711277897441442862045909989551419242987919226186370124986480611051457476368535617187372283172902323013655461352783486787972274141005941777232576243359226974082004650620270200238022161616030906380260548708471535446856539859067275659430021043848305086675928578195745416588411929317612570594813085146025214034894443718711722521264182110212267815499040260878842904643882926525598916299663362029364047496033368624430859834021495008076037780226171390724014126541365858650517424254600135198265600223185623108447742760233394980245602630569722488013043458272144149338165098585927596380454725154090457693694607295953910352997854568600105252944626110071862041679777772360432257589587524665474776622437548716027641708152292684927747728230297065223480292915083762117142778460293956993378205564177260001262981405534861476488817564487594083640688514552335425138529380641563778868847880305776727781036891953081298851157311001818756939791594592961656132047843274589626910419552213546620097900218478050181044230580160156733435360530177885498082180167715819181735975368698745217750088353266941812737504967380250653768194221916918390038479936466093503503056702539784522717637071168660510201972195337754776966748693135861284269266086203763777099738919912011840981021478313616684088987733532742584253793317973290570503214438956382620453218424460157249799579767902132028280940389133685013871094558449191051120549646712849343033093019976281402568156759586900919341375471883756441666666713285337126339045754603013643295594637477483436474898001413154461327460780278713019250843926597756997461112384302229851286728757977343658009900749785401188331764883263883925273517631108815045990902749374799873579320822392006234920288220883041688155692249058662620736201588244382258721865996554347976634938883383050899704995423038722525748290134103500135224209082844395292407973666649150706173649388919509226470284131697451230681264139581513173341837357641254158495249023586396777508063522747975512633061831216884025499263341636632849113884095576227908927672379386472939781098736784164738929236291980880837379650086537751014701081683273775365630768134964478156023982448653430948955924072907939547429674885067514198086749428175206126795343092771482325768924765841554808957164982408244954180368897791615994819631610581405392164167497166154182350414660680362188040738983401911986536476041413529351726779720981928975063011151383279568375790927575944703793892070127517715168326389550941515953472680829435287761499792702415520333451340107324765271222323128404000831391142646691728614605827362334409759938360989878742034118757116596513345193216935369166716516322258268110998386620159956570718462728881539252705607222345277142738549045242815384756848383175428067952177596528213779844210447834124496105369578020112578358525752506063912242092704038874349110263482889530564746439564970475759093308437753734252528546715613219889080543354993242534273704150879581966161098894036348033129061328691863406403452523539193869818915661050274588216703264112494414070485654484945199487357760201961885084131945435055043500681568826484758963169149929188464956746021195885356471803818817546735612527678192123894874828890680535296419904133083226679625629099195131691665806594217139139811546544813210903814383245407679359442918067866264187865906756357089522646120460303398529821648620356765777872016520925726540769283392679612937276009827016281123183917516597992665799713876998184605431065354260645316799859813405748996326748710091839331218657868256927184586151379712206788908613952281305542985253650431512441368507006426669144640013613797039401779712222070093780850710165964232295101896130280841631456466981824238775327753281318422855596284690979956630198047977246749233560677503262875430074541028261906748615162192452404530629204262088053125725941869504489195039371113390058944444479091528387034167984988275777204080171118548151713012870751893512297628250601945069092110545355750455109768833860684880842058491529927368328309577788846288106566676480716101011338133696779308683782803648721103624374375605740534526912347117752627792775811618749694229680731755370168199610525860112933603446036385960002049773738368822073625662784011119839345819861227257350338390019734435919994073322202738937448880973177572568235069988009859601154843862315988002793687690007849558421584958287938901926051493687196551421345535889432674158642175868238322336004997327324544101143706952206819546902942506965279063798374862898250152314372580828122288731448775796434301414121110639418977995081324137083218882103351397522037527793739559158221164164388905382933734972785340054016369904316897366631647291376826465920912184222934116634768557629195515032543364585604502747453778748479894081472568432786017764133383447075289577136571227676284600826567945875840766530772786999465381546841279953204761763237831625159856909847930547001210107090716120537102665883923701693112819080288219592942920797662288082015995722557021461303235446071525807084784926208032202992277291549668881374506333653530958977113543253732979252548223279876133662519169864765107301675194185909433045556530063212037166878599887137523291585072106620019205624116413822316966423000130978884290014230066590161332818291667468208697143488317932231089431479642867917366507873496365674796708153493924357541567712735434552801505887677159473111496539367768978185135645876460827811039363717954811092866662287945326331097711656410052680797065150761500367526567579232805180828701653721490605984969979959795914804392714750521495398793063687404175282575301942383379551021265657965292953715773256090808111722750821125471312594253348634805379166043387317832960340037650185425514291939989366662319007851710075668146820865582401065316423361823912888249940320411950458011966370802540531751973234439252185268231404411963702263220609743168578153714321749587843966545556143405123019051074044028953454599003108425912051324678700146070694929714091671318071603329943653829740820915940330572766630210887946044580909531118544452200788594425998608125921077968696126999515457337650799540591655999988203340690625035672873689831063325542487308462133797521785506959033081701339150908518993035581189724265242824140466391591614099622450766651547246291589878145529642213903964920301426240687209966868550777723705476512795745008920055593454643258743602799324440457689294699255200523455805637829395751841817006180214013048380830807350890271677870516489002489472511152959278484346684642754935882477906653801569641265258228303894862114343959354753098804008515132902695122674825808840332581647511984247570221054895784795755388390667754824593680541551792833944838187547859706701679192534987355969494044506001536113677276689308179524361167208042418619152762490449606586845835585593596004923879201314257183947320873715209896791805379244688800403110742786135790829703461814918912519689751970071069967384925276188708061219150794985483668678923785880689156997594564106491435866148030446774782784472683461292157189628082162098658364218901922825934059045002468606737701847226662350494537979835929762557084840966583827664547995211390837308913514043722237937360084185431919440884546802957328473775446377518681150948197383792462293778375954577008712773207254237285515462568061878682840053306373490239269614653435502352533909651528208788428101667290781354953496156395887575153577610076962687344532356732341407869241163462440724691467978312200566406909769115123111166786011884826983625303055547023111596416096376242153652459620666296506399274540728123135579757785360696510675920429814809161169101378312346029624941081185778711161922481726329687092396354726192864454734021267951986297585453293275899181614335471607285296511362134922435512740303937559574109535872288439965595323743721666072861148873228800833189066628964669822571224793507724588520953657487581716021241291270472977124323258931342239965037776644633612148692700443076491555982659212263811154100302672982202084694694123512920221140218842920057743054954135199628511119924494665862327058582869619902413922065604046565044652024251413870996521103737399052152922270138401541775123775745403072586421368307703237405334674860078021832184071543390891387243582909271709669655308890749334603273243313180154252481512227360915367857465540621284585432556784320204661125266577868297030440108979492746061774527551942779992857401414103910794426626628775090418423329736457604460505676855762842380102233827795913662879263648826489373925393544840221175969706563562163648696835681191330194808606708743380947095484866503093439394909397121341532960277233080441099274028794870024062700522353561428443025774124312815885786318623824473031651511109883481919628933870610046417976165361273087564754668898697649906313759220358109290312406607630734280644966382817557698857759553215432174325174185065963830306991482834390829725350510131533803377115418705404123733497929049392026098318741752374645098652622756687304805615050807340909480286193612795850883488772509555564055579103255437502721182837546321934951868339816444361703022081069586335426829134465696263017055430623759909690298462841616570351731694209910314593263205355064638433915932444730694926527825016498039177303120359458258145810844746654289136599745516205874237359250547006229090074406337303733090616884784833300380683509564000145893724087692845217456617233331590060185637848657366015910190793949518532766364515457531558208538004881304955931395185957436555694258861141337316472763759935680095580382946505041574356301931479960152310217796744545028885028358674717578407541087415787209013638400016444567708913134449287935478614825867698933558649516099238492501473832478547688012832544375433640256706647218318898941137368148254050837275911697616217953710064180838750880361304124166262404794320668180666516854270883747418240671487601486312653067854130155561488060272657095281177442177790903207779291358491338846637305418128284767185912636823001280812446250270002604746928199016102832424261436316741598496845835411769002276926918028706328788892592147707050874388471847768096512556388421271529123581082638364153843596577035756952990439803639674713624031743151987950665807295201631007557984144226169419764099607539246018574048009349231921426695323909794265137608007926417871534463152414950061042874663030704836072310936212595189041839723361135915400759929890155232771405879694366227373790644306631652912983421221341525754389289406219660518412096085058990991512115460919843079360879237317996130500774270867194597624045451831658131792665947671918805838872944638758167196454712314924745084972236762090757348600103947937378003683185114584572378159541133366166075624240536125520811352014861639945486725165418498139464946995264464590163458309579505222370740276649903499956697159674360014327353646316413926196997265473812415614571956478098636966542829507868757714801320424494199772329595129015337659332231093287509287507558293952882396009905520388734875997959542434171958015328720760033111261266081442060061830494365835833772147078458976229947670447702045828113293852867394844748247884065657287445850872010286393225644804174166473289881295638929614479139845386961117213440662728856612312818035269445549993605959259075522735690346634253880513094720992890883946639159932501236702419222637322377793265850682035496515019119201886025338588669739248404708532752973263979749780412676174673807456173267149756446363935550905863053358477673604531342135401398818358745128365341519477361850053291447771563352127179490592995774184518958276203989215130319003001876229745228611045479081057943053214973556431459264500711037374911824367589226181806537928739614251323989240708898189893230117642970079313933058235382975337367614795294100344428789051374021248360311785432120538983924211058030154060723998241311824733833102178663469653630181907371804829381182560300850103110578765045892493345397712009135106235097062300826423842512377484162762840442608421069491969005625749510410188245623270545220012745049189825056461279547712397194687798886146230349289688072555088888682061582560774860378643577342477111654224083177929398034562700162010266513014167655514912813504209189863737222215257544416578614264303714335605077180287711388464005567879889972518651663222032589803010739415509272642803335197340450445733418906312019587773001874084807131733265756415256141248506954124203305088211628825436361118401855595123411088081377090868804831540689064298220792285642004437125522688378169366159101500303595622184926343992629161635426514943890220047942365462033926837997448121456607218165782351792228654094642479160951083162346213387763741211672080360346143014011532861151187406792480698848758395154465397471547374219855178321770959295229407069411234326424131503132471340405555821479543240755742104547052014012520992731919068567068420883591390294360384770386341738219116548472524062974907632941336519790131265591280080849064525312809486643635428726799150581629012764249220868536372661798499226056560558819068557953089795715935596745597498076740436170881842360979778489243985898771787730225594892728188745321422803288589621290507932357667432295498418418922346600832524304223777882940108774400293995165319072728902980065595585711909572603151654807504243951366853563211425347726290659578440197454141299459188600491995197540762909817840364111481323063699431660075919535340373898413747131526119678332022699190732007781043323251911583966212807635988241260646289917343458489827826185885590435478323022663721975351697401295753390144905168246016368282633065082002589638991244219473589409527998938636231612573421222882464859276258958252692094587452379278535215490918945333348752867127455674865268776774949490823120144369666309742662776422647887159816840630887947863515215999249493294628256754629048160682484034557843086150076462871494228615660242319522129348773523471886762920295549493021622434088717507440874920266465118447400133568040715322124831635911689205168005326732285358981811756886803894129432624666846427889609844004416845969711976801033664890042007039825425114070126954190397775328594553964577810516051170240803952180982597410601045166937771837846198431249733555380381937042835302675576457051429921510088228905643934051931464842850787956862565962246874225379568901929418132238660468234698647361538186457351884663691034142457739850938590963075905032134524898868623700247758850207279312507905563021838668545794629015546144886334022378284732900728387005737082713949998447177328239031979332770322198908930800734052292252288594526437262125622711242560736609948336745647307148537438102746362130949804737494635524649863031645818520355367396703903757719711788512669563955056199171257554844183408597182398832125878891326757142836608658313373443543659718776407564609184541565837492726043024140706338994578565225023127689110228916355435047820400032000167237203257242322352787140545971358870800354249830359285263463509436327839568168980087582610053758782579333083876096102726987901451105731486127356284049085343367376295089517526452352413666387384584863717919735956320905876966493959979326021893241182915674075824810697717101218494688750604475253322744835186985969494628218107964854379409649966229891390985282994376127121882150644778363883579605884168894772417293205029524178535860331129009435981364548012499467392598433226160405951124761052042487771164266396380247105348627054513084672648571429224165738596742274155989949752248685497607315949521093419458534590790552536603000613795102147252238921066458943240772855171241572534233191035710598413040735627491868320979391474613231832325409362820396007169262598380273229067809036645371607804345335349586912085776563644955619345421193058415444144333609739328157809720951857373830456937595261895677695972340590428777334238560709548502666635670789668159500654010353709749784275318795267700135003985203486080641190483854276682711241271620889362504484023650974439709542116082145660865147567755501681715897792816310403456050164516645245997252196900123194230970258194501195818077297695806789912998850186297408453274134640025501322850093564758250082232441611117300367183704907438385524361136417342452226627729717406658972236138426972613435183403331549807848642821220993573267152438590673868217955273665271038671826123288367909618263981240763577983302754830622264925606796106658607834309789827534851518946665009778733340227344954628045473344977031677482081949290738306643829597621025363059709491290978146165934080996464059895248491407777323941840189190247852844568451930932688200574646198932504289497273356411804539467465436460808969803084931004868392421232914506203274315930990592384712887179670939279340071318253938374343394818582687913506420794284391317654886708638929774470432693078435943793685903879516060047880075632033383436451085767350124862657763455084183709646474926038382156998210710324505642309783057618168099563953613267443521849171375100992250343837183245813139703476252886013249659979632191203322980413708323668313149180288777197390299785267849149392317727781906362168498547377388345614325172428855153413482993421959024205181776073062121058105428334596384764515058542871988137183319887760669098225759424083664235733781973779615161924873588409903418866933152860816851705809443808933964365334945794094684981874892314955426383938144445716978773307862778792268636331226158030241674763924507069083856866824544676246310718047037195940094526111220687584928940107175986839342763698178464597206944738345865744832278332779906023134463458800472722398689117498766835003426293776125590402401952234224966133270223299294674297206440485386334670066875039880636912780251036449274892629027725939875789696504611238391952292945673482464901582608026947896360945768434153259708653045757900928756145442924577762117970543500237887290881137077875130715796293563872223996787539852107863856091411505850264291169252459767486772871007655614998392176602635810400663494235953816187543760499795620491539233171495874627035404623375220416846816374394041227367454753752034860586833365184780715349772337607459696735583349368419918795425534012899743323028946516850024571320801720590434613463092331148157598901634019602336295599657633977704047702648098122276948376492014754936908582933092453951175185065733513401260992137167767906481900888664203409296317401890220279943109672552349406999822940173872129941397914995589920212285801606053252309045400870904417321135605147410454846863580614094891502274997587680717092390017406818773253597615938790109016391605344542358644305437388775411278092505596977845832198901548841461412673335200717376871386350559774136954030711393302186246693354507132853740045981051687645895387088441004330990092966630652734567117746270606926375959193556314391698585583363386907226375498278920092719285309794813161785118912786315182415943116234026154924786887465928772658389241085906069493284852801763626510032572343445799549884744713172704337854429104267276179983725816901794087248127414151887387504331759712974636669403597410023370229068748657318617418032606949635517550966638931667978373476059850628366563623429863062398617906570663236028109057775124572806236442703973850431662128911753977112416919118277647165730026124445128673049832329281613763574202938378474318180204518114357722021353588678681590287498719636001513412954442129415121072422675870736793827834054726954925683293696743997058393950786381051545897024477871205353951422078177921962704995191487916802128951098580128828972053700550289779841267542672899619875583865448586749818169386579793891216163469709308060658044559130099427350505104496908730171625213697853645297906010412022457068783082737436227124634609928763395013893045441300657949482264653132692769256735827441512624645352928428517887769608651124328188187878299453432248244334066382097890654102882898799506271402570298324009484197760403124198121677301604394966540973277703164751590210236526399941416543558258434911518440960162852931763184629095026109622512139358054630310956291202064894673308720482759039832734460226612809264047198759592723371224975052950371577822438852848298926822045934844595173368077649606183498650964475329422497126421049337096904474941273307707372097731299220637329209212655837721972768694401857995024968359842287453406273536563771969708323927908405159159884380779700829266395906791165352569484589040135332136833083789792453420537550225321183793049799247244190449701991203893112684667131672317599382737374665498400496631975383977044215117266831277963127432033745204497861473833633982996467822501828070559071846278890223582068064821586429738726117512758251047427124378416035098237672267712059502604328828540454582114021269214341696996081346622817266395122898087101986322817377729167885135157562149121851758361291969824549440088823393936112550450761769211353581613921243708545945838758926827974159243342562582614505054606571423408518630733159971146132695397404837275403163609606720806162372824957141906795056784618078734415733493712946968938649365263313423045202823585657510260176473182821701601996141416329891189936356916244747285657534418350748701443876410614094030572879351808920499955570404811607576039651144837292069263663880045497248587332792789226521855555182253839627237305983882490571819947249150571758979587803253507109500175737756706499492417469474539999663001951109067748460418839243693775383855278664503344796375261658068920779870603334158459191000742661810477245251710222493482150066542274687471023944791416930584109031535056815258224512983908279198916413337966471861926796447955000288803746066851622278242081994644533323489514470565000486239494034163322682434980561979612771428374894922721225824811953301277004272500339634265626911250276118175829585034233383230834281451186091253254201897295976869436234557433288000993457717317774753974960742146025287962011391725405464011709143092007283100386134675792800536017176098821415022749085440535330669390318205587616881045652152463730635466028557255563900969822463594349540746302018737139127258209970813552922496489898780219288446568266011651277676475468713837020695388824776502334235128647027211301466478718396513747579272013149839076680290551545098250460708723159171763585317270754454013934502293744287316858096708553785870333116577221308674714733329947621835986536325490790603443204835293349491802556096533679904351759456573949879471608346606922868087489925198952848126710209429054545250465221562583630440899321634559761069820920802216166420876613645801005257582413104149174149540961589439090413692144595442896442024007758913594398050533983083308788380746506737390286201220220141118309350563839967432495480610177605358523611271928924323426813895276375334308676099063199727302408890829472612989253277267198265945157839211584408886415997651866527846519727731645178078868906173112159112860857950973328239651742880565156304210552904366055695180252727268791587746081367928239752136808897677310937372148222739091030691903493995015523374616249494524050395808810878690445280236193920465785313849376301329602570128797697649081568450664624329987204593390225180854493249183812709658093378661171097281108218560193583409918338922351324374905840088372112884157886233426998177659215155896107172357612462267067077769953424549123644274630715717730576327229972600729693073601587275010691635402712420344006258257684294081879467149105611218458063481487549686900734950425808804488232879441021565877504229408891718866784436065590237983949503106626516501486869598925732984381797408113222878714921449642698365754037638098173044368993931691927788969669957012497658587366960511297610839399544110130590963954090674202708402289439896567603971174551995988353030147938200369335770670757168145338352992450052026711453191946889148674569920330422647610224049239412970233525606934284209449048600904643523416399223490645144662472966096115655130589407447472941570766290539257757413932298900516880179440760322243298699883444301419672285084615041563403933855583684238932707463231290365849179109265567279112531179487557911690629054241114986760175352860482095554847750591648276036250444256021611763338622640133778434829344936301169219243463218069172463847836503021512201064952198103640965934230361615502061108432694779522773191296794532971782228705125698392360303337598951463628489653876815582647899804187415609592159734923915464425162880651504155214429920220844096857883183764650761484453485964283766378462439669398033323328367782450722482633466846796068551677089965906527214202285077407426298549828006954924860674536600996097148400019023987169860993976490834712278427609795224385782342788726025864818320699417826215788373151495860215571268157229706035729274926334389937407561599729793544465725294191935593275161013432433263216437900123596839563181707412984594685934558137263373804549900682544451626607393300693423388716933844418019708326090006112601529295511823789007036513694727579321635387878861418793802221259620363812388729744173488253114241153814525760524001318893845640154502173942323420406931092921497410256148610507727335503809361603178826031792498951335434665341337530102896110093221504436014708476539621937287580258630417409690847498717115850305192081784841058588872130213475164636592719145494204417071059508465231865876839198885600323193098054372012514480938945962663252418126771887188088083968237755450498781191818087079429255038974676775271583061879736587324275733305242850186189522874986445582675265097893925646030725599267226178640986677349063944779268509846365327726232654471133208237720835196166588864405663172124352165676703039589778142817772483685130681157873956743412191071339320109226412830775105974978730799573525646609717870805502272040632567460882327455895277001549049106548239918482035951959056063016479673675216566979993618944537500387012177170343037713401873349789516931443250459367283072895099197979588376115891746675726931130652361034168067445293838390740102138200174360747408603669397900071522600376120971958046815659876707873006881228811459789069241454017520041483792251394141737698389167236359418040425397292271748259057819784571301274001216036430169216198797381306184612990711146488441918636494755133478397691336517276505682916737198924507386668451058589622355957571009270208652216423635366846958224837563259634626942940573040021909263161220481616940959244041120534517760278830575156069747239504865068084460036644403462733659735714434508474478999995017416077336645235801012136539631826991466566782863763873550914246050165004254163969984001678568348557496727237634531273803825641349164262216721207603189310768902007389711181971448305242521466552358883527938364799054730379816071203112892996713355897550849820725910422436746120841251024536233909514078564724421448127040679488738657839092820315048229984503477063424830451039106626021499467740935036873898301975172025035767698704259585380784422236487283386167320406165190473016970021122883963311773461071740661476378145793055236559165678186324053518872108243354278153564563629064393931327646850805167131008282433453342388347124736413483920880755447777967387307896232723320247607719489179212500188110793700565042925333079381106987580888300020986544093143004856022806264495347403896817502016047188678105073043644672244190263878038211678447285606496244677683717503396010667846747896555108736467544196760789923337239011670388516877809788372162060903348888372533594732060169981950156289827846965800037571220178062100981152463368414794487164790309578356534197552939317518843702359863365036252250804228703759132785098625497010271975790177775390418296604043888259100795856643598321039829819086403496254291075851683080967951718575772936739399057808974010829248446323918561171666359352369677807036219268308898234422095130557677339682840120436394496515665070194038257763426789744268302745582290531504743867661940215782429896809374281785775420106673943343721415317204078000667578487465700847155485817599009803612476025938046649156417855717333389254577134244204026852668425756231672119451640691140271846890995574509215802660094385897978362238300109264491753431704116762587860465322089191202530287752663675469958780395820081944028740855485607051235111696591743626342738351211200398757071463228374378218661181901904005759734324224696814176914456648581412117243382236752421304692396122948143344967435142844480713005981539376341497702034644235492164718582964570930731432546967462635890594286766844891461395864550934438365642870048478737880163605203380073184883909700766182685438398348553089550138814972539083022417771501849163035262999941806847510467005656560567346866809547740851319843102875917162917415525031783913089714203974263736340128404330838978421465768486776134782561723708052238042881950451096658273359588615935664084694807007617730803749096098303572911518917378725948291054766923715128109168836137060496081130594924961574406296496381988487546921703413241164036037021286519076666883010664743700495661742906510607634134109646208789692455297029776935727653717936152918794349187491108911224713673565831891144920454876485815373477078618233858457410096578035039181735111222612449172144161552869615978222539383829196462691287751939780686471841041382867320067034653332749602514482418250947336709873090392365289346549264920880971328648918522013462861928095208091125094643360170419657292136558684542729022245728790688492961242244578453251309407921951305336361590316688367002289901720005312023176587751002228899554434472616714876870371232706046812442852357941519900048596039634636556896678181396080696974246237745431990515654002857646752096342187691575284339955143396466149308774031106842883303640549004720781524299372127087812638068875496907024716298931447077069071134140040807700509022393894339573758850800036645065620772999258841886568167044148943922560577707286071752616611794674925350197727144387662066565280233766259109278597821212921815204035328185000735920460922130708584520526495520514249713799846167652953106573898415730992511570294332428097923414950462231102117707453572479539010881347043574248542809750849588976500432064355243885829553609853569092554933325256959562286958177421659231554242438830673511168260157431085126371939140630958103685041393608851962604153817077666237313052652305085525383251567038634673861514024864468880586188063469931472963269265912191743152691397737383256513792560042781374558559981765631364685772342378358429101952075390773706385587278903645070204810358572036740198143615758227924212757912564251190530514974415787231467664249997568482307801742352647768460508191817873086349242108186096010777934961313428336890765273866353840051387069157481518582011980347344864565817683331175344258316718890131843786972771593411839295648708934906067827226584293183397690692756898042671238986610866831774450326403769715839576582936216084184097306841243563633131731191103048288268191853576805431679359009713241917939577835536344223232719770441276916479411260845539635133240449367513550881452540173715753226435778580644292047829590638379433470135945826376592576920275331993275740046000874513584204894449371161002211814179892450231600043942632838766630459235037936335763779220242895951017974703869767307920894101995380151458928408718378511296114714281001905958543886820039192075371718090086457267102234337871533715503024771692380254240189408436205677051429835742781043570693926756877107321877020005472331845432681755528519041930959982084750273012662370939667370401902586039112253436183055410064396933033483877480420195006811702354652346029893351919159716007336354130377078446674113079530999135342605887469279189885344288358342877743385631398034276122997326870608372011656300349675141846336374546668107070298640330303003973223236349672358976088731242389303353947665990256725503486883712628788861062088475146512961504470498292383639380620049985615723867239228216089914037659781514567247285811391058643073121724411239342034213139662607518846829552293884237287185894897547527556391365719694126512518789074094702909684206793644979828924504438951997047189899768956139087868471969312213242354577600889732517439857001276062053217894309999168503499595976554589379806107848563966167199966590252084164011416423556716906800853350886899286818240537474101539326242458804521617917823285290063578316856366976910505443716790044963525668828425750389774523679270898163837354565685503390873483107574431889613410865108318396327258884342372761267100473689807916983220796673005444890335518277594011244269059089414225558523282488850917326124877784974761401983079464894332649300480412292812843706848060503017214608040993977654636586203180436708403698838180795084822399621298653147638067359169551653347383446425609431113055622501569576417273791385385859373986856120838950797275555482037688423378295581422388026760090987029020102370002033356703521972593409960329836760291279968616087349636559815054058001143357797988422738913045737099375817662461789232785757227407487175771363343514362344470151951083429110984054442164625545114066436339862201590992429868527404356169891291591299216669037771489498998751901664632261673462495349177331730118303125207513777554296200134408232848777715313273561910812324464473996226503235003808705380771892476340198973142396004715253225548016278731625396047117951340748625127808766849694784236119851517967729533562823364121378294057957357903388408496925107010617373355584255855452185127249828603288588771836687865065783208789681737544309153782865466870392125332323980512262620906490321984309026621026120560174455647463516277172798788039987794534348835397757112101448908318126714608446586768431455448593252238696914758952947294153800636903396505941671643367779276732635518919280200376245043752800535552141433020395443217919768012118144716598614850224541904049102324498446529983670573092465696988455273513617575999065827877251703149848097469372587622612813082223851443813229134004337285571399771696352682480799276504707368265274589680704610552492115628556162356078748597088870130159116625542151196472635125250793006244252273666510551308334273312518578048170660828367798265804578238330057534270189291062884237664937962443105673816988080184463911514520784814881151413949659508104623757582959624843015975857741574612193086847967641307411419628871102742791564524741561014524242904497278707234782450262192543968210492440418262738043680018329559377981493334222389215594076365534501388692291554939875763568357543488917907313687762394655067101029954702873477938471286696930073752450330317160167697620108960483860271494621287121012602452644373576003909460294775692473864469644570175558274926403428407052356678941828482899412285126592289973845007262051183464153857839333527624377875797159575197928894883885509553969995533694050692077249819064308523076615317434587646639610547073342299633683932137828594795608760490436468233072521581186324353651544211014046921240692373249091178307126513003979748626080416562263522410000791901683270072390652757553588995992953489063850225995925671496551732836235451829246784047649880145556765904315647415613520167440342521444796937484289470645963709732969374650754922813834801640709134423419021214476429215097897605990016747978242964330715777152514475049611187604990626627111951655125318869928399979333669453331544093602693974343520673994696544585944416505406729248864377710641627634284333938821313649954158427619742480024350778287079034836946814574471935315320470007660184202903745268678509724697385123003199469627511861407800397709612699636781398337157063464009509915991430030923917318230878603756962134317180435112215780119588809546252165658655259328755331654104931352664722566757429531201703916306366793202473783578516017104975358914836898098942205476584582337717814506631484983805724413623840089895821222703985560137946574534895112845349793364039849091806414627408630960542674096424647701259950053246399637564827462648049057958259315235754181007185096355095506293005329184898704916570898075408049171439584634370779957273750641976090958606471445293525049665277660977387916450810280937485551497999333940145926350236068092848356858988380203970234093869053070377526724081397659109799262900550913793292000983697528388211752544084070503700767364758964040040706405025221735273540511575326771635996599726948831297173041568978095216902589492850389883075944767122232991483560191998406035548722770632186806040865179729602632423545992940361273024274056149117952975222234171646750891259500501869133960734723613140699001130225650538765872145213185021590617782074949669244128783144812889788475349786453641067557232804220948300092329496451865687546260647303819640760872911305763964489569741977136591626454571757561708601977503105130853194223645510946036699305689030136696885349597517697159314263869246766531962625153170188678215875938224625582605784296874728081109752162596677612206178758086956558185938401995787754930405428010214447204022193058858415670571763999059849022395316141980406113839817883788865500204731475205389487210570583753251013904406071020332458856667814962727358951059179095748211283539452298802989224309626378031667083169604341049371356993294954039816211229667990077434737256865509226082728584877188304493314048228053948259745671269528352186127265381087847060986177939354889102793139248692482176843603048697107042325060176540947997290222336654447684630037663866678715613953966226330142796997306801916033696326795615635942005765143544622613101895343952792439174224757557870461348088603163486609884249441244317656802508145856378758673381869115807331010500544821978565624012206884547355634096253678791380922277304104181023889076854586572854620971299610051364466952720350033577462817370918502713213016066580022365256332690656949622994969197693472778286344840263246177169420621384821491535597550713535539351638908824949795827561657327610503542481664194126213242697974601573992780746168415233363161271951067114413936522489029035420521449380768376333262762211588929310232033244749018747140155824852189477388385972159581428774898687462706389660629271495775356439228436332817729827533640262754488027294332327737894914205201413775996568109418598382326847073496751133182871761667153277258384460782769074571716748226275715621843244631572263860183807469513111451184922784856602567265144536117734069355478560337932931815329127968810902971375647637569330274542453236442198023931694986147142230898436340238489769202281063544705114131670818514640471659385874797325656028548845931733601599011363100061124203535140807862957452225799612854979187032071640611386100516477576643290174641150118829832006559822385032322120526354538234403098784934166619766147910021859424531930704795663401299194153831778255674744919536297075560825301917567669517835498358887988429808735174797225408383155959167306384844060234759271054670916946309611429005425287019970131813681615737634239690537992264399706143763618656992348786872049194661417216253627743004716243838573748590448228291511516181871278035009634189033173046983455961597636701369932124345232860414955417078017017525450223592156206123401773111640800276867021717260714992209258532492408351835992109046101179457592480778193172454966317547564379983275675246657042335652047716672651095810884224296532536657840253970569373818769754163635819319651305881895412250654505987380225399024148431176569100948642531317968010109781566033672052576598729555621607902101388990204622852226541271393399425549313785618748729714276753420205259210600803354119116650640259026790040418605504130204281422447321126238553894893039333559399959859513912974591354446747618366869184718073471350294213777370544762370363647760012454295275913439188571962306156568035088374786705405588466221486792435817201809908244381152789111354446496093352061658159371073850498417033297188044734253592655979375881301600632557757678902081825217733719041229025809463299658175524551676643970315233037625704915722975089252056718864562718055082915149144526986432208356738542872519365691470192210028342339957535773160028555167276657946748377758674538669778924454995743648336853728187690120594659606098881793977862268015761868758715467656378322112628926948942089635405759690038185588005290974236071328909957740064357096606050165586496572156223163906859409553139544705462659433174419785337290811421130128485162996351931041298207535840522904502916463599201545347210687566817100847430027615242347814967589346268218697955098577577858588128233083468141365148923765073630364669903735991229416526064731352561055875082913765629037292990477528880987923782810125965267620346209777843666563320758589356711070651425458137726793278509229900517171467938729678857470776354001943052868873707504299581331207581194048897208141806875484764935407329606680234344923355387541316223513847816810186779443932506168118332474630134862003447577346780840967207621411822032330047870810953273869124719162256607850533278828897205705009042592251008151338317102058174175017980013137463947109430545479544562446466292001339420577124440619567422845050580037944692308761036025736414854641180128352593679924811543626885737985340465271909952197033600938657887768630531162322978340250165445666515628361699830558973174370293776457015990447747969935415074109101606127925590875135073345378279314858449246255139866305579260663882447595329004654800411195377750008547290239333451217695319123421732928805075676934060234731191455735386975151699771575842868050764152164651208992726127281775635251100502888308760457639615058960696725623558612312009084965869593292424454201842613528338737746554200020285139830924909538884016254633203513667560839277387918442662116023201289288282911232693787456547749994744015542752873828601004308245423611054089911525324975227417535593193257529430186349754302137450203489012592281329338583595629473254204134068697418771954582771335550237069177862957825198885068632356921685831701465587489019810652655275237463846959529263929920300651685959865324718115205586819397043620257202387587436113158966481314499530310287265009541316634879524051108968112588331847592116919159874705282947572556463984255897952597862521740334951157442979344746758648546065972386498284025914412313773257509349584053479223091892657843803203311921389828678278058139272779157978747754340329582567041749728450655774917859452774219479727787990414280979990727780729106752286716505555819631210743493596782325171365719318970659702821624636977554104385782209564976692828326364283122579653755242177427831988485285986501207026906634722651384640371925360949017878981798097623318463147047360714232612843551264035136026150520138468043582949399978296635586771199198857880656290377894929394325545993242351282958234206275894901311848060007923308471519010030193951828716887525145799748173032191260337522024464442733095394176685571102594694087733750174471293062170677085255981319250573341178415172235196677083942652840507368231406524516725452624997023259920017591239169013136374598464107659707457755567828564888073344088772462517691012002096584511013284600859858718594380303996504628183317476590985647604868477641189006669631238755512730622510847780434621411239704059544034230264166876717853844494515087831129523015346906369952652307733609638165199822439177352532990448994047303448219242505092444277919941681224692714760816592565152784128464680837363410899706108926715280345731851072921777278511955004069861524830553046448627422250670227029099794252608345083926842353352827801872231025363244009643119662845487655808438370795849977466403972428173899085226863236277242095397579360492874468341312280231258225987568780022919241612960042480220854494782826601419946445892087358659177414610176695676358972437519442027730730748026613953679604877181710388157423216569407128738496747813475188559185147633243197222747640173091782551995854645027664695001376152468995548811131941399837944455172621014255963976143576888491677353548177382055791495406357506238880155206718894940236284583733723492025001575028491771141556783119393934721601060030394781569057657407606671182166382511836759908866634676449878654036650216486137730613648177725395035690395174070919062949571132919724563427070393956616680158469520631016276169555157492679314075820998411332982369606261736909296062121598533407150682683797078701253301062607794684440687503597943977723657278978210859660993736876632851795514774502273394409784484809787181516313311933935407373778029061130043505327259638811781825316969236570890139111456503369369695896274158689209068914421764821753182991561525715906558216093170311510497255691219445459808600094241018473427367284913129331822201970411211591317148992767532609883956653826961564796671224935625027371014072687465020105886335621961290048767036624629602029341547198432109750699420833341278950639610343202813710502189263676102537854388289596295622190423307471041179474064263290964415755805231707429160187961688484194219591663476586481088834243534471707392133302635652725172321315480177021129350462649991097184575540345430127189730814685225386884786167165063363413889738329861744271981936664340415982519447954877485620218581633537227070066417699284182148984195096939741909172543003213372099350737123176684613354802817561122441960140755043506632672164050923029029699433951953179403235407848457447431812825845847290426692136108149471964288605282961631732321974991021742774068932079332015973456353723258341195556442710019212908555174534102384613596986535373635873787636563472541123963119208521764052905298376298651708741523535941020990795638869425463689625558241811081768383456053918846101417598163169437178322283403967543921521198578805994229702868976499482451242211455243484686719490324574405245000285698026256061318382683761619469024475880595522943250220842614431818799468606437528782380191197518290617193741285513760374134709184822237268329673638490680295819032775287090172926695297658790023808276079976124695739118626359854994453582288692917141463389431449743897946055422991131171991319775952526520184259022855095056772703465838570009985124707469978928207306957857993016717663357752881957100900503742294616781190049256870857614685462839385082074967855779256231233079005474551878771532715677812570148179557213647566371813882445475516437709507348062927152281605807911722978169990459993179240456386081047424247039051734497802467948922467777336472812444189308604982361329940300550142653527177269762248769078970290972128519352169348928173377893068314874865506687152048631166059767576444195591420802571358340403037956993434777403378807781540369212844890232135905730780330882719964296781237924065073048381617160670825062830927740383553555506625749394182404793353779131302851301820850061125533928489389639467571576860226677914928289701685829653833393366195171798185016901272979694443716886651965248134096639511411019511780678214244411278734022892103615018064432835635837547709278296384427213857577619461589007209059360660368027653706965754766167494702027533209055455410593659955607439052388677787320724423428123756757256247903988349145396176591314813888799034479475576706060959693986334348050324052337672068082552887725993839607838714195932705744946839433801601808810975401556961140368863815316669228888579584889318174772255824185323588273034345265322833426420234062062387627387883897781100000772799143358430829611991686198002197319063489459744925688792762661620520152741259256424042417593606160477687003365425692726297812341229387884156639251910329215403894783180151930722578170078400103899558055962654234178991160705841775304941005800206658368375963402561007288136969382025801483135069660923153329849192144012625143127019448203172727710260576892147693867641299304440649153330948570423699776815338870303930943358385742281335610535917268826052529710871716086039809589275881321590854418687307118365604283578302511322484474328492498202180128990419558882292504569805133010964710429394610607957381037652825248205952497341546941344054530027942289287216474145723009818095493144770519633987979287087690821297124065741844263734687152216795594106604618272882039828824913703387346446276622078908118352214398027111009086329747441235442667184522759149736828984531880522566465185362393127390531830579392665977731132268391514175322146027937232995070426022718276510335324687713238939386253271739660076735344390692038040990430105773062204068888761512571930820981181849680697385116759093242849166886334581996423016830658088346851300561087887794111104111439290591356418254411422787961116581161432754546602889511572914223184151693899798403960448385835262158731001652149765359849027147917967551447687531109970826371102598561198965046856146786998746363283284357519398400362229083695035034941832416355666495225169964302459709751105308545724357956641822971582329649184773277235847950866145003560802853470940869083909351767755495549228086054386183630744254577177128238395143668616693997411732947515837743561056667211438203387378771114170713598649651376693794737800838094874564000389078335243071926656218559793508900982058959519962258821853163583857933334334246190074479096571477078361695048016631902508746314763960818873279717039095392555856573781761462948528004441685093586084601482838591333869439067739414388173214262917872705079493426721037559229760565817925779205214078219251698583246566250369069043065651286242457470850430489083464508527376005860031875646263793627608525912999659397914262944298329561647311169292729845571436525453986958415549356097369609909473945932306263415382861120043656843618293488584725323264551906516318648516959241723717995865465237038342592868663906359614273520074827676059621290049344756009864182694142733504351825257391732028375933256302591667852134814301032712634436006529783105794301534101704745148648116858051800156954816492146171335201493017289143075969850396504702850787302338264083663410666881860182948524439205635609334073530138558614963458127835352956372011058340646370629985086724981976160903862521144725115608687532819659032001046624370435858299602447460832761506778148344151878938360404957182100192534483023242005273575246207699370567815952682160483245510323459442556045549829771861156814872944121168998710325376204507076219522788709779005664564686525426261241330050764987311964044036702441641040371157017153664931282358341011119983186851923637839561314116142861567737618775054176851981250572355536920696779451104757167851952949512103138858725020273416228768963188668185893723903661312776934590856119513357212087695666150861848344434273988986452220137798167855647842867486251677303363182093524081688120833555797536548764642660559607737194852074975954666613649953781922440267397804299274749311341238135122515595877254472040382685700037685366407447871074270371428405165105032903047612883770633069250925150214711383960057508705610549037219850498930015077154971977479058245155988686298378490414161560100539294752649434648799877347387777138141974853659027697900918415414951251208350913021799229654838462731105075766636940828212120507141976417246680511989322724454337541505431709957378452644553126971830302755991251381379175090581525532560123077680260393718787152906701394745744974242449295422007898551329721703636779100612596778293667996890670355179009841777247954015510014189691275611142429269148792486603382372696440429288749946060065620009934913784746255881798536524141757230338846725791441695926395879535898398797452104741355386617342781347514924185395509875292774167905522186784344337876919517456560213207189222615935965364998473234773724186299868197396005512604763373048199351918611236975460945222612760719195314316480564026488070757715027690855801210961000027600846685406455522768033431750448571542320958550545524084482505898612360578133919462158402435002016681171572166821602812872879124344991500367226644361897400025063667246410719879433056536689887458690464801280312508196524918444304184667197443937925860025433088363487726906841687566075916250521646395741859787175342412931359540365958503220528409373334767382107770987926899529563590974172773637369777982986268121891552607214264224696245447603697039738886744140944169183643731424290782596932850081659593649199470289732733738225089240451152892844515854355432267181200314214480781886357180026830256644723942949400085578031159533146117611573222384341727061073065969610664414736001401344259521957586592215203965272554662554193681406008851454704041030241511036730597378627867355624130474552657531758047553086492642140841487606762971180263719598494938745690956600607565048023360519060648602447253100245816030504373561028734117244695014527467358974315674421877757987220494002173024485705438193169911594323994477284070670011246388615056153220546111205118406908109764056593502637308463281983651265679068358050391729772084818160411034014631595918687598288156137947918154895067517447760137694183928257476326815078630381244419694676707302472553141463573696255633536638261804742213299167015094611789605755371539856557481054927285662996714900086650615738303688205076532090839235388360140692201977857575850547777947457428315945746589880238004028306035214371021611915376784875438674723141600546989450286480093854055831857698043246982511774502722704592523973976631740336383542745446874596327323153256845800714738052432221762798789449728117137046026973186065644891250290540303311694666684386693330617949990408230934622584332337137388892185045018461326079664856401602760976606400929869525923557856655081159424367988198721760136972801532561421362906879824561117009199617240606404504725033394537400648280218389507976428571202953084381329455573059118653478054008908999073110644967887625601402467364017210759180968862787364919386459557966940387059567874877553443501929802033393546024663751299158394814951825479120881364413752912686715767655155942209097526668016787580238675361130187251753535640194677109583740064023950681866497555736483744547118810559222271342551099701022712304928812413896957335638251456751301767854263703620347495414056176172904188530257814951669261998994910816779815613705247980265607494049441988624749107069723072714460843676678537750574522443424958768787362105505666730981446122224716751686775079703190947127597975904384015075422115988547554536375645497958271285897275510662649861633389986685136752752299210017136018109903448033338932176365930557686472173501733734477258293785918627406152801427326357689335579081708534285917098957905322936195856381351370684864258479103291827811071558569822715901150097917240633462924228005390467460638789379744158448054300280561281283371600443145013273094808285094785362648534177748976769613994548070892642702694614560081467146286508839180944333541899663491475745971130014682914759945852419862907096686224985073857557997784337588278673811365347804659859128158091278881166746687826123245526340058737278357858634824822194835877052625356755993206647548137322892823877465563423384650309731229454524802023074885961488266219188592165629888412353346092552035943268959709555695096084446204104775095772882813201602500845405736564022246821229877969150920033147845771414726024357213143671154449026397715492506350498423765229828454685550772847527536464578607316205015872954446892381348699553587427965450118857443757361610690053652068499230001511909587382031339319459170249723000794560227133260150642976124826316213203109645530184489049305656135744598372806667696115700751722405856481927440641437358801483654106909699347632946092587076990711973482041211424228458652188452691843733438147339059941972267957611569595641461348801620756272181777846882208204033881200120823210446669855105594682406224561792022052556321794417718144006652019461558141704998943105507417422693390078481706621190492638516246745860511689856649598077302145298225427283999663596243935879562610062262912293193883274981431691196533366992320268605105940544158309157998518296483087835036330990671797217614145737725064665903502259000891495194756062907273992360292796442247721804102554238490156780468101634793636709362662986994328084997150776818707047091753146804209843685530443219103054253322983106308694458020264362131395423901648291447803806603206675451256142537210395334379943449006604919930808956783590128819501387952219960412140652641707888472295816454183877582273822391198387547457484002227943215015452785038339358588863708495175698701202366620537533991523564914127083207237226129105561308197776806097938308679305290997234451323913567807058662430975717870992381969676290639769490501520289085028876769203733277785805298358035775633967634455054152102397472421113780188568401058651221280453283460987251898854580564985817190939715768750374297148312600307290375374417346517194289252808696002748227522068497073976426303746434913510940766416202489811075018235273803300671307280581565622826136588769964701043852005247211579404430597608073800456640809090384405991528091613436154872008217031691131894342886611833538020709535397989176740710679704272156191654215188867108400843329268898857052101926506433189637185849994942775608584402490776548232231840011427720287548642730601912882736087469314634716985254321780155560179970378535498857063589712526899789732696477320205144990012267386144926707649002590477738099032451842205142629965467845941126407973586818457195869662385353899537128178525346672753929452477277143394836993236111363394824950623140860892527635439649304719247215154118570114798270217508104721112255059796875910428406149183264465151189993032078120274058595425729225261356696597300832509908884375915453461561921945871200599967855894058840137453438336380377957576863138227991863843348170131189581967160886381863474032984207996162726457001142926416892144160086734869694723159944329108372475985578077937300728022193293340294976237667894423553055355428741208440272976122391021540442570288192647756770442122890578495670418161450048908010050967462061382393509093335688416504020139255387540432662536766938546922292005879172105372818003351327153199902451935587118372791283071612187758799632625454924141326766925169374889335047269380381763818869398655392815614020157221453185207778040555167393158471399249542078356637475963163599264489470062075831133189033098506704403036367000942252292786424235324162205496085245051380287846473665617878339285664930287935882321778563671873779474356544145264136609916822186830800585085828119392406734881804176567639102833634367089877713273465499564273380391266168478217029932912039873130016171325160792955203309854078803384515797241087936548711525515987075835151455436180823030469892950324733349860843415927697545621737211230217118074823063619961694894062004145319944366098620679677737767304010162446970995621617892294703707594722017741304845973679791580557172187908917663887121445116221665227129516006974803896856486600741186245036062802480242542702106262920720499455285018616461990945313274113673205387398938647055683667147083360837364349120951480329256791955920392516473104795641573410097024791584548653303962539560406568896802636569902503272394346159453291375431385642265966179884674399547972149522920827084104516617780255643337957817704042731336175315479889364257683525186554792655956013261487339437394221913237488610639344478869624333353442194068660055453573654354074853153436357254908123620267683103880186268017393696010589688660692435316839616806431355318535547445996818827378244093275803207432574017224585066960332044158278555042521036975868985793801962447091799416974358615387423327069605053468676723781328098338807334585488587715519114078996080012352740986779121462462975664110867074917797875379234891454836876597426332078505551077726126051189832790056620518822807707510464114379683681091752362372191882726254186705817931628924871731757210811799710390695418210558523631991229564450947803990596605438334230589049765835553700417648948634800710785157105531295806930376983337309206264141607579675616450856273871025018437879636832808580757687223194446016569732988779298878267623231146178635999693415088053133934545541727006089562491525523516146384943894717312672809020486300159129439748444372353033710710664166811906923115093239757987049317099672997826738525045450639383504483303918497476928147638875918689783595544999265206881171833573519838356030357545639822386062717963898740629623367400242192585262303514261888865955501672009440061408373649695566184920213226115348051118777434218424091114570258286807712958838880545350841040628195857653372069758356333267514551518469364584175542653877084503218429708021926061131895204932679345894519792576545325476026439357599978052326554283866719847787617222703663757795158425354518022378858497257010329832379399272888357532521810224313456185911782139604913826665797589166191258005001438315118206992516482945713405678423420975949804375738674023273225356286368868314322265155355650558653976956927007471607121867774589953225807455744174015108987101299691427654105034962667339352519386025859472282650719917410049838215092886100781321293007060810447471890303961897820452915697327580042877063632753546809091501560829912670307767272625250594856626208346094863611897768302213379145050884256644302175386428062934656971072677129087343278506069880699455785083190533166351016342585495841683226952501096796038808590871945804497304401829108605127888846860491055969480751872204856394370066318183788847674194504242553821482057481923576647417047337394029559597998936492508720547449318291726249141247663856160053094584966244203736587993327763850912335517393964946135036699481580239873462953364883046324263989635093991820091754042924380183805362299404228621263315737485039479660216820752783993971673735572980047879062221715770769951399456027244176111109386346022167172462928324145064315847072805589598366890034538858820779671359944414477706280600088625380128696997648283050128790623618985826818680167990060611489084498169607295541778135517048492919447535327196864663206028563207911673220461570769731635918587246301997054252154150529756916632486516043765159665828438580385840099151417855872935846824061880229142824074439289373403804260059700410805073611759973569524677101475269000313394258306876326405444809852584486788236910559474049585151173419738465687053182733821412729757648507077165188853929379852112989979877700751842207252914510340982901160933790211666815688245093841675724875637838043801618769522878522633028227676261453092086599469107089466551318986678375807105968414237554389729682601894131765704037958705897676953373621719130254211847831970808353853596575481398781428731891314581992991726925908221797303780167396273270863079992676467367514009785103105163367294717789776978602425841699691106352361710647826827388533793284912821015233034401522087790531873843855459290843587786304470446867306482492284151508748743078324076798949498299868621783716596041182885242036575456966657407987370044669635591351135682206423527578325727204383237073599467429416015923820448039176949240753722053976188207816762628724304888296295979530085699350639072717716773995046394166401710946022658310784140457894851414090811863627645019941638294452478071311884820787796267908795204842524585854492882719449825487172408851423231635779463151675123367173651989055432261372711839158034382177135333521862492807937588056964096601465945299978434813341415257594643358298583418597552051323015446342571293556156137660290640698475961419320673602397252681980496857250144988218835092486706694849321261570533546526740419954690459656111296523542235020034452255968000663021944208636932635665988701222039474578703837097255110388444288591920060667926854624172023448881895729097580926080384585734210624669637608218417623637103516705745324149796460361344768702575907777896797369933338442124075796970361010155104673696793216678598527980432898828996447040614501741470402809423237269341250243824677746208679216904735793207486959882954026462330347448217481469645087634293585361138969225033733408970283009834699972989284339887845905754169453307684354947136197628556014414071618197998921917405006876585420272217374845779834322192887372065846729882850064977711095584994687735834970243338194340109610715067356069830270802997527208623499987480088513661472184296580053687967064677271327843784878801986083837915965974317443665541302639877160783435356578213810625278612249657414642485169375118454995094058646592277279806726792068363311763944242591961654779581195460489145741733688466948545723618025460791972099329224917511036542510048716488247795715937564382585996856367359195770182367724940711400594160433615748135560827000062941641135687982783363336724344363517961732383993666542848181474557044548474966764416320063983201579525427047792003096350931692987874036330748885897432508498145396633823477113004015443082371063246588187498693524566681134149620036914418723015694011302225545389213690129236411462468700391063382403402225548283039011718647527396772017815022536884241445429198721841284380592740023180891647396476852105526336868922861065090699839632243430221548551435841467020007000780313681705736652143160671092156504210906862988557860617295847248123299817445009805305262688846401265345419664284847236716208344006413692979763144852242960725768574671251991102288685552619004809211288315235206154033508409852516015052290916366421715627490836867833592724916016269125619167211698483926165255399376938873016046998150733642468046718749387132150993119989511550229000828603922877472497936623921620655155530076167435777777652056802989283840759332451864037873300505644413492182544360568601252831154505830592923098584176977394169710616479458223442150617760547449633881954204033049330979650524065904377620590078741569651441834387880138969706962411680861582466719164168204752875002429111466896774641601887516540756972233850199279842635717621254095495826020736737584183491818894445676407497206123470904190453209431415682286373727738466379973769629177593459271054717547497819146545109106835114814303816478850889763775232689152230815535400756761216999268631042563489597946247256775150638863205906955579666744132296495694747180674861457366603443332864387917356682469133586038550431605143215831857849277181342390269907060684893589485557692383217255831066601067563274229729837969178352287453398010845511824509612862363199506068916104476115738139817311627404964140084431289723889791041983153834356523590343285385743036655601610156009396530753386263653378703363894148967849164212150451374203990960173592655167554682407062579515536982326095872457984670123487965367800973719785034956655685289056883025617453010686026187404768019347793765195643050564978086542457885991655187093564893208146883517161138931877917026300986604616696337452648615146383933500073837663548460794565766795027632445592088678620684496456333294294790787411199275833663234617693833983536000656223399223846572572072311635280353782861621119626383136737368440788072015285257307817536179507851434654352668515125560743631598852264272804763991289240066281442194907722571475045760012072396552022092187648506802284770191871828563920432493536707554115786699336043718964624717141193465113806306342148032217289100475062029437527163723918432844805221931219725830732965593317871103678094526521232432403710099599928267329153048037052999280840149390930385572557400659639032119972522665409602839047541622806286235444227432782951848204137207844497780938790755054662493160368194293262085262145075997845490603869710812486842098890028888899619062402898373391246364370319141696627470642433953611776993505912292290883361487580408866038079487961280904115638479448637105763726521799185968705981740950478745750909992871519359387289886272949246242381859656162980591922564658873310222345824890675805826231405203912486905432429726645297967358875705433046092675974228763511357379116124269256236380118306690552200331636617001297051774875231714528107708470634927825306516080398323548997942152857416682723147547849804469088234657778515976577657759712424270580119429346433842399850654613285102101916183250076570176915998386585219954747822837451586452940621601719074594542126264001372709824224713320244033919130056973588072639841720642207776685119880421503179455631501432768783879804415086971533909566361326682522951860239230024209379472929963957510195638943773601126287478058741297691679504045947718536345984518466273456710809978746332975310653015066660264323297251872847071049748856677249036966059974096246869102687375995934773731130305413886191406532624649418429341427101637794330048212660679884623759425168632411686007061835201779400090118458241705002896061900474181311982934519815019241854396405597161548224363059026969328742937080517332874726518216588959935349917226766282097640481450024057790566542734620690200988538421064848432471799552353038292546953398399229661432811119237650990652484916783650012960704870600527714011036781247118018695224405336128100734813263973368502409718814624645335185327079308189653328696512842071546863859262955914177330753303622422503851942667079330665878872902553718200218389567494490888273772822488425474069342029389543438606593219034324643925691253915257390893050434770309270874443033512701432043010312109426821358003272619708392060090478481928718657311662839757896911202106456018135341553059425834437465864316977030760675746115496871233158114291367794791341960643814568819756335711882778978811680100632883124318226969222529258611960519799249230614350638822200780808068636984413224209402881053872237640732775899823210361717732841123809784300994957421590307566940399686196066632908288241476022579734251740612000139885525402527960555901017258314241658929532045674623221719850534282684799661044787380004265476041126363303438084082700401433431561189245088789542341246570967417322233859020960237182889690151394687347363737357823777760600229745192613954302964980038208661568207960198614887746931261999908227627052157726421917096627909559257140892075739561633847516055875825705253914590863032343498151819848540483593735013995562552370233518184925750301330426658427627205383252910042829995702931078573538284284538083272530456693084061724895726217986462404313329022927462006045438787043627659229967170566593064969752477762671931144162325388360102857169552265436192822982569826058257354511518366607089451975450415159739303144825654819011933467791105683387763170779462484534871919504003007583056282005478669385223108965444337569360961712792726595815861097780427914804122574764127505601904522279372667795829078056039884856877873132766601381405329894549527962132410585658360073878862219422945711555837433069492575272591809278622906716688838647665265954122026266143917815693039152804103727241777094766438914064833624501142427449312001347717051296512404257159159736714111079376499450750444794932914776220979868760964965600303756165272222438615694089583884480901400023549321298455289280318255214460398326627778710579240201104049911141363503694477070723049703226353051867048653234083049392745428944980179897892670829783742567403860540030750843519744279733548664748475593167818675183079322378417945974269522709942473803942983290671474857076284246127426864754378512109183660167734596554811252597435830286911624427836659141822823544493241153080890741973794902700259235794734232612529588882933636973219343368655259325940902640824840808163486773768286891660423267708342239085323476112865307353721167799859935671222783734930220352610306914176428996070329011152096685852662127237026928238335347639420599589556422316225901782781662265743646962458474486290523986445111041594971857987266070852228579488135404528570761649306627919344013216920669740664385855756964555619364483810170250201590284806010893751612194244186655200916019357193972426702316987325703746320435924008554459806564932285188465302755314023675105944274768813384993598533323695166369528901635542413175556817310914228781353972854532974817191968711484409239212228173798079153889779862234172606893235281344914247581672016576846454007584860624944615909146855173202361810180559373046816392414706859516311765258316754551405899412858635996036619155971782408024163001077925506287800483422947940306388938285222587853990810292341351684719136127963754506429366250177461656215340929203866277761888918845717827878442067576644688727685219101869935088068183504574637918995653525276920596338871546313085405912372532420799091835652389704935398449200710904466790995382172537883038851724974448593953205476201405954365648445078316757022488341279471578290418158129357940090433036339940809719588493876266854377857036030527069760088957146988908307734344974254414531499060119126313692357943594458227822042782702448384667680039246957553881498437939295043040544690775392394034506158481559959746858985575038585263100624694130321750058690716456784362663122290660361031341761783739249625028176518823076091384572831703719794701092520272339190099827637258233937969717209976709606390080199991365793822354067713393427608967435323541555097599142985979954497377470570935170871668403680860948227160389305447711917889409767503607434411558373390976838399005072729050477260488315533978528326504505043528125344389047055245585526906052030576129902576776743736860342579089428220865673639515932948390806637849466781702378966300622568693509006344352507718910977525540522837423421811399296911074794532726936298555078977234682956821405618863642777009696134981722188445967386561944469869195298865858051886112296849484726269152356734449178728847456934817423725626395183031671075236987708518432944746287428906795438454767057518639459673686684377849111876351122313035563413663878093155856028318705113803406229936890878146613172935981284415809618950303256730468904721101160709137666168154807703487853027041938985696028854831531941523346259331943904678619457953290953970951961496328974870471154368582721555654786330196116064088083566147720309697333164597401208266743405151382870292896846937463123336313017578580744133704520351114853034498693582251897708677216336734572251999086663412668242407571038277764389902621255611505267770480261254006937968213519617824371471395745392718984951357097501945872175765085948159598482098715291747082497959478818083775674005484964840815326521949500200168258130566489363525009290511706955192986556620309155801904344367747173360020069194898495031358850583766433156956560791974579269449032750002568929757163861438794087484629050190217240446318149651166448706978734975425660694573220438208668507161011232070819670901102299203103289714303228927456476096074431471611988490394345180719905312359908696359944557592501898405522622263820420864297530248839742800742387897337058344372419844385171222154793059122611104815933802449115071262617855797584904445597865446135790459392875184332204516335768893363838753974680824255759430303684702997949420328305798713236727005642927099510822221812846042838968190955242625107511851564510878950021201560870719801620776420565780030299833916039144545073742624980152945529291032725975142003603836534325112354957062326769329324765373659308327458077978727631019017330674346127236677819280766799081832452648616195339178246697172885378396887737541698215919245060228749833479741209539906824338109708421362911280964820087844070574573484989483585682448659550191577734941691770231960240019924342548334608250834040813080813691047932902843243442883180686839580927842670436151865600485165381760040138195468391045449279766820476775250683406166468134938336125989668828831851989320195807856807307039836874232762150753235754031036464095885808219014863467184309842892038047956669308645349197517733855705746573967258199312563651420669980273678110354457800240119631447757666618897938013015552801212811050000151214877713503896642272504418538698136412791479764664329557949495447777917694708935976045363255712562828879057839895759668986207013080771779589550209387728789245783501017648883936746991569881195992398316193758604691748018093094143707788117640300919842871693436433172198319363999626665867928225771481521720937817107118981808302947459763172008144194656343876264420885747408763130976333254054854403389525912923126697083787150799743555758136406658836096935089158106275046854242453503327612459760783756279971427470016347513220041104148201643274748149300129207461634588315359465334920218148399952091662787643286072498757785618586433482960712229822849448659991421534450421283736554955914890519376619599419931933497582850324709147984618093095393122390144044791418517890041728234259423784510167046125304515783079476513601832237187205347773575197725413312670871875110712910131194113268556518887824435679978063926024721817478348493676073904496695466067487660395169827578790084034560903146108614762746160549528465210991882248275180930843535355448778460183048583214947551267608997148001061864969458786745444215073381359373598194126484572707302037422098929030632549404795428603095941268482856017173642310152418427397385708949404916029138820629665358238558090820970306737072901398169811271782588200977703865713909371855076930864520883571372230420819373422274107871972271136625536979636852020175438323112669620406547703004857467879452610574221651381339821794939192626987383441712713288681973694310216597063667503007197878856316695605021877163759323312610225466931585251364604676427045044165997930322661163287591594187750389406537399431543405289611978252370500892812448354529659222494512145926451318784426885385765992152370535931200541669311379756714224723178524701328982888971139892916724936454439583421434061439995064248195019071557092654906204968288005784611111311723387845887424318378878189736741983376311580068247082422709678259587475342136746243382585285073782612146699536726839080956788034315404612941463484616215456622284764176489007096021183923827870377709442033200819309481028621939282338350160247171862927821751136550899522562905367424396361330659102588085831090911966153645505791226709552719441246755723009783094041239567518148910768217338231318692991966577895349095238347334785841108943704287317713596576821457598378220243499175270273457020229580689731482153123527050805951520043711326571138994738439276938335982862971332213514466531603956120278200906099860350043190294264025761871330809434975284496874876409931368669736275422580548446715299212062594471303547581872115252626913349576652966184592658279309068080563708775709511024606110441695543944365454412405605841013100557439153395650488385806437781394923413788320281526561149958898850038565223117431484727934069843634749075163799943010232579204559349929558321760732767635079909687389082169607102659678044444730173555878720635232675824336424363183318752808155016192840301895045404154940560049059431328800512200632700138940199324713409571084842697681347496091387281840838318185120305910209248269692469064308056950727452701387189722817848306726533939412624676099429647792516279260335071114668899956622924408091759067120167064053348519327173682046112265531555197731503118564274121167410965423416897709248109596758545738805111580493111487406765106899996484439386437694756392487686919892004426833557097608759351290332089939873258129466523023453556616543717267804678393641446627526425460445752229835107944234950629771298616778243804567462079476197123810206054907233762749491909050362378089762012273616284798766093723514974714714464647737464921823140591153177409296247153749528463092546387466322367091671219167831407606866278034880933282217529640368171932028365463434306561168214913294734084378621513920663285135587550016927973303412268646902461869319444792037039049204339989687434585689332098474857409466409543815347662519942349906675803406210505740394093156883653482249685522047610197067516917841390251787870398930969800642665135173863809672084300161900488290791367028865409670762045847914269809174397449874494526185368626929262182113076191314410302145678638367665682325397517044274971918915072971395155221949608484312033515474276410364435635030811379894823419890772892026646368613790800739389679740587808188117923692879226516264809781721321634647281003256053274323591484633533473277060329635178957164380814690861523017209116048383947995291412091149845564525573799037750504616134110528781781715852912572135645357759717672304330276350088943404926543371897721228253738679291299329569593136884994745977212212809772000881946702917625191083862523598999418513687036561651373779830148419697801444714930784439403613530946677649237777747201019409228005076241154314106154234462377787404710931363932001110317788954552286672571347115553199168500017913282355604649774061951012873134143281900593853852927367699188450866589232108926122147148335420171964876198808149651414835042382856508759363835393043880633444118160206515236538811878861094524251892807982927221604338238373195828715883269753225892113999701092159486213800286133031215627745138059874446740010893051808409287211018931488029541080347964968300145763644414034611085290495348159979662592273840244976535105008169373425958767705593782569947560306330390625261617633953616807318389099860203479850144252758595406893731483926058870299414237720508666805510628228882791280763532835163247164419966524493072647738461471347761687635638666488963818658196383912171853889487636501974289457131342255425817494788375005524114282974120524502916096466240790162255865697682819818654994009219819298281427221768109152474694193706176626249144576847841093551011143474101912408468789551774043239756549256228455413150558601135511675535864703881543073281020577030164180676761166235848044786365933848265860908988665266988351292814101437027626096382812002383672859635277380664576156042550240113750970283109604626259278129283716126472630062377124326117334039882934954994839800827467911997457802081010347366278593990691746099890070601272961058677157206795431163142574192770393440633616621209169652411670533039869853955900203368404781789492826379039509739694894219713648418973446340390501399686556526063895488784214249739436626497095143879497557434897636820293676958335670822248210951471120578106618733198272703813491143484896090368768952690855982204746837686972734968751241202497152646055982146261601816936779286673264203438493598002855517998554734350378589927570413950884754676758743374216637516794969553851655485796504935509719998967090959757947487725169514557110840819701676801107395311720412002923641295467893589861450740172028341002446653115022046805513015247360791144844652038773098752822659164209923491439338461113982067955958873396704030367549839971943930492146493937731821613626911641983852325016706424226499385538284064759888483205973460215092921562978843002271917910755096704618781348281844725340359253799796383075962349786384188562991435747637348004563492387373737469014924277656811469433629362800470593069390849004400199036931901414970459741724337839736791079650809431231500573309175819809702114725361024396687543713685489599483280689341367986674666373914375469802970732022058580051465851782364550063482399853176782332305143001290518036049530736417880661016249872501602986337495003749579579918187237893788607969575515688639629521472642095070033685503542540096121629995934305097318632679189808858358769006022850058170079708787060989068341133391978892149145089936100398661202921144655372305492296484197371659274011450273879058128851701978824308819464265596678580589747534456192642193262797936678660540273165250989589955442760303829164837790747501394483746964790546524875312899162962467718156350538774878654236659356297679946593197120358379458531634122133638242780969892622615673882343046547045915958104139777924017793624932490961852928767524262447768673787630494988425770355166248584598482619476199144875512546475047215277988302925112311245290715211479933935251221078958793597113092383663896870699693908122314588705452371125841560684974590268917965108724130629725100812001748301557435068091833480715130237341229111702096851301894032464278420303757395144218027958070376501372034812757168960172428533470515926502036554831591146402358710578505141126716240282595533155654546950404949615084319388576760784060730006252656619632585647554178714538292918526328167858300585728837295730246435394779144690005096534607397546919630450065787432318745577283156915113806681510539496850296949703687096811928261338036498715855371646099660725266966641099472147943960702887840622304735921519668190165665311507299886271952034541525499275376051640324649847980620467518106743046955484809251875335296617853466818814808560000352547835470148317446889951612976176121012427827865370276964794117855499656835783714863227503749916003081952249700282309102543353910709625059138943479171359006145850697100240215515689988789182767170309489197908701883965825575523189972241751552060955099997619022714322437554671375280909989379385511930678189667605962866758685693714215484801953104943917278046046204441579554724437310463907368431169354206222137776023592956157263837339613134899485791763594603069835698826488673104325032250637908570339252914130015718639062445866917278784959064844238451520476554062100321399474276075142789402782647152191240748429681621085507627824850930818691148532127278929630625609318271786878791942097336023478130977940542542397474846474034027561193200846919087773558851650253797447211392764068044640553096386441498287079254354709607771868896469985727359198965083158221405847775430249520558774966046616806765028647119753850614481193073178676198052058467806229145648301836018067729078352332365810144588734091055729825565234120231028913725300752821264969432659916294479342103675704673296918499173611981254135899853070402480329467639874530005536854061527158916164201937316884031623696621579999915574930393774483663000635651479728644959422867451740837532392656400479137221947450352204706081439232679492906613714529060030467454023971004386585900263330719000469899471092259162531638548352419750057857915851579780732175809705092228654819425558628795728594880413001962214429175624538109508197237679121665179297187030552043293844966589687653491495084457993221906836176121705457347977080115627458298764302928712880705287482164792521366270392800662372392825249682132887762964198942434416614255868908005235313615566193788573879282043320016990914895445859611896267581650338172614593335005506034351821350088651197297762939249399269888123452697210886119520232233426298333143914570525312216132329951364545949894273776980351992655585928039775805765462213396469499181798425440414742735689097146179806968731568148820409015304091210326297644070641087856054907981408854250256162856090746731344211072634259234576532004084271962658667668304341988139935956671096068629357311847245109379031154457519666973462198293671104529490583689548970120956307078052899376943848886727211778995533173531569867073185546688836141656998004692545151446966273985855424079546144925552196669641565186112271312096495476126558177141195728015517803179862058690750449079921248506580644453389514469141264310769932533966664675283005429976745180235952079411183745719674979411719007081773677450434919702192334916615421049855597058976909372209281261859881254281816961314747445242462789104030624182976183330985583706844704467006473662595183924419897425828235076752652251072726029512647190378511427780504711509025737624927471738292988974028617281657713197544217185918114853738791182370334482556644823387083146327116405385724938407391375496465224018215662939633350169977438255975233036748458306363122392633934211506622970414478313922762518040957172243826003779936299958749614873707615084018875039589774789077130494769053422113087206258560300222278374991734049730236699648971537438829039536884400990736494460566139078795765278179457136180163673615357177105878787659448057731186603997785588898915699690849154305907382514148944445633167099660604754563817744760939314873726575260085117665660782074977598268734279402046209915828089532035284092192076136416678368595932012712586557589753016614681800509044252306614103651313834743990914792969947219104193517872354864349345868216925623488899370906010912636533535140803183632191738772204083183966567085619711574423028267604494655287429287927118213641769067123680624638517340562858189755907599491233112465151812986549621766809572214643099178622528203574872804676745346345249328284418896094976757376967159010228417093155911153066017313489453964202644491458200205641951348941134517507119399745780512305067488442094011160046450411977036119625302845291299152195155648257101565054771707367939856570365175477164160784002902727676938242849124424997929343748717040842684143380131395740502361127132701530041396947940806518264827032714147258225115558410625363374436662064619319594431032375254139224031428928126387244606464899772311489515472039074374018902571198871446899283577720023956174755632495640063674750419843715039991887937279223407152960446601866108693542770336058793544227900074660090130715849694399270095194460849753606793688069860060581436080560750819059855567767632349190399084354869559442194670025269399779698757193019885634682051005796871306824853417018598256734600454581534692864535970821547059045915832197805441847633799672476388085796861081887713416660954645379783022790881486494859852868048457469865290457325379176588143514755711952423033866311670986883791709388360196204047039058444673290310451865529310045566243937886122107152671080310660075853296800397229170465636281043703910502819560291472637330319270403816482461329792917058302369616993537203573670383644144976505061934372114586252205543400153722087371085172835660924100185217268948562638095509700949770359531564577556940665900829767439544966683532046151651849378946681955152836906743842825678100762413250682480643958735527683395781000638618211983203117240935052542337012602605239215474557465255410227851356322136282846350982840096443676422827200647844050013600579099109062898325232500249364010052570357207957966121779241288925302911200522460999249159274238832878210488015760094922448745023634367971480858695837579897552520445581823876210870581559906297016587156243148790159928655591383658259171585113755299145483896375367229023931511786011813006682289291577988004081338243366735795878814947158010179235221193138102060095617517499529514780111756865431560504105078847760120297177676413058087839464878884749652765486096026704107905980505271258424336867905474091435781737858071829781412954197232406280551592782964956623949566369294448508932031054594752066961867412948077016372168178413319541823449348814086221168471283829811196294522254250640994979716535409980761703837365436187791950141211385148024289533379018917500531760838245161682407085309088311846666015738654939099339647366187908391463114583109041959330155746186440498914360750617846744525133424663213205642800743252000498630518336276389356758594460947595145567093883534837972404857796010064681980019197015883296623014539656831134430761097255439609620894560009621531791253129960478205699408091386942119719866526349386476613003301506608751123338436284457251880016618978121125286046789343982486145434221904791903980692929723251575784113079718834623762244241375722288209268439966540091308543460790621989698810479993086041112612510622605612190349380986796486107527488223210659330680206575004858767675722253799620057919502660303880190847357105573110822123289936267089630049815285190375795923477853884611973407991282943648722082209808441854991236730763050532711816118745414163501891024828678943831999352176861753598977792022800530975809595194593235875176821435003034789744142065926858311346159002226071272502604063602695864355498584838212448867881524805740350692568463639468961859030160383188529305209062569202641241442165871440440741482508702968056885706157679713463624548063108661276546080982441239767493793272765346630771042730567786222290435522489444128632027508878615746886702120244966900923076139518678527176553162951160699834794264866587925281571881477603159701712521390385233159585129300623827207083047993324554436287978784467935654859383761646903274160961887157046743279203798881718434980358316215605256547383927883473191198917550211461203853795429510309870175215437281100492380619757476122213435512895627771472131973050039810207910667856326228509150055757849658590510852392858602915755613086085359972555302254889502226194712894506237540752389748855469700783098408965735274782221976445600889778251325378349056799612497867719613640606932455664214218587363918210944642153375041237168837328747810078483745156103291903311878982336463572126048652806262038971950796192166469730369544731107831226661048954790303405597307025835344126253886765400101892732643681564215781495923516423268096851083435352492280585995944992827692900893064570024946144028614314186536160744265388565790280530298623086544309742480270589162844230569756920712478405408425020234704030098197063208085542165694676285566340447761104814785445186175741278014961820019925550264133780458638780823445969619768252821299164556666280060431009154246337340320438586686621569037208078384679434507658201574654139318290472514502291150736166087797475673645139196996257613773818491069823480210561557254954586137223226235204441958812581469551205723522758946063323429069150336003833263789511381753530765684830549794965413430278530013380797718477295670693816727152205778909231742330637897037090106576416099684348689100822423507594919810503016515674550352119804320341542319826801289017748213743875186198826578243715879195070593260687234879487899380722716503797525959046162739580858273138351612863076525224250103363320026952907034661822105264032855210006320480160595661616529129863918534402861353899092941492307843125827429579577685887738778457060541051094943378151115640019983633204502721946150261339586441822732539248400843087750423411316367584861509833654051405125916623021901530379672934371835356426754335123122316900011291311504466281985597795971039476423983171310976069429424241375778137674907766317724522111719578628707103769215700227603041745979492721416098023263336471871652861587087654073132552131073328976514432503137577967509911239153995398224503861312297172491810450293755004125077266948660666343592980296473837444672163860172439294932008261257182205424498218692462606431463536236599990441041856806610633860959405304733074433430277583852600362960672690474234676520006692905755110705969232249290896598181066772518181772877132550512012367912719422312425655425154493739314178299453050803542624515155694543588566179922412147982598943093217319078603184037619692179864627314014309449542545855310932801359424388448078994548465981544196357818754597028670777535589527449879264338347757330811493666671322692005386854791590943381745729087584877944848461212782616062504779002352965910067838340987387174255858090395163678764326041762591435684407307515474510014350669798072794470693616572302517423877106151308793822961620791902852758708251107092181819843187395943090540244454852128667882174082384711819946656091462460006605483462694564946315002764393153692022879882624871410247707097586033137079335090450831872724912676256020918217027754262346902400063975651014046860993315928828562076934694333945300241933847690129605181321689218436632263402912874438338966889271386548057217492066987404974996206864377642906754643381498411288359227575410794854891884173797031738394473424213962511650608170720733829599222598753719260237961044147717933386395196716739707786960359760536503598599168114470797621520003567968271534765717349184378400346700764967658088231714798817124772073689319433896017750396449851480717804732331684836683660946495269984329354543709059529249795539377576486415183860393051102883448166882938464092614051109880305638163325107257142682981366889820863328880908897852908553623276581458918792917729862701107120205529137437403692292977348079863737611008802197718249917477024502320700750448929577003035727590728240698036884478745497426820027195529716792098240372500511860995764487096263125202359721065280722668887922432874928662366775888563518708430502702462630322769828161424582925627627130938204737955080483872335459375802361580307363350948411060845994582840951576592181749743470155649836569000326601305067070028656125889201870912620761247107560018029927970168913459538470747456899307456956095284191017284056074735715267173983405553042895684815680005869691140111264166734150875116014620021203329976492612771890018691837715949775783732218673300291942078436406232660763821903653238006623255150064508008872278707156745492515880589024734501275609671530615437730762649038215904873703014655397691087450837937480175091929565338798692955349634906895082575758366583143592899398754296578196030293000726228661036952175392927242031694338894719403969741862196313685205847880719949674570994982505978323926836546854540026540406144354451438783991742425207600482973508819236569632540753892668246481812038436705801345555838546202522805951530963535356466827410561241231279003731581499951336883102827722682360912422254285857764127584571870489389039605803218843531807173259662043100821956294189969893846911474696133407455218195070441045779562205708719606611417831401456793279596522217055786821722301946721324215921461979751213010439246977594092290648636271025593582272441264660924176450118756100140874238177852654394046230280228065543555932710566566259941081710016403467425080277826069268616210078763242251263125890237993222116790243108311359062847074106891939516472596758406984726525192714683354587320570574401177543375043955586863434696754598987100449989362534072273151955298495043373323797016257501378329079257202958103443959762175838467979285585519438589692483279615432335105298137525161781907436678099236551377151891355002301178084124939715683066494100982777471666750437326592706681046283267027544055082004683847282491792478661628198443221741814786530917516600225344571326685984246365277566722153683143221437893221285931573240338328028572059730024408193822911625876468089045242926138231264306512284109173599416562075479174580330000402266723247029760037200273397813545457028992881325685289406269191718518516443961694052888847601299873785417883570650596606997294789586960796256228347848490057906325268553094714365617721474069700869475603492846934430579788625949653501129410683237142507015186190305430235223127303872334905390140259464868658330155347662466492986755092199902306599213464855613786666512072561364839516862513245453326809494009233149858378260599447046727113429492295406494166314049655095982125235164661308076950841035667011220372719515908893881148192750429581129840693605991241202969314766996854043472660835477184014499771125874739293355032818914455723076864194633057382708409647007783831089703443438909963551381846835919045115106884437350599033517767598576899286793502294940236085822032139488977780015143816028652575606537236657206992412098275652563473623213331396339541699307568777576831805627980429245031673013495183232658709609121730665656429080334829009521303460519359748837143967623184680534059658366955586444036166445125227040193127722521135568642906552467281290374991013925104215326596844237617129692250249277149517027138956031235109028689752925466876247601112604199621068633258621255798632712641700046459046606169825635621042029789402620432996496533615331266897724866617406139536164685525243885265564124265081991804230738649800511254260786539777136404290504742130465560544568816207680469674691862080544013685906963054838191119717898203503864639957154580089117295067191839855209864293892538061334588756954327096909301574377990031008954027425666617479834506896956885255382175147153382091383629977807442678042737298591887735938413164580403203540303006879399488168991688400039707841966889472325044388567634086574908985001845420333098817673710831256233229996144592035950421679610850796016033590651277393912915214050378057568403550725567108381845113174842435535660168897160496070223830497998455756300251195713675526556751364411111522714805783242839889436468584631528772590832082732768335160473256744863921198456696709714759159195700702268218430537164689709979265645216665533382020954800540236961646181223240243260538292802587593477511104603362302947803388837819689047172437055945075547175962442897961194386491094446856201801601093773479285995285155802268016562224477902600780711078458470570816192622700197250296052749127554483599114575619527892067790975381973217142163427779003123807233746224408990338378718945886782511536871160492028172925406244995920896225039657229032701249845882489020784516573718277630377216500895627991028383091269679629318132313871656638340006416499862812267121388174759212417187743141690759412236832583441957300709657372341797666760836602389788933663938446862295211236746810244021314729694949244616702286791190375761637362624721683662506544142229624147638848921686426744378714128793643307345255898870551982252715468469527574147285346601334192377055777429212638410932672111974718299742508937693534466407251393920306274059671806857109882817122062180489500099398982584033427932447332731200239014349034045051476033282428629465447403489633144468840613342062422391953353646248856141111895042908570541591603731820101114803278101733126771729620170240595258830876436234842837427167933820308513383094375698208817801727895797461406000932105653724578411443549810515840164924749894076083546071835164029134999602714210375244741557969902933622484276744246147485312079434283749711370292110567534415203924924072637082856594990832970101139240462499051408728788010300599482209091459231167889983158724801497195408867069964233393714257286975649159980038507185562830670393706716506789426836669916177168916365302547440750996200919537962570643844864059425559101358195454720602063879487615119324605393989578244558556984788477887943479319032515379575854752841066403986594994143978925889824981557425934449854028308546420071664252474904785275912212046990982311006554258321745784150643719593924001525993345118913768842382524021154463814980295647928640236655077566041315419192924340490038112374341515959114352373353366386797888096216225634558506033342550540792537107838172848599520819331330015282495640858202765238524461666572951324862565585476258738809162590015126972893158731468228833036560140048540088854568816417973012969233387924687783247373618246850954668486734355947032032695786777444197422890246498241147898505050799787012694577326258160785907327436196516017948041350874166405654891113320814937833948119045889811957382731657191078458491013327686668328290316082923057729053403392699936727892689080225280801453845937286496318260082294963561979440431399326617850516070157629964582451431270866794168363731248323291948041823563753554222890084328422837153665474641142906662367265781421004812252783984623362131011598929944239766482314455494372376960907428920638123477026559739109168405959644930975444584678360853434822852970840059011800578913308893258250352219264963201149741214567918278797519440930762434203027578267246412637401519656135667646353561971464957581717006996205506538550805295529014521924158549214214100668380182713281904432530273832707017841644795473121061992158380864653420950176166015449969224535730107921057098795716784202760981922096446961521356422129483177768163834024090105675770335422942855702111002323034981539291966295888035319789671299808572818567146433249024530520565679891773714303460327019187355991029501384097327036806411535495826257115276361058630584776463812823521517523515113488251785410204273242742986287230397820359960698609003801360957865996921513855466414160149825184367208502908384447101290683024020331333686362733041380084582605879000859249775026937889582317233747662808074343586617014677092598195183522851057312276778610965150606970899666496317847033198666166308057485489532854011063542316155701753680078710219626358719940624205741088210256982378157237621219281855881491089129923394797457282405719251406417401810008202921930550822620432096339024660071992921391756860914013649765067111996688586141290082478807104416782277933337834174755016510845340395093752867558008108580970761110323243136189864709102877807622543539390149179196820344634618198109605846311670363004689305614082764299434261446695092778273440292319342545966417817944488705402535946955345710683325678402917757780816764110815689647590975558496319578001981550969925816648167725118388435933124685757473612714474676698756134629817259087430611728763654325611497675668353279465562134752793079796742051334623993273753448232156915417121604647113455068077168316380509108149431263447771581782135977725571898807664423636376867811070748219505640633944865481489187215604054123670212900257025337602512925685711519191020213708222548646541195257571280933222610506161495562754133345164326820680774243838655092514112180615671366928160525927910736355229948322196896633862516377958574164175383669978732044787520744155354641488033896257412839845906599158453345263922485553832156387877121330494981203452860255262835691071219758843097808016207382598988108471176244592595056973418499575479187234347129353842903942523004890931093158644343829862829702684319611765068636805464067185515667018346147389916147448740664239828495705572235486692799039973769880828215346475165888127349760672289243609347388391231593949751989740872574747514770422282156500677381504553495428701581316457772684902246966588677414442089705606476566591060281021881529319590971435340964607739493743060115180914638477251439890171588050209710453473148152006537882826244909416250900122599415078205690035636390024765871812719098558902831011124976084795337798054834996384486841011607335802566487572147833897775290273478229594039067155203722738872658671710683990196707569990695435589834300514212921125941835995850389722739945740045968317447975597429445338579059641564347024806870804016370395706989896985197810864476622784548570127847994334340149706697891531369714392941997565155247558399851048997366904189061674547502455844090540310461765378535678059562845146925265471550743505408664416907127176821307093614577336512362199520779348058220191283340714941822457715755950874048528800802921725978825262573748738559370125058568851913960708581751939375117954972768213986116470891707246365125644534173380221092279657349520062333554215219616885077135432964446556498441454858403261204928318642283390228466921830771688131917733667978626406012406135604742109681440253839482990589967153473953109522949392442872749503807689906043763918616239872951306514103592631170903224032923514392058648650311436359748728652990459850963927659253576844774736377750195842922544578641459399590483020248159031621933358563219313100053691909377631756030000670598002994632941983999772676822464240782819592371416384215561336546073116201469860891236874730776547897008788884026638985617980687217036264601811491519363872440127595890918480040425918463255095241427410630707859480485120087049054926626499101912840698304755801362429120624382890020456465843936151999409304388682026867342786472520503681139535639535506364584712523675701627081776171271614541240730387140009126538351727276203761731143258644070552259464953240350996073395945371342065397794015056770512089260027622126774447101052214642848517906160231142350129426859835157865494841021868926520443920669413138959208907442176472562178025791414267577906271921728713141661388621984795945399764487502350546476170914996657421482894543612136815389844781689937099658818484456128062877368656792203560007546871714609885460771008766851229599978614454750048586959212907665805670846875626117654782930254802896174798206385349906228376839104647214361461824824662624604736247165360900840592251580292321886532361693011291142703906281478603101161765822543453154305305063427063075604098648246697817922039804185003168427640739792298767219186305065715021741199209758176797234689546806697086778099604670272789406466741996644925136943691693108506735826365898038451098492934901410817899270659230659257111378213014966116118484742261268797483217270794080880877652984319336988535981183495310019034870692073222591120841070378663944182935176175308219581819378447449876217001585726437562169074759654573965790763440017239277616711030991270084814172336905240243253480209863030231270574516622953527214251409249048960014720658480812795061074928024189747051955323436285480666684675813287183175761246265373659363344691885237908104897592143583936313052591138730966309961493747339796381301425803048737560342326133857155211253616876299713678744043926559199025818926693937961133164910336232887930416460518959119706747881734667817948952807519941123023358003942876575387481514384654606069582063308010569056766676111305718602034727718767312633448880653267471629986917041749011077509047322594177674511918653484087459962055028946254400165157825452709088527688180824871993601455889495080872637068940676371947125598720641643348949589850338729191588547500959316575937397754836040603146763038109392915746579336302204966826654567149494738551368823859533469327779820588558173488946693915575739582971790305325881452608233970904048924724096489538823184876374487111692039454115400464222232504215335024985534087533162369326299582354385535472540029230680730922205284386522816843561973302624454554227410057335335746704845394943798032141237314127773847749687308939715736709082595833707106370290580570724686509167111696003692472621026489590092514311750859590947416500968487051284605586569871437733833468904807771025331569572827257771018187501811222938010206610399678560731336027750805201014776807438470527629952407724395697528647254029858235643887165273216307716948128631378000604340984591835949555197392775045446843119994726641845736056748047187219133807424614485888822195830122893571401638816785736958808478121377898671108305725924572866553224406540203301677286910556074910544291816272231491574526967912973857319272409631094161915495729359236338273259391799443715413186874084524813485211632136624701924863297590177325371463106064496525780417618566502474684041822715901764423292708362428952952919872317840353574824828587801399530988811053308246190493362887281871762604785619548175288831908401038626391421664628227127442582269090735863080941095812406751627289861856070473360989835546032280568530485109810522015121672959945718259735594273060570223734783539399522580851122188777159578637759684297652594785120869166116865727876375952516685617039127381933471833453119530777593878795239134350010130016733594217390668572895089100118373852519144802525373403873380524082980197752625941160622999321814799789079750002968330236074128895955277237173372116793010449963909096190947608235590532905847358324730986222066733949563519118264199233317180516624752885880249267592012148923936977885824689875260960959226825878280844686547058082980987865977101613083560698522487690442126361295967160370267894817193584056701619579593436797110923561806952195044480714443980992342890324546775167006280851752368870981531475188001031566944872202115001525574882320804865285636580082132574522796732789984628400765857358147343877871034555520950034625228174812663214818695193578413529978087802695740705220415512813593467135806093953470249129616169479213701822515579875525908114740283433404231575455918633773477488144753811061283304988820930040130345613821889808989021856046191593596900279092047315703421227130803433444705007765230610623410392537350002510406473603194740243194484434782249829905158602285854111990661578413113920039958483488864312662214530221941505454344743174071068480333504131489958347034503655741340445675192068062583766864165110994902829931970961873042651514851503530314490278317080311808331327754903090498774794798404379014366813861363198142082701163377554915169291064090503097029003886482596703381908490362970743055044854876876686158230159857929723991344181384787622220508437191817724757115190283146966443588693644294527556996656123177096325577848008606411674486852593256471294888317181314242889807731743469842763972258862692107220828370264446766194958832657110489796793236462493146591144085789560234138921890118926497656120019859955870061610118585686704211057887698438764232282069937156172093995138507278780935225411311584420244282882656644662766091264370978792796057301918192796561529152225125462057706364862941991244198520696621473059538403422722382226777513321066741643389454467371975504397018387168500742968635488721087727431603042550067163101959666787854686428419149974503562080053179823751863428575535801792364663119195181236967405422124274834798717678005218403891755562169192683552014414221976990897129863511281752763852831848474539008550265740212810759319934645940994839541287659060525598068731297667115929726635681439243977357772656754505533333854697559292298248029642348449697873723343696220611466106442275936470311479024115753558410008168061357475359264674471538343363701566134060465088853938429667854986053137032565743872412419195878240617544487040524112267279460518167193422098241385257589338716514286927476154225013775968169016490677836558653970011970993091850016905385082221140942701443803038271839825471414452209666352866165616864441402812134231701828912335826568563720397664681903331823134944155852266145967822233476164113214211508726572993911970864266952728446761866247290301142344022325195124465318502059556461097668147641456496365863346086641266804702368196815732066635000710511191093030917373359745570662197145420881208958294032879822590042358064008440873799749591921623235884638324380211969460225877873066480031042087018767971842957441800327970245478651913365525909845911135971790438462628971092572972757226878975094074745763914055676591242233791319925739292245055669729714265036659429351515089607762624385156707610492826504277533212208863233573744646890679253148748580086590920473416559580402738686151347961972932975199270864225478651293816466998141741569453107490558444615846463601491065272475526484866910116588762160809708408076909954058198127424784663923092242890916075902388598783795861825057531723273288485547340565935105660488481922881493372465145651082867477284381754411301465195785095441678577645675491679158394998613390852267020667298054395954198630268017499417875352842419893832912251118960340140247073253814512179366816905379417312593872972254954018135025494028226474199300283434243850899967857182515281635841514463691206361713140953832875651959949460095370312424975294444785844608545345806835282939347418476145440534731023566404127462487632753583931508271113828614994174231095119977375997836344044941625194850248280718165188452652767511474001905191772231117501968059489531365879158557164139690356713831566754497917439643783394260514180238430141474868987194861012305275209020909593050374788951105021810652007669638557131974649394486649510540854354842675985369364523934768479620500454152656404512625385005665465331475404642760124639613963843806860041211689178272089024470289478508709017739231606075853886891170246571153499288490265740435560833440010464790401156019047904580831578525404000620807327016167721627800294439472230297342338900669076922449876126238899966988062875336397402161602034243428175080324017360733348259902194850766723766996642299627485466250123206192022177867993657725850377706745925497618177927104864443096271947693492547721351048227871087646302076299555426139927908711697210323381938320917995523159542698726909259621319989122433824627919347387629904493564428630757977862257273659464080497635675100857834496849881124230393055261244945689348444568159166541137157488843588299140024722814677757073537352956041739922592021782592442403922579142211369382039601121357449395357578453966391718590285247349393121985372389798623621131180113369421832540409513065851986288850336794310755938266049684935242848849044847474629316932107808007288538508708428342549522461093838432319824371852569685611621956663324115606789752055598566680410693584146589728884356274263749495446353154333547111387800966606075880629943887471468719712638630803859426932590145012229043378260192765062327825919176039338523207242734267763976175839884401517430266226232472580361020475164782800721797055080005785936476158042416924400632151372553127645600499528818439434239813253197764202211514286243087824365060450513933300519819349203187566947184404793315485367232715747624419627627897888933492202326410032823671876644678700395091819397202760396701510250365174505969614375267117290487661493994913750236283547528830621192734074128124003766741980036884070406940990527285279121957158949512175302306498376440544566207053837310833177515514551598753330376467922787657132428800591452926065155111868282688866509091436879510330533167541353289742179656550151872980027929413380368901313023940917685676933201160721534518739689160135872883814318003880816798042566645561978847117999739346876782395700003456843605704876531871834796578683892018614513135997226884073555815967666711165471858254915263945701185546410106579003337089494107693731756357032992585346614395308992425046442597683752204598347327331143698232439257102618865322250413476640899935408442011984120420597616966808691414785529363933875971249031452527416873986238358368307393338594435958515914439356195915481815141160909396151104184477358927573114434554866368927521870350353368098698160794941489177841253423341331172398779493059514040241595449305135533135492191024274384773665293209114132076780653440376085403240509699719155711263670020045218047024499802101357824780081331012103246064310788016565192449768623191040300358201925309043037467589690648787440157175144852491127907067605726884552520403035459957274333698942694926798552621430818149621619438186650640810058536117182920713553336677252300041410419830620209317609086942703097119963990620397613806230741428143040257710332172880831666129991913589934527149210782640781944663212024731300583990636206968223629717272526552454625891001615742236583240390143985389223679290598545278649104287281645538970974849925855813638190764305612941975521014916216398321067669534186892719234594402915504645745241055421977267304072996751018884841842492846678581588079071917969518495925691713708610154857771678021621606637827753862885754314824483392027684960339952054148903776407065015947613746009537625370784384716199356032124203438148720930328728994581238788833369425282813316518184616359497862223059900409922795183625013118297157979296014824329450970568796175135036402233333900977074537072218128436232088229478773384532771841457012660885058904776167853075428367375364215350487844362706794213234472361035365592326781099912145354584053286173794415298252285786479336122962746295415674867522625564311645534992194687169337241858207160308190736586897418169968019920067239448672230516400975376578109530913336409794804360014904628427475046672361623974861280522989863862194179909426587611756114594331034069262504820104506598689578622476002397103448080490024383300065259750640133237224783082578258497279448438500762982777557019531562664845276856516411969910611882764030962278540912588062940761737953466242227709974216148057236780591049052017557053596174664271745934075791583835993788423736615321554127952399159092800327221635936040287662635607992691233927850556595221459963963159964405810111495879630609526064359441030102026947015495009695061982428889535625288357922898753475682140013271341072191896568164968722497137697195850045774530316931869774418479499317273036108927724470553614110832779682538908896634160700478569731383171650884292995039395103571171080620507561667542416842173100054990648963246026805142921760274830513200106147341139063322742543805067421244267711140179289658021661425004780462798892739034006609651430837220123550201531456396372838283195525921120424048385858342604746002195086012816612557664772349294463991041668460552431734134506689340567461130149828564974765516862696605725417491017059024570533621268282156170771906995925915137944695136832834576828849597987105070583222690867100087624741492356154864540638677083635355723008734258874580688513623088353749266829379016845787816284717092622078298403490965369577671741298266159611518444748326470888385113442072446858893083734507921162533035895307470568809131135877523247560099028720985245497823638553228833307909145744447474749285889064713147799859151973034730367612830107033145456134165854240904710178397337041272570316031945770045777435698348679310089895648020375295688602053022737470334633005181191114859340977837911684523602260084581938030080885316771246262860702390616986440171015056238034998793210010677653030105398652514913867058097419447977499037755550970142641530233144512948265996593778467694552087657618289717420006903931085185785903537178826691621978480768443287309095435298774914486379471861959469666110319088959236214751305447806993576201722733666865337390521607018122661011476045909154622731529878692911344863170902199902187465084392590667071374033373366441999886958591861986621061513793117111661523057146871516639190664047081049425733750482558326212914562219776358569236282494457330499818012403426989539787441301430158202931031595835795724160106658582856846392400950663097150489018342933141730465948063968985955956310737197740108223752879669341672256223592167113583733321790585919986777281421480555453114419281309235629611529338782868050066210512011880812326421587489885802185658673204021417404117511260953429114335113367627815638217186257518673810496346105715439130191568969081981200612372457638166955282476122766157449659488621388328807151626499426679389709475913884693113246739744065200693854809953218216330652934791839446236571343739698551592526471221075572266318254781215031236684933989891503110681583893641820358345240551401176397345797102562681628697647398448761845413392497943908321326994115517292637863131720425230216938771409807280136529357265704718169677097123908239712200139379363234707926327068654371936826724571548923104653300193916541940711327886326620836356124792216958020632103420462323174283530098606054025170932372486841536763596652605301718790691645402101392066181062106654261941229164143504005602093922281442076091288814382188901858042394197419557476299146163974021010334760375327652001975709367080541544447011404153385855049405647570728278499151499735129276188530875924721670118745845900292242037091003986268779114466932301088154364636907478430039406420908216912948160675326527983555546572628658004614833501186280550948184510403937858155548881679152544587485229946169436088910740851207878762796374415251502510566478742968742659340518430926573199615859417494490487058799442415096813676221847747009341804694709563012479531153041225570015727880731687859485014456422696331464916818459649202047100499974179493393622315268574573331391221424616414916401075627844188046692717004250125813319917043951478066678038802345683794875146731377842466385502575411976181540955235916965240273753352437470491410968925783189981052850596227960568345064226774035753362803455594067435669051208860754721829053984108438021043871535824126906213453601902444714066457516456994928307668726335786091895801975734376701872086405784383185824552792586460910320686636801323719318537542365758359785429643838675786009854730024516142320481497257728712906657339734308778278958043976458376466532515211063787112572327282262456640595803335011504451732543971533770334352079200648749968419225361652301619102876707264273772799104428959176727717237914142212421982939487664294043495880145628796179358218823295859815217270143662195138098795414177130185841434712260770653257723058809414146774264858447396885683301241690551497466701366312789979810980592023136603292082563758560256502427892033472460768902946951022731583568280188042220850536637341305660078260753465470990007928833944799060582732027992044230309965070682333915716814298273156641786947438794897303153495452131235573178754951981968209124749724407107990739657818676402789562157572717352679263610463014418013824144588837673555018094003386147618280582023801882303760751755513133857563248648897831751861909558705528071003518595958654310445735383706126789250141638820911509117333627800605529534782615561720053955260307057775572765825790961375317172042610633429702275624165185404124010469794768070147908527651617879814419862296564061704797385755082176872226643327559866334849815322826707004855405112057395226145394427937925517715726757763839561833955996595656635589656707148803326557571934534765558228929009420170969056614231083449470658724623466565839494320444069219143301195326416031434966217569980744979601644544815271308822652555798357739047704620566494323967375753758567730880372216647838309499984692129035130384176416189811456507840035756119692927140060784545690361078766425512156561847426008907238734003845504199084999572030470124652141906880263050685944853809456930429481881440432695775357982097420728025330747744381809018204533827102695532247518284894014311710791876960366279828193119921935591928237553636286967412095032124185789647893678707302105963295271416155623095599055776331085832341309951493805089483036122342350366194096466605452303991819306856752940315167592446303807311254155564606499826211508572272608195976404539226461367112935314143087912775480299070846482135334684208963621643591118837816514191446445620321187608670730568253282787966357392676144991303194156342571853482635847138931492850286173102407941720181999130036993026922552542825009848931291292033898431041447939899536923100522651849030464774680968494815559526646715554459655539177803647663471726345881657914211148920964849569671132135594275409617417549045789087373349324186750854328703057549679899438070916234062667566257798465636526790369658826694593039272104881748787804340746802156092072062777906055053587035102662794975727354450243539137225780905763931626568243444486008824359945680720715957822889718978132136578078647719661497574977645041242856220502863523217989290123480293627596665645258902094293975489471532938358329199053753246930224983560597545841133775954068178948255066491361963726517102235362906346807034016778272409851025342322755396269473613902996602989826086508275385392611583686211154460478137305903870652048089344250072069369390816991893533291752131078940528760144112578150983827720599763979970294243433196933300073960950637237084185501439661128248834166427814823784048466129812510186231518000019134963506116276682749209513665402854776467008759595327131047928711197604330690392225636320433721941774282824447140244758130116162881625376336140758510050039530891418383457826913568359319325500067781841167004064812829130834144641607964466588305867050522918317166530084796255802148733530092297842981305623494373002119360648848426779602700118725447329268046633485846835849899327967659354732620817781987913870123971564306237863190604696441516575293868123656563006739770436516131362958531879288916050833227595719784214572840833888474280579134861151402536543531555688149423073802744841410003776369089912506417831609817863072988474810644413743061496679604413169591523550694075406311736121626958211798890076312709052932522835797183403932014638439074880136568457811064384120737554211944135905601062282384849957058555683156047534723161353593424533733876008495082225769092697487609843961917139542338411797357842650011184275321784830950491778686304944237588509314982198512257368445033646446131929866305655288369426869613601715196278171296458878069977372605903065599453573204413842437360962330113454771018801846072637990740503815614096476339220382881517903265381095668540374260240311294489400944938432532502621497592774689900089559023482834827230845493392980536268542491126999649051732291858419138325018298077165050761115164249893150971007630634288815231485663113098791848898578176279086594337303515143986225636732240965379734844212657552114469922153012519460160752213755830885632745722725321544087065423147211083527536680135192089080611880462345363062538024709227115204310014570197004368953056798058708524787939581510919513490750825734505845010953197256096910975891687648841868175692688116836983286238020510202368502521798579056786723664123085911530938270031012045632429085961599163511932150878245975173884519663392277584130020625214244415205234808709632431458759335912479292314377899300635742432200006906437341990955548920465555068464757795108152641226119984961338779316623629878362404960912952052853341260046170734573571844628515700985194441995605536711183398739918973931841629904971035983435448537926538238275884508244868884136188711538252744660569649606471678134181932758195948035360370189312015090639333078467690530855597641715395778885493771060963851643413946598861992266965103766207928693590349928096220997120653524637211627182726270215219540275596404364428958305709013235769895727524505960449653535197627872720684884852135941440236885758452475983181820683805716069231398604852758153929093381845954005115109805199242859684327361080339164989528177731231006768165318180634329334334860138908436137619159797159180484686719378435308003204652582558087458828189862197842648977092190197577670397932020163526558330816186266119612479644061638861220411561813985747150250207635037095140080187501146204571456849018208876932293062067771943382124083816986166883347993716680624660438127261439600074210181402986834304956237644312399649856255934630394712259233208376259597845924185441297871091085732462278271662149848928429028347155476453126241320983701996358801683628554133105733844924591277706539822273734979225116201206897435269437322701289017241485615984270646199693174765169174807533590353749627413299201451877573853850779703338261955847053669571980659750838824623953461395974041250143962765269072503749903719667952228812619071212806844753705156637473998482485893238321324890326670497765526633370810725952114003276950390708751475149795396946046202996749403220848656256284872797803170663497577347849358948355257721149461991997215452844216869272291215127754886017621209233752662997604649164222534823448049053819098270414444882908256055972843622806819537251221068699841894306758113682607700972690450749107738374560728098294240481753935942191421179472976533050234850705014941988422048948690440512694172529863746389314139377922678851180877269585642019343235131052886767650782118451792607726878910782125243802012921632553829920604585264702598919113775898501101873654808936359967642651671562165733371109772969468132254943758569437505181315130098115281258407655297523060844653129945735620299441622733531566510829148864645162204590938675355892794326972559063749027976701707998659465264898439503877254349035286826794119736322014991586888975717937894334954958945714220876892742343316294270896956913665474914269827107595523181103255966838808860114679102966578121985146225869001869096220602631816768527766871174228411916833362133494395211473118182409859502635261371460021934313709955002930033368184869974010183029571616639251112213990313145481541931661280517770753025850927461252770149806132385937762397129757367440747379933706886926344354356497135573462734405959638978866749919311118356518631514192228119407171840912475398011601118815460829791182736733182018438844680912835714661288158298300533163341924412634479512192464542758914893720086228204351211738783395720113871428547018226228349885986272033878530990140572881540214156686164052111634984268073340728600707960343248897929928680227084683698884966197125401033875131395118569719165114505552126986241856019098486838574224237347248845421158077548655337326983796473527710607563860183920879610860364606730928110880388462287487667950907372297155434766089381541624914375565480895653332907358308893297339775051487392639738287645157123847072495519231371182957159875664721074964825381787221226731710534594496253560496038240517737727462353798787460227273622077195913480423179336739774487672210839421047510096886117545889430141529229451979773565974317103284025500504101115463538467100036084700787436337466086020450680832063063832132131661658172179066565635590111743932585735571388993326355002076402326141305553420084617883494032779417941957075764829142207799313488859727694164911314385659518995400837269059043750660145462026516384466854129803163209542000480985933299450409771081730877377625313146551381995878167439429765644531255914672247761303409043542136530139281689536414833947100141775458539949836200783259149566660676540876671372988344645599918344129410473210800146431291104843985758102529802968126946438121704220448772980421884471595270611185073528300390245756466051674213681805348341050051629281334177433262596124990693719882228396049154710027504238658972073881111400045699168204735394619620322599743030896788137257751294530421356484347399697228511607114601717457034664003835909389397582966824437769175363301626391822473595636591924404247311186700429017517380795346200326290439096677252718572833897041788485061087462769871156699165765290519947483184333084638262621893417049815903092892809605787252615927212017757521704410816080520195876330909603473051663450385690901382218686107561199029651917832494522902433028172966092146307938611284789076016964569444640056887435743688687256160055476500690212734560564448269030749261514382554753086253782161847733975771758461960909447142398524279177297379419060542458848132662327659939327676241153733870680711983425391831784717103363776498976663978822549053101916107430336618633203820662215413592752633011808140642133568549110923010271783672893351449909289889149322161158640797238593244295038220452116866734893615117552715139888632736325653917691169480358824640612091890125475345630440345452595353949531667023407479990931333423116360834932242755620254744490638540183673605611937252552647333917610050046606174220011204852798758761884317921222112028237793594982937892902447913553712514895404503834508080048648974354767105518959675445735201332187587284679089369478673464318630649745959794289887967582040454958992553247879342230287068952944441010869530811509894725394645358895430775820615122898291576295680683663204069842582642658718680080256637809552617795357950687406866810481714856747752919791254575138126371049027307049024965097646176377981511393265852977139993128872621314509855737334862257168038621205581447870520886089480393029031706991395663549905269921379672243053565894933332806617917642435136658556948130818341244079584601236975543571388876779832442913189281164447013852385257335382873761994495631455001529385226908960347837208927779766120096208080285422652146726713230941452436782931326219121064889288872620733393278101251341708241466127807986727835466229995075749062705644608098452045020606507145381896933555948869830201327593688622475606226801676326166762606373832168943951275829331142529904776480186624159287017644083527831216773758096201450029103081749162307512761312832942318790641706933236860070938806510104309187646709940537340539587320582201419059020629705517572768445416739079269811873451604145690600480699944694662871537767490441746089751220871958834753709764657641292932746413141219842119539982120586505648822562643159822942498999307505554489936398377294875276363135091063645586349046184355388789117089366317733995413366439467263009171789529434366475652265131511455935227259190816118248717805433779436509853592350209951205230130727610808174997794448620004890457271889667809150719110333288233475779340631845505148351289487094865843267985047881425118560527334187261446229340114941210216321810899805834357065385058442108559593545751445225479171424772261021980759256999262407755175677817313307953777430231369349995029040574679867927906071510060466406360544515468966918323196353769912095532247144658175338660946789087316893264187125733591979349444874958151807011944005780108281690907954350966484148299240493621758765357043406284708104226532249049495771406049165499628753818867974517160125255765050000406942947724303987077310154327420737175332992558108524870955393835773742877031294185908920875391565338469801695247633252439715503212121074559543694093114087176910960566148278931832572189123761515811692210200528816040180866730053547845568757786877502190404515571454422170946749315952100330838256935449114298156448751407239142655967156985371759049903454583014621079447998246796116164463594852268942087939082113419278910169132299549827666816825802226189697105047886779609975340494454917150845124698241817019962509748805345363380630209196095030131489990375293923234660568319190749894731140559178604946440618071927263554738239724691459782333067963750530970497003045541261132338959228137841473955256904695816907785814972430810011468508658736619924995188315615321974994166060729919285287191646938461163479082125243448389970406961065976220771480619704295092270394952126201869895029841212442011540240716371072713063872620881694460367416929292550460394732760967657535398508442070689901279135133640333672626302805402539388268455416046482052505628012900659927204906622842747036503039956428643680643220435289427382887016346456551723666716123605389748060529339359860201715739230583249727984325026147128306505125628781879688912259765451411684824887591502354436955246221948639176515369494450128658274783889383416343096999201030267559268400558521647695164427054432281390039025531779697896172732370372641203959675298669191714321725106390548228711039201705605968095930903014155130706983129777887094935659007355118877332864197074525356198420668118423320311245600147422987986598003596645063936742036446247120752538024593250506074215657878826186671705545509316967830365376615334188846640387810838407437415163889868338723329115460679403520654784244890913933224088995675313213269665241512860903033833725508222120845109878107452257763244480145080876974902405180879706677511821593735154062613518333218201908416693147662392608509033473397207029931249596747414660791739312110043291173784968086426451707873288879085191417422813325582929389160227286712134243385240810275720628663322909196578801836914023893063366822377350694266190205130440898185157231458052962594326460520223402019232049557911335208459526647918735808067125110513729743355941244443177766726185132215945145404277206866061882328417722893848613985979945116815629665178217045897462065854710300218342809183225407838005044190400942847800246897521091715188911448623668751651933032495695033095828735971273612887458250170745501875732931283331293784370519748080258081515157651646360710996456901133694096381323298252145394351273915297912297783279629662234177173058354890662204562458312522509115553427408675256387711877468018662926236818222950240845105941665705202599904217980055243589388550671793975867870259333569823894477754256236344128062167676023773753077461916222013039706915461536517691138423293390310161438824499923981006610596821716863257487032516762329150601744771852519884296667812821892152213000594138709904327079247190770962907769999074057645042298686765055151519064907395893303964916943843921192806840328383857184625030089931141084927821214896230543383757924410657967667100390879804234985888029654069088766124605384813294376432997492617960398541098465104433330784514519359984584903901922360845449398140099448848698827204799333472065715401436933234927578841434122937230631212531612691009621579213413044517599873662257140404527714775677452744227845328540847867479872795038611402931030600420853641232463038812795697153586228188915828764430766062375994250901329930040115864162239175697792770513841960891685364041063747106715715451245848957668571399995615752462299526944409947067665686861630518925998320999668854441669331510098854134537518586035323426033439265120775024579210339517844173658376771620873222686107991553999036766444387073854343580364291499072330852313126638464356338391599294119561877816390652563714947013693482688596246917501553785604028831454173848181636806385811049331630039714511079172208776196839159739125746497413669922369807012060356102004830040001961496575832085323641021579941700339206535112245262060826426485379983192809408448253972486947938433945944743971947795166081712498528588342091056762457915666930134070472153717688079295377671190463500873418313570981087815526404203289673781085023867126911417301832474524527011591993055285733306708958112113601017604723074801010065476109348328472153709396789078399058218251794818714865755038639166835854066456187404554556509874703506302089628776445942792955844503200247717009215637665823588755270073271840547150428778128928110770728246103795128101894638920109611821033472432185664502287418072378754078297562006272170561159067267086641194073351872222898880246687595852137206958842514873272385790995490039541429842493747762558624505827182472065651940967849318279820821540972856249443699258273282582435610006699384349097961407366523919021264706047740253311139196325996772840373806189323546636333055621043160958580868929808736651809535932534131304965333021412228575241949819256627647815275339068286697019526267581444879720102877412573496679569959176380683015689241957402728345766754246497340293099218926674294766786682535589259180035263548617585295388195126934507461341625740638042563250969544175452101421230235267119430863196616344574405610850195582221081677230671601475401313506720524435872375890645192483310012175977110281984311709771877794408133754402470250033123842267635684139319484390617146734489403553307036498563035514529387846836146615478995446842947347774528568345544152091128416817567787913879328404423919338637201582087122089915311013315390582951403318381850462654953030028623400898275777366898986297591630424427770452486411107022892659179278981691688611912424211269885332566072485227305681594571334804894116545864227393511075511996191053438360225708604135420256239715286727324007673460346257679160122790575554576983238075488594013446589129976187447802709738871555451083652526612127217538826925682575347410801622495124516594393049586151298980021076270390099879161720536675082918805818351277876684851504024988486637854804949696317354903927692708094031850076234747819230412600710016265243059751350730393816490951988315504299771571729772526219031248728029994643847534192545606016222478455995970373981742386999932223847678754724423338614648295686801566249015230802141238894801350288094976718119029572451535341256315278035508058338911664283599950977456139233123354957450531958682207835325286921769805219549998211290874349193744576731989565666755421981413677883835551748068658088198811325428036131165006317766647656609622878728030691558365335015669333459588715098079791358011395207632810034997651532329450241276574027605514070010342645915558922291316524291771263309004604157810111929147251688939760880868292313995781525324549395563176425364648352816909163843684619408967237694530895014450482430535218806581047900044668135942335399471213999940727635609354438751609731256998270509614187493073267077394653495300732808849299243317377073343176191502660307556666173065612172952838538518200919608068005506655100005682622861455863438641203046035849802714040814523303123823792753780390675214535724003313950524394540132417308180294055223583905922645710467696382662761180905174481125805666259155367382924544807431268793488140187581255689866118932644557738357100548042583268672659214344428149187137321235550670187333748941887944645432603167657050902219681767124001567534228281409426470027714324334395204785635658091371760985968756779330697419049740435929868373292266249602707221887521502360475281116286793215156759266129331656593672541568780263450771145995788271775906398508357692361804428129607312399956428567195636752777920763249632723370517577688247271787107559711962683677340667539614376156483058270212169370961222504141702252963474941318133044656914838206292807421153781530271480276867142409882377496297700753049800280454954498065310376363566486130763880732224760428667225404053033197019823362965342581639275175263758122650398424954097199620252162027273781855896674340769226115579704258791454645238996031106185145590284624980836356711799444559994578197769526936708099850528750773236360710872980157940703830472432981814609582602354842006577109694567625137682728045164810174854043432261331038505498298675778645052312403338114071126535042266442995368020582290622824945674269877723527068057804634092794238294760642635116639760181267924328335313010868672726153265924738094109970430163105784516573761203209565877205416053440023604417210667659090040826545721793344928791939007139793110766138182467174504393248401027380702125127940029387860507698113700679266179395918796498457741903900191029499520067897235084567379801325445895268343115972033696473111533004660258589358188517126947099857712952521074473407525194088762737055661334855841349012892498513705957344414710600161778550894264518679421927344449187171852938380876833839619343557490086860389664040152117175448521372134851093551593746253937424108802076053218484439848901972729027688954174951697639967407006443108253619815923991584690552984445432263523871840371790251120197530765343003155943949957987831174344248871110954738938796853547935733213170135451362990494512727088353270812683310540182230320525202751679242041740974879872977245787679202972797628403054575349249922202377214042241809630898320704947000114342552177382169280987704115077388191364299258683390435880734282804634180864624670794383858041226303979747872904898418580240264180893114899674058291323385509740175102242314402182953538274563642932644049983349343334063181227556752648074669294242309312378637853992738963133537700663250885434152294926768778442973064143726297860923359412281121577340343985987678862640628693515207611647167349743643055466179770687865244319412261110349718168310687041031961703444125581339038155034642897226421034220511867590170331542199418180421864317423795806692801851957038472106620569072935876168551383648369017671935110338277384257453861094269315527816430193135456758403549475043486420241275795234910012440481014517070817220627579820873103271116306193278695295541506671462909332809440478153655622261766212521737101914531675963424383051779956515941746712103344031410871781759614844380632288773907678062171443693701545193720296638823727853420361501066182617677097205310625091313861392631752694641696146352632569574370555307913036033655187834568932162223890394555576427899512447102195216659180965546607221814791565108776758875468044087758979641918058611382913666248749667965142476817893028947489411562420981785369558635049612545448334713909019699086031783606877306658222371980764839613876502775214882742511242231174360526107637871139510804043448020042956963329471191242978662146669771302517862158211743681625048637792053679790169784770016534736971034673506970440810494722426889348937214747927151254339753287471229860158343499358836914093548491479056997533241996057695710670271056478920129895088902427897811634647318965151822132077596208548262993074100575292257766280404935579603262202085854860685961615776017022258359808720987116006332798295737623559789881775818526654280813239442828112921357956179128006505408809779151961716041293046425228473548838133478765195821978489350784437502857684909124867696820797274488713994115193939982058920504649342327500982639133765319956407643038831933270104428416130354729310871912250062641146298376210895477775446179429510856144135670088086399902803388624583823394096697367893561572883818389047500956169490967722253173062763068722113415154162343062025227180545270262583659586200265597952686300775586875681629568111652148374142219207791065571132766953064149705954461644821386863114824175591299378447069754915813208837417071947749899110377262953097566999703697715007614705479966955858892624516934827258901195435743614501915632650136913673141483773994535520675489606168232435052630381986383032342091025552636621679092448117336498932696648943865056343785308090147759812296745600766696490121526514969224001439839568218112544345283629355799340994435377793675655133325651636778127893423867529673228473395969196061451648376371049471443137411224608492386168723364433474485406358627924177583463487565812319543168457137273805649493318915804607284271815169487439881130673158763090654657866762162118882270655877827569815405038191795165874629077349594343776553995580744956853371151765525674767487660465851356057959826038480541246199003098002627338283497698193797000903287196829001360602150827281558197904764252483732324180462007321755326330565806781434867220560541472447084391734538489680087393515737265331160265428347286741190482827226319902125476208913356676938728537271020472941174144467051732869485690663408172341369984692769074413478614961246682231435124422067716162660728221296758474985464376840676941829838829501421689765814431807182115644925918715642026136029689928784299910975709267291048819220869213285593034693609836880447167757870402273409779791203023194144649618547427215700057997970552608736034790434317709177849436292068877682041176207609323212742769906377097213048233441847983244846880007663313713639504288767653840324026526266293061574546905829058260692569452090771450120281157134101650567578294930483259226111617166056198852934785093131400624010685565772002508384899584264151644396503403728684992178135435658503226122758774155180894791842686549980430392225232281972641214975850460112709798967310613862328967223260752674295072633386949568751823081557921329655611429411886101357684132103540415137271353906561538070238716850994531671703869013536472258840707060975154952052758336175899148861809869118703180751365540151764295993192361659115929440216830873273988696990925695328971988525260870312178713265438369892584931279460430604408480517163945530479958654585784767655935208668014331670641131895589031055811026981965709269179448942287006564403378133112399199372313968364110798387227364933660718980435675188576193325253799429299049380012973451809000630900746224769711958454313316827678509413235559481108235789748560868760568289731601753131921297642018134286529338032404529817070446061144435560942830584683361909435939482475805218511522530052562830537098047178215977122118500500171050401478663239765998801697165299589280903140134471550065408667388750037801526666008918306713385545060211775479283795150469180847107812774377284040332257309631838995201891675924927315977022333454148483124908095432357273630100345313311120817620867663567131571398258096543084935467790368380762418266145969101632089882711819228955527158091701924642116360219279766593905781517427054808357871467078664423067086337583349616395691025653933076397530378699433368190597893029056711703071390542184919575525148134413777977647801031264829456143653815555682381818562655422970473321049580865731905039598802569207462073581563052460851643054256971172014046806232911737530650286705361233990407681305932272138325474740190624384681225609858775163564451205418622154922265907145375816647482714817191303393007325033563501084296828237629970862179080290374966329420747481632856584672683994799943671208242218532020307651539228446383177747471715645634303208522539492207572308044491869586791846079549917563020537793992385359226643031807938646828624967250776742297679311042008119580449050792001456092041807824868360786312727157291087599753316441897369700112384813917354336318738050900895495240208734408485600612768553528386010053942724286884579856765510278843282362443992267060273925683574963591192179435406521193549355098578401343541319222647221852721712303906357254018350669880205007750505147269319838087801847347795824991441041122793188409914506509405523272922394915164105790375289820624573959740691498816863881077364417916070680628135644413051280538402299383449477092082027222310014798112742652726243611728626548193958235828400619463195074124591974508138471516236741455483176122212065897357900344727869874789046886107939563503690742160863461539476258660069671547125475629660369852047309878853743260679507536821707962244724803981370357524101792818978420323641736235320995919360496904848693222282037347886860666055205596662683253751416925597476937645148487972256174352160341641969506953028077326423910578911876709066548904537217701954192024932374306537915391484842558456398742438801200887737095793335722336164832837396793379960913844287018178429780335641174317396692292689750294902625990005719599605743588232508924517499046638831487758614525439291677660434253604382452844922656444814711691468581951681250016001155132325467822127867697667752130560026265340310555368182530148173110967672088281759170175445937229126912722376500839490282346284382242805644521617832208645235732700248958417524651015517363572979551239961760327353931407402914417418953373408837870339743308141546499893141412746473465190380423511966591234111552783954276069755976667607222664119114479220599611717908958765687383201668939743611700509864356061674522552526805403565150227016304982461485227910258215860190594947813089428415876063096947371932859178082261648685622141710862976002236530014973809294620182578184371503800562383452958816193378006934834074224463562908355885135258723499408378091049733912488108849717056665322804551422944584024281255363383699976593943595416511465222611866616120444412472529135593065824509993279032311792395385031918193881621624562711345606072191124192395690112975094200228996980568796935910300006245379545049552846289664147940286310052495526348292564693725355614243043341011214876991848579110738654712157972757067120334384849122429306115390527915126360026155190833299537002614798520311317109788236601665081526096778105756033798020745956569703834675577369765481732449237167928619856856470819693363205560479622110373360325284252621484779560889367789051745515441069385200693261330623410539268906014451537908280634156402280544091421748759976953398095293148742159710805367996225514036263456882913105238331276190996928026441819013353053353453276827831067723251112004808613696152498589444785695007128564460568327250624211482627904525198154101703420208274538094637815669213548848364500608048230799104474181729147148157086519603096397427212825216937446856453273798144638086097478253921794495293015269858318809207277800597863418721132332205837104250462191735588624057334330826748100356986781118794172441594753724237101242285985440136694266547589028629796187167489143523236035196996499799508088941525106405745964878915905231284364209596457729160978919337593310995756109367033406872659509127102607803525520503044454386580095789167964702036654695193922917491728551831153686581184719735371201685653027056816955102762225690370484416282357514210846149450422721835107638213160024379529715341505586581148293734181463131071626901135681784199363028887404051034327520361074104899910661340942013579108014315259878421806482421338880721856742683722988838696844473163357238846825382029296120012941775778893208269706144942317325976204277641915701530724604582110045192128301425066161485685111711091027849883568160016108357591612068953050547971805092279086375994705466506118167976669726952578676604778591374608828146349806763171172484290881866542115530811226660585290184878378771642498283304912295000822184953882393620877272777656149196332688820448053599598774203816368569575897873525373052780185338219207598837795652059283279398782970768654066014040633404259960018007968161904578986393748361102866428619153818990399297810290898029077924213553479807782756426041944268114875875841419834970906282213783362131019332550735724577910079537752674444515302346080335577207987486181890969874351644001937234751310934942397851761109725883479642405395676155597700664281706582511783797575243115769133593414881093780350166481272986740982326059486219047508502378093160813255960817634815998944899160102270328897827771240878484672010736258600236201279155326739511921970407954423804761162334350150772529877966705594495280593278623818851254893451398531902455828856452598172284496795474867750588505886539285635239394284727453193262765856710467721651084631705829363071073200543275555455177778884342407962301799049691980385932462629355729226623328315597163511722050377992764540492545740482607941638001136779031039283199399307926391287522231978372575135743154005787781959189655433304142147088574207765059529754341014787759144645411604229462590066643736984661657218439685279493329856933404370279380163909055093805646631198342750464329277917045809984397152580049293832808421405808199682565680832271210746758480588666168433022635462410636689216125962955110281925290642873605310258710145672366892717710145539659812960881418397196357007078830772085669960287901829826907818603551627680053969698976446582817342017227279327256260934249441177421357992337113495114046270285222319875556629380152933394237886596846706063744961524247176394619591976924127235062166767921364761917740860369130229011405611917472327484728899910347438010439414178638140245209448800708185110500144535989977985861855955533080380032917742527795230690830145302072978156978916787791434191339438834169808781546445927158897010689189466587644318350286234731562808458292109731511808580654113549069731709453854065923098797780050362719704372491154549874553258521809982699190224532111242328424221683488552784815270684096362457572391101564134234642169312349755102560526494105996980893208433516891722156894085950314943649143079244901065536107039059829637846290695210791133480332091195894928256076747562371801896646662438787380412196677324831979537831494036055087418353030658521157938095276081017474488540663393573085415050213240096096602148439584070715677219528238598622856638856632765030974280989683013390753852869498015293009688768561243303764430543308662902032115843797445556537128164284637130253262960082046945549094177931868893320934933758373430330701105847431374582355176177500228767966463383997696070444503706427522500325195143590383786392339964805237360319931232721142327702146689008469914715095343539081895165685069539597929449081804264684662325231791419990819333333995568134328885467493209894926002201946703468058182157201566626311164915158867678291303463021260528025225557525816437137568501732361945197854998492312274842741061167063482902960251210556421212538414323432887502437013557373811181654386276422250770413095336414142862096732474642923281272270444916847525060686278252412585758662219762443925771896359747844086445526171446846222792913646434196883002378337736026880022313038465605994731965068067872764763470418051929124215830398197930639349643242457678808191995442643652290772229284385128357354601969837909616406838812930882970257627386836092956664398989598862809377222204970084806437500560834848553582776593944364485066125010490909674785750094031838854833198369020552189874917232630082449689161511719786941635807786722427904934675216647288296289151497859955207154667228008520160068494197859362095927931777538333500234296445639501880074719407435293839520878769549785398911908243406488225650484972704451981284563934949376301561497420238887152572833462812967090072094020882066395211343939215850014307465839860245951386509534806592931381084462600723255619053109156291338050607302521963137559911632569227599468384047451172178929329544399748305619566157907555499956753715225332882020473651524721218458803879667494568728606250022668064143086462773245341000481263788323592582330229486735200727992651478519968317201191795006036104342629491168429912506298570597339634120623560193446582605965275244099172948173792975295439421236177699924721348037152953596496914581377345056787227163933134675098122303416534651904016392896558557821312870651085613972303447090784249774322932766984211872737291624612258331677313052512893684916405666031539558380322398421360445778368027283520539755993162687389825763188807749135766742352058432873293754042809540264318818309935985132428809442635728754190339999058420788804485649079538981879434683539555944816265602209604425759043764296897403149252747194982202234024439348119103905378806125968894693052017661018505749896015672086989960589423007854392279708891503949832679614575361876254350688160783371210751202098206585784484806752236663935426257802805254414721266769487400419821479194504254012293476032994110409546908806079075208974885249920901096485673005268095960544949738520300787708818976784659563500827055487960494239378653173371498726673607512477934879024915364007529734978418291894236652628374182148534091231103037795080169954263400740730924443106086784235995625168871385985058477139604186824301780038202060705833150015243398077698953783185054947917085217100313216919086396134581394396005946677845204362979844442008911500988219373015779160628609771289565720680702548146001755902966012703109113867621799546651952019679400475335422991425993124355473927315022590115026043305953430949388586306620805829519582208103855111127242633173231275997312767199191286093986123192729167204496617953118992082030617189670742114787772177648341771931897334121990160736639914820893517020320008458361195314290486867576715951175878780101677000903779968757889795927667797120051558216629210602599119061204857268445940195914350610982729498924924989690043659355748801445540560689650275205545934141276090652331398010354952766878018597759632652757996521558594684045088406980804996680934089738000028008479977626512904367943622723960403629688218696532848302147320185664893224469129713378284434650000364351487110001533664951129760208552803997248771549581894993269079985244253724214164922166575590244689882760363830376702040525265128360855207664382819215687225648987870695642036884700646807930322295600370867299301122376443354224802666730539249584636554707305209690030813063613705409773104881702240527672457903871624951726887618574621234345641816383176961081545740587848673848855603759880608842234562524087217206932057841428236608212957541948937108878150551164890640939003352643710879372658052922948012402332966494066288077649673002107591612095275445805690869382071831156928088522655063962195480840235433426641241870149707948509646209983666804652510109348824626527700184818008111342844404206202180319478954905092519798761643472902483086799386705325081819211469102562431934545951816234027045113009797265261587203406537034918881344542364894954417349347642804187074058636937253696816816872731683530559777791190099748450640917030114566449828172642052213480155467045206984075111293526267404711952666027921706959239321624614791470024463151409380173942853433313173141472272274616763687647195448266227394075319930255059728810302762611289830060251456180310534883863752503453934673516551980176590510630251888649619183025390119041596093189096195535009441215503997986574133656588631619727555040084413518375622216408949933742500563334918697484996671992847052319214063203625360212274805411217802375746461557424707174345032398086285324585813133183823071594741727691895628326002672232557516192577062623248159982006626983451121834263614541396511438603311739368180346970820883578610090653397767684942230553963598457860087766478310446639743955577900447750560908764276961671689945166622684324563393294704243358857131275641215467968825751303380361730456512699512863411258008133630635939398656890534508512070524259921544228389872095953250612940452102816716023716258742469951796679127004357383017684939292707976524693971010106198802301031036997898868357940347555797961940533139111359488225657093091963850917862506497244636137580750451074480904307274705074162887342312499700361308470039854222724499840377930430723127725660322278275620885753431560545726415043028090416239684796146358260791327235035921562954670113391387724449573918205892833694143844669059896714902960361970041661233033401491028512548815543490084191176381714103953906445577843699576334677720342905680464536838778349357276254642409480548382371920787667283655600906358198249582727485379688631755475199044822500632517759995226310962520147616882502012006418576519948573762574431854347570377745898165588866054541758677079762876445465098581950332356575912926522423571558724632196960497449741878463303505998174152854084951412558144161893475584786161328494689325426079577316137666754566187391127265454668360090630778075095193391265448877978869484363440098029450818889239472192233182610063572186179250695166050515158508830948421618166949061725099772912908822391171753741853989657035203031303194820058499378780849454298180106327623621303286643222940271192395078651324466290182469656664263161433313895442342695760671792235003579384102201895339589987491357205837101814664356052663104480433585030416348138371677690203042542833091729920362103230879052630784116250277285281417430148734499272525232612048364452127062982542272872144205840768179987077466644764657651005366905105139959887700145423826165137569188340848680432311849953000990395598939316963731306960204610042533928041087053555520619976238729331219964545306266788665076499699034363539291519633817036109670335016801568556038245284296569982832167293619609814143186988329673702341070503943362304228546089512015780816393248373107727287285610168067673833719928082178965536814020335927840148029487350825094998973756917953334520472305636653570239004035527761522010346425676121112936342663439571965272967347955419565933940053459743798654167544484042768381459731185850785116958176102269954927227531000108702114398543312317587405151591406442591261812534667757608074621575226880463119395251604984570703474621814513491077461714806858194667254448656807389221850481494328871034444135423142983583311494174865722552855918232044976743879312597870257605005002258823663279660690691181274925965535193984877710714640931006739054347268119396691931272324300039325736699120865502383163081426754477926866599040694668369873681344110087276789817872244482657303457231196669090346327910229484266061350391493873652845017215210016587423888559035057619599610033950369730295264713772934018163462689523485624155711076781250698585726547135778757147879708757090689727541589774458968948333376172356964089047572180553059373885418097637116890192414295294704882221628487433079932854641147928178085459858067622560684611240690443115317397577494286753435211393585008031913070283346614282974229801582618799991748725157450150443584262867933988633778732205778642350050927283065526472191700919866927447810750058366396859230702772034114137953755339689728398404503023148258121271972970248938228878612337973704845708016428310838241283900892950225535668929566313147504352180934751730387531296408829828711774354825810313293880994698232264227384522043898175178436850944287321961758607564959513523727229895145363770453859260185640222814100944964376717753327139095662480188499314426864389895030100827235912874329437080130561266741933301754292098360300880699175033433790260662184786799310980412654170777885673725039923428563140261150890728975440577037483352367478706305582496249590496359380771111292542539970181781189466844189097344368675737111913296558811178041297682890572954422522430794273195743374659981607013102066971531525851903882644055010301965883455999076904133885314747104346709984105582070790529611376117240121169306576534400234149432540904798523602523988678664254983103031981178222876154408474884225290669148396374921112199835018874131189554475565966722999966923364663180276901583400763521924866238931242667891824144837417930182795568266350106089057582247279343879109054938294954480391400937097881753501702427756200345858658261584739049215157231127736170504609611800289411062517841988079659944881348116149095601866693152083652849954465435076415255177057684332817775195626740068187614338480400399613627346956486091403438208555422566329585626935591361964909746668497842514726449048161365899568610514392533784835515655396609763476752300659300076941144307696588186452659262553458628741301632778634574355935447015522768901215468846804466437124599590123923415508103506720410794614887917174926916705924591154945366909653546151593747587732719937269459140384660203653119354620833021936776697750607710675944029732639810635957790154190161272402378363886614094651793637935865228777181381127967719069641014636809124796497799649428868499614776298728173004018629393726467347459749489972269703218103152854130993541636196565833635265513112795077441974740244472406662086167777166796814469846899043683818621454052947126772618568567930171791651068361711115592461904176105363978587466379559999832644557964741710536693443089551221075312812403547731077750373900097112028088097576541440099627708244781791022166198869799251065930016552457393837004460949777200935873035577484719235180195247384942024608604317388246428516202203556090284574159065237427674174592969891738125706562001869771786302537217982776365657834838591257851521635171235649051262789670286677097462808004600316466646224083402734556241970285841709415186081785549237417378446045040554161745359632388480996035949140791206672880675798998078866377208108752061419127265542611204417877939082222085776481179688088881888711164722140401806654699177420101008891267433221527974888680290260255346373414286731055775422358318398784783981736146611537993383923993007346573081808089778015709410059438371563155797279367918455009047213216517260640962349611126395089260390945198513358685811117649344437818729094378707061236854626097240302027072217708542301081587805690654442551222179640682059790158796245414512701581217744233479669986577384072899256389632850249298748136175032628534585498875139724993216590202369934388669819867067431173641392124089347573875558004942611144733727179988741856914965753814388115374215773950379420297839888118612296173385719192558946044708571467384039816195527862701794984480500387627799950536247548232940135190942712289972709792057495769934899406170426121346567319837062331520943246868187367534818574176031168584685111262030701137234401580325129649774687556076801388440643797409509084813562971691958881793999399007548914054699889024327367675718950807897393297512510961558599656822649715750667783951306838140686082879599202264671600778277006371440532726433838773981885372620498865082443518625947375726259592999357152728991198887420695633807323300918461741573030455029948894661744445634112511927853715198654746315287009483359549686672073199351495959895575076387144098027546813428427633318078867009984069222048077027542015234394367086720900492666941313305058565530411376904404812658986598697819985190835545960718811940890745446544870237405390093931020201198202230595596614706822762608795701350683533951356637002572551905191637031521657800981775186923134863553967443446177281377104052529383235643500902110749445943055908760054197402039956933672168646804785031385127542634199842801129275214710194935280804554638107279069286810475474270137654536436540666858146123978206794353816996256697850414481995968384367055169823343765039922493555634921108204842503149420674268386988664663173669898393869287375525618429168582893216243618658356675797614391976711764428660821254255996114863897645428080485726368086078203304000396654055460644163128965961138956813571419347686310689394102259829868477309184144388953199013225560147272889963223338402169309958406020594950644054011238406280211908458953691567074988363213219427973403311168242577129583987848980867917618449261489381232146784906776503002063042618468306833687664930430241427383254562863003548186677652549880365970627165801486020082470330463503545831859090426968144734887211446982545859783572212153930074566258043871441995414465575704466518464349575344690910303433565942252384597968527556017639289854006431332599644666564918126256639499357502979223102940700881437222142881879678186070319094388709325518305780570708538970392474648406225681858364603862663102417877905567371699094469843430194424021694853891417964677483606142262505419810165283084857121184304703736664808930242346895662795545268285341092771595385213561200141836528273027297396608148465562633308394092395278804859744065194110388997376097547357941213005668716688388630914685687929767328521896740908291845855533419274260799998153641599792005238122629526408546696636176509856608128221495940200226661827261982659593064782760373154950781141442188246363898221428872761469773680057988485308048008178081668732962438254787899835649716976389083633955956732384332193104992515352075497568467926331605508593016134010828848892112133464656593892167606515150615495314315299471933755419710780712278751441710565713467001516376134099526888042249298298852310091418288413278550444481776623431067939961628920653117275907867536867175383624012286222984974026054627247500144216830995175274472781645995631600048858977498330337424359385608885508687376126520231838577603184258167950919077955659901878718967225220986083598539207514128736349721750895060952328478177683872008115797993943542066731538526487173543725104814817293259472761979050302042739898575521081461710162322064010085983367350638006809586588040403284449246899926313465899915438534282973984393396472758239857121947008882383371656413917847313480914041911644257844461194823853697738774614964815722367252681592090869766096980588073449356878934838396999990394370012472688997303868279697487605937591145317229545495522938380727521152115557346269723864967003011632209432525821497327581707332922864434545104403337966736792460096748029842120352127095575662970328700113225968706828492384090037952289094872824494621642832262552716968430357078042799790743689000052408449468318113278662563444415867498172459356170942589748943035043850211148454297588800656732425331222960939230535107655364147143227755925299630995810461704194819064769930578075793605195210499861710716914840187412520723467521010409833525161594012402565260773461776975977129106278644211432723270585981326339613325116713862500955291457395085970577056390362171068974017837124340386652648780612389299476484640981084788192620664077989778208410470643877902049342908286389483438278964991821974598038771976442022201952974179988427704779507543072622600338543302084078907376849376786800722114169728703788732889110808113345602184039193250039495256051151547576432505454330223560278770829898591003807659818152069884114118600894658882539807572753847936161494256617716787990537455544110443140356652409453116137438403215626849455579876864161718915058439686073561210056488683332310516049027695969972882976809547739654416020521893686389677751462660826308230416055921578159601351028955432583234348715126557638723001319556307675073955272686818757555732738508378248273868402859215275970251461441391073092203808614319132123514258581927202461139193130185749588683359800285853519984801893811532714691446591038935361466737954165462921742804539814675495660072388335402439843701069081763921573729029134876335250709497225732086685585532982528196367808034203310441681021408535175480471574859210953045475527785982822000188571736874123710446697147157880846892819785008267409438333524042822684992344120639410774637664705875923199269455085285649404741412053340283799418056407946983072940441625938576267022845594565596913430111759603918469557008093449223098850144317156840287166712640755748908438402967181412394611364090267275640594991563901161908535164136485391392726536335864717471843538246512643943238701654306930989432448583955714761653859258555272020592973152930091984137484158439263543376854303209933517073198829563673793848599401801291897765143331624769191872107898447968067274332620150792423556996935230449844037300166334344586099655882399372025714995425472322691521110493484545171231569480193666453811123539411837272968019286856490162300656895696309677961833892389058158921575972429192800915304634561926117431282527445539266658673503893051048991156965758809112008470942283183098904052083809005649826037864127978615676042593015376041981617544795748395264821981773141503038932007396926046309464169505947826667176240890299432073877380909037498640179775227561380997884871239551690387819435587807139303488943363367091981086166070440526336872919463290720888687452004217048797825290498456054517835320463776032903065295576805049024730066949284755292499053654020988859133713667540081852868282754952007254906143000649010537757841894679804310364274483455261214160533595657795364327612021303141442265134900328019237506405379573116256027101337627238515939503514048903267968025395022180654069616255402437029091498849512396515629199937435493366312505822070659371094886717535340351710471063418319979338472650004837351426121043317810399811871165662029730925545506130309976838697141760215008223516908187643600621372580514075766752255018510444591343653209044740060558307405025043334449954777587448104447712844012564712978442946658541911318802541960320021978622199684756452427374143159193314717980190933252333190584079066524364512498986865502853782932720090035332590969794542059439477712754406516608783732557681594909933782715792396380584307560137501289490828317147126091858272198393618243167162399136565869249722052655448686071447213830171867678250737914255505873536055027168348863334648609731477861751092663721851469972676888662200452805965415877514296989453743159515800408131986428048249753558262031633557072771691623965020929283230217922858168666227234244570139596018034650327051026679042080895221098067682909890901374958834643994910548292217356822078783752343633700473514533295909025410232435923124669640744102636881925610724692808056683209348632292558997816198780125881887685549816838727667239685370892480928773796466849471479302670420931076519993865466791415239175768833284401779681786088628762478394280011693120745099170733843832552331729136346364023483785973197068739912012323264145076895256286083077316087952520505162214644624396653215118630002663558069027351076114694416581032723004805698545225785887903559495118457677319817207503578290317172589487178410764698150028556216895954161353943981312319160548410904718714932697788773387399043945061508896162878879329680179655854167234324775965353255407178913466379296808244203694969144147044437237762488847196397461266592420898610721890557553033921268282237274960262925716586482253330359204197216424706805864569870947413767039374897947763014183069716788725508267819340838138476443278230918930853457089196534474891375956437953630101604546438583202145848534566984885586364184008575037059325574758447390100392526668045186100829005333710543196340101865740110362382921802290134715022928421377392640099781345938768584224231699593512800194576306206037861590335953985124874318652268409836393945680051122944568262355844024533464690970260686114458588538066447623653898398334632633844170996979684634461872228171579869222603626794820758372680732696132006775472660856195888010690633476269414167365800167206333876862641435054184959126587003892260124986674176502108457043365306787809133301273445403462716285886029668652015961029657786841031179260814057886211338175426183900391863540966448561801288023270377298733990491997009516985912271287868927290075637716713331721250573619723867388427944654697539773591733359767680121787727631148036558892447332970855103711795229334131387335701941992900944767373065678650659235922650694646101499477278797940493188172119526451489790285434601091981260267150963794517630852086474213978038697202812663734609663629006195818086655546098944075789294707094100773052467111907446994090712961537223168464758328058082632314837675344976019177472841970146762518077286924176575964946335044499654517882225571848440113726124409845380921844311961016652917898750803389523019509213788395868639332620493751240922685078126058908390080844108201263944285221846856139889466959577058271469807774189895475912814582844183700082772089953759586624489342476169450891590531807745089425664588461971342663004334195375872034869582376055171667443562176333733234954151005597585319468618250036814568420421711353234682977634541280095318344825539027948788159715848329964470966712955203748211332404461742399904902718291702498341178809378329175776224236049563511213349355431321002448622804371803652494205149022339146459353419061633579294478206374338031721493779531813205066353939157408646903452508266305298808464548587693208063278479876503844091042306625635002964246840084439772784138631426264687817194433779521673945313965138582960457317445268070410154166632018855099097004280398709929074085755102762473776470537243762787245499776104460602071863589731489842349535222423677892278266530899467609406710381059014706715753864182350294871660800801774785572688087110385126217780089253256683983251393228730619009030010800063147997765885944351300029635568967249091837491875520347460074918277757174255800132455412524029140530374149044790277513428684885204843790060057992151346483145744471237555353840073663253395081653491216333511878736912148493047430837065359067726822343141506768378325273403619638884623423527202161938933903885576886071948355268449120800971395116219596427746221611155207143889076018287595777145766363414700299261039739766637602678775842904385803917940352848160910789811760761526551762152352847701011347871621740192708201050113049572756537986524289206656386308814702205567418400698814446830023996508176287517807185303415475491904326531265050459817999705274333446298292221267117002158233209906147553273315208678576174056494197600375187062693078698279838408806442821407806007234787168697754125260886731461559656815436885753304406307228439217642990557289893344595244823886689554264657353017652432337853342149386853038294295940322691409360946736847715778335884915271956726785166510500727981284714549062923019043905106177296845990222829472168561596344526068386601251697435683611551263840437575567041131825951973748018206612080437266212307976946139569629778660948993604365705301320913641680042874657694639175998448651917418717159418503339377398764557716857858873409004323096260689080730938877223535586354014791621815604952646470728664364216052735534577744176836706253372612371667739359995021884762049435720115291392935386459776702126072066120285007859723058052942998809843782628461848063977441077264654254518648910574785447968000273402953319075184503998712095956092801054886160775796687979531651300957413211285535133230863967025857264558279518304078657210066324445750255771548737782783807670462353246987300854640324965090371996522401466760007918540957542165915743044070109831297963110687158561645905405236275105695852257421311209953443999873118986290504209763727515241807332695755791962063643986996723142544639267870107234243600549235000992199201527594305322299725322663206893045302651029025472800972382749287388819144012658383147345664553966882167724663197422439771448823549489628962139448466748384284899653721377558299846115225868337764476136587608177820248777383076321352666576798105212164053084579707610631696934197337394410657049897946175214725488307152282032975433663984711360653037460984985335357398006982277429751562103757156902436156196884458106138824413657442228458472838973389192853997567478655416869082384193213446532165837255127358053580430087265612059005952969872311589514660920398729941073714249867385666450613277050773962719492905671799070444896972219512144591290577473089418970490244409394690968921425716800307668989941444383180033293418311296656006713876204009221621321052280108652181242999639148988315116200128193748513631787929174958373816235921447741834002436764568418491645691520900047023486838900360663949097585703755387641934550063883547424389154118287133928785159290832682384867129247803249808680708827235840445285519554301291471000499208131939541958300253157712639510639894341704384224168009524576042495507034768041769986043550556264224404714570316915402799883341203320094525724998881995377769877231906970479940892580955377010397204884770298323456532436846150681079672229467246125884773476625986027436887945056154757498461401334614615074856807808601864259272062265731868868305335251998978276892774570205436005223031074112889326973051317742655334929299072042774103880878803817804601039769529522151017691673341921974238073544252828912498693368360026159371151868985893245194780144460803406968788038640055980565780083600252773968787520182633183377698370686389752772601974516759087547177754153558181010510442725601887039381745813971988665406566946902933078836704409005592139746639181410849531500689185638395715733336987419780502668119069473695926253088861133511740858134805575973756780029290912755258773240524334990924962372676019521465392510149043534126655819881537479065261261446000239192901358313403516122287401246206258806491159584406793156055499179372633027050713183498137310837763994781341670780469617221854068017376038180777296731245935089130491387320723054121239703798826352990590344328798627321149124700975893453393360720763148804604936779263060316653238438508333994748749263670798349943704743208211905768437815272340791538129130934249685177485946730711858642850028431388532887300481948493667640343801453656604375208323752286316108420653706299603680995684438536421010137223509093994668929495757031919260771221451469794096297927692755113110966254330068145363132113897462173912939020444937842590074955780947306235152742115589660923167500183966314211808291693842225029961804457504981200869599174420973002264498923512827644410793873836969500485180627997621924541763587158917861781368501688655838293773178279514450616052621635465891669118805104621710050479267843730078486567692475277029152956698475109685099642354478760110341919465547138235163183539784598915672672986765851370624524685099257739022281782037298021869395683665259221095888628527315933513916776482412545363088125996851593967108428918894029632088736234763526854715819662653916816542671588773851667840988756278899641761950175529343308354788908789052621979848156155507122205788034913315640140133129045968846482612689876143218269288634241386823618495796578639094826995029370433260429703648292204041449172525399277255201797017362109434669208102949272819075614425704974558406693028333209587171443097471367689380883404052927277626887973947776097766240563679468224548002788721118207115644510083850798255280514829006722619283617319022108841177028962150084661446824283652697115744317213651072531787420986078949162171791783617562948133812555922753319679555957775616125776377637822458937133322356065984078843048270760763317362418272258071637900866600377725520172386889543192757147721833629639090197733671051187581996913650222225261476819153473502437387978549971854588308121577963313564798982978120795510447871988951058136870369391502639095676552900140214130474292987680142213179263364001724241315084849202836971608798384479586554130708372932530010844345968057363921865263402461011774407576226129533835955027209805473824463403400182613448581455144361726717565755030652743602782175955485672757534762263489315775362233820805088284965002027959868979849445488950879380333065192191316992622877460615518587091480626018637818944318849989499335404704646712216562223353396026201576817965190334877106100308368939502086536789400006440998702770717400872378158106296063126115273872945350318228294204560672720947265635524730654605876072155144333715450292569912005016013257908702961362216105130692800718141922242442464257879665690268169196631199702946743978523700952934500600440667288401041978328374631465313497836743488983831225412886676116482924373502605072622015381999523029558540510188423479852451510932253789093439938657470295024693075545825256000565480061457933341801285817242929797621027926272319401789151925310076597837908253558599343725149885093463293041732841557433340055870484265091837117558210878501827838787380737566052508516453547071471155346356432950542315243972874190462891537255225856650375558195179602516153919346528603289082798683343204968323881391101221645802752993150374107243152376466625857186995350808458090619559327510637789888621994434103661930374828455402528482233798726827834017409174008907840109857390332194488869854710474886740117642763624126753296486049594437820534838779213328858326971306781942952824123096764224227842513086243326305531678663125514745565268826932141342112172026013566802243514674104611214218389802053408830143029983947264635167364462552405203453218412055093205821590881225353508153494617255138959008835378541413766672678737030437826604857756175940866392333717991268434047707037571726867800777306612058942533060645630677378062798453017488862080834768235803646717324302310708576313422126630584012806518470289082080884292449194781428602760545155642326673445638204827944687511765909913611413938847135739887531174227660844873132823540279178405326623082003737731735944057767831626093679220612518380482994985375407800039081371245584611029889280247372322926520916255440923646803406563472500776211924993863732941125462296308127283305569938924447618817614927989532972699596830117726725113392469546449284756789689981542326759795092372343523697782719118496404330000981541938367060798529487580389534735029461451924578771978964270310591683783694879860640361066032586349768626150756345831092991902276329221316726463284327910706575570455499588307937698048034388427825551820121506447637241966189348901680508911505163814103247128857127912238595509478782613584806835151236747465445313247155538309020440453061667163660991162757591611989061228509449158908653404176921673994514823228234772375435978837657751542939044789063639327546415884250665071134402831485704396548620487676873234187074908452009988253843171809664813286851592329505105589152470012822276879480131649312135917289989359998520791972399711483584061918374577491198374430128323192753679675449091623293239388830550802631957701098289694997085183565945562779985951569577900731881595051025910283274577034380174223789613140481533796965187227702834849359867770365174965180525750432143196411169264450807980673692215158634954009845157677840623345723901243344430924972796128599128701847426967241687497483403230223970517764669360149443944710565652439492690700269110134173264835517146200982235132006848384348923937695475025193601624225486030521229145970664631215021418127065611258850313410467764040570552509438050010139417435577329925442178167649087752627855784489576627129192432300634028753461570903661621329048625307320979958439981766465869128486569478209460882905678356569359357910430587395091150779704313847202634150953070970312505406561442163714896187127841755283657751721156917375952990512482930310974850257146508161733141210120717187789722242240167288605732610276384371324720059260184932031251068299593141966097791519183234829620346308176630398467151682931609499773146029211813676955862512264570015716786820618122498392306097741865811250539899522815958356820329211780199590417544097371920698256572882958053565823429840005810780321075137601621175241535129834101844740432113934657125675471489744860063971620748258956909919194493943200068697579173039558543577512396455837738016095340213022753419984966222981687835125266322256523430194647050277544684009235764593491905321747743645377155850351723942108897106793871580838960679617390622683100855078425864384523664163616440484932513065154174871016370693976661355247795740894746067339056325178591085732357571710123960229640666866925996667996159329357607587879110509324373256882602123692313658620338595282156733202282490373182366202022736256682149625156157141525435480795835472198725031567789728839823409982239273616768722175474069635202600768410013926304029909544537038886704797001248974247176804174590597869568551711885881024090011071923266379814048475762278352462112371872023325152607377182524948819360634589243690525987574894647178098578620539572469225428187475975498214635575715108967037792901279479265854514541968760832444076754106250254252089774406502930331804394513675586058391348299863865895427004769134699741555250503761179856431908494359006096872810029855474973873917399130689081845512228966236789052253162591943561164353833743135988589450226367530623813150790149229039307409042937614969981263807118416053781564987208603697485702640142803173664350188126937937528199771411960881277628940320836635346977737329733366791453629957400579665621832289714067578315398573690239514660918654800966285109781578914484394072764193834404872268449367114513245989565713594309295093388234985607351259146246626497305268960333804560269869088725943825204955573407407741240458083280380795731902883411863986415963557037159057281721801531608973087849763874640772802309858818607395748228547979519021890460267411067369981506608636669298906455343362949628043725221944672386813289557817683168327629016992097222458092801313502980876566257880974584494024523635951158441946473733095847158437135553036919420831103091135725968210739713626897683797751885448964923639618094603846962604242258559514189004840163981284323365157249291291780106162057807438113396374556407513783048206280577862804360220227049125325814108707857249013370397041280020593882532945956236388575301106208751511362363551403774474751001938550827129067903281717513820609793351239345993615444897735568082108634878336325998901338572431990812921605691434595850372661578796848900687059802761287919211364811982573968609318622019425230368342885649460477403636375555946732894212562265381785785776292358721229502246514581527968602881457350072517796106586854801149540606193479320816812260647745107621717005390722154539494544153681379639801803917335390222644312918376556556794455045942310553759018004026083112059074495968433292047520793879163554429143028928431152532749559980879002929727463210641354609014827372365831301008816862239042532751392920480552968025858597296822441921312994818472714519303047540459410796254873049620760879654303628546839356247070267012918503239273684376552774279594541614690714576428152172380339232998859899478885548375651924108026303092266899100181688562612223589519777539369828918401620811358022582753129467064471539916350941232076152127371950310819457705619258835562273475543188901263882892881196935627345516885200913553849845917033388712801371756675541786200042448247257254197637991623511719515428033713718469997511013406106228329119518132447020515681293644281296307547877791001991741559201878184507584247870341002508944944956476597745359372620063558728381657043477467661762483466594611973761325617531328072675793052472890658364826189419139328668970445583362424541822787383312722039571982985671348521386607084411515881343938398259988273825978505166662365235965679747949949790303680523880812635916508590582432140306319072416059290386790595410518626271938039484874479674185385760847711725212352474212660049607837870562081769013446205054290615243042151024760817604537621867931307623084948196126449972519434642896333108872880643560412829276420517556754137698662873395151358006266654651892107911505828072040007999161429166769730796050166197686133617184904190604404560781753943610459113210723322087727640036505977420843035099256150970003311781314401485365511210565366424812571304178461267599587211308205445133766783459986008706299372967096493858782665398523867509877152928584025560374945195420992418957745634732412280277549093809482968557276603338539582858550463527246363245345768735000439947600035936867234272952814374873456610012161931531049964706459878238360866453176025229236627999597710709600124830068705229048168213160453586813765127816657889277207540175291646652696063124044056010290130685203474339188474765406874765631386925641629383806305627594802232532597786322226243583937626718629025055468014814136166037923091911233709936177719402722408038795759871989370300629671803104226259920448200943401246131445954714936364015705243531739465454326260865334668667370959097951494071943262564349743788438330329501535159760912036081475395178898855633158649081713088898054364886014843816693892616669560407341002024018735869892602174373561286892050780232315709270454102705894838864580497068949699740750172352007497876278826089520993869250344837066772394836008677761922604191325039147187868002798559921928013295991135370001874563496381535567858007412950142845509653386553378692245607689122003249125760555172752752512276060417434902869643048130755061789186107527384707502127266487516937444619195441930811040063815523529292523820648897340287110081951637805136310528106429822448337126729009978961526523834336173253318415427610764844644534558630191312287637752458175762217607001543138224376461541262993915583340440436770303434738096948125330960885977911862854154429504093930028407300093956980790418108041460569605327693299771053510188331672137391131114487665183533353355045653211423586963022255062035476950451496608411174810457294965995330828914599625160657066959545671205721368984421119426541909693922430622347619472316368253540702902149537557048383853935146422064926943584012497296575313806960349495175051082586795952927323678542972346861347111654943073924897674729429799117651111686570546952957857097901982055292648630743891690252267399594708262517174917820079783933288118695555802640083842760978770970957564125844521096129509449906649125498231797393773064105734913007406547315341096923098029476884378721774176498085586408384883560063040670531987316190898292282304026407534265086250822191365738313947938423164230445352952646746671748881321558872702744900595403130601087853556865339815705009889579099155197973220468549119852466941583302879363080010941884144622903538128501482840849377737873067789861520830939204274449940780615623473980327582636794197934484510108881654023062730970245141774611912886528684550751243500302760756101461507247949314447956002894793983837518187444216083798169497206989496862037729487914721258277486386458227038582318239541037294422325605141084752107293853908825529384144303964658901843939493660540567591705864289275424925411937967874246568238380791548290536040808554130125051650983704558883829175672171636303060031505189740021661360570968413414678413058978052796610598056659510676100833239938151765536108072675505385147724687018877137449699550431771787825988792166049991614170575286179829693556835695886597576534212618795642841827930725493981001309643579575814632775698513909645118391591113891459872932048900438450972739824083227884014370410230878292363409802097210503595010410204985543939102511408325224846874851248388789957182148943326736838157152826482003528398903394217829142825166508277636178829736993475705611779999524958193148693188406992426487954744749590531144623538323514115939950934300144032941207850761393160907532940804800090144757850389121515354380362792613982536537086675723712274121664660480349465408761154426225326092694850336702530107866626705560473813748606093990103727221714371900265372362817067131598674280892915409857091901395365393925784077332975001545277996209909520527684716600867310604165155652163207016901085199483939984768682813710939435702971390873477719134383979087205871307539566169525947801720911568547579419377091011145270913579393236785096959710077534608710925194785800510660729195316086059476714029399227132300631572659375065568131815387736829783505460519406226876884138317098497853689304862528379235389598634378375519741485047501313272576033705357105689941603961095584057050262814567953320748701818066625896803227453008021124586507932689375498235425046103564088044959147268663865012117927105861109440664762204104921732180350502194144599845972147096440714743957375244822484786596691196935785996796954585290769872537643743106660815945113411528103588134328015260365635183955298334710085338913732808319064212692232824718905491323397111742822154675706933938895182883405223094628979221760912608718821878081898367777669970329411424266226953788917799462467878877280914685558910429827005216241008403968917750855316991536421949766564505382873112726345167805819863559157608492271701710494365444522169119333417645938885611494987735908603078938236260772108256973189116825833792072064161201387579484197579241007795442279971912446090292750011669790839851732430093004174220443028837584604286901722459121909669102614712629775395786036326831545563921786364569686021410498956316288458583994293042515161092251275019498100770592174486561025169658619241640801735372679222334676297971511884186413974475250809331348187399359214995904352765999266916304057788383916028710028235904301708566620596565691125574363223870764407659310393814671597403235772254805471047821280946747394760315139784562840675848956436835789334621112854735691716541036742029391971529524571150833587250171340320258928927542119270690363431705738250748730025010388614922905772390533197803469421261918582110543785657419769994869775608746356494613838315621692993093533684343156861730181783849958710037301690742191056282702515576098315850751709237924855194010264841415678864950235695548025033928053830196399936255015155844328853044189032246503170802922316115625820025583507129630068285073199816491798857731241999713575433566315182050801845765573132704100829710194926524398681420557443392555182616468040138793788918404060380317878911390059696543916293930485437934336882208514987425924931131331213212214249884183305414943994540812108726504445213175257364813282212713034449987663379924327314733926824818143541937175327056630045867058985305296378828624226596360346944231555901867413516499146626328766199754976981571530477379165594897077517345661156551574831353040399691493664040252026115317746006436797514549006923941649420343486017821527966840136151855781801430442558736953452189499508515903534445901526109304470607540221105054477457667361647733772359038610458603029783621468039350991282765705598872173776405790558044346113226652659057257735455042958325088888153786044086768671485102388107234594395573477361837509045977608234778609534803994224476720176008572191196962188268061031453399570220067502874619514465360144791401464541858752762045201841940938338909908735839686914442584590751801367579508256117160566908751695749691643643652988496144538952180517695976196112233451691335557363070640372734013139437705454171145848245253846593942206545674106986205299923870885273324720149168087360797851895644207098973212490929570645329912447956388171148084949892700092699072198909990481288729010355328641309893415927111170320464066553770122078487523601198789010028702981797328088572153318991853386263482983794368828864864339821573074070903150600388408312371289694375505846391320321775920909651053247452944727240123795020985235459082131917226487006816270451587660401029367886419775237073701935745998302815884249981069091843591834403782646480056431685792834451654169643719668160821128075564342769620748864927105203219966834854806180673307377832970285857931852021591992591859663154622002774678558760587864909092931827009401592351678182920135705165702063952554082366225484548217107646235391428441821739854114737552353528648453124965547276533646410232901233836333384008849260631698661146315890308072279242504344058260751638475480649153291870581218662774977440711264192608376921920898939599898533326954710059115547865688520578895746176936073748449918753547653726727588353975081851112263877352233038297145271133044801884750527004676225391198784243474578266500216874480916471550859262694544387051783229160329074666297480189321006320549969360304479565313422592095317829044448332562982528346269198626921509643024044150895493623772408683046327326563206308946294054232662560194482482515344165615568110300777146325428358396217735057189939951389876593630991907826030609347184857375122990823258081155086193821661717978748957399612236181872468384126447395106390222189818130800149347413389138600465709562683480782141652716566781599605110692806793102244678661899905326018874253858226007646834629157102304750033715641542195948917813963448208839874120512358215233035030074537813094227445589236010812111808152046810979554910982974397820366567005549534584162969957872091602047093784851841074436871650853268124435689213326010096202100193890606686951716357785266273647596104632071793417729483447448185985424830817966207849144867263946500001779679657132441664793927844504518393682615839882423218172278824858747345861693151655151480239164774067425143326979078142945366585392495253432736771531035982074778777899570552949410822776712525465179890449284146656495610991360170920385742755142073006612597769026385283822239813678182824244001221639561071351801726068714079040013664690609654412426417342007750091383620854770626750695622194494498610015233143465895717309200567769942307275080059881364058009043551812725899753173918961242623761525886028652570317027060065357387544851185574487880572277514748349116974147131348575703690654963389595381816619831504996852931276331355726571864107928484380726590093606218355184856744589244099064191750217750413701266503111122402148569264963398975409949951714481211392047798173592442928810635283424566199228367759944333240231587117538633910251671056851275730056765400265482568523115958907589488865617367540036395608034209067249061516006374372870528883981499538808890402476117245528660967856405372150668151094229612702384319013935775891172953876920318262787545199600913276000407010898002069214724635131548298491209547996857819505928059314095245932576842119062481870210034473727902862503708580054370761811867796459296582653991582595393295813055980063482301165056479360546504807728714396754399009779101182223855180264091096815861114162065674260867288098367313835966803622217558840197910880988894483254937549948651257834084979802965866725341088254222382130237845585263525777769047654661825201009921854999887437245516405800685565639301584364306045194270202728383306887739661807527935084882815793022744715593956734652022548479308847068095555155136351640384769130359761563984943054371108213550689157103034264297951915327088892862814808760491528793997846923741495018468947330369514862365625314647788353681422027189453276195181681899185681423735521338542755772450050761750755190101294607739550153376570014411060401129984035990953335033542800221023108312843231295442927239116001485116971783533167377039540984836755082131306044270551804104389785830228644904743898939263750830480306451930494648990505719111131214964859629237772646560295785626715984200111337620816657302906219287398478846780233802771475632761220978845976405992707628184546123847842293885908341724200722222094079946947384237589045663630312521644119180526857889399837745701184053297213262534575182168290521872219359096093561057311542509050630519625766246352782413673671821111002965365167388374758998675825288148975458661510290433798987474714433150155388695136077809119591869110239638362329896392769862438602236814671002558279549015287565702053741993896840699582836075837180165832674293575313782279345923760354859527325976023550078496393336068096027733198808924052146582818973209057622087136043918488217985289550759263031631076029501868669066842461073562255295019963228405251465591667096337934907681798891823859464722809260411384606731350867626765760549421813255635608036971959458974093939741296475609467798821955719230911028857596639007501202133720686391290689427019707761866359260489765030822682360497071990474332861367313280670711816158542695108570321189548269100359895171261853304581685440657121079048762152414893652312481721587457308958053751294755066574271072060679349364305511184201378657275926059510227001435683086805476283084763500938722490743191226836129342886424851338290490278544505009682492590315104048309514056344651319014274347065532694863278060281604479956251014161140025964734696750429441527646012903798999211237332173201724886696040176369004310300819453347450802150060828907526044654880604867981442653195789493177826326785835997234122080946693355781956728807690104540796243256673834432843251954529508674871006048537190037900036514228073408233366651541396779336013517270980819508751116854624390232468034223957641032606159515411171234237729771267316051355010057463527857047405093762437821969857345931386623880723902511287096215878774510182507814478484559002945608917184735988332018772242331136970661559616824125363478104796172257314353555817524736755786333464672860495914892379522019507742036882397852363853046113847828331677565708829680595971729793682061499551743418985746252984663969765214219250876209148103458368325915607696225681454889415143785857790745117564005293763738797540434503916610941547717839592830071890210327948399606116420430688383043502505902447013281334917097263445323219154667403968170969316675502314763074957374916945989977874296943180029787505157915022577199406102390936801994155527065566926136720871730911974752142273624772203363324961557064501446161703467010705730847949262545915253661459653953904850983369670508611514134317080057957127072191132757007384740127182903004448985114733944511923953654645958788426781467885322346629481245269270795688648706987420309664641288446043341340333287048418951999448130626222489288857790290929910839448795144300388624149010543956319873559162544843129879781558832868776402839585695177855983325531545476767565381588278095448812692446538145908664632208977840722020944778410993888507585129184306758929163580627962856676631500584584279221986886174596085133717748865112177034696038773594367505038235810962270007692833243590100473307269678276852950273808505863139102251008264923351773692055197282718239292776967752129311146526378697314120481064166948614852089210541607641920507650139773002067064051689356363963893476591662655208075969346124787416435099115398756579020532568662874280746623955296209967289538267647553189170938967873599647282346172473719483894553436607873308760120236477540143584687078265165449669784438150188435474427445768589848520821629453964030253139959704505345823576747180583418950484890561837176921824978182194005883531744348731523280112751911757082018519389102785337539058727593636836607537133953074804841937912866703178331904292413390649919265803244233034997093299918411803992324248568079557068394686948502294271773914112127599954520003642382397929006933855437725072840210687447261372595622601836403881308486045529208673052085196291140516597142860464864290991262000861166550065306599867063138989535359648159560625883609111037927681347818970847224718124182067808931144666764028087082271421555707704844430953001518513429271826360257766538617457728013756325800752386092901352791339341478554427755760581998167524433082372259699442706285433169115486594335074697093416499270124365232700730893640085228583431326283079217824655446689582682695354715105513543589147884733817233510953958715370426064353102427566946244242830246801611122593039699021572027610966548862859651742032966390144740816744774149303727199161382915857665582576938037152131416146143928746446582111035404941660178653945418069363909545224382633250595412656692378225634538273675513483298770044974888034160252624016590975698264459287816910543702641875037092829478591085432955227581768036352327642426959741493920338603063572733700551435132955887389660408568810743203044352306149570544923464196681304094218234193229879040026223458998679018719971053226647835012111648453638674586400185671497257451009199936029341655449600339690905764675328093179752423484670195159898648071939702105443482924917962619686676337412266882737255098484338973913191036366840736223141999626731870080917211287512257177622556192770356899907382514417994306520970655835786948886457461024247648537172638205525325596462982533326392868656067891333982351786924188884405537125834398736600423647782140494474551685517409061429584322152122461070785329895069354124324452408635275187148898164225325416254407183191523024188361074878678688327421254658948457065330784199874737151629725967598338768270831062847534751385235738241684853851911477501881833693481913894191427614897444883285889530552660362981847744455311313118889982380220847421654479604152324645410192119972044645992894089836379431721451126777838928381487683423954929262335971874455504527451906922237611203167079541541596375751509527032506924116877632603794578792364207685421888100498641129010948126181465590036006163138697480940820329534946307092189560769041093490079862363677782316145692973071392771950828577656220453155465551139018987457108246671215717482012643434394248269179405225377307040936250383506674630342505598526076376497003705442084928959839375216290647138986751018251229057679673530783905901484158979191888421668420472532295072132883284826300290376356547869213141711799405192169438920525540365294041865401585683454720189785774338681251167305906128443402640866020924895971838504077704507324647005647590653582112442922969494977587666185324660506140189605179761201037762233413481680540269588057986717915615650955153980674932476597665755425215621677675741533650915974636378168390389128596194211509805384125134373000916122673429490313932610504874308429726111589552201112334895762773593388278226144328487857387200473728001672660614531593159501962021950034460771696978985576484083429996595639371415070578064018719342951375699090539509273401729698286195809776168519573133277332102638995857102822545860858757328428712658441892752217616807742052181591865991583651771024005623767630686275617720343999026785193321029959851163090849146423675250532364014654750815902616889708576015310308316132585351351421359518168702793965846536586930418306098167103670274292776161170173730006802061487724104235479747972124163512752290940798229398071053715607817334295178224613160073081853213963075683639918538474512482184655024193426141198519283554283644505766258493104426990571316261280437310276996909894282213316346110857568197635810354142721371322002047589092493051276471932650830948794393639397739067380684612013934985665558366925755852089616096735586133549000383903765165172390657804230013052119969552808730546916120727713960220286517864358576800285056111929438111865642491917834109066991817636569340037511913640407839069948180883017691163045410993061682765373898208004317581627847332066603387990396124110144461692969861959999158103924886348665676612086848233754100798426712123464874328839487338762391567619211293856905818213866325346214464232897525192987654526091905547803204047885153992537564007759775239182652095682499250483442554084827983096959625764129386345858141020820842173464329216324713555433880559316105405309231792864752489326803918966748721760202031681068684667133202018395171703208919343334814819189518999361492505969585497696380663687093079439203673520232238185366073239864635044351454263451981376502086523803733457951373529880357304057944070329330666958246031917033246231066946143969105176944931311635420488854913458805093250746811417865002972948309337949576127325052191275743244742184179421951633574509163623729998184424322434986765400557848677113401784878641166599227752136256106057452763063610073299427696633277858709623158759452621306678706702318910558664678238009454911802769642300913143481095469459124901430702746485969300442600567115687737082872940793166206190372060228320542689497173795831945919084842651389770596212706696264769700061677108052415303235106584187772523970225490990830317480617430786357660127887501427929978142462924287994255684550407854897365015243607699138189955138042858558295050185940378530437540343821860345409285638694338089486048709087754133009097652877278440293956684027085692810731880197838148954182055369095377129939729383767891331542205322502742776627529704852125281930223377078886547625563033883813249745174894203054229166350213433286902641913914760689308714906102755286000770310180129935507722731572684991612618326784240519808671113822247683970574746376559904464385198624871617509261890179422153651120388416479903173933876830583413352090720397550807125953568417290674502132232391301542183665609429523549140722013583009001027548075616300893608707953748783779627411458984234735114927662713224523576310688005367738550682340362361763419521002515003374850423556864804870328940974587714213745420466784328953649314026341904575959313015387393402280251727494400536971755820567882528179127095900991365917446178377049297616190525138008818213361251058869478251902743232012616113553596141476795994841428417827884154833223295691020438909179866975774131034643829574217316650780661179833084914755394666364895851707663700537087897193331624522773723887234273937563390464353017771760680470450402752566817496176731832355656192063345232744621970738507878571658149195529772551332555088456793927515652702373348580953592214116945229145608253686387468513549012546273192762463029565357206026379876949125842788908592298670028755766061736509124857192151164620706564266732924057511732438435982397705810104715121813429313398215443393797445889954703560236131186476366471014848392533786498471839357906821214282333375075585636366036767756719165919444797293440432642416751118962855127528068692726906641181644183411144889972456300026144657807131977045494396431596934702067031091597826974194846557074767764819636435583501859643761919766933558014436524043837836680228442672475094846715968906504815455217527953931766582271321157026568197797047538508894656580876459798309822069360746624936584488736134712265216207772733530867121755359273841442845422693251818114069556783112510516905770712271859605494733546671055016031131974269144509827150543864476291708509421060932889687515169183172308910777300474325632639528945730113396964911046243064670169657518593719475642104857052154162993768993131064344846815506113589021413751568646002813887860915208408642365785139640024167286438377250127011529349632304585931109897603527190336833907985071355741842656813128458266126950035248660689569763608495371863720968110049864819610683944100021069910436895241036323824175778822095506365903884789362865526583052216610166610095060494549453938606590922713951458157441001277076725566888126407007487357303053103226872282698427703296103919175310760097295321105859045041099109429393316486400639029628246802897008961091316379671213306034775276504539653904992505001544384730344370456549625293182152806170412492596613858080890728534352918087007002386170059573160442568617726850722132544865739841469742197634493684563194615886393547487449000576995386140702987112763398910183214773411326653051238394582689150555087083720908161405914078481401329186720071473252733886091524324645088766442387774982635936164293268433286919709877258712125996270661632598782331396522784763613771014927137822071796963687430089472839377564965561840905619736323159895680018862348557301806572850610815425383166713019146231019637332205759574328500031532086855949011306363848079858517274328245628646503998987449093597897282934549473469535452100010178436818245923265242949775554816605334471465666302551723112431433069699498060026165136103816916110975986600493145363642986573507557107525623672565719112866820524075566595148136768390471006920837542378143360197496453928521210511285097049043187492427068180173172008792946191245433131745577376341410589257232385574035817923054679642063336119676540993826186353077382218534035285190793901209896950600537291279868036659049156902751838217282074565769723505384542620026658995776825003723312068981740007101672548532386019419685220022610569183356138976118190523079103047747665216343865893220433474204569937131997430269801416592066612093297047101784374902722689772208742057207218267127888951350735040625599793084783306008725588635015925268242154352187776178617647462070247361250370114827651906878245382293241285469293914207612148127011651075679327946899625288067874961074666954872393280687039412664391739929148608629115199941123064120345206741830299049973817744598240893443826969269334085202638731459312553244819756719778212650459175920033204663315200747033125210997099833973688847709099209726640171657612571976573964859238541846977991657327637221853834173937886276439016990104302314317701304694754293181342625605578476534384583472447878085489087665132712490172700025127266405728696156019322463383732098507524276127988542328619563970827648667760595653585934240502890888387284544800060024112637014426835263218097600753056120430640784522250387188771462324741328477018069083832894429637501771255401812407739470780990132378347786077433920558457615527050732482304287746486463281054532196517592298416432354809742475853931841645576035886449389394998408806336221226044491200950168001853221485133185350199959282358278626420850603030459812637995816363047845502353691373330968077609989585027143492928186909960155764027945298586029192081799838028330515271524956354882321833732796437393271440283794268002719209892690373444691356224028975545174442764904790307384883905188842570667476653635986129445609048720792710491350540537598458483877914461109661596224283658831059581393212070399770117693466542784903641053337784869209248116385185997778914168657405033265531430840430286693462835047106992675573996237059163454252575923486187206575599524772226955334139092483100963565525950358219799788713801688550254160521800787194938106790751430912750621428535441554911182354464175298715550989795195402047320012582863209043630624681852002137994328261161890308784433111627084461746880535412963983559772643703436675079475821949387089606466010121750668715363345327829486129485243731719044186129357713110165161106232865173433031737460240528051536270857571961682008157202925046548802937527953838188641323016685002708986368147642146858184100471002865624799953719616939446035987739673318824535277882171631411793598211402635998791109151326156335610199300897157629982153934521848499468126846505869161268698568964537988093057248234271832242240964487613416667399159110761054390773512956722204984978715234869814688080741161975529598639804000151390771091529684520557773145685382800320229767390705014308880456710064348174992504832051606514648792636971807433148907823209733126168257248013128894761408051314561611180914668396203944057160085783374635134064114691741752449303245599310192944878157783335901396461732501340016820815500831257201804078372493621524275141942222686276877931840462519726251408939470751245204713131539621771425071936055462660090927783309996845844590574285433780591973551530846004936914160372398339308928321706541735813435890760008573151457406975132033163507035499903465363549236820205273267626904697246051631512347787473731316246014168082274586770488317889545498838574583705003423342940127012659484462678197110487106884572059161282945725549082066511077172794029988156998861558666622032367516763908843214653139472416980729137681988590161625540815052616526850433824843242684805852961807421756649178697319275299034129200417368333488015060778702422789862709722438669331136252155939046471985518567502116878301369283194101872862982394552911304933044067339101838537978767326187124952631598652354859710727193723942021535205494230289861160949140717423552074267732650075965428044002561274401217082449634091895520314802995328753164159696163380187334972816188458272104148785685768135203731965553704664922285595032252929275910331891038052624676251848523358771397054371765981352620761973487457654283134714813966201112673201726113869059273762254518478992877736965411040143133212696806015040357475995866127139270278805307863723955754750557015960206806861602648910926197300658529373067883701629935583850184070601273906587553094274570102931710340710876726284355439450549129195321946432397468436137635571262638994413274516164462697077447920897089665884162048415234256506474332912465709640332218535216549794072789291724041280728503706234034622478896524941901542853278150782871052501618114198191537125332791202480716318294274087812283429163651466018273612215434138803170260439446576291457080694241108142617204302987695215573724010131635801857589345065552059343201270066993800258700829635488007860874437786574597976092454642496304207798367648032236520504914325256055325880899919748108736659426896385642716009909084775931213151471247830027523148949088349218930245115307550200622099099870314340409539734288841473720729741138066409032501806636512138040133788723856138460657327123270140653066693385699634821447790971414349958039021900457266740674204508915655112689632001369247090419602872662005213818229476162358561084850181688082575477493697664283092073341586947384608850717131636300683177917034835723687134032245498708473084439872913680639773921395097190378425215910676212735673940227412664163597463461636927846474675013439686049693235421032193427974598729000787450451983135741887194185987379980745993851737920177548455090451360554284700983436854747327163676776333078669285470778736705286503520372776240163594979204994270949520464204872096126205145571018615718199219108566709998191897227974815378713105157600028925290334564188951119489951400091898826833784111679742619989219944381503231071831660772687889685537361025306474244967251183257711827985878198705287325004685621718103003823790555237403195840951345245542442721786372100157053889142934910256763172329625107934622461872248473042409042070357467002471211388792921291426143017298620877420416337729004779608816165339628874887144415266407091287316107959139698298145320512437978121907120381287673356458756478378469023557191161934956381028241974491627521046261766767704189119973989832092883426963958144737719431254452593524127879646142862434069935180443128870632165085547516388687191805883493681294508342775655748795600403488364699077812521059761415854360564043506034680118155210915106834246067956153101751882724317018253347989869450097767357494009950417229692708028898692883108415771138642412023297880341574193864990009324671883923469166570737632352208100720884395179965315553936589989290011259965286488322956696849868978776812814535376756037397036811718704769248577514191712716011107909673081888784381274790499084318403997661539214146740037177935811491159560912281184567947621076531472843710239531287156785891436240016672913349738998358452061302872324379077108536907029433251705035848013570452990430992344643535555939949536304087086512735925496074538326325754199256266710384205414839899053801380983087055162032962812424657902263306638100241509673252718802738952139462224123409071884219066913419518659246184569627069165349599727841550320431881901030290116086410985759187688132949286692815697273975549253545480715717001499878647705648184898956193444281730858622472969145882527682729800640473633653547995477782420826176480502109252726017229419992753699759139039813936454222596180201717701520704208698979836944540488086008897360128296005801977656524762993426372534780008122580728283077525395144696633647589210426920526754766095221808087113256951944754516769453176755281397798887990351888162844313815471988091143498400078950313042716660488080260305619005969204281445763151687880561306085517913536664383135760894424212370802749957430571604639480206418256741862697375445638975889331846592811239976017004043617061301639797570902187435165751084228752484499398059099586189681310165741840031682925068437405360367054238281807541385841410706692680213316485060322520349068919868781899318271065209950391127767497165079821540282001648472994586376540629823410127011594937238699521754454264006428935178999773323083031022151920626961869669221087165667091892131605699680129452862786098109379799774829629732841469116314245559833581276565776814457113886629528505208129519640128047161714676153281660107657682119911508366588516512689657322742842666553106555274757155813360851446748551354732038099829606289669247875853960410885920666831883972077075328580432245875029006973856135847459487919113240405811195220929845932603347387451843011748298132221837575492067016159214198223694001452717190184266864530955582609730757560583481470926668674153199265945483920384220675054200449180497157524642941481502904396850987530343248214209652566752770775028780894001240631031269932289249392676550418686393035639795766106245355576967541640877367308502055674970262545620388297543200996717696696467261457638750754080558835157827753329299146191360066178198101750484047514276186241862306197498709047253675173926035234438236041553977855309324021947365151531125636460989889204311018988283084843526457694235150269617228717760382450608248813285488522729100202572487936715307759309701941017651172320453848910018987868062854058967228176847872202650684162430760003413983491447926925215700423573299609245515181595508735779809354624651570346059593805023106368092570873445138825813424302656630056891942740178952881783911133247532410354549042414308607494084533554704541890355410001157454559654393692079837493040608701609537518509220177688776851043270551587262869024291751181721657569429282569894991811846209109235805008091291351834575531402067210496106112027464093120313882972842781791812462494480463433163801560520242345768920166565770867933032516641854610498446119927313334734001948152919484160533515922991911000936411491301285387421352455569874943407995629189132430422310861772652445096182586430229295209767520306559162915689935317325450512948714473260649090116296368191186647916992571181056403279661894497533989380923282810270798388377307974364141095152996468509409644143451714310208634886545489004203647512469805488190747105013058450328333897460882613590889323684343903865265713748191537408655572768296301112417946369842738484530137479339035173365751669840730132507321826703351589956652187726461785634113150863196732835964601847467902701924490883697849824869473594328624148101670785168903759944487574508596982955906890679912889045964347472497461144949602401398108661617012279950170086573676970231190616826705488367171429347914064665297515109236468512566867024894756713965683145326945744294390675181100760671703405317622330830812947064935477503975771959772233289385483125133654767161923740832563393767632475341583705562985930691788794825742322316644403517371076821351781427885632740656294209706247284876549442930446259666758555688434109302426426450625072196777723491796297124686087825995082661149158378524149690941475162176421897676753690101876755151779560963248807768218589440499084495676664189242184004723143268931898528189986897246874765294375966595948417391719985165852525387209993726308959365975974529092327654648361634797082542215094118071751145144462534215972758240101626482360898159917969766698471370769736623112291590254857162632750543929652328268526688762206231099408039874991378875350281693692383477022710782665423068672326101612376214655301361078679803772231824297984120495906060459692051372672817937590156259077720309871449060108254227158030656300449497589317931711375969925113517245412630599166739474132091124238626897163325839940826483785418096541308197274111718332665947371953013533635831936838842416953388522364750734353061315770694359653347862496407192898321143008448858375883224968672977970036360961910073430746775556775187543887381486426739883690391277245120649440107055740691787881121300516213833274267757151499075800142738249816997447537273553986307353079443284148705486386168555558904026942736217059161519334591094789328693672181403717713180404911317170430357252985816817745526725923967150259812149514283697966138596913319785703200851947416191420143383841555414264492402465031780155842494201507124734030812550861801075393028682011795641611087743651011970289065530212257398792230378789582244721292749058926684094095503369001903719008742476336344898912861870220263736698436470191738301563333930102980778156825633419972959650515514335979037002267512060706766495897111944077878727048285678305568463533197745367207284660835605158436795436263943973266387941034329469506823365253589369771423626384608221033642953462634031377826319763446866494246533642093689462351731922454517273268693120793762692156730528632685800282069672556045874172737194839200663539428744519944054784991397207334538409946011510960357722649741169913343400256087416804661832840291147797783831305279107348122310347819961989381289070191308905458693987708728981202679920001892690896881296674741940472371376675811696305926376390262878704817512987077197963079813552423853983287806218683646930561632503839452051187704867815592691766396586175261284069040052065416261502481656141918095455821867101672909384213616946939021542186884713551979230442372509538166869364511251652516512299435915327366710644848296142740256872295862496291172588824298672988016555870587930452945647249394061621300369185335019704447559585259006475369534961582820707289618946383164940999157647373638931214044327004449770051297100769065460302496624808605860441084624892739477777540013870984693163064342743268489004919564575165901697978118320699815815765163699257074643191744534284528761601132711134261436701552493662603509541804760974198072352727445707613761468826413751879310825726771268149111379668748059360053630964059032656578465064015930911714235737294352177719596944087487716188362793356232768633501587667785116256833764778098631425271926117428324936413749780496923094599429781432058804395462621324205130024129765743455963938612245305165114750503594786537185300617365156610374560364663439685407313175091628237653896896130525239887520468712802914875567657489962875162335967221694083202646787222891003103682383634235687729584459845116245804693740465201232839954915320888547546593376807602501656150901267502635599135183036605434888165630473447758795447137778311309346953311886748648728502101783726092061729422662884555347360890130357648709425618903521700312446363518491692674298623431227689262937019104384180155838739080713490035630351777229609098998140304913724928743057347908421832941477229336978868944111824550218967313127216678515584702700746004906426833939173334217669125243190396361943624488856297052286107896681073282596710214895853413625530937106999952069591618886604696928564112420684772221190411546915170589840401172348623802362591187669584758867138391285716861024379937627294953103555804583272567709456166976784879275956274996850285803224885182293200321081224198462444448513602612542710749450043614267082309117452573691344932505682299692772484412828733686753597398489611682426670547853138174932259902794059050014148931865775263303340738272425783825307552156604936554783389108036081540146040455015279053244174363421194673811996571311448099856430756293175657572387788460300900229014012734821421961434388930804040009067179368806226150517148668942612305969930055061740845511286251739975247854755163408361538943896852489823123508990124477392219320320348124681056004438513004627517449596184059674194126030677095733874644700405306123414059327648031959364168698618937402652762551903178959048107870493130211010661013926805285626727159648347195822332909883099923454792053169155427735647166079957026785450750796288838224156928949921237501138978198647833176037248176529632178856021303181566834590081096066459754223830464586674297949515385945999592865918102434543010773084492930564084905975224424773693307778002933829562439741678531369327385984349335792699956003683307595308140815369557824737290929212066327200141947270299289523551414111355923296536226416104443574853413667541897114981192619349361736202885928025816399891411453381837924820366608424903731685277223537699328025258685984609406100251770591824654751232892646944813218844832032166179909469996927738986657245534330769896091273300478095388422122955311563168767259702702427298333518453198822813907567168385294361938094391984627102269746866717828301776791794102670003493137504591646842705255796272715455560206339991931232881160240344466180180382492057492016502917850775476315322572212202557728890817728702604612422295601222552969424008380152440823876693788313946218135204360627418719021813900142181281514985620678617365578466057455434506265440214702935614645400686850084092581558642597644819692685259406697154408555690747532087060245347438269396904680505947330603550109280787224219797205749272211542757926367343587149823081648968158293143863168355280684418300922113849057775710959959271162580222806446439790363189953611667771124961517275598784718238484583768997397642007456892006464168017475403377384252634235276564645010254618388171997681730047125647768758171084949055762456344783886621507120550658861818508263079596109465399537016038612824819537668216325788972906973439324900678737590175384793472364475750330214841628387840845658811914880697326994963649044708868579226017205435553278992089352035362436445105407736143708102783880196374095330154992581442854606774171564579645420599672166287093278952493552122633350220095472632102781556065190353678136413974543271848056777680896902996984559954152843338419252752079591182097172279849860864132558281729524822608494809577578214429466801416640024221455555664314829061159725435775877513227013202468082914971711514398431614088654373813238162038222074293026793949056801659157886927879070387808884068076475082446400086475083283325328057021803832880580571685705308921410990353058618357672242431360784629998200737321186976732957837800283467317317775925372138914919476187629591483459474128650595184742379283142719723412866894590287500170710648730554429207201228532307379435910209268839604164116471611187025123130428129323575038953819122929083029017560987460182022855515661939046414024407031247375985371330759387151770605817411490872764883004495849753250701202165131880412927890253181094857068298388719481095028510504036242346464412982569822099970349780575501660300920278888047663765496662221207649884962783402321434206253431180199586965294575099437142940241205607706053056494646840897583023931545542237842977796282390404068179634476116564285696768126145671111517804631326377409397263690081437777631878480835331871074801558822377802648602156293990788183523962104890417295816369392969319166456397771400919065375842053806972970039158343258174460235335535988439811765645842827953850296144794508136963301708310249243526715677673224134419665720177017452691181929377807862324974083319344760146068243138512005824058365571712612222320969647678221590981345426229838737095589445816491434026690481913490505014085908640254681526977527406827964211560111897723635024466531877316333976780190729752809010006634193846161517006156786200878231431216565726752035632209539417373105075175218911192861921414862647757989307712940748261520483332168446253969837108910361189275981316331509306445702590752661085695822190253092726897612086882286922397897585299222829138932892200339434996628388816416380445276009841664973885270153847107828388953937394518317273154148759876953263409218154160376506510502334668398811878850517568073864874273447589883631491708506784546661751683621364085423469775135279089768264673330090183382523706261681156914980575933590043048813213922289893564085095283097654415489249499110730235812709577857801483933216946475181267433882388673478516211175824780742765184766490033001429531662281790430670257789201704345749609487956850036644353263967408063783355289559682599201666411060050987381731602880199312625350171647232035602260897446163776619382939511019253604963788796749362766670779229656418143649041743309957598764224987718985757244453514814588210731763525549155300634831871503110437122680272217153365568280795207174710271500017672431793131893897039410402241473333223708142289040425365980852435066671413549819809568103020380233930669551018289684627468777365617681425565942992944807246308393708867442566943730668244163015295972879224124572269948173355552683572876979453742104479926042190398688235225520614316055626412548842302987719734547635810630759109182442491612555151198748875642999426883425615249517887959990585529213320398598423462897842027876868583297996692367248660424149787091683563383435671782665011454993755234228830279844372241108220906904602994745609739260299494692042900655261952437285627316374366615804846401339611489934820154659745223309242845129759606302427049532413421887907932324957054093269936764901084860536500606395089359859139332482604961095166724592501962551854663130791494794540797144175688690704225663378575746886695114460056292049466102810220452245424970579166463213104707464110287084534755035137502233925085347822311095531812148973609964387281670503349779503904943463155175045963192393942471223104476595748975955205141266388912700274608287850030055867412833772186318658428717934810279549806631585213958119480868196957954696788622031219829624759161823639948562272051188256032214418662401598704916569422444042638904910838104647877426958845487472916343381670611529799530758218399817126199323654742545777054273337523391202843843309641544824571078236204509649817074739410842639341020798569197275986229687667363414731586672475574948081618993447274217678638600065760024867852594498366746970500947962404952094409519983880299806057419726083958975821532109365305990109336096375293703782871122166569949545135511385042492923682938085511851652109041707096550849005539146150332189359107687271786871355773679547984137308496550269363554061967742281258132847248769245642226431199285625223867347621682461569724506202011565262201142527931404093850593279682200527412384046791981312850220863487946188794900298102654415892959238967522814296294834344475493537857848557991061896312825459715476899288986182186340737537419190722650080591930732774171176635577671089924323734671280599567274239077992153596327988764392243429076083488430971010321806369190797921412972561093100652438468115087691287814496080356950660623295419216821295179116221629764789704316901920941484659636730224490553702029660834483904255515073051485646703960371663266508654720461142715896328139808755416829522529398282853135647352513498814226624081353637971359893870343919487557910672941406483690731713596923023096748439701530041258765954162847090412500978232618969305352153778598517371678549309920860068987359291974037284244623375918048114303153626390358328923718186918129878585155574850161466402933833415689830198677699968286766307202579360933633422589668032059599993167931795329453975053607242388517877669465641288232505852138673724960902749831388320087884690050531622386437663763604646632682939489840961781379564912187796349092590636753288087005813432679369729281332101003016382558324496122318395020373637434405060514250122479299912174169164720553907737949388293857578732875376002810565807747971800706349601062691230686568484146248522671508834709712166670939369375087126658500052674822699178810886011213496425383610230927348683668833272740726491766961711304151345866182872626234154396318354624742487766002031698296141971924799706081082204416126605484518963681475101340657880468720050437008122324146692617002638285194626823959679425873360676950705784259127716221999264134498486445089401443670844146399224248055975636188538586967911152506151314230464678003610407061033143961272157295663422079120475442758079364747784806219724089205689703229945912215424342827565152875643289866294572089956084430738894640245948984938491335644591866602751058081308975954284484304685637365004645017679218073786889055916978146661827335848425510774948431013532605734586181599952166609857327842552175573549477829834291359805053089271650295091094116441893886522067809836944111821718625533137829817532545494204220983462497265375105385512796854559286862796224699528921094429385133867628707448942827651720845108040105598442955968840016046813634613529540651020953153155530771752221101255217393599977541875430994124793064067920368338989154453026333340803758569065871257746625897278572300457909416611296416009322057199534291527161383887026361249615327299418255683683303677360090055118288312205143949296090998921732333132113680933726735410995395656018531990907981820903143506572745040860405557400109283122912570640128078498288977226301168450384199843004541695291199711729039892454666792586936825787223071717415315849705018178643924717359095865058308977774270385483233967894799915939201231295758663749686473895892506224831701351684289057531134833867485129290838016555338594571961418978279177135310583996310368654540835715792678323709505300330367771740931373148652969069063671595832290392028783664239521870437863058160059051396139603355814778674576081224617719397347455022984259176217377606211857910439289233001362736315182528279815128225896514847165160616759754340501615072899009880385640161352374445190349693000979515603587369902320025973581026591750155415735413163717766147577577529136723681867870614917489237401782931073753971575586090211345527602946894162642722936443783956620248585493317058688246781836977444071578269091163053039452440997638618857593626671186976234685809243997359788571679880976716823111634475199740205607678984142900975955448719366410627429099165199165539290238404785705142894419095884060004609776604750096078775873502000378600017124194342468281605906926782472498718970958222116048076410411055123745921196638312040905160937687035227423583433500376916107633046234479285494023956793186585416510659426454316325201295272593717112282097375595777412127443252993729073497605091135793804254060333759639399412963600508232418302976498614628644159551687076410847946645768705243054407215556715729638542901670440065364573686943376528779366577334828124046739834836780580020146756608860411722966637725318770147064558268758157853840990028223060979783872211287264385872663156841067075647578957379384886518013626241482557250345545096610000374771801149141104155233497569958762747845809548169724556131310989485054743263687764945029761758455808846585298084973370897850868032865737139591760113179264582435768666334594710662765934853997908443762233288501952340742661349126023128732020114437780952225414599198692436203900540254370879568120191122543126189228160236585092894746830107115915217465185171795843722366211530630854382445363254652262486288286933519954344680945332057275134012067878760047370895563197204949100890269687061116818685474666699850183440002160375931925435554872419584126416655744137027148225029534427033495292026039031876788404940034145926973640490123037665586387364367494078396190348647366409405092354024652055814426045632877109961940861284917960844257358865240790783796003672127453502509782319192986142145392136471704001838108036221423523252923142608590044561015184518289693217649976861602353718877987497870893220320614263622091217728370560606287922035405846808363154343108699499728687750158001567623515650599404036051350759327317104982032284586259125041736577839665020183236859026567285261191898249920664131100715555506175626464446485715132523390042242886407713336149802855654185108980460893488881900648358468166725125639615512358874235376604642952831238815269535015651284921482645205798436567126035768555630333392567696244609533071353916841443167657533300274524954046576111269558337949768680123989066279313200742269745813454192001351816735963257791101447624582499891797445133957744698681410123201532475611030531107721404201152201829827030075825018484740269122700070707943345165817652907994639251087269185334523132150690903641745278015046495203157948257254724880037852706277689198640283990334971445382679239173837600924849710200308443881650624577951358329687917799604277852377301298559080921642121330556595724209903877108341364032961392932103724990938748593431894895747799364538991419146416172924872444115896633537167431575175625122151941624797544640809106295479655510484813321102844684766353373010765906882392527465767746877753137154188998987785336682857818132716806386355377289158750842541438838549012488107615424913842671545251582868356038337816260671458856288855344625796379273797005147399531046452219702160313333064294650090043273114664934177006482317268855554636163269175338987992910830769334235398458449753893899203181748081936016547877169827592921504832292092235102893538323018516218306138871128758780499093915816405098265789169654472890848034244001498705686093433011001992441411536077347342053176493351244041053573180713397058550452204128977286625421356898275862176537673680535337649630880772168576666768481519319410066484630876818864526626302293835714523465815580364551334111510347430663689272302881871616697283518644124649688828954324714001631370969232802542307466047971615143230926087059853610886263596869594179311616926840172536370818882952952949773534593972826357622430678545284507013419283066917454584936859020484002064473627764381689348194764540432952355732887677736587847907202493669147522739807941744651589564238786127950619329062578215778591354274099834481472192787865983693790237781636259880034703186393984504938619420416473295354124791687798613038521574732827427050088457199861371324647453296926497948562628096271027231128437907127309075119905636413867936429498921046163534671375743027971672016753732274623237780624918823503979062569939524018175519303780295351925609556139848749082470480392105228969481929105461884773845020989980228585262593863752997028481827053314127922050986991781426683052818237010574427294748470529150498987544442653398840295045621630637906572033311634639353741929653399226105237502496396961379754869057588724332128025835801680912037964205789446258073068258414085983850916050350644208020405073276017137228086954602063814013288639210838670154331249847807926424068685347705828814626782858131172996747701080814538050058800474240331487146974615688478949373899891135043654879306612903360215365371405245047776572722898767620431140729851315256392651893023880603330306292083460531846855698100115021821676405900949405655233356363581560763162659493417913954193681974519917823887242426224181035831740424482299174274594252632317844865838225444984197446925454561788624452140488481877677145043187993321724380599306132464239053285345312200524478674433753246326624001680417114029983635121286598390969660239104213199445755795891565393004287998614106226138955796382285736630274806629830479898511165903901796895686530231925138372287800985418081843207943938630048846118397187137777159706090885628411240705457938478662603560863661177837558956213504508994751054082521215446182251451540826842595304071846451217358419590968189227143974129884428959675426281883133064483409224683343577132445716993136432090417023122662481685533276318923528300378879918455663236914376106933781721425183267056911970704670754485955332473242338059915328882020028967183967382589546841260344352589168179341189346196880578240001065580339290052655723564622656990432410458453388520848570512855833600332960702640204231008283060247788209776551940724234882838183363250409542700130896466203426733714884273178462155823885299438780697005672829467661832849989288831038076609423853239067733353841025270639720674611988667761761134004148702281620814029657236083190140775000271556179149051556555691852475494505021629246707032366964009745355687455635806279219872877059498588349593080081563776875389778244749445808667039630472357226145909662197979302993905901252878647386668690142337607367422578371363195716259547459467030067483608469381937475494121669348673874761930400270651145331733103725107060372727051782374903890327889315752327342946742276233343526016116010063664921487093677234014846307953858706920940694460199025852761718199921226383028502373894983454988312903696899639799435711006314185662386867486363620175070809130531263059429315904493732078783873983328641588559869632496335160930401698118046697191028132002347981370053034586585894404557740374572553217298661795000515354375423238209031960295780347835210202072283173685478334935188317289696595730755606238176987517401211753504816767969251555815099524414026330095833675448612903741285772067713040530161779674335064997511838198154668084815195900762633586850627333433380551196760922529568425682406433194661819307575710310590277086692667015220424852053126836304132150684594646005943308397954411298288297335336836545453779494495757146554218401756095966995769830075105731745366173666884710185867974822378510033088921896140568933066336379008793334738544475320164074693445453615044365441128464019037265329528508043098874581706886494139819446279551646527902822712308112871323398150385472437034547767727874138294840499199731130897535591625088155851525952405728916458160601866122725145257794107077985224573884960926978089117235055838097773762359635534796834741695327009579032228607100197333975786271534184806353334335753299855198893637849568780953841645705725687602517878778297867913236369840669050993405194322464469958283607740441658372166993100516653375724236885146116856810678566016764720402102624608847400506809115675488680237239559656394231383531877182932278496207407214905397259838694660676628132672376229614820792021036324569001347853689863245264018251748244171706861614590066791293543998846063428534119209238703722929597469998156311186960215462579827499082610391980335682662158684909650310924611898207636229466409882176981577453121754701415435564097261435805209948989382808812779326854533760825590276143387303170920437052418908672068244183903109656706173636030474065207822622219015712946339736288130367864289583060214267023794342119822696215095883813072029829630283577226518214531068248497796107578363758610652930849720259747679326294918648040179486382523471948081169513871217183565003911831736668525533918472866720712317744524569157068489735429693491008462363387414669834117847505777061047718021945185128219503522570506186488110771687909973846801313827615866352782091985052956824031818573634179928676603660251989078660985988233414562730403695549101639134894634637955876111831533135246229856990347405991701672546133715656366357158669447515183652028564487917634868901553240785744224734393440103625483342937219107303265288713633162155674298069558320929687275192071631835996762863997012011270638271457034422679626423154547960718216974389383890566381011764542524015726160719027448902686749675759759808808381842868352125937870227052680955454233390626797777429967853290515328015797337458898796025980368132542229846007860005338926533201429200180842267550509240573616046405081630272188433734614572448536797606934569023053714887624148209870711347601907072976376928437840562470751542364246893326416125340267304819534161130637481548543326899911478796191496273970732696706435913871937760224626325664607045327682843619151181113110543695946854666261673094421234526806244871070895186193087440747696792445444322627574257889964561874822621325405762828026598398058004189184106970784284018149071485937566081715781689525360478213474353207597539534957193402493596549760053206980044891477419306682781466988756275796713652696475643017369814302114443271677321809639509073959390932979126296992700932957389135919159975594577449337893416270502280923673554056190849926177045409339212176583680900221456003767853257459249143954341125538410823300818534757999175571188737840023054762743252493421667816207936105756726919856290943536528663801588258162872422993787210006592920466651044044294187087743711113215853120499275203665361591245220155078622214934750719957352238334785802999886900968797278982120565556120090371912146254844687177617171636263124954533088418759123018076124356681746074198427378684071902816455509109953099362402204734674680562898912122092898977362455572953089205468166190281815968670117359429531378141336169535703527381521467779778089640713424843224557858458162066872614348278400232491216230366463143391973361707483419845477148972551097049755943592408703672304074259049074178680488182329852288665229509635225143417320029481427566611238801181500912713794055047736692128107972057092420078604741073877070783616676078817632023802503878920487233111296159291143176057238599383190812527497023246286636362692548794398510370245669943611784414076955825148024199921848314614548485589153739241639139343672482782537885263010293213288990571810179246638088197373387846516315995649279600663426035642544092206285377009192069034693748782528013667168056131705276687824782056416686762964010936190207392677044119274923056955452458922227084689720113013343241166009072499935251270939509600179954826533562542821147380081064788810350595430750246197969965111157203865375173652830792981812988014261723148610634038415861170288557563194652772846306574390714697201968841107796177647851731762107191908832740009697888752298896419123738897655818206509903126130032048018670347813734242048347131527913907158265126741248527527755120738013304440669287970225379558867782097337061380114763859370457870165315912517163438825469349525388149561580209787293034033338551776442235104691249709486983971204557028399148897841105736300453955400677423389945600236188971278427816649238927481618654513183106063912080887765019320621261881406416031126695318572133521500785531981247216835257421203229226267771257795879153309337514461771127907559091349372875170748050842607886795872048777963792741870891319768911224160209770262363334508928302658598053243772436325625849227994231872206704441148480877842445994542332401210102557291687896990815173729594943197065273471478224343430375413081732958753260969284010149015024915905759019273295928021067157585803389755686527887046387037456441742523347320386485217297865540486064014406195523392897252669812610551688580035035864056836460660872823863401980738058593206670525567011748352999681169091696144341440495845046741165861750197373315891714893032359340907256981401888091072228424795484161366289506952602688115341147915871985988981916288525596497730741046845975848520248220904762213287480584820062156156221362892679467465411396038773246313486025273404848523666555099504969618813228169165693845818654857240878809999453504345994711723116357124158818832298127985431095672657227013117670064111024743911065023223353504475012220084023565890625600658435523682343040013761706517771883337867495858938385645516750824956097866941202772631565614026117909133229033919736866476288861755878508844397288144270015150968467583467917837997393034220534971203998500527597717836482418920776518046973681917559938750871792506520319890650943961783991303283702833638455398652291239311902404383280679608412712981626455571006685078736796203386132096202321848700758197444704783210973899055234314618226601097061044488402378536707995088702588495697034965015163699215918010094176031803611117690391755031089489104712110116856908672915651671555616840081243212686555900207276269111017559209743764953323655578434629564691242506221661893618214433668539205014181006384803351098870958974980943972228980908367223238302808499778199019570447349572778569314319810287437875986229089845349794543184357140942001889875199324278072112352296073887970703510031615077723606104125343837642384819512981314321854502523767655435789614536365250298622443545091224413159307045583839316325207164771494658436472914593916590556015855557612387274635379222952911283536147129463669316989867417915441501855929345867778077209849927942446984152864687359114229651886440764883342101275671839629240454242946258939752352954532241948451694230160825046999632223984273504494211373367516920467742074054473920086625725414398273255225457856538989378166694053564235623642086702847295549720812567386237359723713144515442320762533852851282141752547727940054586633549727773579360948653529657142131197979136386838950720695080792788317359141915623650245156874881765077371713058799887280121243274662674219234739564140743643084836635493754478357030449416694432251649720088069853575293059523703059119374652214074897534400959852169634545687846618687152138416266545273885357655871615186419800119362521234050490557648233645212228093827236707123622456885289954210320516808160341473527665382112565329802503892911802287875626987851297223142729302036259557221271273924876341949045991223720188795488473778551254688795391190914597462454973583578007268370794359076914557722416348036774500912874867755935742801176643273985627713830567980687500615902020353310500144899946616814600979786842310127016966524630780658151019894831739458563407970120641568616561951470725757577522800555347091940546266143613674484287843226320023970284918878404638169848313343310008016674997565845214781852270224607353118970784093797771554480296740915817244392637808067065347540843444999556034068256976389891717014643443770167857797993624547677218385729998543536161656665120873770048543385329644885263345777218146929147563235287536586981059670541473283588725499812994058305704869726971927961666819393106761696973667585776361376635392252861932959756665442701796513374762761921892023761115434031123877188477679887825716385645403642966693452144167978783384746049976789640019051846827019186189730930901070036378488337898100657326215381708257454354391078021342923697025703848139578503849757154102400698037183968125309302438232800754501280047026537939082905271414780098217333731434913165461601650286418661821525425404846667606282636596408651964517794219866985980819908656155029339300521458171450496594190635121860398454937333819280282347363710835033830604775565099618237261677615112356269191245242293333296166701738108826542295017672950743608785837372524202512318135220879071179629521526447820927049368447648292300239657449076701631394258873328684115484111808846473381005939192022557810258841623764988731468583528456400789570662092733090988537726695408337952943538016622583205922508050020957447044111098086707460445547187880486200664873046728053593120345882584178662499172996900016561120324491625822794935664568228104161526332251537284910442319706866723304723697757372362592845927267736653973597962722092534392283402742631643182521125957934513913719230408150305475228032223279816911764952725120069720200469867228676044604390843666107689025950190186807698189198512437851587846772446763334566051454597202421865819680700363074995914691010443155197223206995452726854182335681589572606794240705771671114063961774078280886230685342985134878157505865631443261723064312809913049739811989851871621074593617910984557078552098225224102921780286631551314087703112138326978446947252516431906620714632442486236373873744509387709794779816237947646135204973824030299011310772990826792205179237383635111156679223412190637670024302222265021297965870190354821003666761854675268258244429543673165935588513699156105233225220507795980646830774648415363623691962050462777845899099520774021790899147667738026188019530309565894081879240217831887101899095476092255693626827641585144525436773047101112602915061298565004236792853946062193768405738649263908276854139471222771119982512707903450719550479028995124580479125955017397238295161391901614032975499204502627079007830232164915378061615439600121273570040104819432378161921963810852896754948940381878290774298575639284158859711081674547911202940399941721210964036486667995076120773114260156161390344603658119767045879415259580937052174631270347715846092941792531477751585013879837561189251259769430637919586369902631324547777264411512734545824213729537707834318976510969123403315890252838774877083612236403030496968040210978186173712603858378134346258229760203229244551170329757776879804749991958396267711030169867197819104093066400380874062184826692727100825220029374055769733455024498764848023971347919115347078607478217347623380949925554238096798803420858731340307449445789931479798860787978184348859814598421216519732017860341442510597440923783043333455184705609205689383190445491706746428786421964195207550882202373910024985022701838678788630616143081234208123835852259043997295067720175119597477424657823959071117404614416981353135283860180973775178469857356970866537175673523996358335663912929197807742728440977061243665284566503613488616847861112636468678773589884393958626044294353417358966973714297333189186332913656661445575033820101705698019642633606030002562702466623695793869633690605969472610847612667619228816385718052137696507179003708406462417390840275471031924729788587538604624012727292793556672788690111251857183337598855116421534506170735113513743016214256911167624743393082051965478096427486901389959355018593051942958594830583600994577126726595210253344124418033002310375942742367124865415646080105343394225275311466505445431372102947047649866709818905989848341246963353918774971064721538768315689020092438485258552338083276925944980435819259299267733314824748326830047570317790592981502159223950756488647514721012996823092151938989373069060273246550549131594738439832582549873367397385102742126913426876846132279020675787689054698316254134497321118601272434711593670271003308652270711887075100432570485450222094511204086506736552716541083977655138546167259971686124932050796434875178252673844830298166597529255844511245280870548640215338488057252957459575021667812493711409307550798059327788643198126410043117720307426160904841608930336405386414193509665263672070652610652633600585894911466141358815831750501823741727148127990528418545546598297560877365877383951606802552427308546938154159801289029609268819967196581683164698389938050415628786715749064797310957566687932476904757768161983511180901465323436042041710376951529262068775659014260926556811006610441736026391295719029899774277211481203268578423125349856391842071860239947018543314286180786148005972345234669184064515839407453197719479883598045091223495873868351295595710896996327449153910358258834720797596775962450798674936907555424062768360957217692681216576295780952512916170214786967327601886165084936381961191885291412198683611496439504989718155658128480975710307297126288553171767481555105120998240877686137235381824331712416644981181631993740695643665111320207904303088662816772143194381293754736568996532131460381136140793080651540567049121980820050669837701727600926014257180956656553055964189949337743040138742997808431620997851497495481409236267471696004639761405117123807898984045017721844344619184894670674188250896599711531926214137227229175787899545062520984522186843662786879267154085338468317311705555119974777032437803499347061366703701287159570207983741481972224553359469093966505439471128343401325082871156732126726287437847720140677414682148319253226913981915755118401323587969334357231674974016840701320925541981721111210729728037203733736888575818867127905035686031422381813304443949524075244904209009184560636543330449899556361053326718778046298465813699230511804215518464301957239049495879942138077291759449623021818835842044215292796336609013218766221479683139902689115155363737962994513028716978445179737684533404148049801342308327400216745975301864911486376404781623130111195517210115363942490615145572558783270958335071446127821538681646912620971304544398906232107057632853854400631499441504905852725789094139175183217731442734862509136547256233873213440310551410075041974816586101997051252617075687084759943057156192218089100423327292873811031663140394572671350094758365502723332982566890806534063673997539296733040213521685375214227562129474647964547027011743704807999908349310170279249143311141855330106396042295901281199202683227577545145363391582988497356468861421402208889893821292967885047823054800473633477310570741350120875087939260671254205736259921404493205567909586512623456412413348975779949606501974062252513986699376231754775821201871923997312931845819165632150966946844282993103880235407461375451191602279890745643412305190344985458383866179081222532816164283549150650874059733946839969950520022519852601676220853879771152536803832855665545941221973067853365004744393046685486652416234447184997345889886138448719334246846849334621620588902945343999305351780452438044567184808468214883287002097657512629695769126745767685671864893512549235288289545603765146868612509307806366361935634081469973309368985725601905527360704682103583075650136629874427998120446672307316214632699495078181343195343153024139931418731294795904158336658564889897999731929612201932818972307675061357979928603763606840254321204063703271857609519641332427983070625266858000908902686396832079379830450027630758654475606442435584052079406936343270584528267210427695946425940037985869339109098948678454249960895869027756745097509381640896541611192494849127383209567582006539910562663007841288581893105809766196946412204830840080789402578933905253757917595610183941907660236794645711003304820412588603231206538960818772759314980538465501818415982361597510693062235567728352107511314049778416300124645313030156749844525722164327328287737794716756024672531532809313100773343141493529887182940228974963442559201337053720889898241662071853571884413043081012684641011601074554641532397368220526675144543186769927640438789472088596603925004372289166746533872326925808592572384127516011509485503318848981800643790930669924930743586598944662919350865524302508526589442803949353337305533962022054038333097189705311789985671874505590090184386394867466410193743700759103054759427002588096308630084165810108708537009864287908626154901931856308241914673035221093297236335954639886148255660014363364851453082133173786719396476126493837236062544530587465778150608980150614289566323164965948691592475322161239659860758543738434971893792248923609212776291225073750497570604018276465652473807299167414990394614786358512336359923146358613656551168095503181800488695700119133530912039089760747131602931221867625184768758282374678449644255118982531012024256872163001611745544611829076104443150083927331833542407902687109571460376133357607381957383669228561886453965608981146341916052219196056440548155942325632411413507110312502291408741342874841140738565994900482322493631069602629807279115974236023666000654131276774747938311002401785083434771909716987975878488822561132030079893620017697134124645268571435947405553694756498332719144984200361019691009919873886528989904805228566380686752004881725874822515251084806354096234138057499028911935030228836666237557537721219293831570234160015727820306789292129379247983315821526888712688457043390945376915457109538659698978694573716872555074947326413869073521152178116776542694337935581192051329582589210796192786792773656384026002862813440814621562807712196494692197031406927032301964406804040174002384262065435838931553321738370691378235714915246927157985783558117278426755218856960789924067379985103077186073390674828348009609792899121630729903168853767018622556022766454635245114669258927492975805342578840880515603282831830958963997589064553430739112932411998052016378704945463683732804508229632304044511807443295257515174676164567574399715510728237168166769202370517782204903203073380359925939437582431872842741665966466409044659591017400056350478461051676498600159840804839306277284512975116426871668260642849686971857572330614597406026041698551342752738177267959180547685664001691896728744722972965889584118768366521924139734995354545378216973087365695704409621525682981690474247193322142895395371762898811610060854608043953637677568476606450772946355330846964552132520382378326376767472110591244646218237951918263545246054994932102866098336755294588334882497208180890805488451640084452733574533454226386482809619239151308803704753521649910295083631912152888533274993574281382268625074719023740485903189942764088034444034667864109805054324116728772040832997641579905446388796064342704724231907505360710255481173819227949961317932640100807786258547446189461637811522341004961925769707452668422515110888268228340258320590183734268622479120205080541069885672601477190781669114708214775129367336569739484398478108189083946254325855692712018894651736257253712173755227670211369882097394651779962338229839928961027966729294129169077151381296523685139337765398137229688552831220407099112903304314072101180878295831476876234758161897322034445795460148353956768890185086318440679206721567271702282030827726399630460260887396739752715426276453382936176245101201245126750569818732954434130873785521614327955791022191678047325447141045304361733319145633302241054939924627315394074483951499715898975973052944901215167058880682899832076187284750177534901877138211074063366463503782371001496612666738445777297669891680781245813337769442867883429990904508368578389649954773393821339657905496643261454915781568035639253960364644635955915626100477272644693676733386322402566489515104755593243537195065048705104866051068500099653381148933263486765915942043485032226546502917028045501653884713034545241080392685184571405545838140731889162884802154977468390114608083778781045165831624359765138952671752055148861800078059050822699003509721422955766181884563731953379006293072951445914011092563911278229003835233788970107517758778000994241671200399501490033485851325587326783661577682561989620414852955743277572825609000290182818211658586508682939539394651595598289664966312535940830321813800077885162843728581582037723475994829550431810291248754918654520639343528527424603564244553431466876130858103503449219272851024130380956620852432312123810739161879937083844139272029270482247433495991363219771305260601571397560487604476853155356095287422167655315125829367392898649101285717611323202522076300023133867805894407635819864166221045483277466315847006649695145930120021421428963987298558107260410291346592944169526962256070897746651091463026051683008871090074758166214174789968093344538008310780635960923324387654274488039510135340320650404168803219885218365254878946449602870064681759034653974741083816370210021594793351135540940023901211427171872821485861290227233368644109333073761938923457451587431538492693992061247462750562898420385186314692247543369155131378815293206037053148486894214226028218094740070662609106335515288671513189319829254511306280698208232375737994512398547639895016656213475446904885801068382406916231564946224172588626647837649049963074633784589704285031383095640645506904323707769185115521065524999560046941817751022344573997592834608080638639153770353219381224715869573369386704719067416385004688634565795346130416325242853695425682200576337140116334968373982385019677692759453166079096826204995918786795186565960106865331683260657169184340746732481621587578106772032198642708681575897340505778336605585265555056135519967028659021999378328316617216135726130471355216137834410364646685461774630649464581757726540330626704661622281559644007733525340918058363828143438447587252143797179684700362103495563487212777344836605297967722147811892912572692332507947140890030879678754121561027253820748520022493958894493833992171593176558214711973452385993440562673666417586223376505845677929668395394251852833938224317740510150889735536269088325330359817975787336221052956777015449544404553356145331098798697674294342741889670946218453862359186410238740418785939663264907108418663096760569295376678119386274997650157113719556006899079757091616034233495003612450967695713228761650180002077093379872229955743108692631937319527020279380666193189716169669232250114808450294228061399879619030326845620970634892648841412695559136286567349870787472649233867527614612370303198262919340599359944806820672949596098394333661855153230441335906537113551304581852351993681606788702189265454337668072487343491935150865603338519322922372661379638195899114716833408941531713188047581180912354874050428130060575931958744076704822094016952967577266074567682637764683083739677068612989586902396096660322347534639301556696286908739027410779865283268855639364261683241439003263580798989595701499116426200376689949625054154724373689620543985834692208846444036736414054634372784202486807059051168151673521155449500808385028872914113672584867998069059631954468033557432067306563436749901936776344555885028865869323692550979883299820871921071740143805266035599227505317510563461795886378402611529785752493989800873110022613281716572221173421766553280545630785696250165189928923941925752705354142133528039047374334880394570640692556836038251502838954085904791238878455515427620294926427656455651065190257989812620550679607406676910813547534008899558001784475553901213722276645862418685957012722860825799565067322614916116629885709332396883054481138367941850232056296904071940438134679367944952499506118114719044510274981843372473506840543919969814525261428110505620487701341187401310788865086722667479087217801245526887184243411881438361430622889558463398376563036955294347222130447294274648900994163268848691354647247121634231283369494733266583819517482413325114360365235806930021738816848857314995860784247864312839833441476898224582420876952512138155195344710538257203753178441330372270061478561094415189702838524323884963050082822825823318709124982640644452185820602066464986243583620657141156326555002180681426678911365720180515379341775230212805740680431521438123668237061709321650181406898893565966523816918001882909871519993811284555017223418592625120071682875020035574738715688808413573863979026341816632075587415625289582312229022203280612682109436280412563596734461707164749933037362225793857613545750657782824838161507267330167998630300726343462872233433405667086490141354821536097643141221154779963678210499085549604413935908001004187864906663516375227690505455188046008975627158183906425665369997428642477255640955461158055552592190589215895792156892068717988113125413435824714854465676852457766267866164573348597773913416806986990325956414650521365052259302333346165000806467802883652038168645548509461722404872829108113870753383851468953549295643382378036893241946017904813480293832884168155327995266119116499568646003663543625436013737782895319659405952889644787131513567018379163535927473493744105143588308106707107203706786718699226385990763872209174361442269977890339234982160390788362316697528723370798475354846483343830574344067123033044769857104351380145666584662372080632095201480595414413920031467656224126355278963702587233129526540339645689065130570133465760112884783372354877883704129898076883343842187952914884745363135855462595926040597926869896984969993385382418898086807863533540093427138925189228148041087968201664978838529773936887856065308802685218159832826308552840921736656250491521904479813327551439316158020885490957549925179398875862062778814913190330903467791355325456156528931390872847856590832581970136347731789496002167769969878680549505798829833978028325687650303332807871526397973955831047565271783977281059543823629185342562487027450055336569747699372406066118456546062683320720500294543448459403478782037507086804402827851810744225191568728203512353919533099347416236067972082851251199588758662005487336094778903458400527493052217785694146565664648259855911437804803245559551316029965520944465495187585871764195085389641833995829844050676018827689835203084364890962159405156326067573084985496280975970866697451435730570554783362395566983101019255788089079497615942066950957547710660616497506003116139722941205392684709694046553409647224970130181220216749569836347761459941618132836069823867763823272970133918537374279254391254382475028230759162983066701706421520500550239999572562862890464778581229901904859968969903164341452590781194270996868457275476309373461711299511027992713956141969786197187385403512176480876272674274461689642856187838326591845983015042676153007753669739228793025350175872769406019662248421039152803841144036116178764296108986589056218741029353106504150071516970909961296361721230535409423637937570776087790059066618038625923564690085832414176014377312206217985264880061238555006399327921497839292595877397429236151043793283383744916222240506179698365397605420333639695010831178212683078559822371073712069698797346278043530694931867842117563201673910398592239763962554390116243422626424074130897668026176678908041273188826730123839656434192168985785316983654464171196568503271643802671455411340146939418246026922772697486630880627728246298102797957533578627371947355277796990857884973862525138296479491005737524509538902055636652880201061183225921200921590879233498342840131151087546943881090500062976678670550344265794577781761502429906635202588326117921966194285185914381606213330120413035441782272741167187943199916586251617410172990772903428968468535700013531547862198697441629830071069971173440920141551972384995710597138569279993185283925307679724520783295793956429177335475374034596453286362129274488065371480163199159066104553031265646896343413553148477447879573909807510308907062787366151359771513971243509223588803130969311697545554522888767847683113535133750579906462827879246114483385793409332653425698267231953336682970730981684944245220323806611027754026506535753929459722135967042476455389397104134364223420751212541687479875641460447998956501461385758408530908793060243429135047794368539982260131146320059945624304671759618383075600612661841951938415263311228233112586789869816166302014553179194183989923156395414399745650526911179993203271633240760969595962083619094722528847109212097290094330206825753347413787232059593126781391179064564787480796301747234409303818438023438336747198755543976863626121212844940555847114698945008161468661073784239509477091291696323467469448426780552905770402236102986545855478435258101268565007603534892742054476153885966991480862915262855159728495084836131249046635005794684024926202358711006648312578756930819428506428337936151369877601970419539323767161411221794940168833569610156062352513351935082911880713251311479049746539126090458492177304756169614142852326084798885525008729726688849158328489853906963361722631302672694292052963789697607405320066285725266560940441673756509775791212766116393395236703663371970056268429581177077469291998208708741355936312572581701658001098766143308955037954784224959073961101445301004783074098798245292094999329258079278394530436512089717979228924191089972428627761500354217826540473635704767615104297401429682895323079121007713679641615519320124618891298570050886153207110532860394546644625925047921576801770508875591760047799172607902894186370695312248620103317385491309281101092575493726328318749159658883765841049466804439786907603734049079285068437485832931093322634032461738269392422412608168326236738782235235126159194286211348025003952516775851593478420967526883061953550030959873394081596881142239990067844660681413669492671574227048553210962926402886156179860357956825160697453477351799727084920326292164035400082830489036739226479074812639344420146244561577471578121582773495261419341914710366851795388779209435010253824921531772602823839240162492927358129317353062948730248754640910583665962726553819582251813569343776863774813714640676109656465137957722081021971860802346113049384143421751370496792702932733352212713400600538561310153115035955175031645214765341301607898591372278040288770768212638628619744240165539286225103126862329193808812712227479983485984441287334559349649394481143619855693130168642223722823248142886704258852890613137512585941886447504697174868303798060607579218344383183166012110019226093341904260041577839682304013376595624091678588050257028059375361929612305314077325898000523391488332336087579239158192703903318788034085255574753047037569285289699556259711058315638785918666491526001282400108582327033459556534516863767725408272716640930041845379517473125637197927997199350194183001180407326361148720633343639532993032014719288746189868031030959562561115899477853526906585278293710888956649841338175696788698115233705365385033176769746132685048387453911714355523714072461082907097432874241619019369803633406280713372187034084574525448219327400494186223009743230429693608468802386287239008933279844745058659264552174671682378057506746764960846878352697121177243398053696173397070959775291512136502621781379076375864670085690004998380750657147539469379318200089737457378166552312432754759080930649415549114441752904765507541412124277066447303839719952714105419624272563395309925798250372308131654207511573259393740507989660621241922418275497098718492805990417284469091672228332147421582742082290686514129987160827802841425553779080503538105948361222089435916669825129240034128491942548542606056387396112458778470668666880879534158560597724891384471344315885138072054768433756848491799762935693007146477089239978001607025977259095523219623922833931934746958904371774578924996178726418931539552853122470781092764124804535535552389299584396036747776749611848468472349588367218469397644556131077100212735383705570775010148325593254396137178694739258753892323140410437698522431600490569552207346874945259474497960599710590744955829152778770709057332722418210140777216116539198608404556945904840281792072333913301411261391389304202123567896509679411010650773340536283646222119264605066745734721934250450493156880622446454951060514410690047557374077761342238773654674435253451996746002946381798343918719445905631587417597643893291386312426857393223543658088359883511885217574640156589691083865355027386794384535384620756604722328431112537794913531890039614535307276255347922056374859780071101031589059882454316152290212069686397372747219748532610386344517203602164131231416686762506370066303141259396518996765412389879183384807257565909974482229754619098707517428960101070236401008647240204706650140487780848548384945580610939801919477466441266276661735489281082995966109523029552441743847461218192605718027664127383812235792367904665334080730548662287866277566207634871989040034664290281527034783293798110234184154683318718961872763060338421293411558161397787352532914330934542439117118745309370081014632284117358763597359983194880921613749083253199572393071566876825319128130764707881744453031167425557883271362700134028800483902373229952995082756273154437659324509336373539699561834579488785206552052483917476130947449805447572871746884683089728089926490089774711024079516948889378941677441227333668103543303161941783469325158007428141571598121921554605819788716422835703454180879563280335255889611038907746081786279163707971412076956602911439096228098765827795720018444356548585357384148773614400797790861068108603292165657657433266819890933021094372647787866449050051468853742429560075616998061494887213823346052875807473808489126062814984232831291579196721369246745005738422797768640901637076844899196775297296366515744952667294794088016908395794776836698000725046972079323356080942301485442911467317759187906682595387380473240696475730563421842101278250949948960768610175593157874492721007574112855935973751179888132499181669832256037053728700865751103108143164566377710700198855102378053340062770195405355628424495274745733655596066571210601313965669906059922244909493145771352599678628635773852049681397632990342599777992559925774371095956557469431361814887603829699006129099546930768176109549847247617767174484369700314388314646121368745429090204969966524614118285727606050036003591268739350478056235907708420026326218945681923188506049442804349974913385013368920272863033935833940598760113885031452925493719842192559503178049591781059550520661404340740299695498405481923521810691910521028569718634276326350840283949995677733095886028777579257760250962192252386211201435883746108013312862799910232419039827248861004804753304187105450713137579854068570718601429972874297777216532841809928087757628151740614378418609916641561523126642577740237226074022134832143742179279766686619095978806322961260311255364530308272011263460552982547395958688008757093818645982899309186787166465000704627630562571109747111504241901510022492706624658778306951198789941645809674833731159993758976209559795707905495892883288590392528464789279866819624954014820705760301475411960527387426866559431613093886338767920844542586598143261106752078270604330192842803482625951473883178288911929050265756136824475207977204645269866466718697089889716020178374157432068533637349796811310627048616587603916889794105747136444510865486829994432217364538412927109986238309825093406466252899562922726622743086092751038894746245424402696292818613059064849225642576715949689586036154053702298830297817606209134090371753772093321072507339418803110855853032276916337022017988311525146507697975224858794650427155968971845668298697907727089837574324053137447173034922170250917937798129048768067437858530392702011619955360769121260824137086177917504343625592604995097577498233522707019975974688527802561232304455149578517456498722035268459275772111557619003165700748731403675472994657164665837017319075256462827153895941714766021382033494177457070968894134051554453928550433424694787469636611936080250306741427060493384812569210614347875638961163997365648565612200857303117371675138619454564764601271963761475299609920927921485052207340077581179100380249877567663763785836693201111571114707095682053298393091692131506098153234566454752483055611461223587287640069241907136744319724442431037910003009694816926434229950056755562178787783171282293556993864759871451401881567894711455637577806460915410151812688433748230415575283062423591240286742516342411316364212692368117166903137755034881835863771062703978929482740922135622257637120049493127985843275738953750402517189668245080412665153978135327943461365111650202995765982874066085926970003422594698887974670062303705818707038381514768629119894461820699303623579547297756917474647775365301342887285544398090024553545336959416682909185085877195866437560332596778616701302933496929228587317476510568265532086760651353172783246610707190231346789943889039115138646522330778939612337300750101744687152209670584206024807590633623419045280298787205745081306096573459925840017195215853872493750584392547105690129695986928136912401844952851374407326845397270119985352813303891153075636549186662173836495723222888606996366663203732635116642494722636823371903253733733292316103649254030003515130796671949668663706172301397056857518288579435731429182083256148827089926370161088426205118210182595863960220216279858020526879414945529123786841393417648927287750494104471204935035092402915963596759547473335700258307480920795234589132500772814646906762477384884434075309038378182144881389345651331228804900408897023057632513256652360409678082108361125242020163790907200795580699376804088940797874970303618927981534199639628010901663206683877369826409272082239346278986181743236337091234766619317675833843258169331572968203357785566733546815466122519962307304849204526394022866570234319840597863470665898219225301257448304770785198774979681565033406328279338182407222754863230732722892469291805346062666221688144232595874992366180099131047765430933997896922105460625098963952878831724046424538300445042728617044064161275292918314611401636953045124490401538981178920468867439761760235336161674448587012839867607263457803876609297659202900100774796736282487680354386899205075053396427347477598255236084129260474602188197675768260744003209969395800130618167735077970500340008542315558442949340540283411631365075344336948012945241866586339054386372807805033695109196908205991453129845583924221985839587403271957203579214670681502340884172658900960474580816872987409772018558157879666929732432424667254647005727525014238704988421567768111856230819866743296668543683866354133640654430476222791757503266464764455970040477682459516361182339544611801357224077545558486575228559464514918672704831448902481248822768470007519101297840620988731091759070486274685365026087623448643768912059689543307567243843500476107853581869547874434277486123184083090835391994352424741848515052856398223148774968348814729573743360072848049871093617478051671399937286291269529493058400966148190349184353733216735220371229246303258556394232921422306290218975088120931806578914732293860302562753373163516900878511231593859322817600986461321375183654628205655990934939607110583497332187846362237814069066166174131401427287127782777785133255364826830202859167883097936434063778148499207270916157543168732523593237428612810288849919527162350251618713143001528589092725363646573198597341197979021127059424975378968154008899199976863630048505999433493875606657420906172336583617192532721037381114006000121918750764899247997933653209247934919026891515563888222631886989289784188822164545629368608912679989651952073660134378050022377773581375612210088785834345683729718770909611931011696915034014984151297091753329901603189940266488373777799601130543152865337239107882872486003955312059843373359747693907093642671907823264559225159179715392742764388688168504818434013160632366971402730792488069233038893964135070622681824988474124696079069504528098019702099063224266394620779112373394376981295139135709645981324568419982845974482962910867464151635732741378630756403993521617217271036118805593311734861295268199694928916660990551020678099017940731044016618049211947875049105818416288385196916538448538289905307526251016247727243672445127240006499184441866611132045699705530183113721783202436455161916340523508602857719152024949917510635441904421687400511403136698591923901660821595115735102139841624838105371491350740276789444461417562567326391056186921413786325204096755462859399158978721624980062922226696925244784302174815791162301152452223718824760217616211876105429339753848283905299665909364548400785500523063762067445953145259681569363909646809430313620459648162167150031060484193525992013800222132020811754688814987809577697382890752664995675543286554642040188236491709374489136316169934311070871626308860264121747328787740378650371919285460023451932013691581604438855673620285281855312185295908639153025319272227902411543700613780584700319010412707220258878441114817677065994861490499494874867142101099821185816698386384015907252954087308716010251623900968705648175375196664280830703756618023965637403537520157076602909726321025618629306497627466238818549882211371988890580396468939412146728093875581464298165286664572537116828770505924521931269873534174737752797020324441691403251023170028910533206427100312643211101702349938507962861140015777770851333702561720818170742156849916146638349173069286070644957444146877058117571151610047353747902344136242990804370523298210681289060568743428947723552221221097323601138435753612719089805133065110061354675286848003680935838653342300364105225017101126007221010637784798802162090046922254675833188801821749702992088444757091974768999934094981571645371639957251504224763637858646269905883317579706607921711415409440489137172646208415982158335910201838353015608540704607333644756159020777467742990420472118189118540917631609920045932416311319224385785089363569428365398344120247966104587451303589803586587330491164805127857903524130747510832966991473044122546134048941559820588966854843795110465876369008286662789510433973667465248434896787346442063781114398409614391445526774578106269853453544881155551622745246339956580557798639598751153483063618284673010469024758567264476492730233954987465257911815034309032101824892292343653482036472420238678390032212673477805879466556310361898591080508121784890237608008533482418960924114253238292086867659701052218778581601356358203300963934977011257101656697880025580807156348903315440875352430412297782848922699812900366017336854232182253602983749173359606042397551224281416457098122192837466737732240412257424577529604962356128847252078215615587398087576838003624838950903991938629098798032683653980950054367094706318014010333414256180878328733510611459467881731112127700690544540718483756816631251087183982773557055071070607655481227927194624644118172631004386554027171953942738890961959909221718381033259695112960286961205840737158816526662785189982393633155508080986504255047374015666122762742237158673878581424610845389561547594054000204431451597534965672950413432182647630838199928190540842588709247779301330097655242439790964837114527162654886767681268625015589160343056078040753770267519875661107816951015667143881073990899923175889886803647335116943403200514364129151750166677530144863475804166269466173478279203304262925515272765270787258650075963583690626122432478249852718133042810402517123003634873404443722602936525498176212783428881217647527491756496094014144846046573214421147331196425612214027793180451162098915504722858827501038505190965871370958460527507824545509391886392537537862384699103726953648026025885150504418235407687277442791023027840994328914502342108957411550034481655821305896007949621888874787438148728070312847416232432725570602795240038140215395188812336098707562690802489990205693863523174548081146436899340589171841352702999857123580046266980758529539842748761968097637671755293070465577693372907229370745342505059623476948527767763901999434198430427688565666011871519714374334758679951873942485607388136022522063811513112621706204777904986215221884149375054373577262295035427264415836259580591029494887712405376248418780197472718582087923394503590348275910799768132471032113611853728003788375726029826897720429277427340655659900262000199668599473650531648253819818740501318260709221294786712468323358989369331176433918965847751051776513078979123410075398820144918545851727151882118791177854685142827932738808330622526610928301430210615178469038412682381645365024206888033002811389266036543853086198178814743978661578987595029352944880049408933396283738494172958316482464644592729297350702149516433637308171669307284549222965948752314563368198549557935486808396473376236370818288218816536235565580599006815164154942126241587234565391907520713610982008001930526273253914066503923383485926873835300927108555655365271290829229384928230405353531727980099647764281899141023555123205490595872790377316571702433030267665522396218370139718863122582708734286445644222289732031735155990973301897291959084460843167917248652363570323899532494630929018852826081263406107048141288721131756494311427612286317720342868076677198343832432613281738912971641396177389810472933699063290120933803241127646262019301177561642543750467266621514358541254174810696595321520848967806262422880915960730905110460432474202353899718578960411629590893936861308859386552424137034286822506937519396130657432707565688138956590039454508672787004058848220363322290602766650232252294319945674792998839525078681403001367074237575745483439744213858803023976055545193334994490959014006593249906802660266567787980488028073222511953848621398528530281266403740560576612952662417043229872132188846212871605413115967903414238853977167597602204594051541126620564450106780845293997988716668090396616867741946819107797062701744895213125776824511397343081777209991277346370170949421404161097205979008136216562824653038252256789470339931508444215705329296084571385683692239814003570112856174777519768504730219203307410545385757625278783088756893572262001439988694913387786393427450176737012750870434678519068124245446679236537444658415341579491309809315015238791195064697502566174205016474175441939407848226396427730911261180588657022846715820509223741128323930523209440722375611573654617609007118400755931349349875173566824125584620904922866762661373719511393548525979268594997648286901250889539545663138636153919718743119381139752921793653700905276314127659508110476969220041748732987864904744643040420197727657761612832429723740851251225233254230359465088172571476708464187499360734735670856848801028290103982456278307174433915282473490221066408003445010381749265377555887527003126425392777635205718557551158474917772393813055657420788207137240511625299891720313275722699595401544668100931498453399551309923014438215067608443215056997091952508522248777556863894753653025766777835403080596270267683098398067564728174577792335698725778368354457295075057452745199884008348365836237012113714608828347984426201634713113466389385574028263673724521250460656413729615115035683145187620258112169759595260666582617377332107943579113376614616447086967634509070734880160892873975422373524828787794589851150088484021883624272881363279675875192158710176900653790581776768922501967059084792539461136283460360280284709747795771282330219705965123348615262553556715539741782485458148338154482417269744127088096396598366691063183920049800243086273166980547854933315354986518996650826122638351429053558340815543744876552193646341843371612926290167719148741212496685015381360897549732659410904150216842063783857848280791767808894073731595174710922274201138421535515998863122149253085365096845006168011643978902550604180313059856485959733148627539708364735266264520958842438792764068096655400742170115631418128772304664485534353772638923392299420178388160920021037263910024270212572315185030237828156260450198430695105371364810085043974939281078238621658090089569490441643416057732773920760090928149191937333633969490029650138615807505498185261262250263842087179101457415111838946910662056983777612103020581794604008022354659983980426079068022529567831729077162288445219798786277193955605490372135966871732512850543856930443305276930151998654844948915309756846392931281302525458711849729397738392092432119228403103380189808946215942306288017433778648443854005560177698668900869261542418479336000581751802585050480824814228964674745749482673666544382773219051103715673635426158914367263207710853021855374840359120441315862406022584717746790745031302258913234193103468130896264463324728838970452528091630793449031968771497395905123549613094238297086954871325397461429058080219092242697058397511129155539029965313150327840639555368765581984948719055086931143216676345595678238412252693373111862971094110220540442349277549933893550856861897629902605289925908606965703672575563381126226215739373186892437171664170127338543908201483670452373379825234586304383004493466440456808153365473461996362938572478696998761571986842580155709320335641206705617251909492703328896919859735917538722114803965890463536360752966444263119174158286662102582669120819372993856374424815299547268601177047153179355468147056476144498105800046773081291019398670985896087020406814570708849203598720978160296146782621799545139959426981507354887361665706919064707912747364448721243807981139047445437462204872450222577290453628979345244323672363866470310198214338580102248865219870269429463316057691779388473330875857074544716515228482057467258001341370647955278459602005942324565532223055926099879853367263194941344792715739736005370143190545449493056467781578807438060597666538534421170188733463206172605931488305251380706706202752847350208422611394801731335586038856174788366970159735487314868142617092199904033453243248588195995538693986309137923149735973116412661899251952473237467021190032351614436116641143980128495344685013472574576017728692568260149194159247361457947174710323933309928380010954592961622454345918397267187637333282998191484788435457940628968671655506051502163706204549890230610177752656154887552615165005107148969237119005628181821686186329832833418753990534934763805744073561542262445886190618580776925606369797869726619685980358835408747485827939352125025892848613268877891884228220870838897286479475933838383991431080872652055596661888994903395667339893761736640243342760542823441955718419288778944918392668014997069845936055069092364320324202414308796841588399403782732661902953607616427362519789106898012903338702092279526004773954738936915016696130268473961525469330243357171432060787327823529197528016613244593165262162125020806784366662120554893597850069176076830544468910231310333996071862689281964303979485194337811848628717451870237317862098213145054613189867553709236422497448633220586622914520325965695357027697693482912146428478026170739075709225820058546524550363798197672569201575875751512184966864002579472309860678567289746974557486682246297769425116839014159324158431937305433870271145272917711134065681434981703647716826467284138778765586815850940049845692600230391488631429543998780530852417252243692055673421003363070272929466852845408669479231598811476451346743744119203271313488675797385756555023379560134844561744308142061048822806023574438538506332978668737551373901877752909222939453086535166618419667164062990089969024125159204388834017796223612841940035814282165652626447024410971816098113135580052431001751435369098860726175278825821804370092121331935172407800433474255651924608398862806391658305816578776494071194870398810272214942886728049599365072101249449334049735611018421849183983946239355029028837569204724307042495971382654809737998787056413187733401007468187897029860286889278849315801818909689069611303702960164080200699793532820851331732482488970098580757242960021964181198101663521660757640505644296421587600008678038095168870764265807361835048981645652014259062621102500062207351420892431132140268461217859797925788271632022845649513782773636587887571261797634735834420842328041917677865170934980036402220578522260577058763261297247377714965400399742972244168458255631200702087229252136269772737738766612529521701381742245002627763170986539358455936934904554229712277352335024923456259062171948625920755020732070895283195398732960301209633743174390243665210703255267298242516315910489530172238405380428765293867474824588027534734068558697141950002660379738789897492933132476046800336238581714509167287363324949331835237393804520246596517033761651273380857428577917281205422871962053335430765502717911842394743966705289775403749953752846316923577185590762784979804728662817274557880955175112475528528740834050601748579383208097124964676830121408118829527644519063997358621969293652707492308281295302171341421717033280548567701032421063968629584963807391940950756628719684665984723822637616827043687469122679026079570559519814227117634494543659837675522709841401962996543999989016198445202374849069015281512476186592113423255597222984616877551927692509256474865037597893989834150797330455906429851456669985156050321203159669462193189981165966278380228428035376833589788778059346097514530514796807031276245434118753488715817905733542817986928359315837423996495262146951549722617193454333647383934092039170764939194597804490119398818556604452175318818905427682497127733185026046859459788000049985728872812194234611173019423525791006937393688999106814077685812605935272473852695636529830441293492535195209332434994690732625172765517892633245960430429066793427590234367896470111219037437199534060157421244848201475338778523814914581850968865197430988765748228836734494043113722052354429770382068750909887621655281498186757147574693853313550794615366885322715655359926733309498432342477132947289297676944897483882165411275283560795406876420290694335972995636329167560923986023680467334235882025899410013076974597660624272591722383065342428366320065840418683482879975387538082522423697691154885968151901499514434410178035240119846219295189416787063395347067173905767654096389062831212253526753514375688331286656339544603157050521169242214928842383305966999030488594407838185054568155482495216726490814528129452540526061335941264254347331506400081625156745146337678061338386028165459346274267418116538284929300144801912678041322064098630310291549810144065569242577288253960185320083050854653872339244531836609790680727905346548376362166371058692548375753461712488224273406727568010945791466258250007113392372657673002334118166844079875488280958347788291227206440513601857708236736697930809992633843699785580108430922614883013955045565784447621540489808378128989709515024928118783082414555165534314363559889833632632847892659637847203755643189764943091134811014412176427258357162060125533058652616076040551326691535136743785299162112163599452549532397778404023780391655437728059450640391026894825361426040524154920798012827106907294369150583759082555419474870477244233864405918149084679933247102936918712350821411216898926851039320431613836421650276387214129998916853528053569397941716294634476171026546703472181383926108526504690293451180234031467283238569601688820066542630101723260556323658350413600889102160372299649039726460304575702996877757460074733985240933983378033651870152852456816892559233280421057933531197414623152128166374208057644594856663614326867268252229736022799008778611929595316906991084242897165584843693114164700610359684246063458841910883530520820318630079752637987743366858537041643217747916484899361233248046926064221474799694782669195137297033485798359599896911042115224254574028607347586931057651267724703889137963699331835686170877784320726649154272616952220572002691233086697021356553382565448585003251982137524263632107468326811336206298442709636923872237592159067848145838986746204060949651243907977933960460358149244446394048849139755569257012609424274943573768094250761289880100678421059296216002018033356690987731079946682759884338915580734405553696478406456323419409041032158883278304901734840573913186471656268146096820045835426746460439866058854821145231773079196285338384706075607313240944035326045580971173337706609927193486664501470919109200460020126196612151617688130076520468100004587827768293145127719017637974678520273497217831983381273554104661638993879255047379842029259471587016740694550367418657258935763604135071989159416516535128231222522282720048016254648800546907867705978464872492875239298982542451218520970834665684306764717774874555285403892265493779146548508939077015837620227655338519984653151499921411220625008018899575717294756785357674919193207648818018903745701395313112048491341662342627814576910793382311491217359386844570991357444386251748080272959700546596968413295620298846173100140242705166314379520967023669073317614060457584555492700618882071516260900912301165398285690889102117507253364593166021300014960117307027755937410392447448848888386800375820470185983886547086818178937932610863975713508469413651747863646308066492027091390656952658444332312803687120614061243627028945769377359311991215761231749921131463696102969122563842716753228096749708740158904651642792561547285999968005456907114022542219404980971793737445801147489654206664355280866952042271423577255501630508314673536812722913284890675693012158408698891121663426409530227342251760246021590853450077079825781589294643832025633901045597000707644575113416646949878564019170077482081053513862906890987881734038990398504153847710955629031497987673504723879115271740711414455736961031436006537158237353502849957990675892036368793229581530937246991405754345432385554433559933971766448270341791000035624279354909395713443420826584837884239346482470070523227736844734666173050702234359888478360108424170663908180062566426016659118993140027385076819866880360348611470349055537919672517627374413976940139872342077705129691400407650229562355670092770043025719821793718327732946609268259176162202821443858784893269142143307584697992342888166378015461622907428094828316060919413571726541626011411402512988923789643158026251898256143993966132965415269836249586129573765117888221358155291187876403038871116073531190988919955869563039641779280156004946553633254449001982147814087549073832866870626610934768981149231223335688877078552927736977317411418537169128291300985283264110042843739786412409272976659896432402275017330803552149712310918267866410731307596397619233760244972005558442543198734041225665078503306246619142568124181434508305992978284535992789962012743643051134313896282348982048699418535559372496515711825831178378696340913088691655777694876306704686764872801609589190651871887867115611065565979250690042566047622457719703324421294534330118813087019229342055319083948253017954811230387944903719686209906581608071213560363512301191077014374401223517173796285176913908367385190805464240046743686379373127182854271040552091426873780322805121940678979281544992133287236961882800252935025624788556873111269596766291370708751375747752445733151048362745076815198552987328741007863810472150674211539462844866324434749436215606055046025483995638614119548860151524083565147502212784591148731598131360964825758567664829944987150868620960511987763815456238026748450142690122051661978153648146336063331291462764264624857641867003311230929501297412557371765491047335081605952431245952895994173279935679970319520647904532482209845139478117760003252392908775091962693619061646146652450731428673448154669281943442387389398569590542745818799640615740993008579944420144754106878482936586395407938141469471751880100237101293379908673531825078293717651448458701178524896386228438355787028992885202718324746766276342998876226160536620172510423424493214813354732436005749522983875926398225970820963409870375288582079630602840081975078474506439509970291119325079693402530502055895720312993534901026849905946430353475622367932394887571272643730208691444685965495218814219268373419498342492262343786521379719713035313740342912240543560808636549908124426958737619522824876914303593121798026760591656975928038635606483277533951585254227328730448759796856187441383365478630230821560429240947500907887979765798669983726226358977854467719040768641234542188574395695232301814336689052124785151237804517502050253090294764681287395764053771883309078406953972861771704070391535205372529633858337208018042912201712256700323118898120919646760886558198912664280772255928580301945267166487643872895036899997522140963912666936333039858804431248854066170579102596471903286690549612704760729183448554570009956051776469654658411220323463287094682260747888158156485602430426207461691094253738611292478820904674254083236098291178259215114900521116880049887811894026686784202957125872253125544042062245920892923582140803673175787738912132000742266436517252394535612804832199913694994914492615030186633735418264540391523851087383788858432325019468963662250020096651130316747050874478587633673566443571432533801275335977843078022821455673477127599181891976286824544712428239243059959140961187273285368081735303842691605319467155760605740332357331361403542509527304572900088377264365629371018729588106770115908649204876972793475701347213497339864295682895853717405626209456130815299198618749069981482125656186585289357660385744685319022281144035378732955796982822663850035245773162747429508922068171506837260465320376962813437189203922600129136569264733119151322010181163467079292782048877869843714577408041234535728899489852793906608820773267345343159529892351081236254075114580175423773186215917787520915664511866784938289290400044598893617386631566455593217336275419071249804479504906510640693951682978559815413562857122215441057576800970750395021140764103017680839846610514158305924929964546483964201750675179012139588361675460802729148473586007881320724397529986154169246661801362808733383650656784600711158101546260999023923525279535577183920415993954193744694583281899160544402579797211267194330748610099258498932449495572225352180311203172361732760394718287862605049408676138293417532986975590349773039670244285894999271872323922233270638564389269398224518732213698397383862791984280347618175614238492753590181078965590851326027373192298180398227735969509097520165311291702898750407458118855005298989921422021770889181233760541228389723216942747745464696620080212893669928840725003463451197760408401643582014521658010029519408910975365006969102496382223347284542523121492649538723431956771361216357746619225578249071682447928929352879030224486311431433790446405916725783917027108855600304146585379264370455693070826814766292678345225864076270884583003978660272617814866622312893421673367339062120997844861491455835683220973479785689952179815009166924536155723002743162351419773513513819216831972800144064181604150741149097704521396689485750808249399584216556930791996715321781115472151257014965802282627528171092098048508968646156527008547426328984898363097927116865823183809956111624004763788371755108438059258773629219011311580014010992508264584684263362153297328148841175782340086518494930426730523240711526562752564388729038021620930971822593882114666415057472328816164717552212135405958235755669545760053426083579233861593549577327953583457229749782825384856605535151412155743295347640831620196792744317348691026010732181568330503580335529060372983949203302026999449036953857334923557241467667934683306542617040877490703763781335656235556390960139920002641150029263061635469473173138391861768704002701122302222473170904412736526623678299896771032532812518859860571619418152337316160946909486294832806256218032397928425062039413205456677829451348618398610713504330936384269582632485334810335858719239159574258757999210005237341116558872316480777721709794613747044031167301929524034734501600612302193293006715550640751893527402369779563326033628352077622254721937773422354084679773667073866215975440534144642025311119122616839755652669452198227230392882554764071820473498207730438315767284678017080684787586599135472814654333778299732396745675102152085489187103084386638638269328269714022603846441251572626505261252492673043763922620321828582495803433373899425178579942654392437489817820195744933753414370579089940132718604982876312072492323142691554159642472742119419462606346508129303821062958632021711159170759348593114980859033632659398201370643947873381159821902201763697737384415195429386254820717874631239517240416977265874278791677265570632010640323102523444397306819844301870298179112460473290015255593611780844417603440778225831957057761625984055625256474066033558097038439943623970547094308451535824955492169120915923958453581256366394233553917667152439990831278939968344786847796343051096532533649305317181845460514953505026930263770733073562068822995866376445700052325014913718347145514076569482920785395456202962676899777467752732755707978217462784401750122507557836813451270408000107024121354549524162390147032781163967427235255566224712393986706871473874313881070012013041428057972751402294738055271805441835340590499854587325819122931178742255711056499516148668750605813895992200096132324873775065103604410849917622426868478496585124167408648757551792762516886251370438929840325310311583139750131245841079577563635385028304534157117379250200591476600234501529044604769601560988130778698975514688398929957849364857283779169924972865062680796309788615019737860434216499324382273773871987879441885153918424151552911032280023241546712058202495253025642149301927863292163474692772973977385119180128935037094843185802787300981514607120660731267352001050578073358217073468248975101606603411609892114981102453248088117433995956127423365004451118744170432952268420300977872357407424171661689507802485005078432835914613498082428082146027061868286525682366394219726809540590520243392554362863888598325271175633434295545699744453365154064384766434394741843857221529216258928373178882806961964113181724318786998487837690992211791854329813611737199965211061583890638361664439633540044082440359973840723805460599822903982953191544092548578572185159264165283199518616688248551807413257046115484898913307252851112213610808158100297305762641652994234048899368323491667117790236885099440825013742183456378522506625739108028693851738347243508877519983758768454826789265300228845004791688744798289514238949913353576563138405362789929472485707547825403309209409219893510603000882530383513348275078866762405553902212120888379203867598601622779839419215633173591658296733473643505148025020244600881778410947526566205680457701825916497373280291044634641236403445712523647312278184249057811339292590001822316327572272077073944242178005391663040051486594191625914140999434719071825534782686107013138265092994941308770586718275699120881785139267650960663619439774087823864084387567266404201856802721648983877264299856540055715645827727429333486989727133058108184159583217389340857565455361511116792247473237164684909540416501570637434167448290011419113105624252307625354589169192827193385587001993299472303655353596171016590886454195454450948449949553431679895683573102249106751588736770115519720120439343299513785703416619431224970921098458570815258779653686565447447871809619000176238931108153638802471508763484745344908268225823307212214858086318728652650351633399917475808979012392830150066543982791299391606953640108837530654602814803442150796867029750199857281166566619429068734081304505934713600714357510918454132576407025302079999972085634075196308864809009671181216307150845515169335155665854715761502398459775165740507677491819255799983363848977118474154567293402872502104036209633581250415397073374939053593667858617192072753352618426893349051635768706676900066122363139690756072664044132745940226593635540970759650808708500821171613650678690275041156688268913201273441329867136278569250455898825111079387489762226994382545136864143619219482461077496592718467011971081971940314641801789571702978057782008714639998680681598087092770100634516838100121926195927572523265061879422634239241204960095514691313440706720596643757158419716022491324410930908058737784758155280492136949211047043715182245579889598730387171815842754007987991539374828073169318859286627755272552645869284653330928533906255601497149729876596778346730761311585999116133454225052574984419741087469020873630181884542832876114767989259431565580245678706746268124134679851920622924135309436502048460432654498103652233378369573079451702461457769557842599727949910845138857349397731604690325220518452311663055622551854952225441107239729368253634493970246519648901291472611626067879856622135750632537665581779393419351857591910877944051724163009902501458903266157889712391354445342671533414354748072875397984657660607374011382839094076274489742961574240009438145252917136456960942111374132233407758896363208419457113708024594809721209039572582694386830980535041284998700703766768286929342637212338003819685388190187066646793165636117959303857421346485343211278656687182151912812602852056316853804873996703672436220516904981866990688370021053284469811475546429439928908157992297818544023311855156927407159100282743118082192904651715492334723894824937715943016094086304874007310740272035616640061170790917151023048419256232186182188693416787207555318161901653236983521243572462385003034690001375605777564759915805162029113097619990286775763391383713052194381751154787164698675600965729296559323572043078026444260502363151637273245242581594040839544935661059457704213914312196345237435515606169107003516615449665170788917717815808364146765918155820874835888096697829328205600226917605729462944413978564616262654871096830140202430724012186435569559170112991055055495940566894410711234797191612454952453882965656988480434066318138945642102728670014727299205277101565698843432530005346328040756257806880725496246026360969564365688681681268761840095847440938346955042056628623745412635361097849311514075193091660686482354788776592172353456087641009454882071213159138047951900928752082638726424853045275185298878167848308921339356497343593268582414408081350047812587066302286031370948231271705716796459382459185712740966312622436348934984987532466155504705360214908575389643647551725051088985531521841583113128885139530022087809765943843011566947407971614528433069602557170531379036583103312065282739902145295062592695400333664046850645978115644215621259370169378243479936947217962268988452611568309365362082145442715022441069422739434241435200185483521146802876339965546860081580925865064966434485379215655296464207634243444150787482482950654802276135868497633559464159146681288750044312189982818251967180364446915859170570098532338697783280943697383953957143281196020238377347383279273117342286290199003812333342576541824686756189695084996750482777998365002874343013761944075358842747428068547647026405193908320714371272581273042938704570528441968516852655327127035961268730110314661716486944671036001149175104433736632034957767685911672952750470455112900859034073856167197358434808848372285109062120496178739071158966063678929168822574508798031528688790000134173907424572578762608979194386353697179275202862144072652952464857762089522840406910690943807988085453474764774953130582741880003434382075867605370742748797510519142603430896831485748514492334433664933841318011838457268224587398345529816585421534289836884385709482040066274899315317821019793298292851713606257713506589336898262768114368964931610840552967462956244514941470151338787565744522169479966633614789683372778862981491005496249609844719926893979128942038904082957418169881741028932015366391219656598306492464203297011985209806980734411516506325542918169540648958953238071453167184920077206798760294623491765552204075754836428482266518390796212464953154785608243031620859767525719468818037269632817578390700356465960961031337511487176113059794022924391088925038467114544969172805800929911879521336810185691842024532592263766773899440381924893735873648257009384661459845512427827017009497158861443561390091418904758851883853632111695225825218386272204205457329638355089372285629616790932575777695691044757195809608897679946200671411032470621014247573392944141076669629298450850166012743555675042170952854197561204593928636515909982051428350402509947275964119283026262510624053527881274008099389623505235751027309881700795525431411693365895878429420680534708469760093815384943394002306394799552529771419038525338840642997436269538905805384776597087765532289561214450372952425836637030320874287887492223784515155169377911870999529402462582641975042705684905359091100513913749862684619138431157352232050117502079635272682106271514307805328400933284075372906866607745412630652287374851058859519289482795356777064363001390185956998577455855802218831012995783706016087525379112060693306127183461738414497754179910869626851993272332829810724539961309225577311974031659985467992286185113902528850080500313750323756982826546541660637264745233976909077241522321673387789606990760044629454287050042322876240457536711403234897293004117494590770469550686713812283750781933533158513113816471110348361929827842431057143786051356048661111984669530666888617995136418576672129734870776175311486041219483216354975410252256081701526302490822566908263161824802206253734241939978077972865544984267350605793335934989344179641259091638294033633816220695027273481135591591312635972273466765213538653237402856479467134323674566224349646832202358734459295986147717205552545987232996363337271074880026553726528192151798664624106118077077818800026360540265820344940639792403244791100964864357380880936708217309312571166136327702442938475192511981602839824346167705356985758559055629175369501039901609945853673528921937248953664983505164716130243131341930925375064195771400395201802063591066446953804206234250965374633565196386398678550291639747210491702646381932599481714302361133120356774671379667888338118159403534474616641150420198462980065067589267192417472542036347610074698668972105641274607397041532285133300146605277110722450416381790118869204096333056089195838541105443066697401393190186756278119854423757086384989642322784078144588697440411338241528027899431224159907386953048945845386678118269584777885240585456758507122480879650818856360575810272470708739139593211988183954121440064570776493673181381872528888032620633276599538183610011163449019369834390926391707515978764856759127626820734067106027669739978648766173566972396691747537388744930130472071445611834284358251143644561693889019006309516403164297406427489354815977830527310498573547826915052001452972252987283750809530924206106893364887457430969412137845646989625699824070704993208895959272673747911325600532334883829887458704453415127141669968173835374114676466364064995187060264230223032263148714677591433304100155540146648123556826128936813144890010582113511445123600838110171019672595210479884299644269403756748290068308772773709721092162418763902787975547044305008928880941595323738008100778856822871657046271695024515125251220916778330974372662226716765091763439357469227629425333831065107299796864217888526715118217498351854644469931451716625388016645578562367135673274639112898895584335177953797672979713417393465946727094083723353779405966151079084551803044266105448569582214827699793745480345957816972644376517672026307969168392436526708700601348904152302949889439669241099958206816977573128350558082581891487892950809619891180419587444868966354565510753226352080876638065755448099135863487954160523667449964066025722658948525314359431510223931573964386421511628824052049771004069327465524700655162443753228899688626174131893962325794095692184720322905882107605383578573193155789451826799280367723530437015424555939559158628260044553438196443454662276420260504006734776748143190998189979637683788561305421257636488335860068650456209877648076065849919468295151379130411429433565013074622723990418127056545298677078489427671355663738695961132070356344349029231689140535274069509198529795167870839467756631581586092109213239218789361553340538119760132020123570412215175959385346989012905856225403549294836480397966920950151383459292891061584110174465413890259339822322467696652874070628304256440364676475038825909991666167245700124400157731634627193509185170904873490734257405465717776749854637984855298227832531086593674252460141980220973300120992227141112200006931708473245950068404452632829594844901493585467274348760143346783955861445445218162232122871657593809242896960581547829822856473109765587590269663262900829933687832302811858662555341662322379796373409319629763961734116612051215965144193934608963732099246463086607933032462313827072373235647981426248543014718866890872453936397460530773827582538393040240882703542909142376740880134887698630937181003755779432244045702258806646230276473101445723888873404580523894924475107732177035922896689232353473452445476347467841409869796473090024998334076847861073075058001125191187585176209583116555307727764711528278247851020302544020001733910347394684478680943448155134605491924980748757960717786758935253067175823550799791933218530312819188163295040336057142984338698614643097155935875746646167968597452610499881452948794928503897846700218510327200376879441193455674680756615308433952490639498779499909190481497702347771966674250382381603602707668470800909025624223128002045417039049661435797586695526459051597726712604339590312489891914242010403163457756086904885723233902251993977790515352042224716979131162360424130844365283171898971168247022637211754163484212958230492071819001307317187481103341857393797981751892233994991347049251031017181514784155159630698835377866113297004631103293341179752997731410640524658600005273067082738127623523271407631143779535162388430458177560252906179566090091901819701930926392017158702040669694333059029903072132114601577464725624468571053074048875726801553854148714441336363887960707470811948352552375669795518059714070281518542281862673454249943486609123695491955409368358897637366147910505350771367598023436295765770571110738091444543884770453697311279497132249606560033438860924133163485841800270449320245992846026547012221392251645323673770904368536341854196259916848118681476427143796329983408462020055386763482042280022045609349030996566158008208510789367149581777056455455306159461188527054919532906038108519993894832157264856307996431563397307781254909124021116887693111510549245272114104457378647921636085006236195448458294200510378447488020667406025655874907567458203036746269296488442409726166981396116926909679071598668331400262610310010521508727502049517323173179719052684895666200590115337901661125789477884940611799863511835960820599904065232970716746374176979329549041366630914194956539780637390242659973072397317032279195306729993363961428943674925083494640707413077535266012272479507458700626610843784768955741483321251485728264319989215692828743210803535971018417275345240406154562392818228097170234666137122985115726821931344695260118612001811185814777211121092939103609718744314661943443698095580305571966829548285451039570289075375613294497014123907774840405816814867737815533547157913839190552439637894499490043593710759251357680810326760605190506311488128941583083951231691908698598289188570728049250422573319244558243777336632221861552164406221215981816382557285453865089156520743102328227449218082595099402096434217442303351257580994074534464878482064878473635413674648242557695115889173446753718795972194342488481217082455396155087768024871032615311609116574875197102026420388228573186687697824820395182910919525386946405920479386927500823962258222014163512883604115824565144239635711815249904537544011323305801567027475739541891839494928909264290425638406016199323585791256426552975109315176686824856647222426620577436726919748584950765610126528410238661093113091536148096784109935696981357404736251449882566284802844916395542197707426829796031037747424246650174536629476202483548169567557580959466620979756763328222696805198745665193917021650851442375980103563497141823943238096233814242638750439273073237557709448151173353662510760596516105524304431969549186242310712982222038073995779360810493438112204924715699693754407416754000826961908667928294788161722589820088101885644887311919552187278319198856554405187166991006252894241884107452736935074959814539922995605316681406885029272635226600162608615519036833526289261244928915752614026324629492264064263920656925639411088193584265992639516480895117393934599368758550696486805980534022758898946665495407591996570874231913594517728879926629413015291570289493329872876942148991982828020938684282300288709724036759954006286377868527227839494610327334949415649863513511542547372026982443118355541552399929163153743409690142442145671059382476298121217704062859062023530727962754342401373791825711859660756593931648160970144287185809982961528516120946979362935559789887278011802910256833195234189662014291262914081726342210036501300776136309531967394434744395482252530680678240808280236106909313343697295646847842405305835066553800485148368575490721627524759985463016630338555846664246182152947492383251960040515268503325181364354194728209212350359195799375080256482030837860090931922915214525991278034615496519593731296132017346751189427046851008977207503980391775488446741449094104465752557271882830497358077992918325424998121305887407554681971499178785199705395679899209872307618856764460349286389185838306212280350660222249937765129719349948484933550987917934374092311327122962292856734091380420492225808378269945593814320221051441244153046469923457504732109918301407305942801843003360145682949576428862468516256380081155403488835652741256047676188799066921805620891501246801052830359394016667799008849854500673947402495248247910915617378864673907649210559786036617550349729938962152721792692739601960885395470286752168523647783748116672361271367682633217777245028197014601326472592770808128502872136533784510536405437232851541573190532362179824726433215137093927917850578164871876902822860243512900007501702993104362758718088794482964299024003464015928468281445387571742038748943480855703539634242348688072783694110014653378400162004041058796190661086082909703879444460230930974552605738852463092406265474420098861582736141481096817906712297935888125698618494986852797682455140401079171706555005857016470152845831262285677686572446861813336689039637662515808607434765776887809214718079226845186277231292644253818415354238708600999842766334389763926887168676563058236511899641461035599592516861422945183935107424434392228519868814339296541367638860548998029520537741866028962782044728065030841374761226877053061350279062189083274460412982069608144380026633539486884226659242036010640015835707540637127870330141196736689746391723036002744696649874466990527269475141410989009011785605405816488028108165017782049808057336840266083226721633412180757663506220906287920512249476734450637503120241659706345598147316124161735880255301112921586956294221478275442870047876472796183779711937523211570665922600441484018929523842617737269072154656524576686151516765991460977266376081523146478369628770770435025402261331953767731100126633838087810931870437933874450296612888378900809606218451169467466747019610743612586159567460165494107865804528377780881855548723471010491366474674121505488170873407315777225393664165607243863174418976080596684570052660559368386696709912469059377200915938566013996247227605059228112306115724782153203696834976361584400517390996840849687618587715342470205930988962362562605071353305698996679335763810541869716972587399730184653776132778531984825279389296843026883657770411556237628515968398200695026402393996864722170884561006391362393186435218646683018065337018562151233478561404280063358328039794917654361203171488399263288780489230235502544903016411062149688903758170301579388215596951365043869870761275205383606427371273905517209020541953387049996924166743697689179646642048955629317498895420030820613882079912790163348803132957549280341892350848605869940008131717902320736234148483071217240840175617776643206253915934642027038895199957226539085290926953467044331919117252750825668326263200797361709685828252101771032378223012934658262980063622489688491437870471977364031236110712225971279870780836038787532169505804945279907669008174954165170891599979651027752658471439687740274567824143870616051751030266307541385934787807676782928718714782110496442931068640281832650231007448215258356737321211639076934123889381191987630823317095776958695726047419959375384175547537748146058939990185230466448575143292368612531418197932895007260541279047251968680771663871262561600964802406770892096559735265808884545261124382156771255364627870416587988695238832116928235303049116205679330046048289529873107064608914209300671260877700102667386268863289768882579246259185923508794396371901326855589348757225580257485526844381875347940840316736662553110006289916801726307968221497716147793890856056466419713716352815648268355539095536096504424304294516388190412947054879507325565514826497777959385061462113093181256652603644933151693606307547840493994202045815349462696723795988582597981450613969759592999866196969991167005142637954502600083418375158899612900457546965478397024889480331520675549758696878520578460174608256242919836494863444339468697009663490308266102584522317934991467757273307755956620938467244394725848602243815000501904296640983351385417021371597260093937846550680006051934517442204105493419157354204063423731169875629935647880020389602950246735412240413467315443209092385352110441488969253592424312214039212607898483056281227748961987845777490888478396149865396694887880155722575778364544855603323733406353393264615042588192150207778704478255924109587496959046283447389260394914787913815728344980512443317240458350383536387992540399442877359989139596683431619653559028974209273646682620556958957413442553460982600259609025050610169681315981369463118153189278800303066150744452980915888700500476881510028974953864455202701682591645147349465653092611618742058552155000946865595933914428817567325586757211238039894560156492264422372908959005814740321698679173930444036483677173719206415311210117325654315438770301968782964809978985414844924387372093326587052285387486500271508285060302342688025296981401682881658259683429471654783118498979452513469508318292533474741340721905003357625696631106348516691164503124090305850857036942911188174771634853058094947855963995733016824424666104167250723021321059662447313507375849690133076386477645735733324623648574261322850670838890376692514145273212919733327088260499087830817037589091773081644621492238613666633921132483553775290344939321728813818633255786441801949660911324264160405417999100393454624548770303424095692993884617629409142397946242929889469852805831971325380431890599731167747424250583932557035805811089029092014988493170663668548312277450973486795625785822230701431097807628809866905978370924553683297765467702293099730240246603359890582298071920234975690207565183238462634635411179421824022742437000107753870478082357192883421459591575514293365656919946584528998758334147336296384525802271327092615978945483001490909075882711670486693466615800961001551414600812054528382921251229272413243273472411164267485098554118592516094683872665873377309781077282494413529877569468420730242054071694510710417969506724502338523093617426387134338024820843824171542212939470114708351196080782739412773276059881630352986476918161551110046836398623283192362370877275173846695365623594781704756246823260744875851808215535042673265068272079049896429885432686514890562021694420939711683058585847720879383665331993399026046874013460284088719486053846635995898112944894784179074522195462134619827443944955752625180612513246672777541050813150919448924505173684893005885527467680766191862314946071322875587800997837899667660886038730060391921133950896387754106436661409780142369246147537151074036255305122767592214949091931033723911941072842994660788540967994992890517517357913531428007475245922023272871495733976811295824532443881079389187375045722837910917975824383830712675481400735333299097605154055976982230285478877707446316924433463523341624831288045072746786714239822160381864339235850444932945948502783415144191862671558366971670007177126349633485918002632352066826955321845072536912285657231508414273201106927322602207312208284586098713268205135869050844089149743284631296494526180250416558449483024177761606655483329890135446252174776047465146369010902504170834595135562810355516360355066706493962740111464303323281365603963099573214338047921515272052633525491842085557758716702837549135085746560479801376708760336169770893233016965835581056007238182121799451576104663923979673641448035013225762553644593901293127859231883740873008255494648042248156056835986379188701638797567418146020555145209377835823381536249683657292113146015500814291482016119851068969603670442392499644051928649237098236890563696840083921178633205596249530599361275165729289367074284123408516750916924901466420107832366805911784392071321264250564848379164598388955399296051599356468585426064760598823200402391983957818953066549161283305410477011119480040334174229211524483301232177019133494490814503183584140763497342622875012709428736828785074573191477779988512900265380104598928769444008953407248823630322720275666520026226233127118771290132672710213827782652150566003919237380617570103049242342888229872857464855544473714017905901862739724590259220797066161734381055459931791851452225518569905533352706429198209495371137204696138884967501839729020629707750766975505956814613934377939760339181111659576621826033838426093006380474826820031161438739347085036586064629082240610768873002580235620828090046766549480816338591566082799039295642974940073716326448348075067473714936113257533431290459839229247186389494849475559524329692846168139827916527139397167730174167249608092047900654208407236737776966131339469883982533554471227513523041204345984474447304996122152922344480462884802888641172127848405090585592484647757064582128416673725204297704146265138007696333927352539374765937453006573107670636129410294044551166904003067492622318874496346605954709844047631239415769376637018130440364916638951309648776866462260706679502556024197173036922974681255940841759149950138447422990487672089121250717979463887789579515081907632655268310547631062194653741862167103341056548091143624170255035406859974728670180817143561150941513575964812893491797347694894447918270795965612384430867275831957612321548433224755392809654461881266408528491004774004256904748682207234192433356191492816411466778647465863175090565993851671555934070445315244082942263037354764348480338095263420512715980729334843198711979280476838484146849468456197685362899430261836289591217890307932672391005685586389119664403860749377873703377649496577521548018387015631970119667158739230795404675990414616781819850620723877330978295216698451950807742749225761835247598911056554768040365958384619703012575115275415458697071469236563970867067483122873269262478091125743257664393714642915077884373606720265518834009593380558041710558642815467735216204664911680019398938585846642167429585121479932810744810284342660373961150196143321144687042214898752772535866895132410293582947643997229333050264355558742312992584768372927652981677736108356437281762166768339565475647188402098549967959617304897887416781493024575287575703611439452459145720872089204833437232065204833600047996602746837969672550258030945530337693418511319439045024495522488501589310296869374602221921169743101063759653190592301739845107683221305191519160029889634687978903215649580728124761034192099483989032728257941054205472632843186418781489596620765519125225214624925456915020921237056079827084844139279633990880936444893437972318283210652349728063899814786794627108679665179546236473081396358136710290088117417171551265979841664232893942134767571388782241506688512900636933865603112272318468233831888658308104961554215810094916757021224124480112808557551229673551922298574721856150562367250920319313828153489495851526264254306667187276076431270328595501766993456308346338028325385178755996174808351794223135186103070513583796525248265091562640360430493191663575336207143548311372479927553256623568879258188272241961910879207569097246449469152629766265978575953785081589374040317173328045120321273661350927401814986059967205760529823655141493415580697972608439642808992841403207498800753934157587798665722828785798941788166884039587199590498754551663929537664814118774537789048600334596635369120984351979375581961937955956314242083498538026513533198547737053871530243241334530771438298783077941113177637372945849400349651016685953165330594899967562586849017241429834279926427208388631890061915667702571304856527937340276158279131102227703855240250247697742234874743930766508214813237069421398029179715369213511697998559149401407443248858395019844055287674800127232981512252046745587827692575688105316564089406040300526624299084210113269520494589518784553724135566801126613858488072181214454222479883436481763082109496540350198433911997230205075512513323723742535069256723814100608448986242269239752237454649150510634056916009948305325903418282394524041336595739144252119294473681899437888712206954476842662496648618245642572427541251259143753594307024015083056214538455301567242945248789344059026596335796099534632605100455822758572502299262473904995065349102427987596955620640329778289825226348633621491209049316366273338150039955167152536633270290329352230403430625668081189642296306740670232395043944419738642234374742139532384885784637091695330823513084462768785458808104416436237509823481183314413449992467272823215491296059387553202117378957576109110551639135026224633311842748019957849958431372280670058994674843912765744928810104388896669365021282384376160060024984132762528880710153969169439584720722516567423772952069325033165491237785717334796901652672862177201943147781549479192912251057752617917374414200080788401572603082811894242917888384348265181114992125477366515885483211292487674540370992127803449314913044575126370156587081154780159205796339367398363470670575817626156710583417493224578444496455631089894325901558804658216542149039166873476909853702514657980334280346660750432598689380942507384958641547093300498125179649993333959298694899550819133657978779659199533213873284594744535334019646855712083351466552437947018259351674942566896238975638340370393096511788245486912462535372689655891850559347973490154794026874511092061219888859533780472043602907416284664382011596567818558232746202619904014403909679458424255090119002845066630630857206790301489631785853376323604032890575037853259322017187368961230702655931919020185570797812534157753951081252165089054539145696396763674358967238028443245224833891426771789476992554716743037782902235818237504925824324175869161238377256583272909331740878224806412499009690536114359512264004397956233341239989526398890611314132937136010832435693181491179536299382603306059486214624035313681129024242074302640824527721798968225994194046957762876962468743328835757923242761186870755792336120559964923816244438476752927218874928563512479440668984552988764425618324648378187176972909030107938683740877198066085568391951495680917058586786960881746151115384060517676556198266671416618261627139833156586707628918691624524092130155076681469626676000678101188001301779223491023527310446081939116547320267324683855437141435498368849895256032383334369353137149025207421773172417146654609768371581329815296942983892519106701089566331139784804812107239109590099515895073233588016136424338942579289289865897429496314287278636852435865099683140297523192811025735671436173622137013591201743196091318610535206503055619983022971450121618476585480548788849528049986679791892964033879695778617687254453549032508791496056534358087594841435935868825724462857683419434290523099780228531341449793439621187898399270678216542614342801977856064261468633340674937744712557476721279885124405519560761526561867008430481565324493588433477308099310766258671266103169960712321742020345876899162590417460398352055813448584425410550283453721552802945341322112457153754216622961721121386150460386811907868859676185864900449324185294648657267192669775812446334509201873700646914966095406085410109410085884072632544039509899083347563539481404849561171589751861638943454179036965150332329420080080547615398737954321678847945884600270514415988738965732674176770695889822536124388639987641141291728027689991394803841489715967784363492921262264557592386135769618961135531546654343801302489895230543636538874366771893767417594199182038598286798984657064404512831632284977442396954479383000555958299636424127492221886079288221506080127049698034429181686822821122256887711771889221573984078525098295206602679448959943081435541286136219413540378562045163339447851238992715545063127287316804172133382096701017295603074349162233840928945562707413298669063512203669127743114028156291326086078836791911286755175825495337528152522669999485846684483013605528613029589946085123466171371647306767857282664329232496562392747597706052995258655866275449494686080144061825535908308601370418487498547822919861451599643673299017389507426622543901023347274669727481664484854150120467346007231547619117409265323291516076373843928119526828046369243376199951868263933211989925262038485802267770055452008909597352821476370098831895875174479250112975894908704245786803759337736847829402768984805687491651044672084971610142253991323072887766514866651682909574536226024582364223359371916884564140333078446055358291875969001496927361069958008038549573297313996472873239575015656914164412365567529005242931334574482417545422964415285957202524133542649200624539799887478191951497112117175971684634820256816370128600994908595259581830618882725517683922900474806529528320933588683432382278961127453336757726501716928781987369684780105240919519774913738263065577069142941349163240894660614754804003150044595417326139403630915486838501034067251266750079712168925409552001067285498584956563981034439782118534976196454944108753405195875167916816776430866106945312788579794855660263840190386467214085823975017720079722419666364192985241810703346821757750805823718166470305116440398631157813698256852841957361881754063322818640966608350980867612190189395948616745630165935912279066946021778256087150739653254292749248140663908996520801976390033907048739091323145612340852922915390975172236605462918832034657110767648782008536311955582530970673611893702323944902516397742632020512314601141377722750852117785233846246356472519442335278788950987431201994180620459792853737201173322729118230205916109377925203486066884105419318848043110122123874343210316008202673066899140748470923198858378379660618424266945392956286328792562090084646309496006490903428220369737020171608008153013760669862988162831659064502929606624795896398882252037173874600955048904627915558362839773805211020955327164036412427598194535928117207508699855113482913527052208298913044369252362491588445314064039388396298470316775447729636274524983747472448067550713387876464796541250004982809411572061263842004289864197515228881244645985803261330461593147960374079203215818104406632044543952241227747458688551802527755951813168904556539619485235809184510677911406551532164606989596240455802887018002783919464377690523112645678571523502474265539576028237574249503609250824523168729667399248369361752968139857042592535901327094054398758326218881534463611347409891800893925239597918356093317749063331511404082473231540613289044415901709983226736842764720736861715824752249526250525133529202089835158754656610199092591668054949683614776686271588242218111290719713843168638875616280218923130464969487858020795871012393156971375289760557102593285290405259242499019782127623535309381562996972624425350331976917021358497813531990352900870290760933702838943515926525914747702935026103537254729102733919300488190593324283609493520268564474954225796484218543000037705606462303911148717390389577436287634689085724389726067445044660375804041183532368758906628829592647492590486182506960903437002207232324475048818447577580735306685452358351186943279794587402675756423817913440081957299800688964171270021360652734705094358217714239703179555777776262172591429350455157726070982496943072369301530287395440572663483004714018039828888316279039800712426755834371579294095592319729852166642666355592075082802865028996220743618407988354265475859218491092430663931706652748009458901926570508603674345356803318727679721231401195218846148605248428773255388636053928154977078459074303404673210647144640935353894536982006841703615882625137296221058376196763132210655884957652257119589610642461514594695828875557048069874003869947113323207945536462467469135875759586832897977521925753755940855000014312389312820638334920753812916594496580872481579805997124767474477109585502283162081191306996400570678431244813241905404837100110191850125425480604708729794078457193428449380194293089451633612080827526283860189125231204893350832524266874845522659935756783626243622224707141210745089785886834899211851256255355790249278856335965264141075046084195657910961763621098227959102104184943746430224095973473568358445746492409710394062889621577046139121798871357180241489541325058661926604681513484180849200449536560963985361586536287599278080491167184102422287354928572589278641543520655999571620935417247814921583226232847760937003510412388135414649286587556133215970033591906385910525846925843485524719836104145418506814125545941564977349810276750036162572777837018383883575983275753332680014055541104765332225550527333195459442837729813425059687983341489340217628096731683088558091481082258445830418697822125008941336276001379483873958058995080380603727900515735271160929112047198010264103797601271976227494782201699538022193844123964297362648096220772816687589484819541211650996566968120079014722991634660225939176943815018700527366664167981172468412531639548209057936384177864148521066876318610061160229511848564773583495213450776311184996912739504897314331303834765505078709644749764362159401488966125471641289090264466459772725515307511560250592100185531872739915725353430032796466167466853488503086676984540597720886774753268473152156795257203240396325978128727769217754375117938494800981609626937646960132860153483100788996709302034029037405467826943288894261289715035696604348145767676310619168080292203704124407380929090215146863009029000504960019897571354707549120595232702702869137924761188555163398892272117138227268017698431088715394221031843812218590049435976083989121038151204294527973020850495022638697666472402106645486047457861729969418506647523581459520790844243875917149358527405916631333494910356933845374551618897807996677427404975593188950540425516194502005044364817819633343512730586418122950932199710855035188380149217624331908194406998473044427438369203070935564745463680686801105647484906790193420734844000008009171132725820578922532312858859934563869195477218616039047027658461965838238213282857857040536479667064054406764950357371310733592299724961641605241269638111070474269582478553390310315806411277101719237766276080188810089912077185476065488173323796870211582959861585522679650670751224716008561191527688982430779451440492121114359643808248911295270602555488935270191442773419627349829465681268387886843063592252919355000167532371968264686928987117063732539264894360264538809906922766276517550390904611626332478586940261785872714945806197385924690827206826575434861289628047853860710667861219316253370071097227294480342793386453814703729439650243520759185322386411556866535135781858541892444302669096820646029708726828072189408328618855585242316830915956459941681655748551789871208412947033437032782856092516882954448504821470602475629255767976199917371728118765115140793550491432494987422983961250851186804792766031223568493197699239289041592883946591195490660060774446579006103759747645004666688016522116163316383774623273042690769988076811790996944890185890564186156981848523958982904967122054667672755880791128932222128472397352228395097306163751972525218017629386100836434495189139123709196511018098660962182524391636466367253380176374152596435791614845893599690704287857715980240831469420361373121857897533710389246313086192956433953602435187353248963603501961043579586371433301144925909867567200578978207852471460343167690578032469375083024460692395699464296436876047763973468385952332444122833760926488738992386632066210949140031369828562030912928682838859725491217981372076390356660855497752499990096957009398646061227563262363120663970921104009801458444909784288704985762389629587605321087673271434312262444809919175197081108407629291609087865253623516511555096775399040544002669473682521680761701595110877717015391124452350492816631062340848095570076841689751427326075149771981371160943492824462553564097284985307671123119930090249484353542473607406688390850948246162846318433385788050469397110410131499085569482160961462766926841817320340274191084138881728323378866231398124173888507546696192651992418079175168426423014713449345451899199527765623924264631830958818879701536519967110217920761885040200878125933686156466176507543892743191416130069754856519731955863240067749216421413358447822005004546637856830014067262485016302832960124192378738524132020982068065694095943999902228297595459077808959414636309560521638250003582272817128220561396993536121946462705379882204568014775270034163396857928191283283588784453084578318000933973175960620312650771074350078103691761218779707394144550175243927694827275780298327051740245115712885408339992936649357036607601339067366235750798566502666503366507888479770366894830037724075286570947039603179511788829962517371153186257627067389449581026415219355706180543828539142934030230952248767571218302730942874634247967422322750035651380846650602566052504859522327656219648315074075601238463045736783068329284547213656993793677943239361438113281242018557169486269769117632183924130822364939226225045756200409925408934208248693506316598080921839136787613113292437942751941519026445518006880044195513896799060908025272536747928461464472568221086862922572211324013516545990634903796908993114360288745599512402941681010173253790778240493754677277730615226352648765358985736892698637946664605791512037929016008816759257624723683500800118455699214789370613909942521077465068058406119979619386730852148508414782825842540884220123025467897279808411029281144378109533042553273634550566833208732569216406010907108376481180828187623134594563556097308438269859482538341108894662027909563665022393830453824155921678115095822843798160513548304280698028955928680936783527879627300202343002084680818052621281262677364621476527930153427087845447503541473172449507380253565844624969821975755330894317470967970569406112265624139116221692518019444400596405987883700815702965624992275236430638823469153062862897632672195043366297869004563461111668394725527061195920488558658420781548692720577242231764984887451912858947552433164964830457720366746157647796190739230848267261439617547776323859825105142457351778638355398213492098582268303883761522329239600225441647600023602421701043173797231929468749744184964424428711164410747589041735060912173690884204030395682763399082805101366052728074516682684682437696349891228525698822618947655907945380772357328914635901628469979636961681945021031816156275213574992071747715015568353906365603707337826683575618868808355611021122870750930879832161322722149599271748832393861877289487501256960086614920796101631987220357824203399912310979259982048160124918702843999095652813889983464022900188299636249578048525021887428429095969524440339235510869856894584109020613758307372284804627693860083414703995746534520482104535732456150425436626976239265990602419804786399795230400941051506534480057693487305900942340483226434028472456594259215331958347233828977031670331596718509639691513448204776858655853634260873801517705925273944293654392800515308818683035736938783658145501016147677342374402326946659033422870997471180810637667025270221064905193915472226795014977281744082216563842436216819947756713671710835771364207256881511476753223960992301611675506563075860374201910523250101069159453013222274178262859686132588725782783646858101680891217203327384828332003680167845565010382088626164883363923889466898995816845493785681952073860525517068174211751068979856962524330658086807641853411699831756409249943948777681964263977525503460825578740830012936388532565256721977880362583476423848441219376462164903209621523310634670958349860100872982179852084319545969403671471063465347257882473914748720437250532650458001229689529413684169404865591082583063664660963844050627522283051320163761494663604843796284349619695525346554235907992659356881677652651809749734914401228356186400644187400465211103654685576567571695093713834758723176384812872493097793065744637579876197999675063399845717585655928039384538868299579967291658313638689779372912783088479235183761044294781527136187545671754886048027096471059181496922630325819917083401380161271163841666870449306734877612762007410597551967035517922213485678324822003306683703555833770070338347034862034609422581083032071770629429233977769102849394191978756311995968741640434653037508959025830795359193200925614013676742333514729139371354625663309015781842765842541570720957372518423343274690572568822430168863197179490028659867219581666990238749976850154808430053697072900851049276840239998731826766218056354829367196342505011473039181291642037312460110703001485953494412939115406133544470075707925696472227360646292694914068959967115388375884631108153172716064491247068714918408846715090648128067335264420970956721763998949637150223235578096364215290133939428438714363031359744806826381522675306355179961226806125303129154270574637622319726386970602218882059172702851361051700901762369404247649396443050924186535749385239348254642379661353137838759698183525056321350841333586329945617452924530813487012075412988897167265260848973804678622425174516494494262174840146234240725327070975564997573063294599316439193550593125964921502963951956700399446494878639180456780568826953960269133694312374602782736300856175564635356819547231071557261329964347088483293501493103112560840080279335025835372127562981730597549169390612751132124699270456423350556030197506282076433709585805899131251303150988867207065032187106335756131090862831634517664504637719890530606718013691640140755517602123323640053523316899491345334110808379860630320146545082728979776527490355536187038783235745267942787540222547863077195643061823338312810201512927280675602764108154012402003113681239751190555154227790216847617671574433459351228206134395990874767358480740438893316020495115632488513403451923613934895848966161354515572613177493977769478358016867121760602906938545796386458321205698041104955151763345874814192419012098473497837753241619782914056222560379262726828280696739092280960673633089116486321691902788560328330520627329640700834155918045553130826620305979181878657932382332286874926539906110771450949538874148820746578668300024771484788203232376986781479200226322758033295094456204285283955723469348161215450782084360335921246038721381371523721331650141569673970937780668137572288282038129803719515868135304965807386639264844784861735666426736468906199434163838622581702026083086871979124155036450981576386057437169024350018749472723135406383393365022648363313077280142760634942127089411685480383659003536333411488218358031510799540809514154201892968801740172480766251420263511435100343502093702014725192423715754317888532041021328644721597551082414472098491285629076993715697250139892659459840562632174402469764502871062744004540499898753512514589235533749834359600961123960449126754362613752968968319698380004431356947140277550894700461769864333549036111507856690786582322503017154604119470570774168899532722210130772751532131622958501554185842156321896476041556647293121890458594109211400734707880727837765175577975365489010407075227306338907357485122551941314191150676076721501903653270802391259935064857416442253262117946855787590850409307274048021495705915292583580235901499708032101142950876333572266367323450045188780758868453113074265176694078907381864827487989941108475262708762391459746288924116222956573778767694470406525443622689190934762480826871589044538757800351529031655589802876216288891884889663593567015787402432240304731498087690664332073585031077026607889695999059662770788115868473939017072395299225091161847498074518880464165037961551723805146456432850487322857477168826800142312194145737388838400926397118871621063060658871359759812939752669599686916126394571590772789096722439960780898023348346458469714348439378524175371818686658042757375766153210490938173967024601753176673460723355892622821870424903000014765883572024296955853653964695136847447585521998009073762502331021971182396331159052901570176838961558588460094358181218366769192431792025394048346595888803978122387049144390293960146759319688023633746446458025040648778603543959867779304619002224106995395483348577249422617651016409346126296137837424370967693485761817890648155881711984559056448325574279774741581111333276731941327151904240641826147792735766570401796545739608947545390279707134670830999936553013927347518009867043509469208823856646102461160476035059675113613214271600279886468389340699843065681873374895691374257724965907008834558547283800366361652389512876902360241562630986061658765792013471060135002690703402384477261890512487412946205116372035645246570869758708925117834423637954385971549668016550294924183230757109690598893116151510629271621015246012453072649457083599194627680310824077520443746703265818220530258404360943677572753400689811473172531099775953016047296695599672696528315632146998532384631294930191206192984550665959751039089910258699055842362667764631047989980640420720833813474529546449739606199943491724498369474142150687066362729932806670257713456996922043062942714804036409142480767021659612835574956463227648164268405545542176763780945433040870442209015048109519156088744693461176789966073722550109842387906320431359347579718113476605506769760199226112222654042882406248757438922778137580118485578024288510132211490530534917293359391364053122162682211797541489633050420081381591973190665269708858226996772435747439362975511693158588742430497929975276313451978333269357186819793046853474450358765657491787054930440768456705330703323351272351494109528626186432207148992055249462479983800406665803409506020758163844409553909488845094298167715261993955020887250718550617309266742007743765644572092932073354819779257074365541040041232065012407092512445001815661182303362037579070565470192134412753781406110775101494736229945625124501834352887377049862551107920797683533153518419889656609263061302833857219503541367372257866548192530023174384093833605504567784102483400782713497886745329285455304639755655721082212021815153450592445742991479422528859365081776210756103177586962950677694123597287526516807134817153589557811768445460651427378291745899813697830346574754655485176452599561700750042993315640637293237625093013410670584827379025699954272221798298832602575316485461860018720822102849195272233790643183938160428012065522910860833615836647781710102095725865308354299599330923602908248977299474381943616976815692189993596742082602423888293558927077184002923590456387247273870859688015215715586265629857570082873521268172681077908016151083042097242702680807578814509320521414416519444027072640966804121644677830638426298141439996158109016336628250545666411852617791178980479924879328552361966646222547269064171567081838980474199546472253460494250334641586359567441148227659478440193639732543392401079387551069326646473611543904215025484121909686145123998368901196117616990733089965126446491727846586336906531284378273496587062996668073733256248463551403267359610343068245335077568061988970309385592075618174546230915020522891713583478612732353140504744960891193189196056576476469887100258310474995329229340619704275536835280223211351703969368423316021314360933849373185626818374432174798284667189003539811082149865126870435171185653836770164700356596165234628533338093711817013234227512886023111902857673545678883277826813883705537516875696519958138495490236079900986437007884753378056429633666157814106173357025003366910521447424125162362405561429363447817057185880671817920895214618737917277072746643537174015368178538002496104155460267103649838165322722232511002263849595980797493179644970383727251710967245260795758956151379984187161834908691826342477612916143500300464719713834130854283487476067862868559392723179258034748862310508360504493306853472228567283707713469159718292207178596263862154674490903630750254358424738422224506302888574346296041777254656669251455952139510957075281744144002726935288864687962648232391696250791456213756199446175099542084351063596563762809798250557669248070536941711639589323393440537978252672143514707092793960751811103309997715689508263816087206265919583894539988999760264536785150528243595556911786227777630178090281428983329288400172270923780010114066222081104067055877633967396800161452304439585906005730550495776735638265853502055649183142720199202461558890197205672575339674426755265341053004812765364821724402174200553025199708063709460771115477839836938401801460172742603802515438848031986361014124314219141051627975099778907545338544840122907475453216574712773875063589558380793742416110930419030626615821995046888365539404019756006528549930978367140823371876689084425977034563483316527588728360672770872824381399429723837096158639318073027808335096380210389407951371676378575072998214010720630787384218947145109438735672601498378998710352554509960273171723754122746604588390120516530547860542977110285932870205674703989005175905321976656091381589300844949676576999813198511726536016990010313153493144993237383471058699022419405081987774947580226764950081577092718153206973672377328718419802352228751354746572945607813294473698310014989435647844403816996970145739112281397479235475902329213313803938985337195452310705383361566092105322832408354516786796707118178360330260817612745328170371989398727147637537698955107824288486904754340595989492405819931836242910137457057596205916897028611975452016147714790463476286690474231321675074886249882939298357686481510576701701886096624888490760394944061790258945884102551951153420423987562536181121017302742403190945633868818194917779502417003125124599772727924360782424813988691730926376092780375330145568467413196650804875036571455100433931022085044237342661239402795820070802368686499199502553691766601840098677192340713181379748466685020171694022943803575947706105766433551179777414109156404302262541871237298477820812738365364331821165100747698070710996680012545912844808476480270866384210478869799897621843651819336830670935052532893647942911985128698421195476275664561212389186129518767903094037025790279336562960437348044059877091220763609372100366405087090668917568698350114568271041156987380655664647040737482627434531230681582967586890781937653010704921333834245637199128218246854782713266510470619126047766541834311049065591915222736679510899493741011867770082522897002047573780060273177607120564051740797936872229675290286712421758545104986534543078949996328327441448651048605958097241715823648677458652896231855151363039913431794037317980785912424602180926480022943667197845260458742414001324978556083059832719092428853990498874401077020271317157494036428418796910675944080080623914605424733019302788606272374571650101419413770749190091309685092886095918750049759654877971555234771799977837834112928184189068623862465188898244964081528414777184439762900777414339925823690354074632398048032609263713203003951293669038502281995190271983883098564019458237271490199366486195171193308831830334314823287473200660171897842162139141535106279680762746926665889610268917766729462037026378411480683208517588413926310069081834832909155422852711879281097565580719491354409740123184950041220208060611573989924141450958981888972955936553530991318034094354779144485896928682409664639573488468300952215707164843879167235088535667365898624450664988256066990154415179089363316746326700590343388762095857470671077099129994769383267484577520441956427339659864036607410318704284845468151224789980716567772012041405522653764911682563462264297047592990345219499799583556821627970813125623653007406064443351817972238033986029188887414451135978904649720715964989299121332025960587193269058311688502808744842623205342397449016424431065004449362334347184548869300774282083033516792363584933744851989393087366506602768297555208953754145725596643134193330024186668463266445705401628199881113121637459201583470531268420000436947421151009851002292797161963722393921356741231068607526647336856399482791744880603117403980197328804771843449294682539601358703243648586343244576328142857062060005588862063414089427553383516075270663734250203237188177929014488727531099938579599439203870200576277509787215008492544676799577483769050312300898427267551623351374570261800519059334393987210372739018420963733747128640336493611999732935191006614940264124361559770681424235404891822116578423989249522150889965103721991148954445239820639262224879725008275733161818280149148699699156565037273928588236886561652123432838367588767675350196421509290685727562279801606218021119520890438621097657859585750620069787732736320592489139699818267417492587232587774237608565023489590638201723842448804728578462898806574239301652619829324937089596396313002264694300902876619597491009894304834669590868136000007549722824666812727089505631459918058427302662620513166938422088539348491173707021781383141585221236061205977202559802495497658467293476150974062498220072452157027432722606839054293595716455466389500445226568418102800173925011749036741890936247640321666048763457194736396773697167297879225071400295643901602007412452608473172754929068808779508498987340024491354572934558246778405470202809201270056224539730316600122095755886877153726199201777372956296242028937253501488473362130763654845753670846441542669571884418889093219456194008010589050032585275598301469879287492765561939754998096628790245864419004941416691410246064374173477380996875236340635112242121456705504309910779998056548103009441649635565991380971645719379214328267093783541193956444442780343770481616282824303515662459156923725898506545572974948893769105658109308342844385597070729108223393878942648994718791634366762146581318113835736141108589532541567774028782699388622962333118348207027193579535558097145176438384778065702302616502096309255228292866920798756889589197455705666784150421593255409196747917146030992514261276834528741067987187148813858901383523061556426234357348644676009202740428299893018625862361172029679383963414926652545879410677118016179402942766533202339928370674215906974249053766035170828258736480398844442872781003970237398016044760065417402285598405150695351835598465715887641024496894141117087959941560328284509681895650057281340093393833105716383620376982972216291365086959328595036773680861660899011988429577190998551186531304705528379427592886752555864465912668448126261271399149063567798989706108875372539111885733474057234756826562992201713034193059479398453007777740218245094508756046238835809572908432701582248496997287265524807065994936223056300242441112659972677880124960352609496340535077104384266618601538308784145642985532537581919302823834274010033348029207215394423358983529352147881030018856562997912890971364316615307936134921232434605315867542098332843606451552096498152292378131865939370206855279787084120405055403480033633509803504192223933236222752653937925986351973959405272199001176457562831669340434116707330951062693177858695174525108371576996206443557478194963329190714567471749845403649051456825496662821196611839334786031985564107342209237325681803855974908697462164932669906366724236364224713530899671141706810429965156905421311209459390022757844945342689908668947150439515508122701605651085769335382855189012415777740798370005220546669397843889956164292182690496041481221954069382764049687723080255837213139777513320087863022477280543891390892644281588485263239207558851375062373404797130232621158999180799687499991357223315947541182928917285530133658701985256013738383536569882066598757148457538458604667551181825551047102782817195308299953217010915187538707486997885033669904487353300242297807288271037253705802688784551772707344487814493596781795630128770914195396350546724040676795925181598603226372015699119170254867513428575870143897657649482063433195370844986899032977095504916689836796489685433116139129565423973042277557094223254883639215084509542535039842876112529607062498845544523894819662136470459671314214460255188145394863776909546824975591128831994531295557604393338754974735050511923944984717466686111640808516431990905739613436468694648647462657466487350799814464668838217708339095433891330472051287462988084276564332169082396587242260013295449674187906754999167377221287005237104083813878411193266253067466231738576536812685576152458843707916396719425967505355103283785206174915557525647696949505037412661138919066514387172246287203582271724736077961086439629659949569461895755207568982785117415177594518033224907829466592789672587778056222018456324825445169192230029895039278960277401183855213180001819762312575884670934810941150001367827228380834653495597649680226249910567182971751600062081551737344940510633168501662416818203483373687398456291431558428089040185293975001942613129118123841496798873807519224079126761977190934726396816122550028752908039028546616602781606813524992927175393535133645256756683931387002001019814267727243443532481482026446036015067452273435461164177833842768516229684171814171139489674926120919055210747532168196557127282659807846888736197388670670417273749021408009413365255978943357350288392614323263505495707633119685215436490027557958890724372731808122523490015261560798830360777034875650895067307150724080905908845019172228940709474518815246531214479549479397244588549644127465257731763868197209535909565634893420186299111023355040018064438904506020267720830266320889221378283285651473902736830710368868401502976264437822126830542106866013995584641741081719821190477039628773624096409830805155136676116760819936976266284286323117532910106164791529590023171471896599629854834863609990947912037226366078670378857470102701445412611572690845264258169472630308056525905463216694697276415920497882060151232394945461124656813256824011083390739655736588661070724299993342565757299849742935169945669687890412084369859895891033543035429767081876909916034183828423725685992579942849817622915478942055970589091528297783317990775033794771272566261355881374217160688565122184353028295971322300181891412957808031000675159480638087745940579700266709970099024315880502027050723393636572597560333527700066239592181200497476592173282714803841740394011425830786585715158019886691015728934522289793060348125556546627643926167205948163810230059591460621617546318852148627460491085925894917172230974810619743217209942007895219369227123249682415907604008280430947098758779557705836774027341974926871454533450910345635163024528016929520234765473483804951771530354359239137717947743024619705775794533716421855174946698763943066294302110496883436419667094940789253261577040279806716938645131552558443005383557807275063262679142078912342658516939943572318540918440814937626856489399150177246780191482586519303838750621298328189584234169127893067226971441487784179182165686382504950439069257702740724457604938930229132627990206706762747980674335967150718283831481889761793382337344982751993364018986681161972975818178379686793785658492041140530985895017692424549688070125322588986882922885516099456572746581541083389097455958584088809401001778159923612463930548449304346715939593606755867700290351295876466300006994873700841586588695604679687605229505081704521849051560291628651944016912453812689398788297462903771450850706571823295895479999788218347643324142019112986095591716619796573087711873722194034015928062063250799939495881689383842342571046725855064263996657737869232037217595467467437707423614502940387229662866516141188573763699757458347906722296558684582726649128019005330465581217631382594941503542947092444204914744304948731380603068519603586056856530176056466419869817968145464090921300936340075383468009281650496362492743256940003146479503123263832510109293923429494728646441662768595981318899313828546846887549946295807270910808848526314247111209471419056337373861652339122990843891992035515845760120982947826049481926232953695653889340264983381583419112204766149315878566066181024670049835534501199602806158054105955264641347832695033684789861952705570928100521808370745645227867160721830491353277048162624532330525751525753011717430003308271987605115698480904696840054788113908882302391840867037352528383426404938458444769620282556452558818137049795764198742137209201104657163974576131795299592567122261526053055704810565044632273293925249001694884867824625983479601819479688885161935202328242331343134732031683570584643018114425217440013825872857863415416862764063070459655091214741261909782776788543993430899358046339640113860109760283120714933743447156537943309967753939703919868764078623610305426046733852458115644802601059085579136207346108728625089709481253312530409546746063112408568384288897166330538971993119113203210376752717217742181004416527471043322792162017638850686447762747775375779372743026892566296326641976145255350009044084759452639784524003481337732390298647982771046879641831755256232962869013343016909942195325024389558336016593863461808897600780694096908083807001056316116268553768963113151934016403736832608244404652085791616862149830551957089029948250432278839991961547019972765574698999043614151573719220303114195042583205886487404272265362302774644071595656493276641956838317241456166014818831179187456394002413752761627669564042596224539559307947046068129644970472272740763821899384565478543484860965036046922030424811547327258762315442393230944138324211766888763818189630601903763268313231624572131509808124535321079344901789748032333689398910678488278070069278594164312686678106072203594745850976346999551637771677927075963096184190923819055798429782850817812159489323118678584009154473902318314636085749432114149526998593780211067011998853063500262956346183551419214404431185960943971065625791957205809506636590473751800700102247558337446147852237902441544076451781528197761894859873270984825313561615814448632003341346103402340295458941739783810619087607770739175185057700709577538761067193756129296155377952011308159314052389348502249392288202313709846717200974248801078663513019814356453687322081948182329989323521864343222852686680376912996114235483898211165459948726575691131159660976738717766000030944317264519599160490470098379644614857492606643694707936005104268935593322992793790444987053873343108394711668934142702921721822280916374154488445563586083095040171452912971851153209096461471762028830792190662140355253341980757337108113841764841888848349432917342236801567039575340442812532950891747189870501573995553985669768423740109720057301344473130322492647923719682612009455804932631814855095391954742458538950978166057742530571507660257690964674187439862730073985124842317510652110595777188579753734626011867734051796956784648119736027497342592215952375609980319637033086644659249681113094576058880594816340718294060286664312543777739186402985196924174574209589112926205808748833352962843932813247715270088640663244651227437669599548544299334801910032146733913396621498631661599853832654172745039328681873547355343757351666345078663201227946390279880272001455337223387697118466645730997438735554642809344219159221072858266212951691886847874683951704554903919786273844725245297975106524655077049313221016503086551157533325474900299952969663823020971798928107409813731907403851727395722348737256298192546206609378791756515982353989768773063269514824763808942760702842941979452907470408849370939184016558496837724090616276631445143400891764803679789395380638393290192684402223739646120228126684412347566738568992566003910592414409223572930254713536685391357191152181176090806508224617563673942511351309598917631112852308009701976845159360310236591281688474362161048484459451402049743324789190511503009203504593469661684453070579447219982666338938096396336964790957699028417037831404785771399258909270346864132825456878555764179913932432271655389295521996496369487049696268800792134709201363419771827978343967836017505448777380158513189098201844808276983691452941206204398187107677350240339384610165491786127031602295983286444431245371809657107421661725118764852843616033847253983156246237878705633129035067119856295309574388369698650670906704828430684125133693095639228008834671429097326283892827306428519828977787710662475015364888499364637696620511055517738446182676864842618905819764073436844346279518818047505218018183656906232774649607547446417638304078508125797660732575263931918457558315021081239116391669034754209655175528288445169782688684038257456397415549475483458637586867962612492388252920845535232355413481841564068755589353468658700487600655156049331274112591034457041163182642906869649684022271684264295345661574537028689885666608560399443780926171571549849499239125019260360761189908750327232758525947771192946199714675230862751857124494294515114977154839485658111635801472577305112183128580447048043612675906800993346900095181956167971605636411638050738403032698986409453030675061688683844917054948260648139993453259366079772292264625696874217581749863500584092837319242727605470716262332424230856150769483101790264450626974703728744653222527213521809863812651944179877263692137040976386626694649960440626927253327484696685812177368657888486698965020152921512900085755449076711412870872823612532854318445285933859902758725195057303940002560534453655590624238174622412668204711768934673385467312759208353977037500166793843889331655333028593988605979445893850619832376095919506901539664910223188573580199170768384498109278026801489149013193758173111832974375082087715048259353209512415744774941344847871155505528752284638225295948887365698643856223455821121357140791788498646597114990224974465385361872324539712734033863431281760720223692118757823712795652284211763774094072238354543551174473410654581861584792250490731535172298808864726423526757710757804539195068408610510229429212164089697820462652542000675887765401310440469507288310970650164644579221263686585509567083887831634749105521108010816918725056129771423140844398870513523825496438187646646071989912780234694626601771352417365446001309463439452772025731093921948440090901442673912291382537598366669062335961095276384049014181989125144462235589050329626192688100826888669283482722053106729748097314297340938579624239706533337144031677868922160738183362890731362930218691997127078495619096543313464471324091885017065737170484797020488707614677158174250186426428488210937657835706815823838748550460403376870656475367016878127895137594900305371646643798474055749442553306164509765629431400545926902050721715696431397754495541992652933482376874153199539092998718630258514416742171831352022639646540420536614219247933448890722885202451252944034801756388852192465663605966226018217428905826580565425510058536071938475458662175885343487397256176386181644394980733934630493940194833673076563534773072338516248575590844205309430138955825200681790101142370846696446084084009868720031423639903803534913432068904838379008021712953512452845597305439842488461181846314395060173035918807717458350948636188666160626493982581050175212615193349787241067039673591278543403742269880949639980061920905074968374565720183360717365883495213317641495248216530346217055135668967294412312018277224167225576090079659863227870131325263698880854202011688872868892580336656793943471446615509572993591416718146144024493148009890591380601993752287892420332719517052000967188568637556488090781525685431571768348334925840462563120427815679282550843834549969809548954025968206563260686252990836132326462009897664843237867005933033209154089036682216881083322750370579330900266984721242724445584346417317085944470973696526313527968772587495335953230602110346432654687998049631456422866187107412148988491004450181804390886273244758084587676653577286990783644809780435921342529386331431074846115950019683250852532391885194603934173754690592575301425310038432973664548245990157889767423908776704411101846236626321066602464207842650635319577291730353553586435347741346961055196953635500723324572952486619098264944579400709198811254942327132258721870442278687509236944859682280376126046340228956006198961261494009368951858326790313494262763822059687736189970487235984717400758622207992041480823508923548075209738978783166240918575509176018701317567046916742427860500396894719308844967480786495189340173831572087336458753934140080911851497160502004961137161823649048600120784745070563875957234686903942666341286385988486939362807418980166206351686311759313585625763530118344683675781388958319434913458964114792186348628049167888182680805543453935139557945490978498632096549281480972012171618302568910629245599217614711667024009543339635995665840603467822530617624432353026026214126222041050197148277652293261172035904205943462089875049605625551469195688296390702668479235587762635626750572888034286358567040982666847133054588100542113105291054372680906240752337057190015965862832108123486710367556118515958487159209745559612159173396691474190020188611100063549881989240560798985597920764820718094470544903307699481538400867304113843805735403563685980100481301718293100455525471948799384606899663710797218566966881895732236703874483113519573059093286696540133972994798406560349049783250533317000731787929129877356502908114831962732857327502020001436113480824091057630047042154567277608918759952028614089624335741698733429514639228469817385436182844690679822012795512236773314456380482152184365041193954948961175723517510561262313845081486362510479234707518403407600835160796315875324533860447513571112835713282806026460265588797858028723422888804945594014658020446589249614191786514256270648636594141803641728972315009511481676267017437163737565165218475829458940135325915925829840566843239283432700201511639299418996779273793625660449902096491947374919217503658642064795926264902603284867977985472788942971177186989886987623130711147442090072540610688217299525751750763199822069695111144394927119818812133019455334633302087659847449393789539259077136835472585960258336887066966410290874100511269917256923084467656140059454239311189823262028276428031370573357476465328444242392538139092489541103943625275231558494667536526557300380531821984208634472186570062603436723204132784515091126250233262256535887837252416391649384056482679897454356638733584276286787589293855618038639358727419917009517577375104319165884175337015700137663285171247101684307321582797787591058002960616828466659753592976281457754972013445885465689806949641182801865029622799078796560929969013759164364469831668872598729129312868045620777394162811413867380773825329647364351905879929073948414401335671968217509851401492288206308363291819894021537259629257999828693505392066977034013768588198264531073048227305847733000500909990439683041826496949948951872825543906408773322393890591740311923074692554452103309138267988145430417469175993137210624598119977434635205136371447560793144009484039173027022080143767413026390342048803506704364270072953571206360565343660637327602751367876144633141108254864371386172654697002042950238918840444151325238406872814093530946794156827964835405004390143105877262967137891897339663057772959395032590137483074419078122745587078212545499959844937106425830413016534897758896116441727355295402717284944670079630027963765969557944433887940241890914325392994156095795305710456216014046686489839427323860846936716557129466169872238533246462758423322403839072443648631345607783788274841422416734739891376077827127240034608795733048148273958626338735924574383495092867662919044127506681366344532092657816180787045742864786839021804060906704087433826543624674044610069482272205298007355708640500918803749447646127346959518912580750433423501647341069038083045222427701751348782855702276510900695329793335544012510381922893247037796499241430459881559129623089050931020712782785160963583317439212353028769326535054365311008170318281998681278838625711435795851388783985044484090278285973550833258550532911369877848860621774343079899809265089749300263062525732497587790785904142895704679825671928462727222820572767584276605341870569395874138685784054804183087577784256430193834654981200527232406497003540104982522961292946813135498633029687327876175977244580485482511592416098881859894103157089268608350226354875344761219468972540429950132944191761503632323144468555364962645443781257673166633226829781820635870143801026465731668453268807105794674389653051968117860820937409762552750654356410046567715141397058391508534282288351590788658349584931578630756278008412726692089749600217410399603816860340836621973127706936510887117560979386900441347486691852278093131379771694418079089554833323939488387718413073028550754691364055188292493100015501542620310689799873366211226693048438631157544954411398751739957931654934568639626280313557190641275129868192117061980376711036802553926514382219015460390280081042750389381193352579203566367795299508509682087951429083214020534009651749456431197335822585048290922042857371658166035382642583022553126400723229965102272504495991156610112412917520034474437112042264842126567311876828289087873675335929198821056503071851699690524205243810146509574683100016793512016513108987495396165259424457400920496444227015196496467463202297263912917281700326226278620202787825499441015036640541691057188924266992542283764562362002581324212076983338486561126463766486069009167301913474916795571725435267153411863746238139268333486445637882500953155085245494993547936388717678505091647400270465616433034480240249922204788816161384456045818796357972240912122427116388275491488833996533457448620855239418901405439077790833380717609160339346533109466318262603878989431641299825517318701866959222889066250132753187004309076528762853144041903433151111256626952951855869486488156214821163634463224873837361538286976522649201430567862437320789985293891736472610613118380843950731735098705574518481192664152719529104669016324842909352927715230657535232969162127863162221996413959478960480120496438845711701084503114643671603786103174145756022605571204725679525334935309046907303641591805317567128211524479612673462317191485332524294218636961614146363084422775692858777141441584500744477809165936225956625020539829962219102138547417554538991794900389131578729356796556770149418514189375464529224381287027853097041568824094525267397465301415718190591993514087959647389635362151599555723218587605961280534236413370874076235544826056302093369322354223499512646371681580429886938836983841801863568862942257888991737232356542870611133098249686704362839807425956632264310683954840168739122689230473141400377557884107347231417325898104800122941800233435068131135665361827058722535416648680112719666687787829321022150666477652641452968359607017106461471602118814425224531366264815776389228751064647161579641924458545324837097009127344603919343767419693505364512993983504526023441371365282758602710521073373554465444440906948504382265507104414415443273434651723490509239415684333131407741667118665991130831313951526849902159032590219391445495496993759986391679567542381200885151202107076800669257840133673577937643848368742701048723351255513013837748220244002698155106105467094877690689542370798156324364273559486552798882801913448255016761921693427198483810881583097601245564373361872693046196601963778095020785274726230012456202458540088738530342777993197957008442225387898489474495742792716222529296396701590351416226672067618874469915151963019722903090794983580849339632858655317483205258664321999227435631863211767490725053532859009741119813779282104656319818754506664138551853111872291973973729430943370987786657026415697481008074384888198947541789537796334586268745210441933759907164530806192321133955635109439820974862292241440710644984596532208700751663137124494345529240091713832990004350295083167078943002364927606570847071046939074778509412606418609127123626018792191348191356886813155280852097735176801201159598886303860753006172306886965877426085862686482283751490583070694356642047702298825104150458227056511686303722072266112664270377821212777624449479784204445584376588611458174393693902646836205705704251133079550611543068252918701864558929511714728939814378346853960397825509348789344671932444091959711173844004319199812084514847931318901455818319656517587070761139933984284580659752592449113558486042372653579942174715240716117512156360643876811812454838465278518746659731733442693881687891654607967206090151874393986978845805741416194135697229472406096205209499060240892098288287512698466229951099585009436369567506946761150509753637436154176602305587770943008107898317744150207973092304521965616753537096328607496236574666145197535119137274613788135263231349082162449175840071090199788664794270540765371477730778979825293212314030600998878070100424192230074492749000694224560016732083120597398908531562594465463663001661435603260250745565546751577557055666843741292007570248822893134085765524235421894167799814403528886783179919726944070649125027756774564792346114750492017210602941655085770180393022355374914866387191593410420975104448171639927901357871213009818325367654107612468490201428459953631391824691696065684705817212276348149005501558124641923935652765540096416372907895336896065004177414226713477764311406790892492108141677550955126034000786391922570607889745329017931853242006755499268291795673169486820110079411697615122906574357530801617547367673197525990636702007081324692047978852594814748056938341920921672628033459241760283405907696369905289567379832086089153125033332977172712155972696554045292199084624519195058999577383581482855825651886949041592532204579187137320049354959132403614310341100326022911578009387094435966861648760431941226597235732128216545920469626992001905395471062379881278856585928660926428357013917540814064388582314092802237240680076820713542984396043192819279981448082358462186144252035322406145625788048662262989753200761633049235584002146486254318437414292241865332733655937967864956117672136764108353730017963017563835100833185457852054271909312105108934019446596539349217188042378700565278276137488807620138775086182593808937186546797352391101421720856758652328503019872150009779568920659292350796560616370275376581794007442460060524906733474007368679884709335035439983182195992586526609805623874731971491338384127870756948912217553074963123885336364255381066701531048708754077589405878166176224993772597006325217030959124686593762571270983486519757614113040664096678851776806693599696529791147995200934250281682552857489643021790721225788329242228658888778794720085092855551485806879099418763224560714285342183903583654377278496470943277449077302297914504301626077453170955679656686899876861386841856788375816643705487413995085506798281837481903536977973622034538801670874454855155858651690962693794054170034724327568059957816569694359510412309547170139642407023540953294725964177976469409043525721010923595886510111738504081197372378471222379774401740210396461212064933543921276883585815258056986531502482226021057983600996319659523441330245036020703612321442603548835444536019910824331469527881003949209510303756913839793302965768284990413037425403793457280873710189694077914183030672080145505236573542584403151508839133517284664864395975565590984156744353509101687267779009004743608782732011545290066775950838452329791815820229058172884375520626159573086897757365487992533989761872661181930983289980347319095039520146302669951314919747655599024640767361719374399464700388754861054099743419769693177622304310683501115583883376385883493796571402726105647754769432932080327090037315664900409939545512797177687979952429868743458657665687136594733378281651986032484088909241320655883381436988476560083263305676089927628107690210017750148906428233700780669061626382682820967665224851388749829261034954812160761247546070559635023107764561971644224718736798095109359525081914877824613593664368688013417378675409925604915586616736848526018224586787763909413923647769594060129256732842114741621077136021689751084599213489397210297831452018702030518076775626980536399450242916304203212800148886103014058153549146887864008316283532294093722804649936123163778275659817071197461276186895340058234942374091745670682757623275591364284263769922344079869573413629220604681555639252538871014923139317148356647595336985987825922166205512495145935787024830805971966728812997042499738732232751139493284093302760175008450924826878248734199135517304448538679544449784254726555913960838531139627049175850408865019175477174655583044817849552840392670490260422584938055825761668432302774114913676140552346046283653527288028009381972443476503266679863215844732245714615231971144907219285665097747117750110872574330634823248303385443893189783323785862774932809923399641844286703754900645059325054736862890317239310103402060880526569169348722886407503235829943362201777768775083982195108073629095797871828336035574929518377614617843914179860248251786846914226024722168016525100618239788943501758728783569810423457606342093275710933162271122194692936571263084861621664373004934837232459462244147648300568666838416199370199148418286039973785800411397275591754178602084610692054118076407166467093477591492210618314598485042445976795274799902891655943007062223494785037196481803064553876519862483444126355122150361688592176191897699011343779443779303260888944513198469320996867318800093288871202429408725586375828601997265401223931104958515965221180547656819171006245604198627696188613235821922839220140131215435568094721979448021740138780728391603080845819549176827443340573210443321401068905998847665502440680539509068916276837184360250977388694731579391541563273532941891628177130338171394211110143323667358042859046475613546878958095522969765289033287916280305631997873236410564938620749913828943179084732723702434344817561275782387374520936036131058941422003764290281574459882871641775375198278766442816255044424280181085647095538001201275689054595196074721408250195484673927521934463920407940601303751200328870537958023893471361162935340471147584958613496346617617857772198817485607370552153149215884064304455578992389990670491605704663956201605186484962314632526499732585840713388362439167413023257560894623981470069467683091434166966919197855341884994766528166026403689976228851615792108193887766042327467803547579795310494152457698590567732033506630490418284528361119000249244190357719498027655486281301917178830788316265087479468003733967009943021396308959771437246754330235597191316151981964179212490988882087019932658375413893839146971385189225128558521485745930660490674647371459790568827221356512820530173561980103151489392267024743180554474406452223463791493405151071240641734532787701685751800954926102983329359862410276108497129915724203165135159634897481681028827615564626528911036758853934639391695008120061083035021050456675854342455805250775165205881602243394347786240468723225312923355689389590571740334597078446946508845725477989898715590968858475512612811821389001989543274781888609594655853276603771564446114818810211950599819115107129233737854704163579024101674246181601858816735430642044781229575751027565644761416681766401635441424094499927669424969108505639892449861757065857047413120787163001479632530739281778997246074264676320136958007142044429668552850955049505193279512278883049525412784232457516469513320967203179181034246790492357035243990801875596419225922879346270561863020416540508875365595231242835971857915506488081682607712058866789863969200997371353508866223328043786670861032861045740526796062386545191301846320615262247887134910958882637214801924948792699725788356211168014492127799966346491020756406698517239664216196396666548729079861755347183189969704724897926405967925411711629058575304231971858184176103251209630403357208576271583728247383182634786803128717897899725792087217989661271401971537390935806645125722630311363121670727002341104479379521968791811256518713262670401805910065238991539191232686285919353452214273758007495964266097368015661729089987063397471892210529937158102552266983431092833741500805186393595880175768813117214314177653191512527393860621998884603172001092087342122541370024148373185637460917539744525415711239356175116747389314435959930850467886570696363091971093725419674854605760209239042809939483405576491007145909315419837956847866231150077540147156167833881541848213451342713181202201403824809076652611926720996203879925117744844610541667660656320322917681934118684326355979003035949370910507482124598024832141890049369660432518897983886391637446423461086220576257871959889112461703478184672906380277833421992511974802614408806390005030572099257324427681129424441482230372419441097960097986657058912797376423567873738629859677485006478378867689187258861006424097371910165970552319389136141708990353174678797265072517244424889961039935142434640201098398093229734930999677246359348964952064467435390492951681959322026586007399010189649965130872392536907530853418811518666049381215240679410686524883638384867745618237928128923653700324224038482100364244255976546466094675921494254309560171307175927687593001086281715499230675237460226782386531357234136500027606942506320319607651340920627072244736628534727179373420528928838251409768513719885469035511408256133199316920391105220574409011888011269127202942808353912213471645244622157370780107662503195720148925037646213168944166854690303038855879326631512977993455315233645852129160199983765949202131352644441730242623417204528275412594656927938917876419097369013908528779900757261602109546882556669112354299907995425852825785279191118648903681065996344132667014228790241526582999737274320331416819219729550427048303697865722544572812018038897484636606547563613273557092878991251307512820871978336216473698364186834839694622765019901957895399398421973652546521793563199411112476378426256272319871153679638481630570906284147972438305072176935577065739925189277286345032021366171938285778831979606520587964200741652996442513123470219670532827181304045894638530000387842863399427808895695035343344882407943608742714964594250042282248081733892808415324143659467265779050624117322861974435304859311020183908038754227182833392096514463216051887310950474141296294224636888218767521860045955528046745077132901087575485740177951511591716048397747018516027214080811544291718829482972781537393856047406201115508573715840139770803817739422207765727884491602948110335883659902228774951243957595616795607369858768070556109372922379604109888410979517651886962016905497407980688816765257150175578508689416782177410707249868894665998231258354664755574759408825426071745203549862251754700397366163113164271543206793838983863231569913821049377330669016748604726260839824221361656001351614811117842124761947238446133113020978898353398840439171615070946060227838725315056468834128528155468024386751848603547372728136607196838961714424294438842648694527353121155481223411745501367095216326924611258390694089126102416584487384400180331827763033921389427302284340195511795064504353444540234943510842301420202808876063479644070478669170527108111229750444025407268035258484106479228273160145492695183186147210688693284988517619536080564536742611127516612772875411423413656435965218767124343167908019580043454154332664408032480875423348358406022421118895553966741201268635778232563601321515727869420160902118255050923384509797790337292665614974123239906367742501562355324755678510206045923261113420007335476016207821343486120314799306599996007591714077323806816815101664748545553870254572094800314333430025212204557818932966906352079159066590971970463137565419280020691748458201747554212462410088117033405566137892763053631095731604126237766381339693879652790159037923504892702622419361319796342928397865677883719672860766252975267364936514847178916598885545180007108718194884469997159775054258205341535386582402462616571792530948860924950028447171397753329125000501673378929517975617226972099800153843620468968959896016705455233917696368285944585461464714590262396189444202543903066073166020968184006366338074711533380614906805490192998824485850613818007232973503336397861893841406001763312302436842153063858553425642379642943709270865465982278582725618323501597909645790018053890531475151846676315418548129109597283601589254867039108658645682491188266089495971884511718393001912956509990308058248818460148664895710960104629992378042415527473768625586914237147545857221356361611002831448412041466659930414471822042057789637724184130747989172602825061814039139353285472198110212261688906855235427936235190159474631799554378601728767493665574827155777961871795593488339007850029706400171004163966139984017560725912804988380604841115341861712197906005791168834747355381695488955199096915714305142907899762605527984719384379594089688059559236720116137140013997857797704661927655495143529942260454512821321458333024598477531407819874764692778019889075317687129529115055323736293631340573068540039825246295742441621302941354952401081933020333564171203050813478355894632221693812229390561501902884032123812445615715918427639788220432337210755698266238899319958373706696002559509471433548122984792835227542482975644193449013504318128718639191672684036301235552435683726912525751751286447496887402447965798574954580541886369718924571058111976597010209376049404091206058972411568652598698231738442452603802154922570356466820804126059945847455385131458944279854795097359255891414067908132092061722598048513952891547090103755185572050012782765421927569658795354610473382122461842181763997754008059235381705290661628840162110124702127517979486552336516059797227942974035162543181540815463391971784577292622113141850073371368818541113336085080292944945660368066358048765233626903015197891171861903346226116065907240212902845239935383971596829985938871526908074919418097919202012781113127750876388829620568448244163259146040050082142340167879298588658088584527730789203798421231816985026710997092280462892115760407242295439686481238297604468364774678348048085083259256624274856057464790978337295691421905953333849549412567600815196462529082424665812115132715659719365696085908918052267655137969307510789506420748196917111541649750942818496569944258052386747355550706525976225248774062616542489314405582613564316441629477330193364420898997541280156346596314044680786392325867591800207185915930383350834566509435445029467280160923527290193323836577442986132342383852555746512851068731300241390224594893827359131096177052768847251397102113498783095240408301111514265397449915069379936048767786152912445591743301923056757825815403230263356676305472383388489932914574530225614621619014652825932791369008675632372550621351209920321123664515266537824008711217461250461405495816006525907929699741717518720871794261612264585650329125447836993647345084888875242744908123969103132491701562340858264984831522847502421107677215703475673712511739322009325995935328741640775053391117764431267038474345552945619224944435264887262396490681486453946602499972949580047787564029055565531143794919096303671393822138252087022575748110542336384639474377239178138037994313540821615480760952871057173521409973136558424234013778697763143775721819178308483609007788637532734126748376245492943568368597401390169028230388067455685783861662940685625227780183227687645073511262074519208950065920154983607784328508490117771170593662849349051211392047585722246728192939312790416438264570537716907956462038779515416198952095607846272947648632281181562162808191649727970217972147958638300320404354192951764718430652424366718410423331332640656212980548790838994445968363793972823781772079129240522290663308619500713848426280579768925341430433238352304047636745255785814841263407827190571215143079235272505930069737694762047718987457989985540510967931293230565901589431815548765816032793870048866421105551686431073438591650511745524052101440146260258455252311729968807669096117455806929712497050694292773321919465062597457836854854334400709789538167630218447919871275692793624120694536715294639582714090990653558337726633103400088929133049523098613908321626876927579978472826951735725841162307943148627597196305798607666153156092321693081762873831515379623397685002225272391360539212120765972189379358474101995477469643876731522013120446952625783327739408203178767190727052506219861658515696586154197475812938415098634275074569774514283783370411755814800176393543357343337561646423030490058441212561965501077412036667030553549214562166309650316268488913785023473285490309838262174165920036902767791878893287958333592837223935842601542340262545172578101321537539669471384775643345657169244013744638713886363594798646098817977165059965090488831875760300315549638594659683448698080553245417558770455695474865297987746739684438956265803523608294583979013685074585183966722595273498934651580379602485858056524005456534014181001815840406606471530516944206340377164991634124673937367774923861056771837382319907730675534368807736496930729876138305841254410202788640138479005558367626806310136431715932445465796340535837426253904593144707192484770842140622974097186587633188383555482018158692380655948179706334949156773426666038030699341779147908388930900398690344034955098572465606054445001402623870738144822690017949266093610123488679254559517974695199125574539056779771939423968982183365331534885119634973179184484992639143826594381030504433776809853663119680471654090238884980923134156431493573509993164057441332362221827821659371204714007568520807335481263901947074171243046167019849911953592951595774271654985972945085315143386662677006410324504335670758505745656547182891194687109979718859296027317815005187214324521670234141892507586101025266915576324099726121396519811983542590155165539143891996484048239046862185226607015747284577591420622800762396809827053417760130160043146951574125787255343514536477563685028148105722234323313655278365073701078042010314805730376088757788041861490785104438904944908363823889488027444414868584924674040228033824644866034334616190457957973305411424954989948153037852831711183171925696543744341329967040839100238476080096713112850708695484128077167336322541119854727028817031376352823601106929986694238226304143556406631355931108432552830355191840384163538302491798335736154668886958595880169428610903515425080289694653767899507916759273039645626225845951217728353529305234080205904849695391357187006364577671868964963891595468864174175226148229119391861589093687087034175695954955405108478482183808059150272687065667049234887233945531996185468201923539538895432296167427999743815042069216738966395712401713978181648650562449981793928065774769083093357462525698724945758670042782613827063830558048693073994079750540353868104628954250909484038536832160985500811380086702128615483157611478009701926087182774175866798603034876452796278877369244455136903210452852995804238257186351438347749117528836913046783751561489715160845085878291437237572373203427841981562730384222948682083838336655232511955908269187019090500697557823155872083424904537408563047745392078173587862591219681092820943494222700149426053383291764757315982347936389760305449096959100458802753500033181335938316193504811490981044910363714175197752259334629082580916931492030653394873954133199245271069067574638071135876948021225686260173625335832599487019954335690804268278758154001170312666289180386382993107278076022100601121870213500421182223260309000614231682374984252891722027723467270729700607203532250046840001135797044353233748220287057712706195861778898246080728956098339949058110708243235684961632488303121719346670492271075806175566119684575004460042683436532857785942939345685091409008129942846053708302438188040801832515926917763808477568010548928167178479458369967566912681064489648956866555054697380297967293653511642985142328160963314700847518164941750885471668530836622467709081442539120751355258553140904888441764251909437079205061713482406600855320966506468942416143577855138350336335919902472591507749860657626280112419677103237569361886044295846203126701592549497592873285854318508615347859772082998783608023461575569107158831563192357031990312520721394477573442326661354021054010296015061361178209990673616925315987164418424290237387702273266302541608273803432677657227819764933968755090603743173594755221431001975143760788287216302957120942783083618392628217684193712176676845163390248880842480725462839627830166513661789475998687036271929001753683657525206837730994859572321213198835478488391057754471771142004263010796513583641741628574204404641239728157960626473911356670607412986777528757704090959663190862868848767558200906643312330856329626879807126164149889006507391538484700099277421018741102059540176637705580178019532449394969318024224446707495579586705747944608248058737994747645891628188944722902825485241375624650160028797889501323790103440223678916026943370569491234067766478164619516040100112538794334817369006135589590525466553528896053945918079034270601483000989628777891928619657315568777743641583838260368222131263405293393429967437534226355789461505495576493671903623132631067450041824682417985830523499018519675550467376205441308984198486327691520153636173480516093613866184070795316825883077694729963877141181086269238341760372744484185945034559372617970950353378895059986376624650972770875949301000704529276315975586167122815697140380097210726164494730619316224934376129688124821539533138778763584148170686993167606278462074730728373434446488978362136829690651613666267779623977962417613266381101737963369345554934694226463511021056135425068088266469609225959219314520059367540689559332047506640161648199233880569694757973065172866721236156728496942450360134508987025753909515429515764272208026777299544339874754606574234543513452499636840507295595195501470278951344242560396194923671939523671653766248320175531975488881498732150961183905713287091295916833805893509933488668455160708079189351260651392191094768459863421824578469535970048878957852388564645574937757320181650714280932427731140369733300352267836683158510911608313107113603096806042612301423034868505156113331065440844375786220892387323049613465082758037539711693627993164040854497542754905627941129299773621657528108217900707154991453011842411729501640594724434178823307227121275552069976957568550063652759163559660955693123067227079784474584836034478753241083220823562906223623681660817970310510901090170872047197871025715723352573575810295713040195635355581652124736054433788999061350389737172949172512360487182869061314777586365215014511596861632276451850433325353650305755825715210657146011893760415369085949630889928804100170490557209048569544908459311905027120092137022959258055866470052988716477823256616456821307960745394997939149933988095045725822817870529428278638115279983929424005452613839854722540586801145989803997639508533287942680971989476635498686759821450539546522261875699232489676098251252022660210162024000376968659116108358183495388795601711720617590609165190021284978969740415187128361247755617822004391828589474696542676650655721485153639252076814618917098113160874139939562169534570275472351226560993302659247477123102711325510622242073820095710164767847617011424472216383116740650185606183408279606938139119084623291959918274391630796304533648882715761568527846801566182937621865512664777248621896983378876338931654168896419818820220640587721327295280766348665173636487433086777084025222125566495666442080220806254115084058788616348031163537694110441964089019959605023285662482479063362619454397417058476545631737825666924678519175869940079617781421665307739796950716534704831104895234814043735204332633554721121330131141731139842687529350323700210773208794442215426477191148418761202915352891039339566385723820988399827400148466637378674538775258842932232949673611791626518797370610883964058075085735951426824198360166668693761670890652815897139203542839417036281752061287164837790800126487385967295707941115447243043681791973500071191221076333970840273125524292181172326253229122846608806794052229625066031448730547932817282336831439637360150810664321216219664219110684681273643492337641458000584343376460747132353529904563673435626413294307807264488767602838435501810178266898734683031327132372329210176433975932027095185594417798394203230516029323726682120133272038026008633697367552655000093847970871289948771446487504903504093781779012031871873196667748570254475500873354561449446885285908270803553344247131559590722829851647668983944215573590256690049231198103369130716135181803727734479840485474445170182406274809296466274969654061156286359763964262163154669292658588180501824329696360053099167958038360295396639435718752630872057804103250012649596634144311938592503008276064465657810402145188949464154217579546697590484532242567200487666105726761208001263842538898515104584422726851638093253554049251973927595829383208989938863745986052744602458193366761814630681903943664792148772427452301384392836850071181804503081119953285276616378071957367777583426273903802244584112889811709129002227388359807583295109082603201819909224114131572858916855092915644466737944434854985612416957815892790715107643479840797286201500402057220536720502815600168413715623635630708633189247358430355433921007112235174852072655835955393873095630305383351359602531323747039265514649616310840265439264959022191123050345723454712578274043704838944281967399488795803897160646808138886718203710695272750581168621167895429885620460011135500958374742137282268459508407991955887222399501699414342412139915947772237693325620891132484851361537748189443163783834608580342767866558412840636901367070855127647444212605172787173049640174098589567519670403688260990509032883962808340972599333255775279457494740498705089919855835684344807324393720866755402992745930628316683434809328666559031303482973452963460268630802222820170088000812457121755971770908427985984159656260700743226964664290531997804314131236136660269888743213267320079152683118684443711283224748849420720691839638448477691474075934882510446306490420118828630672253864300622121091576204217572654861817839675884753422974963506418242703242795831063043581904214701715754857265819904761947969639211261106692993274610454514912815359092003300257652762961370525152435498550832193647265430703812984393603903928699631348968438876495394331246056033656043005983142046695289063970450214994356861933300397601456469700231052341159408904002213088494313869705667330492200952867215649386189675305205256654840186467217777580253384347164641318923061408985041163708062065829662333607267947284953650091682355318278495123762182637142556801739115713700294097300516837668601743276833111772456430068063323904395723315767864335118616477345551721377892091858637931238943212062238280510607232069601560442775050119959922346460144468128049457610695560269511843582685824186073534876952052342861625808547764634080178459280664230870137918324711840298370482969158862328464759139812000531619859261508149115423886221177844355708261784652923819913651796060517663640877575576769340091000173519987877832956243893660910133514454584455876279894088614196313419242051279950883025872181541772627949643938356615559202158005588924274107057575643568891773923851015309998470582297844859703821961709887913219855253968568872605745768916801367429893274719862583004509306437330613859204037568927744942579861951434202029270429519209732224907481036769674705654651453968057748623152957389231215463001882163365613159288640838694643754620471894929083184246425510265429367649346474378956611264295384634292071864285345148319216902136908441978290353877865337838482389222567312154610512232064352578497088592772816480332572168723495453968110501390819097018641813555217364813420026797484002430931483390548882929172778611543992341484996005008981256115091407824714986813279150078012024797435024187062362376613433950459764629166912870821587651131661177733551458044423562471123041205375735030681443864717608233088482438154840069138325738753342394889073680419147630768833539543789299682780155596123248240427116456231819744244645553257284127951248433947718690447368008847623169462949071522850079049848950053494385684301242181663613275798449801994387068564494254812938785003447754844150518215040504951286168130961034442506700071191952807704262329448538880066502490035429820124451194371419488158926381629703712435534418238677467687966419512223826833883431922594911916057366993820407469279161442147977266213098055268858267795777572952768724874836548284137286792768040749361722674334884810792242025935403599480751367277926452955747641052503575425277425777632894011289614130083600165409702965943038992707057692476276826468293948701867958678483578587774745335009944263555765509938197032509414198167466851714456384373885498579090941416039518268475048868356195809684741717363726175500601571594978694151914997568761523971445321453738711963596802635577115587853408896588773038987173108136063960552093465220667145676759460524632411812702388394760174709517217786463765113853481286309223396982059901624057634964414856620573770914443409844130439707984200942576725491348715851478566795584164061893802419282238939525369987702901637913980481502946829481923872294286712354389492702695091533116182706225277598004892389874618916635230089659015385897817785986254121982787758109877888980055528994402970438601609963953978613405840361188136565431544392161736713139045429094398636653999859404230768309499397820416683390731994607765550499375220821407375375372706136182287291468378651301983170788526241313750790548493952478313264674905456772043174815619596858505230872909083326535643595078837133729651530311014908701872461379719635610730560715424303893105735636737136045513142424296849650933477347502802067022761021388575840497211355830166908495368758722460748270911356642042088541569056400340371239388598380991346385180058614969263080663302702364442229981723661253381761638082713412778563898014320448426720539045075750812191348296204237773238348977008622077850549414269333777548145564368845450960094249259044177518671734034167493034606178656633668588164955410300395110494324338734552576994643461253766178300879901742961427788962477187460173721437926536232255952378571489908064434538560123393870407611551064563426495848346724157689882480853331569444812045848291732693925245632406735029615255099433726108344351910446828966568207381380584735387847054561640227939573071313617705207976494986036237090723872145684582324588659508205800487338401200495230266062409908672902591603168168963601050826159243850007919991408394482621609425672998263182075001373667139331190529991140582939669898664288260680248834865428954845589337178217267317990829157102285637675376423327156483797607198789669499760823117975871469122556091057444493106251646653807901966023180323608727712150268633740769444323682826140296630976383945308731500140207252972302623698581146546729542661913422978213801787176527882201267936140809371353672728029475309200701020640044982555528084249292084269605141210985314713248534183567729007336895714872154467645051331645302596376760777574837725448691298393942512893400622142933843284821733693796712279524689893902770308074732881380600269777253271406799809687780116101079286039862098797006005249189226536088979368365478002498781979276502382346848572868912742189373485831015391522551164616868468006980570339882632175442662885941862151671731374611838176002020261669574728855521203739944532541225392829789909611384434261480223581052265140959648279872089866174690090846350804430905073351569100065910218677458592254578056864266343546045886025728357549263346310805512879798860549682558113338237794392984261554828464022447254004516992638758609868949395596956559992307946543130245769120417370262484277541026776791474956474095628253479702787066837212069526070571625670518494342996628828564983442946605386788208244775557066190262489137581477699129190699881534026854864653562739336846468199421963561193668507654785362127159939744693959484969392373562006063056496014863776197266511451433838679530079056463541049495420671192198048279670667110795852469300897876404881856543005897081529546280874131786341302176885738370117720582470441009851569239830426345249300083242931844332050682328031694053916487704292252910974557262046900552555463073177851406125648362809909381332700350794423752708687159357497688090162608159297599270773691551804887684231734786543283179186938781371303819465724767331988034718118722659975049820133341738712857899779122312561680861971023249004700615330396626864444368520654362293061121557716768021710043016991034401883530538670600921462157428975913416325882592888425544258766614855617857872048926142329635978683193277025559592879500241078926790219549283523538379466441682349039527514805842627626228021992848749818313107511593639339527318220144697816054255208944777966713693107357474150278912397586252094309636684034320370628911355764114932967457502494050726291061366098986729595835672855515641105707602525727095401648843360824783814447234760389549106947673879019635792540984547597066513745479013542019412459040002594054154806182757859838342398227640950224679363186829184912471609737320318117323356180829052035841962894883923363625009527688715354375101120972079475453442763570511976330511156698050982254458399166914524075227225007046995894254526938244301740158225412820605104852414027096652325244810475205666205860647094166334361169543970134549253327853261016727576185032433637247482644982365268987504465502322114355546036630372612791824080297000367595862251288922372796864252577839698682846745651453347392286288830999256500606356587208066684302023525913101066368924916989241241179197366572191987211290727237154872165711570168754300254682070812996044826704618351744128837563332152027974047028591040801199154496281711758308886069737394722345216504330507158862998184389820607670619483203759873975306305569968057397602840615492280959919636962435946466314139806897835586944702877401635608825287588856374556718555050250403708919810904803574421958893127974858596292677522679527938232613046637141970955979296174930438592122869502999994171121606930493827809765288835698492763800824408521149841015123096571579316325580627394093285100799611879332774369467070267273628771807997145888243083774806300079010446205215459068205699412882775769713123711064036499157881508973521668311192969379928698045399590479482020543999970491528717496203059036130644725952061134973068371144575151831434641037388668706598525805353319203618541066707453806221258818467332184771452092625575736247004097944504263530427756459128435101765085751027998841882321086190700980672737174209187936633478448640590089745397886391345165210840042765405095957848081036250853262460838031395984936120907436160701302601570065501460913946489964379445822695783318291295871195052386481547978997790012761226172062017663653150228757203010890598093701897212009920043215524323263551436197030333682665351782134413465103282813202071114525712814730400045913148578426569347265884596734207798665832924652916900603164056989264344061711781508873804628533612501771172136870145973553369313782957451319064019552649256379339296375458464374504333752102928090487241213566019457834006483202467402328584051179355395081456701640407138456819868585147017628824902938630818265103336154382816570077647948889746184299006993361849088436594131752275754164958762178502221504302827777191239832111437211636920277238727071905985226112388430199723495499713789229788998684343628596447593801126754182399411501139916511313465029636553904560762525191059259544044779616363903880538937451630462879625492240966988631030635081259727841470136676850218616295577955463837011956262251410575445962517587023758939891814277246288778350751655781909756536886740112766424125297586143392664232643161821299387561270513076441272420468423698157389133079230127043793044428081118684177949580755228752769966683593572178651800108459698538127995752924228465418353309484290258736195856803817103585872532395273762165795714211687566223020960262358786800580965832460135211022820293994529025481873136073922852745791772504655124975999992670229702794268775312561172375733374313868397660468039080873382300070924761848575728564885042935432923862783671503066974526148216619591184566028232371972329722862974498822825386789228240712360879221746906901258385775600986546035842420042190027443558223290644340430570319441925466448488385504011397624452950575468919923420268714478354966484704667507061724146983661170433014222184978870644549896637744007698295430895172727376308177771412221434266929914845252957850303075143283436801548320148758754174384421691971814272485966408988667898519959508206677439292211966967363379712087295029486971172303207900136212751516292993213875644391569797885604322184888502181796363411116939231318683417365873521461576208924745755568396537230771966712439898421918799936334957567894229014199546099643135118986430494694777042273931878539904405153209074032057643103430268785357744324492001161862239562537897978101644434888587356335130897609438298507512405892619719960221467991227394233627596580472596066553385477611782731795904491096416702191419752902469298376467152629535391271873306408962587979746684993544063308879976828779541473648783928661745866365287740866670474832977584724501947512331714567796269206086582994075465854056456022801014456673081909191819134906180748105499783438350624410205816742078797099664853941604779040409851125841457202870904486854593472114907167289558591804344381155195768470146355393582003394778672914535743320707619783324992811902393432013371914545386555421580176746184599479691959181887011271042905699653023976005636052611160350691415293559143894941168136041449224263296767912995364961480930651724547905879429913108184625758439720815630164877276408894908006577053190837300618550595153465663562892237864928134931655937928533265603875347293320688521614915626154802117220437014569951193799209850044872936327881552276231059409178755809672152376186432332938020438407004513661326117532580802381997110764001626432207659619586901143206606912845854418287369744349627275581651120087625399415978021409817799039643018162682943911780639966229829241948038122936181489275638870875840949959222818196998659131101823081268089635273784739821265850571245550162983527555480013624032575659452272223004913977030681979871512847139847697102764582027627098110539553523648760622513392667514551472539244780360922816025476581559330306151791364538752290673975514711771420196478445256437416031381767982774156141904939720572049749792755097713551424604535644942394048703136075468234361130205398837385080281157016834642484536840500964584715236406649828860975124867981914917319444167523057573829882881020811047577479732809733915532438500051451978956681108067962600959205136132657687893482788621770873728546371088845218953576894983910144710778043920611032867440267048972958757034056617093090238763979956642310981269454749714899169980496131298897228724330676058636242567028267852647106086868047500455893074418494758404050266056130401459204592110176440278787815289164251224093272452513660484141518768964590062591645129430313681703961782077556912254604034536164084385404225880840155590406256823583323046687141771549466576330218761217230921485795768412496122112995142057299575464423495373444348093217710361644147959439526009391538510761703212710788364694596296591253397710300463654183607092192458792358183784954474094773379393817362545038443596297242231853326281159000689024088324036961671133339393593609282577443542755964465121926082727342126420118362950925584643073888958627451162225898790805076306741135836590517589404846384309382497265614281375241802875493018979048100223226796005172335041677750266924406346207022221769296518562407611775750536362390113971679732305271758612219693120576694774479760540511569647031275275944626558433018898478873052895378913210895739373366311702825732757902924452923983587284206384776953746565969338640446308113348053166310658002954103471544778036118824219408805331516156841528243267322949069654744278665857590474352782637382414451158750968953088986781641171505833644225656253120092194533165704162349350427828617228770588280862319638462461319794464323742284640588352324304934347393568543714926226277798988196856208903833728617735487250381802275124634188852266843517774309639684907459822522105546219977517053336634076590435283590011545362233745053811956514489942046707417575554578516648997128509869480339492226302559315674624891942985433226754018150085202053132013083160237398829105393687157831242820682351531884451627876457833989846517600923857421222300422053875953961841086515788027263085204653111256980852483993642623343486038731721387966154461838175910433414789844166674217776497386685597090378127029622396302973533954736517683241519617850321654711591069645912086137609006442338881278063937197726708733911665444203327460156552108547199078257409814113797502734628295370835183757063723357413149408939206959875421511792712431779927992022353212854354106610720696463921075827618790150842277629829635142109236483904072929571138259135211729537489389031273922688915263904483957292333441872302593033933184168152212782867241417506798925422417416290698187173207063393738026036745405945097683204623605118446145081533853454787210194493641398659226598112129642249581870262403603260063154734301291588803676245418930492448867806054852346848464959774932095906805587978116541904002093122232986852738055362707145475657812739976654823149257705752018777372261576041859188738973355540461962555053888791233973121390157717439449598798749905390118789307814794964040750803756823758713008789691952074731467338544921387551036963569963273371564026257231524156142768836590258170018926229338759038633111686510422235957041397576992694326393628228083604422500223173700989232522836068308442669140997560841493054141161068122576244308006918446621123696111897910122771192241400910361887115503481449707185961065032518742498393136145070364325057250435171717759206651787121772140106323956765393075578508132367860655692543638187698251969567541128441764217172468525576164589735165612361486736543808801364581298194187300033073918936048283067385835034811169927955821112768267764439759362758862400139081873115154506207089912134024721111187230501740447411884194855936501560188837209767923809017094149649328082693667398754546043274452558409965365464867004948471616689054230862967446849372218811805730157674735583372057790218827742412396655764477236263372529839633022012267801911940796957301887838804584364452453655524843562847498944909341525666138733886082203433812581441318390649485753736222614678322373373261116298488300552165032598232681627265218928004953671161534455097978307584805176771239745917662471984233974811906178214220600904148126773269221846092571734460101781491387411477088322083783684467243336398591029722417902786150368117361684760128877516950749904495022244197790491944602646264987556726000087278063772264841200211977537104924769259982265929396029725131943739936174758097728897390352157947852397336204162364097238592778686333583157276762452248609948290971450502773402577257459757873520577604079531627233628995830555299877111808516553697039330408894749760185518410927228230768700900433790619106587775803030723294640857218997787561041282910257760001763874478528737102098089965906931698491876354995010157346828406764201582877889123454247592156374420879191900773884960516910448081880216888776056624375092684181639370597496536632411157768692557296701978499112476004108204248815554964959939862583589820254339567147583983722143789035721889894352115949416960703091825472238257997758247710825815376635318507195124755351140755714286338108100857012361616598828871391010274138040075355818516641614058744447925677041510470930334794375755089565770554982523567962012309731032557596059651185724063544593029946510305829685519764063694989590703461540715396802875186000355421959193549605234698642876143883643363276746626329197044707397135372563753037496427145659331393189466428136509045467614389452907109784405211079863073490974454699428502186999885908566295063805968596498269490804191719667948369206492330417135876661340477821877955570005438676238905094614285733402198620606072040078142299386253662730178934436482665363960629573331070170682307065259993262184016311538895932920864120932186219244282163102489580778934910807495156205914861941976388702592251796497445961971333279683186548730832261042212918795631976547294587801476198716649007748825905689491329843602792070501527280990512021755848330969071327728434133255912185907467827439700375340498039853746238893980690975011667316817910204435586180991655030006823677649853418337785747379846156200141139038221894703376753409622453018308461648399397430310483004865793299363236688395343508066380367944462364760901308621324775540613715306129734062873063825375126231305769003924804425176454962746307051219493664453535300485026278657223227057454688477124011721971105936684561841974046053422654981948339886387130536970860284574223490602607302145651785784213432674518991209513075043838800334573551835881211002163225296487500940865035859193341937250184243054340778903966408319980847117966207890524061865073788172126578500185034889835543899272630332848645702903224411855652145803612587218778560627476102796543280149128458803393295725104085278795378592290700518198500145689967649137474807371314469154469858293892140926369440474996118228716123649183028996632896300713479060014097819234221559322608450303425067201620794091290885191249271419291870060179335867546757496912921700267067487517560692833872315929151547276053424947614192382111680687042333547290077267878413776889105866184233122410538671098600766454930019781057250497343126874450431222958128213899333831377797490210180143484660694581632975802299316391622538506473244277771257337486658488947495441820599505546921556134808486078888234606593514103172280640904839451827414539674684782387163801639319268468039080825674046938144268511561112467572014718011214939944940929637621914808074900817161757555075761180688140461737585497228945676837787424255836527732351405442271844726725291435093323994182904673680899055453472644709857679243189731983494413547546231871398928147574331104661708465595978196163204101851347151352361503218734717272296122841851194368778252363022608428962207636874357996958889524822764298936752504863767306775149494802202909158888759079270132497383376785188845312377463655886344883502595666822925618877589004236935749929016192552967049052749499675716969379183529042420294054087432786665048174750082681711626875184607409188464014384877606664849068612978920832243405725688354911911026507851676228161541616009190860069361185061359195269443455036955127621593964739963895094043441205833357292519964278398403872510252005456979881953751399850011996175051206172546694981556956765944727654496181783403522578399199773161139221147700091127099345196624890984289011175401994959410188495279398832540487762755459197132417870486393853789439360226474970526252829223497226936206441930449256505264596085857868266989216136250711927380704107544561724678295160629771625576720538102357309336321744403918401108931452069731233700374773518324297318939872695020400269558255540440384329233594483573064134389459629613678748026583706034543447240367528136960434231409770820412345652640982808919770341217358988289587089985126493370163058296813331667039885272534358356446763120664305910814674409500116103888788626948446214786420601223014843867633983518413153315209747610917057840696409441185232973273572556389990860468564501148842508633465854305767517914793144810355495162327843536437286878350243536541913065560678834746907412782517123056479416472696715640742427329790444993723064325983888104402533003440043469375540673607071507480091914313949988582069809682904334128081717142496705164246404585761485355070454475268308440579805664276123815938765932941406572893887538254869483718563756471528243232213611485169285220291955450840506231798119083304413016580246456653933103903841474608055735355676138472798180135960647520815542628901638657975398458241364867697777309093721280198409678217197538336365739213760137896104262102363116324645406480497852865387800527996604928831868304032918477990626167530410313302411569524395712065523311966292244879987379593270169572062587726711989329609068703396827719306189811244028326861570536115725395347486697250142232928244003539471548010156385591910293623895076176526060412928003476644581577977236745509500856364587370187291035748985021605588399267610338419198935756153504950420675648252744644477574700050757942599818072831619234782568135030598275799994523886912855182953891273484136537847004578743214669335350530039281308944499457806540366528350248207854600215192420095090961185259608991328645784003886893137610641263058401033361478339354614921250984477392654981883548566969285856539943316267354199914582825121303715421704886245662894142998963966121664283290402349748322324303834321424386230698345137539785089076625152856402933056231400011852086423690321026155105828818778816234188389720311072379634562987665976206664352510672057709812959816028337837967348005575759945875249886875555562682557401811909174239778253950493487752821650803853845683216944638368257707518478980581330757106857082631465191358192090060037682122677049521445613090078908285889678117800205014222812176420022430270881783881540762945958705321856035443510431225432836664752395430363020646294928506513063617891595384301959988488806760746741314892242732383151979278627369157709258543908103567567628746618444664034673294098979808954591107260903831128121330799028034013696466823858932745461908636688978443285798082079696645484098431064534559031800474174899492817334360778501558001610660925777396700088470504815865050267521325182067896709389635752133109430023459965453483904201578043330443694052649994554428238782873786045073652391356598037026175486079517207536868961333671799255015245493129261582536710732320689559976984491531372944238716199733253751684765334621990175675723070861686609691246855028260144466052747189728153190452147926969453167448193317164376832970838379069312564841407205091166818287240714225122511302446132825756788594401917631252235382708080770342068809985727555263143866601130035169689501346072289279320670265829874042391888998923025637900895758821041520570156668191634143786078545744767207301165886386677103912990364223567801311312342534470015459268514383709991684094029587302492028334456647448243891537334438451028211594642992790992966329741474777020027201046921781367006935555309224680763867523880218120954386453728240268282828166781760361012240239344152419071142534322107370722089779634008263753001866855390608110354661829112336063501917208585077242067628790159836586746578756429357617395521357237762968620810841531198782838788481683749836182990917497332354789704270736958944247537618605694140977306396980766964528073194874213927682908119761592647537062381055956538246381278054788099454218659371367202143737761779161398858184330333873402020760895571546298438105929815204082022959816983304547116462362246254170244677830923831278926550281144675426695445103628706022223753091364819899932941540747373653959670539938129161915896034025154187732166338183456003521247483633786931675591128181818609273041741981512946790694910972210053536467436537166878373155717927442889873100011021800353488808437985964957821383112056444386167023537418822134126038592468623455335104369728970342596396494137818450941193132819225584220336975468806390837511563677709813617006322424546329923321430568928013776654745581502455731478019245602155807068474628640683685403279969083845628777279157018786962737056601296035943347733452808669454071898931880639848611859744925809458525696245516150606704703696539460946306979234858210983764167621919728186116419291868003465358376646905434475595458649450654443411245742435507478406443065933257133682327865724139795347981151262445160275856553074606161244174494493638394590056557184992031852569515034018419273226240761771436971464901511490408610603460800814000226629436330044592251699359344217405093981804310129278875081227478485811892571100278620157984439918921014316284422038395673030014236861504061142502305810559419984087624717288908097216450002563373150158788759188602642520765090592250952663489767639688475517351515087867798965673974371280457084029968548657379118158597372855667381334414453398847828505621418272953017840406358813253988691887181778675859874336823293944270931888466046515762067829323898238609721665128782402830906353832000021278367044937593597172294630546174884382984968057977466977131568127556943719232745813980368368792941067025657685644334856100125477901482135340140556405185885121530465917712518920926816828129717274763982481338006883404401155329575509062948228877729280195637963954732283907519855066708384758432402884157742988111749778805437576552200643140296658770195410729443566733281563236562989033903554141104383498945504879002725301495661053048827753531987029489765822127849993241530562689612008089708272165856317454163236719595990446827993798480011022574302592966227661897176253815511108958038357027085587267802801040792644330710846387319561476448181289992322103423166235913939626155562853182325566183209499907632593602362359311467275555999728303846031530872069555633211946211765884590650441969842835728669865181304157042624136905736833663236788651715759021103687418480984893651637693408349866424123788100982190630134397778121707270518325896646931761630011081976130420435918077279551398279253879649741972518308079056914203345960628079987908703268517247630009524734544357513394135171810928733217237339362802904041961724273858125470320347050406278284414355478744202440225627170321741585572556546865005352013159347951926453757486263024768353205885454581307740262688465302018396215547162356961837029992151221948085725658579632406463706240424820506133304123629253004921721624649018912795950161293806781509670262467226220536574739168008922305500862754837343392371821614118917886022494553624743206925147092708116561371717870126911612560493310894945737160772513546664814820863519544872832408123572252326696531220844913142552558050165945668512470613302239987614851107167834030101247275602716104446681134141484551063802031764292488416462886499669783651513530251551378238823633179434393462074147174272548366826632553913074539142539391241070566951033441597786826942406807919651499958418722057808466687957700129399179937783841963822079494879777533549407935926877909966979762822234255275567813688994834212129557004622480105070056441843210987138390375554026691283839144810822518271840889513715020657224541138351515210929498564100715455632879201009836267085074350738552964258581645836629440103597161508194547440491953209818451861958064585261832437483117762628125671037922851728557503662672334896794650537845546659076231629953713415706056046507102314572213191918548604655729761302559314972808167113124763403907403531555354215008597751749820741733053899091736616471468864330545241816819478580094423315546906398311480132733011517804091260021059370938263490391646003427997285962819726323531124343612127864531647833247490354242431766043285844254233030997976398696153025263046288377975496198864708140788898608770193562991755912694939327419124181958980783657544046062724810576982727598687798836022073325165038518316070760935794104970606765636562328661669806622504651389897556385657666240117941149931968243672795648308249429508638426014597412336352824719647127816685992603753874766400825116798754834343005168722025628096651646584946021398665023919131149475900745753943333293754634344695130499434592712805647716955468645491030889111753295714172362928802878061325783044221377340546545779298206253097393749907590686983124549422796200164004730337001811412136622124759307017645109913345931196765132615842002474797486296174052158687024098793089498013155269827372084889065971320334559310091895192376936248792962502395065285270328548243336973735056936910731300584222923419134637901050994494150083053776247428780173058754703197518425063321655267857589509347206373208016740879561442429224264525909492654039307935876918446318594904646522419060174233830459893169913785321744644276040202348789204537112412082029588204851676123688552890573565964521137721461658158413790732412300195934755539124104314803230691522505196408359002682936330344650329189377866503296450677769989269226046380662220463649692405099263864276115292789225292605229964207213404615154771331763234726778165164251425506851115866220059666500735680943104289064328108765129259224519670239819307428433232085388478165593359481378455739509299324838336324291505274810028892593071922921808103567181353152415190612524878801452951429791467683665387855905674714008774443400388980315859887665321566081241526192495107846572895583494915344052828001640449533971043780270671059822812445203733981818118766561634700030784545158496938638057437312396336196268628224852776538152515171102330576515091194069678079760526146746493182743420439669267559456976006574471544779640390103753804117174956057591844356605972648149229635600460807203005190202514843123453879677733018801931258989254258673167151328155071885410090090916432165996555080482176650515176114750078379367357085612573050251423900361727839152698041148627851173879078109899110235583280668184535472525577271947792889395839584156351378426354617692129629787545874555760344209147831983455016514289981227694261826896832647798248438991106741870598945261808563403305851302969200352832340463444141527130500208298888549210109283547611994002236632716831765807391828376396064900097327616144706932537089877355592368173379059242440234299898979886192821162472454202082672695424131793611906703811461274913439444890440493414808577902671611927394442403896786980356764973057466075604185634737996418720125359737180139634788152372570634442386051065398379590831267759981295976754308323379456467411802841311226786985087265961462780219951302878892488652040591276589069529053184386686201191852464836816858748445455316737362054739805207764682171381448841815261078465725728072144889775039655843272588987037956420195791945676163652997205397707446126737101664567286978631486604350382198789132851367296593130568835664330354955371003130785835284103300685398399859923765357635433766088551517654398579887125719665090487815971827891280621219054748641140868721187384987523355031380132105241795456061906430911865684558647419495906770529105735877790813951749908899099833285361927832823285003793257995773441135849417622671031546696859202763820552578539263406851244933196195104985620380380897124063231729387020696972987882882526532314504948144271168509335871723507447693813904712661966332107597929443592786400543954363290930939919360371941798550621345602162896778310745382514577574143483329701062752753373181952556921160569073274534124074928743366275382378879605622713079900872883744181500894462706086387895670995421767600817545425187708004426487916112979677658547561744787317519417264127269826745794720629765871077837746028255414044325311575333179849327501878905458432881126958625692780703594902897889127937676806521848809393880967505523482167648903897776395803040272632275902162116534210977655680346838859104217856843127224622987976104025729122134668475041412433463734618139269002353533168186931370139317454908929917783210803947670601689174989337599180720568898877112181324157779166651370306368145103852639441644115541131132242173975887869256020423262679986420271821907945489834116034645649340127184462030565395037530225256932438456478388255087715508043618813187450413142852876884176294919071843235173454070342371632834046786246584146111012908883046608877698220344969071710017173238890097888607195130549374258815346243614930952637394237087600766861558088609227874663277929798670414128764837075256250013431764496086813370034811845531250821961939657942480891761014826723731897336496618385492901917230590325699431022802992518670043330054872535084043515436651766053729228001972825430236154187487680279335347307186179520669180351290282265944882223244903743593886474114506700310609829105104291140878634676830151394103789484412790008471863054904800811316497706069996724616169034943916405995942020866371656528439937623306487661842617963580865800349419666095835874755248057928149927704699412549119924332078191866941737068378269100967041203160179452272337833924794298782692103140711558686022904598490742307628445228272582434980452988512879701603130554447771252286090329158471187468399129960495212855735343278650581853387364318538917717862309584957829158928999622025938710774894737330953186103746546286043921464343851691102803759565487648543881473483037745784563267021702484299203780931759918769162928861908343718270954711894860980159406033833103092770462582068448253752982126842439559445929008136413561969072319353945146058794411166757396157127812325312247758468153696738683477556227589001014070990276750436296051107025828499750710471058617325281904512651116188917470783234813970641047634150889863224993729013289403880550407398394710385388777617949669824363363293400436117424079693341398128315978505680801735697483749766612492136052851151748554078745076217963461090624091957588984800258088050781476575446429099745466860362562226700017936868404977177659332809524632981441279526594064832339343914703982779804267631505803623921459670043116156410576417573799365379583352957638822545754155305397323865714838960069344044416630903923344552365004095234238665950086468193495188120507723089757943402378054623400483076876703557309934335559425278280505510952201503058019731660047751894008151711282298486316814877442734349326844221073030934849495814089272985112659468011980435960372950706214929351770763079401923562361405660254831554274711034141853138277986370172630609697831723755696404405930028233226102835373336860798914654321717551548700214189480227127282166276241730692303526465189819290448841197626066801269318119763410494309960430281432716754965614501847151404616323377392500936340006197634569462250052410461272718057884455516357521729210836306850755868448366258811381040169353173019201545643374338236803187269269130396880682186575179066988224377660938568576865029144430737830288985432800439281230075075774267805276541555192334661498142853928978633595013974513484819085341357805333224746135088155382360247746445438116794733319132105821176780000277981210866427015111035969370009051766939755293557015811922274596545370384776553417383782282333784561155497336806482570676949369382187863141402189655669915923690382498109594834578874276528593003986093613179049706615234746356744721356628150992193510246968645819865179483097455997589465898875142142971549625115091868507780403699566371491726334100709566181711322773128897910489881825796705718773651234642877979363847713438386008907080934371826372688560195177711115654871391856305065720153222539563518222073542121270704917134183265128226993975005027691718785043205695323098745868264555023071246465101831719955659855920888127679263023654209142365946984410082692167407210133292468459350082477671082120506799121202987047299826103454351276702789916219826841592299239855722329398028143435488751000744310540201254226266405102291923386819712621602811065245733847716217542881966721073772460350901671476800954767561658808897146098849599119603454984663908850243780582263016096348706951106751468214294626628901852967259869319006878203131174292438954062313349807885145924689686902360363866106184827284542968637840880404831982674060425881236171948134394760982066181540138019249357479749288991385373767912766103169824166254433191580977041858122441540620762286232387374734559128643755013218141675742357735586129226794303731347336000903051286639137874912693101505260856103956654964891501900258458229667412917462933161696637400053285309866785861500797962640631256385608823113286775904881223751420365866214459020561309197482354981818681052903269371949163872134006055815182881290044166549119848365033180261831675112710542670134548935831147174086140194592187498082025661893252711835598127657142430520439534527011685944322266066565583252842945986614014339956460578499923653085066600702329006917940159522664846446580292382349912905202744363656852342368361096616507161950397809820970340461623923987028895413509247423331619807186308710797285917395373195154659021694969673627867734834676415522451877350482259297360401952752373226365247732167161524112792528501788892135461314012677027684659029728529758951643951417962796728930907551943749079294184435737398661939906864694120366563222693450607164521167504027163109354093567278311379960753645367080714540563304408610871864779760140370286363973295391308553658758465602403845139870595461551158369274107033090043717996444478722333107813661897085665779997084859837132340837385321650778920428193608412189225000847542167151290272148506024543827713594166197740094279423003520900993677042232998554133303599755437305274197189165934866231763005469573897034055028681691492922761690951758900683033637762744060377520594801815097081341130079779204154794083193055327137279653070518445432589932806332154062114634631160502252038376976046701122241947262916193042839573862442558058899552690496271671204134997601200492211962931557878181603445298893891413028689663390269949587068795477634296734782984609322110465690486347297021222119943240629130262289346570242662572482245335480415119414541099354683949355910471308415552649549383280994059779302229451386507006826456756374858401028519165285573993080726948763054532321618918850173754098450767662593323111357221426919710388920843772786629478805754852523009420236150558539073772295780791629003839617621523934504557237564439891084926567819038371240942804247299932273828037168400695090332435791551563023999805794022535309331860110109920416469249476104295964660303590204992689668810223436231924917019495461628772687176119348203587549477045430950768641988237269206344214206299397586051486588902792668406718950988071175677888599147753652082873522168693203196879688889063138412673449113965363896545909776397151593171863604788494265497640003486392068004231654898192971842507270601261519062248646861386356964357460890053794749042102280245490704485220894210418598219910065066699988881998191272888552360675331012973726751401743209795351702120241672984491941383645596915108848969628012731510582654752509641032329613109672740621853205815552187163080938655214471315444379172486776272000584181610945243153139747335873854172014238448073663078671703658232061834428178061724014330492818902558146953946702184362028128204937002268429816294277181077100478593034596383998562538986335217479881955914519519917818825533788647906490853724482769280113653855359601453271031711856117739308815271606653642416736968695910675822280457090396057202667912384304198995042737565327109662462460795074920300975552366463589069613420307208974625254239736117052484547024708194045633237896993431765720037412015137746418250729717068331010811931801706364419856139804891543672040890193235781848790675571448702310629798156016753698791471610211363727771780032088211376804552308435408301458571946993525792556624118413496680687959013095588226893732943475711920934784890151429257287890276547449442178100468928134133093281251640472670845849652002480000159981441441093092280088456059354824209349650664472851299970857249361062529654359645568999100317665474441264496413617300840171260175584822325711569619618847831348999042432530131034234030218648536969141620884671970574466642187126357276398916583972090026027372814465754011966058413673392548735807894378938248575535105619735318814064851052863021256288565848036171464947474132975234535786466800191368002054476761532971288184790906409713887440918445058825374886087947673727410169342110611685897585509626990644383154738233525334814749060446217576125290103903009598365354504839753269097622113689433187436150617505228209049468521096877861093091533632888052571145391358524043066549527876919654372499117305469807856001517470692110414084536703598938710833749196349526351417974014619423878419457733426477218858494283404935965599216505383285899712767709951551757217149466009819892086419774768634790794180054011665771790231196772311760547153529183280143102496207249841219111048170674279783332313657464500871798655677990313694084343465058674985787607358299415563277007249828612398579680432578393077052937849366366322618796601689146229218445568871502647119851571268436907705134244767479440107195537612184496251151360651438004006426096117141934813273474799644131517350482463819662180133207535367955760115813873883390616170005214129210812924807799146640060740155956157457743315469862731347935580524516844755707515424957341914881695801911636207905443803129080249669035506674770171787524046125420698958292336148299640379485914592244649997391434015896283865057226626388651388372656121969912295368247147721399321472915408862110561094584083736243248114322644922338916132065052213254209394831154951634375222639349422249714572893308397668898534804353098695636559458871998456507182786616779908200939127056769076750775866151051166121795596196980096126382197482835589445361696680979784285362652730079289395524937517849162764908841582527537731826020991601541683729311420216997876282154678338807988260121182997870616539963596963918828537891251928089919253168763672908516843005252003822536679779429084792514491877944164124583397519680279147457123965987650223475495883329313476056843801885786665145712395076506401206620165222991647744290024143672657356937666468464160341599836353893403835266325751272807144598076793511219875102055891313302102130568529154089260072312642041612905091156965027125136302377631159675054480737869962871506474561337447317494850917493287684847945098752956343230554992639025309092342230116365518703558810812902646298210485558871910703355696625034546856099946384754127329233185136355688692345989581063561945397940168499130951366181996127356389363296970024281310821968087095631108738062548060523562144192831834420556345438340377299662003368625906515841923957769855141036429912342256351298597985698821957105952812413470036667199667912032400890199348439821067749830909531494273126347566055701185952135253296252389227494246395108946833301091613221524654181046021335315784244755687885380039145788598677203625849750040766041997378014445207699866515138058008009275023868558299626985603731314215923502641123091888342059358451582820675511169062902231345287813390626101626381286179356254776148006276353979124005366139007029276916062337077985911511301575288746004117963077857958836881635967604247322715110910095857608258763465130444028408550725381148504544283910075459337631819447863288675899271147424920481220069933255000972646955671284786016802928766580058936155999287325275103118578853916270727743415699052980968180166076587923500803713747548152546027428810819843704232089761248731196282743058320332511742317562152369166351433453258908138802048400465428399081008163618196649818235584372295341101297554259986339140045136544483075756835995198611679791777505649962333607087099819706945736754667187870410925519597558599319053428263866203666645994341993745511669653934179930004721920960163063894492063573595940331447148261967444536480539633948520117375248127308211875673260066592349407927014586755550215200268562289940535000895787927860994186504430320819287527748135859158433433154976094664490318504645134816003320062968637822667204848212326858791600167274386326462976549861845640708559084745226118099614186668019354068333793010337563294626521109253619614679758689630624619970207720395774801035955744958508812192549039434405567958351735671987616084605645356326725959063442886258552150912540088176740230737986254218349539442822337936286746972811505800232399996947523556921304360794575070180850221208462089748303191871448728579292610871575064524775028161580272928113356000076056210273881509204577063530527669437982503600357103822238814021266165053206111921583752477347929624065283644570476427393800507129096100139868994946412117091224422270901707573712830933643325668626790237238723214941945900494175984639660711907775420443753755323743511600587264080242344212209362219103326345570209208053394292503822534675976491381833353321080940668387838954324354869232242264548189575690259245799654122970669007020683704792081883701075325393961099094980094144277164132445055835479397156461102407751457848238819388439634538222217850859073120034111978278276959784308208210213044853816013313223487416604435875230528793939142045402483232786140665923818089869833370348543487213857227901876328620169566574137187444773011085220248889923643317946274581085776035529028934873138007656614185198367248443861014790985480961960654180210992171099973959302292820080070337384993600389946129226402177637365347713125791988597339460017709025821691596014995386977712666176234701630903268140364242530260253295001204927234521355412550860221924609901788688950727460800939353667536851378822884654316148760855529345082221299662067205968784637876753703262624007383770096788415192233290150469526712919592336790515697694306036810056418230593412957176068474692454697854575479940843665302054295179928398241815938652093413638715834318034926358392125996177651635728068947580651265852857725704135105893426031456420388927852977381047257835079024688180970115441778805848242311854233774893788927864059162943739714503707960378357567718292966998895796098574942560832797642132061814618684735846108937223945254526643957579937315422021829305282464549900881735905268052835072047791606325995994647819947505304524183631110126013535378960732279970006895419264334050800905484961000870788565819546982244086354658924151792245817215787509020817798707624881087807591240923527419479923590288887641586143693703778157930414836325300585199870606010947238917417354796640164127942098186991690009405718503988219930748962720670890890548912869785326603060340271902477110431558250534936822560869227215687535065563728002418072425601697015223774158937589471121721853172093116078804981805201009931648402617041657885191312600663706101752675932153289532037269379007148530318194486930782836671762061943854822678264466672839591220552924386153397766455920218855988149964334893632927847869857995619268130656707062567823955726354402348070115288382689587503907128220688380439747430060870683334604468987402241437900513474996322857905040211199311116893835012596104428336657631022305436199167174665480614913560141209819982270115167804143227805057193410177408737087915725545531697351226650814240003470180451099270760009772085125253520731284490036571914537271270893554623831713364070751007643740657598437252620591363222324267316990865330560928155055233069211178116676106183255584480993394978002134984220103085122038607041253709695616747089723601458522715733427602567049734667822956344414566203876605808652834236306151047357513707134481209387533686083428015043354677721346791045533558090313440998028975716808705703292413753919498535851386330690418287436196779925488645603903167536019803398762194873803501285927884865331211656029094895026668583841260349301421419486609356355535185859661570528853198019775319988120070531877322347369318717103658453305994946055721837804214631618180713076891509806078508380802425288090192410955992990608688418113362419664265160119536659177484331469220116968596809992679320611186431259926733696712636581601875953578093561006251133995691205701867381582172821512260398735050781181841272783177596214276275051062818038681170542386427350555945536830486193253759590889616795298227548144725737563946408354172874949128691177622281121556429998880214217167291618839538308597246369144043034809579956497358383199074007506562931954112425523498394903000905254187855099072151695675124525378450519002694647363226441809628776062948088193027118119410630508550903413555139168666436774658516870046666872921440116429700755068536779988193787724230424754531753446132802320615577415907748104546745701007572454948315503574941427195159988030266502999510225727967177759406117717135997465977150595253564080690793580952580029696224621536263490069981011312479104586970364943653149605324717756478032779622052207180382855568921793265156904931716506132728461490244774874994567145031794703142825750103404919809898686131909696172203342742374522545359520197765372290300313575879771839010216508974626012293262226377470271223461422306851093074533963317003075049582137872253250972149930634936207649845749334957407102637042567430935806701627461370016784821298144118695267094735229555103109055142260542451633712876368412512672498627638688389801185858851715692257171682955018679064664238120382080114717708579918120245996318394421174452930455808183586112679929265079621053027346391051476510401914605208380107565030687602044626201604074887911950181958620257888514292888708380960948860434023638051719800108228903121331460196495178857725446936183424102877364427849111945897707896672798888894454045611844470396001019351399839467612856788571681881404388688379840711783195294238648323948047463531757402816984629367487050441622487311837447928696112723356402976819527684644593204535530047033290223214314259943911078565052786343619725102735788748192882876834353303768730717453145391434058805335410591078089711215531995099994593482665881229689813214441970942523788902748036034466984700414248410355585687709154311755828364996658491107851761020292691805150525704122114694557685837394181862196228768962438703514111755608220032320119072590184345192523188063170801319192847964415675798004344420941532701223483672510181749430191855223414485050688010317050632551041556757215191607611131503676483473450243217111545975372800818771856579661693176901768044773782124467856877030467291658481836950225302298404696918429137333933836208621836871577056874259385963128791117527438259577492454734170709374353744595621897603170747603092708873902253473865565988198266235549855077028252450797224632836528999848267790564148177230967195053301983164208562145589705006720382632227449855345416509265966751319583496749107990077332062792456234769451384779418555260897199139072522695332497781824107767058699054796733891529901164303002994033498882307727728912404911377519891629538781284295802838589949678214985021528875975896154209655866296434021487081540702513344694501189800615620240405976945611790612816845631256761201515573142332727925195990310869328548376496444623347484309373152442265621853258225075199899876884080367780440162569127519771747803316657966278130691025312461071560770686942880229740291192003322798799928753660108468736050732492906587722192555198651838250847620198187009048426368627859042863352849624067797436315819854985348734104495052965548204710371514240252258886335690254313512637674707011752946929985370002991470565159589516068301860340392070306107963352682777152656352663055356693073762746748535907200094476073286811923470469373192780320032142089661539107053636526253030792229923310833616931450459813511830856828617486055840898437386935622712173776368979477696748602286370955788834742224747382087157130322879637498857633296961640699222936463987090364142233070611206823248977994371727294373838834495121321342556527684849973062786215106625292679610272207933443213335525101359356279396936825932060478390079363770526887562611698565308374258870796164281744532742573453167035721456626489740726878513104277886766129836650495843434739119938541357174378432727588798736223757108944672035310121346537650304919800254117145891394481370451761913347591194236987713784448389631648954535989668113503134586677249284785450347451687927941542729525000211364659696707203224565100094052674994749610047982864170664028706551427557519783422154686912719064593346538200647036178070030225215907745107986814336489132238727649930066384237279436569021629265752405478887986811409566113029136771274490485477732469712967228594788893949014102918296600886762849797130399804404661123169917389639705570166471575463441922488048901403992950999018510834829220231864218726842213245927597468642925257938122906527531511631081165642814327876782951226680288612701108607102445683199687704897599117605681629344024668281798190450049722937065006367299381473530227555260281077034600757887355696633193715199364708415319142317551726141693863215252943007856599983494110669409086080773781592356215221277165287563691879938019043822316808246180414970435611223750182677523877403567365157398495350095236605136868831375494003727964813168096061514385513470238188409665230204083583349147035674296364516061461098035292273198416033819510519351959856869518310324602790381287640011718224824077005330116718751609613655839929682933096149669585851409227593988691868541261637480169963579489739945525216912049988900246996021555755446795450860150438745755808775690907717322444877166650065304294858106216831789538781823057849488890001595714474586514477965405773208973601372177182599692390890795520976025511373025161947449053392659655476687790257507171982141896798610988058021270360195836924545480968950464876607522171236896594604460666786546496498231114186164719155235771368315395686701015776068734814348812668243188029396066749810078914932991556667921730497503901959388977530210986151492949516195636398395156185209950203247503677078161844084605988931640243749397793977323825640987051351472616953397481516527200345255266127427376066565938500151629355473784618061269487101759458426856321917719232465003949749878530830794587870747130359933527230971315649967393652180345717211921092558058108471952939491164657525094713130671264084447804741735062100702827159612005095200020541367356055556014000699337547220801896064313484644225070024239995754677656440888546988719573490914709363533183062901152448149262079484055351082697645406316887150394929740145105226341187910878698153161846584871301163203197568928390671338064732795238988813795837001665634132747338840391046367654229099625649798290970418014907879164461753203346067797880327793888534559988773285106226542714800560146459147829773534941075281195920694011201550787955521594566631167978434075718146603312819452901497296979871871111940386042875539166236370286573583612460212597814919112412216591499616873536514295332897769793793921640286563335192273638638767807939130883444442734686836547377228807359849830287255032120626169148937760395606930550487158417144118290894488884400983749051619275699209769037050123925155653016565313472928352366372331692807733391223692459914978288316511602749854025406741985649867364506241789258470144075223564955898912105530731630671404206660067068724512399220531985279497213144454541967064444797601276678190116362413344295869049466624633273868892256318319293353685172393738848052465737137752478747464392463857466341311281901883295130925768729787258576391230402557326375081311614039199041139217592761903649887306990388147884132243138952343890864852544833875057478796424901210359783323483718858939734211781055951795437998333308729934949999004169546412800493494287992924672728482216881953912031883704277286692819938931448249270193520705125015293542446403483784653414983697919704228944055319206932807079952972661865015977383253323051891099512162770758507626599033787681919728380485939210603000350903180853073039213694707483847668914543294513628809199210485978768229385550909627787777325932945710409748412619268873779116522275078538224869440960997501750373901928363633838131122292379358344099640777297572033559660810018282967584810883621583625549299895295656955938006065854994643665101825533273618341955002079853978288344124782866859669232062855744176659532629232193480076154728079696413488538490777616475049968081322956657186764901133586815029173337855579424466920023956510855536144842960125926751851958700373839127811407475440618960504996649301269783640323475517616936805974376635495256169622370676619201522383717770962128754623038490467934406911670782837875294555524779741315422063063962204750666291422229713423902997400836353551601434809172547343327013345732277641639290526789616205434185429575083611419497235747164191617578138199840788866726594652705109760358914634671683930757662174223295915767823941779450274134778940543927322363459565942438253100191270713107952433550478335083185042760028787182467630787857277016907635860292828806794598262707270451063617491657394993093299633920082123811592357306146012068800026404677232034977414801510913411624774672313836927638317477511007929429534567377086101777655103457908201519760812504380887697094095767584893507262865254112841245327823492763186412159602628772279379445503239919656043078207901163873047146339478739984070784509630965780782922151518832976215489504457156124361394311493183549353997606855771657525632602389393622759032563583762086432137055000292935104168439813391453000437742834551095887564150092799235935458451323323852639037638029911324200701472606162646921794449331780963808146858229077245666524050279401561766875499103065082362331753809693896646657939122603384559161947595541260020622866826560925196108856477012508056703063020118646635190032464957191198804912693842774666095200202195642347903637341216095177356082941436693252335987685084343750126401704710650545583172735232565925140408044647958358718762804249687485519658919336386815421585846751442312622008541601370708689849997212809828651853166347779165707359006603609300884014896013979166871408898284943287837260049331243640799714082019630958052065776082025819904220106973527625397443510250654136677787631890735146647284074481791914658436438617383794734401840081434689367262878644166005169828177349887682990979169838608289879683999275165270104913412789156709343350346309237794759931527540704650831255040475872763039460585064040118946899149094374500318138812618094422181934031326044979527236274117540611755056926931855501137054965299244381121459306633851500290814318364499422855914572594151097312740931103279938355420108940647452569782739763639753883374959553721315014545177645267389850842637366543679661797760649342254298390182423042299974018463389241495605242002087004824903969405804717030155822124505590449910036774524334674337958589170978202075959779708741758317691262648750135077228243514946275828698363171747912501018268062783385336433407237055864853808724102032955493529168617780623427586631309496544842641983935896222710300900338323733310466270687464505489826189528009784900432267903659562793089096563648537411521953736059879394597352264859508419739635851602508333237423401056381168769609641186774026937416004941935958698952761561756736627394512846855502779684448372421462217993358971734162876408666359568936126085505721340006153374204527528061139063365515991938819490406502519505807910764091585665738580848657670821912734328982084383039314240301208786960601017750037670233716776803091959556600864122359903599358061887243186927660451426744745154097969034683513676726872442188795412737979963766500129210026966622608034596936942051966668880248348345909583484599111550946445515030812114954031216297834274820113448646288442208292661291638443597328399164482391655803237151418423441339240381893428587975176429602560870840842898422186165693384883005569532050956198266367893500968004428530340161891232381740987210579564051682228937584330425504347386317903162439632692816339457266690897472714202263378353090756079828126924772600363408452308775945811291076871556531629274281247348144338495746861106618445202602485980910821930724914342158369045622589404440172898832248797304425945476204686122290002591141700214125774991525706787695216105741031520382948695470508975850920452361509450995559084966085753952544685010843172876761330344427828309191164214215022214976927351067235780643391993319304526132353325175368942566900185376367886173925404082997786467361531550696420647322898083724550304566894950868448625439546327399849242212585441905460293274327734475575101957346055339468147317470876973401103415038519110637598308346347498969514234495047414764948271237905289367749545481353597186168019698007762182700144115480656509059945181282865712473804207792606584882739068970578034736428635687247264014420081099886474776796582689724266454665607718885520469791545880110650187903983833153845756753421881776173130547127211762164791596511846235673385815603638687180351894707051015609754994750114954904109346205743230557913715367053816581463184968937832975454342714719186735641719267698080308243458042208556921890327537504984239896341481766363533812861170251317909164024846372200722948998633260988999943243794571401145246138542156438066310104748418347391415671528577508172655345991265384723471034365250479147272263899197300932138828600630385438551432894698734019130985022073315829349793985921498470569934122530675019797348345604144220018868309485930106383368215940886991049702979584913752800752406984138059244658040731086809594550115445394327913587348826158145553003552436399558986038950937742477757718334789733684082691331348629771937823965587840350713218011285894696751780292521509561084909868084063876319001603462700752936758396142269941206168517279517839569681069403850764988417810367799438061746307504522109706818730697750837932638661331720526540434717549426451309325310265875586372495048277412574793255040254336108976070102170148023999307035780328324340524149950166558309892359828612497583911482577418778907378253954908428685422989183596884196962261438665076654295405801249319520272056372920926080459017495713685139977682190045311885682167096660608380672466859181318272988103472753864939929118862450326861679493919543294984467223132499898468179419636687143589211466962268266782389201806236963021077665279607410960848656453909902450724864992453037247514704472114963270477230259343601062146410237494850484041601221463274337463246731169233677998365281851751923767332715895752652998971906947220079254901382641301351095818950464524205430570135317294640242107214217731621810400272779787526064088725224984682573665053189222069374943564526520854080175215972713039216382917624077336625813697513023134439983551201060528064730323235372508047294603903910928016127288863376611590789256801275273194649877812070968521422491463909986852399478883152230075447107200994096481463444584566120436530294079638985421214988345903921346144144946449709157673991152764287075862291925608451270989299624312798636259218292021785182901643265052795790074811781726490171778300705515405971628958276619574493282312967692661088029413718165101443768767022875676989049693084589442479351908904177848310209887103067585519324918843037729720059884304555131106618085257743324301848518784720474561234815348305661425899964211435521132479258076855145432365370093692557748649879712262594177017223367116293826066740613759887109461158443527743827814134792349490136123064346126182896302358391336846279871495432065473713107360476364705826264347571126183126028090549530888219664260568092999330818662816563815144436137828701714130662223263036285089386218932482479986282776506533426965791544690672663121189479179990433365478120819377698042740597915900642102151774864591026336518710126985879753952856264408486328345135333945491013108580504568569102745030443390303347850667197493799385449640677864040509786515906560963425985086344394279864914026503829607959053298812094337322070544555266483270612342620047997884443609016803688764838092410913924454708588894079587412042158535661474026011381908552761546253635084748179428852390370204097806850936852203213681763391183317624042400894049491039248098617482819130489502418131818122304216164106283636131257969163949541919673658643279077618132330790187142439863109634273692118313724396984970731924788346583301734382261007663378771723351682161320621105895397540035371809920556769397628171108501707634425092216301241846623990977770148229251807763548160761940819456439824325995813936250356177100299543905527094390192054500584629065788556279167792392488785462013165287035576046096368360751798517386517323398429022628863787750672762171328940470071602924928189796675869866387878031672473536679062822291916793915949034380458748014852310023011607970955226108314362149360644602748302497171277770053322795103023475719948436220922606012871749673063136762531122670695223933904328996953833997180234016958728313608629454857210111265451466323579457176145940400131573689501204465137586661219967774794745405254891554094236384333120296106164312794563008432818568054235194025449388080940392580032468737124868175121831663350321619109417427615643248616247761517995563412136792260405634984896017087293733210603381168392731099125286412066636701982438163161022049750538271021665337636485280327286617814367480319722420332969592046835982373425862051395943591170065302529798405320100221114340339809105389662620501354159462039554570563472210373551664798324448221776607446853766912018715103412439112680347453804695700125906713902807308819147611750207212523770608782930736299040081974976881368420154226672197551372964689490835922345188537483756383648063834198491852617634872359437560422012693089435364132506371383287054729163686603896908781481489239754863699482136985920013712582192590224618569411132679188765764666484946108842615353093589168636978330333043181295515981091570672978650742450052027671317124921359867645871372226876102796278091105376781493940168459933230329581591475009046889827330936028163663504945694529417566442477626613468624831258868514878398598203780762714261589847156462284934631484835562087443836036746214174093489342682628176340964766910089106794287851441615268725685836980745242244950729441705509699405656825912460883458318245471682125662929185517634982343589883767363189212611981102586111813095112713197378657876680385178020164650076681279310072840249417701903397669124658529970648878207870324517271468907270493578801022069297487946462756695373628000272940795764915775567893969787416234682775575570011160454605706736730640714357868107854331688169225242264077633928217560182676506568383784948757769187833289420242920860076311492062730003232762623981992983756622112918208707041346034548152201072404917556072192866090572887900438213920971970257166329799546899479019741282141212984661706879224873285306337113033157184450279382506986111901617842204864590571069233659438773593809551104396411688044765507425293057947549605808357335985058308155931078183518653812533519176811701542968668859746656795915345453866963289058245403567235767037530762713401871323684406084894921896645157065817206945317102997728677354846940890134052875429474516404209001712611484963219876155364422879520545925039472728466601271572632435921295954882707866408690098455216601762049177250339397048059736362184720177792366305480773486783997985060753121073159738588506321379828286187734869295740740958567798090825752679997090458779873121597335877494251886543237799885446550357887814007674655710900924572583375574475118750000650753159135597025980662269172631924765208744924654699164217701454377821007972803585978770629587663263272354910728678823319982769067156433367319989772469011413675997206249115440272998750302850832185564489683262411892925405838352827994165413097740185923057977784266796907155029493765053688981854719247868833874543485419470408357997565676140816626979293585717191524477272503128041078985083449410471060896185792755329174845913267745471357072653238107336143273014264826297668696061877154225621221655659058874304268149837249067250059156968335418772607579533521696578439039309824112989306422788133440206862304790281466088488829260664900408495915394579387653620687428182912024789339798890465704554084844301254400202955199723940376300439209588181704725668895095150878564373504652222260806479571882999094547340221691280850297837049325330138042821650628729857379736224029717706196987307405901432233465181540521975086802916866256671156281155213723613710617182089917416723716259434341446306633526037386896176718693443158277953466803621528251571270090118117702445031381735593821893486555174140295197383265387888655373942906970188129749321993744119238012657086228938286602355519532559503246774013130253800023565113349393601023911190733469565599278377843268559914355407366319465283583291041029296925852603241960220696021875130060589594328993170128298387470420818710179498474777897428383218158938848986918831191319756686479309496141018252033126866617827561942309954053708953925092706963637308927971104021986336115559687126019029575885122298222523029537988875397354230389511295536595213881987119595641431759760005528887859405790905639427781885874924241032975519951894162871847764028314875215584836580670560541319437798932597754975887067094533605938434929323222135425476700274524886306761408027578156186427197202932062941107415517341743430141552548693917799836986199879945492743733510661332018765261745114387198619402311266341042636876283357926473643679506835514845019289006266156852707507286700233999253415766528681386048499240850178613477689175950832224015804039944641666878971960567907934890795573071250562229088455724724311239711976764868218057869142573582342937228510696714164149313150228621941989042554561083956229068800454608552583004020236123497933951357904055679728975515294662289728249955421543926373031720165263018221858654103410335996206212895379972303486615216918320135478812555448572316222563807161333456624488256429458702145299141865847331866134867694309621531377882750719684759206506518464699674913672214526286012946975331828250343193063395380634841279151171481478843977108119473357360167732905341891116677995586688039636695620499141964663773649613377300694125439717702937680286580022272751012635444368428246823368299802959390621784096239720982010270540142851458031452903386555388543221576772341603468007336429073951818233757027588070737172974959641619731168788237774344113896634044295486624012574735558201566436801101323546164705198966358143513757386153440839946781488225290266486791244608976796220669090437225467513831616840541983601370803053973626708815848398176403670764260926731331527945451514439494374804378533352011597026711997439548696642957095900855788073384605837401330654032831140112054594440632360928345033408770237270846288826693735878049811826082272449726771384722986897591923724466764584389544247669287271797767837430535785002549017845497289802443890385822521104868926043778054187352621583469287628425530843052471864730377998094536034536704900506899356521673792612975541692717265301477481189309830511305959860571106065287426093747072068517660372825121274579102991211186312303128967331112677710724115167988944346504849352470895912915270896297538213680627436802259776374929672218620408850893825175269076525541264429297958643117798182607263449420146404863630795763303757013354325313674726099351610756067020653385530761735528073918886834545170467711196179811907564900175822016884175363067528624097224777539293881808672944794279682707066735504820031082496277568987467707062926658803342115589387185206417249293890094394045885844637209427975970035951455873562238296040168463306468514960465620206147606523422344734025109567763378908653608320353652803593921352455966372504375934036228505060498833899241363667502992506692961831651802837593769230261541990098028060463271627634378498810723539646619293660286830607705820385816954519036248283761629059784339182418270986100901047769046750025015643753672427361596372805579690453050743684270290894701823048189471382388262975944068554167235614176124239270417128879646203172778732180326181358575700240031759988031331455419981895527565439825954891593392046901756368841281253072997525223846975643100199938090029817949397590345418980383832321418282374885597110544471521448173272087842494344280826934361282342025300678182371683791309774772711232451176364055810133080673181016922665798974833678460718717860071397116413305401353622399738268364790783214168007829002885089039171099729573140454748343042773779240736980980201696910505736816970833224053224130188302465335243333163575255463835292539632959229194730383620843776595411973911176188364007751263789454006788145882257037220249078109691985406652297889475990500048317067789683199347805119880542076814447639976271538685813428830440514603930062442856126255081059987782951167358906542628780780201282265171749105436910326839802942893098439364636839812926202165883012693072762713047660207078508997495423617598564839897363369671180165213011682751102983071324192206248416426540909614421681575130477533492723194207348291277642881043998366593692711685755956961191876605618394212325519949290495919816627581569130782674422086728375500782609330130797643462686977456147420799340286078651615025967128647110708971723768244246551664643662647738992223784662404838163883140218359614713870113013626765025184194110003601672481423351727867217320686314279190208532569731168220563091566000741194898490462783308534773006131235499641169677673645838061108479569388576269304364767433432025203824654477880238930941215749397616292634428371071311429585758576953142859275812602101305312425846127821569907233098926200140601040621797387206320485807770789638278104020906399099037808551543964558234104406135375018524873353663660850440867802276366027219420848755435787237629460753865513312254696981807191589137201371461403147571780265890779963246827440189949184874277100801289942228432534609370900501804987520029845957707135707961269617653235063981894804917978427763084541833081471021077024086189558167337054196978263672812754731496099482506525296031635391580922257891891676366382345880549145224027697803438477098650362732935844051707204923209364779643208570045746447678649697386902040570132543074423847565575604408768348285625040912686874189152176561452348969679176685613377469322503941969366291829435178162282336653177588020120375928173008087163867427544345824595108913211474311064260609296172078412023933085025976539940409300512266981599355124654459308957437029310784031778561601260177583843645654118547619649886289978868007745303772388658949760873169714257817211498388077558886864021217056788001192128196223920396219485366302305912056217888812929371766055445899140210033005931455291543854639345859404008396212271374834694144626953858873683225421192463328798497094060464354415951909071982696109673530204672424102858260272764832573881570878315838380051184474877142456203954190366654655859237783916737625543272378470162078850849786006952454073640230847358492768662187452033096766042405153425162706899635807917738425429118523069107059730326300461807425272646894899614657282654476626478814953451075255574119760062455388480991040043426604309848301227135402217421188677142109140692489368180027390846259798567983849505579194955801275874604724388040340443150779090127061410862552794614289898426928678317268707825197052568654082183747017574568841127997508373732348313463931729462369058518173624811471543243178635761861003724216852619411358016329331116970774579580921853716638123790608462945220731649700472408456657311803051784968091401372203047350267798114039029114564921635256786134917820412232278067221326346144188509692473810196212156640163872332664607471860307181009441712389321745600977134439586592729365336170031291155026994715697544297959674210981504064771738811780783602252890876424102231924607209364779172800832062434647896757742811940794065315534136068158369202677176638283615802949196392812012456472216577493318456699393440411113939029428042634878322197815840891238945079620644704042823692339410611252745798923512441835031923864879933991530933870552487777341476377233425142792124233653803463351477971451867971328293785141109765133332899756385089269572533516466981236998895782031985064213966011469121341146958209105210488696577022839281643635947604495481250862376225057281101311565661565563354556647567203284149072000552916768962820417881428659659272403898772828300777254743170659886704250779280638159377653895179036406236375469285927158728130190226812945265819632863179780518048609046286477417131775214687827139204317385004365964571139418096653263486121992971305916605051387384835894609498216643098024449527526979010071011523295227547416644902799081775508625223330278798625349094232083323117611600111673833486782742328571908426991876797051430159248812359774824309126247361941153890260783616910410002303966554171394909702492126875917689651718146818680256718288868666812116369684475230172872224753718412645420534503134114806230829232715286023314293880531902755585676754997964814227108533145857894098489677205780125396486820060644734001785596035843607116477351705110469291419748631436943701825659060033347100704421129274502784344149756738862129523326109314953767892646982890606781246239108573147550148330630212441607040609468264983971779154940965269804049716299084590716858793656213109040033666951959868363274429191175213050617746467369356751910898294736441680879804820639873245479186453686537021574632820437139831917381136713196935225879991504869725426615439807384012915344252079127643275115849449916488289941780057516685084876331535963913033241981218401159661997701534257793632946684195465124072206593219554703249222987007411656218504635454886261107335254493940550907552522315508442586459878808015185054998937930301031080430835803725169223993305765287762531007406382309381882987503913409134502960589637191330014000477316230290897594279598835488816812331398947283723833485914431785291147691751288443835741507571477628205151553515587900171608913561926509122285869784684997557771737321357424136370618372011597572164845363921265690802096587467918828378238672077045167142978868573862574500351437679979510073563958387417773176216565125206238095161699171129141736895624161360767396020426644007625630454148178577813789960145969694922536340524600774749752404446093321634893003113190132020423824618403538208079266943538952833528715187039113985846198760931317510068205889792617417666832663765958415493672793311793061851065664862835326675987940771142527866233021674576384352401054964924317938847208798858920371805613571253803534153359194052529654993157971053862141151113176336763554096822502433765119766115366684783629411721725233853105206738378829921339595161545438843744342256714725253433392100982952384465829308138274408326563302309247227440103376376072595321238198082383923044711535175422409267482930494978152395076670809609716810943065150450995444980675980258648861695398803815882446085113150421930146937853655909035635578241536605089517785250040536745056124212945921945111592839274059122785670662827941970423735782441412927996876726196810761820753167453326004529943647109208544162140344408058779150569504971589354162013775764155056865773740731630721224954160769798879431577257965617007454900122943782302763739971096779261224619310267359630567673062635862211890904558415619171191892765358829000532819534013254535593125223907628348716229573913302603966790672575944873588002349242751725019073360755835502795653751294890034331926957830095356123399536723329741189002719280932230264612861240306739127786171574425688408267348719637683632916396260826393252884765273611843428372745627654253437778086630606566780706273615516459946695185521551745579029471230413182005168327215058791526407406917493847181538116667608819494356736061898267469662076381004156495303082970362501100949012155928711177713526296404665849207873162462261615758650393458515403962242029267939877547460542724127863623351773388779061389423264151545217217412271883576931541309901606962396645610444521662473128475862343715751945707489872002232966952619811966160862127470291942376613757375460396410682390702716243325236330886107277243774926065202151843881259273531934083429987127368887386993866897546245593597861577185724030397656307172726604931733335349891538851247367407960073225891145170847323316307891988146254154796435008443194592716788490006882293368358750327445323365474703744663241644536521885394372873583441917338316967032419044130335694313133355216552805940734247321762522996889331323850195284752891969901495167900036089803689266890564957602782160700949265099192383621165078467459295423596984888252219738870593316223719502376824922476068902078474900602689551508406592523314343091458813406279156819133273577254944599726907724893152791197387048446091637315721182716739573159981792386940113326498837474124299353893038574102685455469946883973425710464935471129330130231484565852518196350660816670109002346536619998397246555288252090385450320101577228202686662395785533090190193552013323408506639361127525575161615488546253314040292382813654854252533071235722494708681515251166866509876395154046485446801628980882117392261242651477380592855709446564563954619432781700802802068646648674805582018150072211928121820327925654201489029460494679239466423269328506916620799262595005954568787809295668739756810675419183475379218013061702993124382068281991077601296695089763091767505964034150968508622014577127733317418211818811048522636107081836115334981229000349925690089016184542556169650091043383002916750360485700626753945838821985516248201140163180687113438685590274443408235838558353883586732841302046132785891106097719532814776398795382122390101957334583705012808810274851660336751744416705797615653822632526246141234158166311030229986224418414178080759431388557578422843129533723952155458836906559802991168916460306035832871999997319721376214490142837827718214788640408502332472232438589103987919586676051178461989205134835892226010865501695562991615549340392227588522684029702563993009544189120484631135678963160748799711630627148651270697853999263094174125478108054635896128209054885803154807006581797040350217154797478119463022197762930431250306530017406785017412193389164662766443430347218336766478516960353433949295214189625154211094574479388415062832372223964380421522910701163206363252586837065859045398647093507074033545379970567553993270897797001315591144735999333184742243216083114892042335660847986575402571881657426964580264126755444629256383259409341711109259795939748892862735212106961950277592594905091241048896999672717249162600646872898037129030548354336426272152672726772550108906901556564258029873403751098992518583223726966717882962237506884466649733702614556873699284664075344349531270917512655413530879326156279261161253448866622116525754370996190965641843916240206754653639571371260709776279943976288640507680542361721896864420793458583718339265098599867058565302803630312670233744042588564630538977019734898457317151500160600268230366608097820721143678265176917932957722178738938465362635301053153045711493868188950523711602345429934778417374369979893308335379096847901079796894257288717495863310755373257317508224522142469748933007450852452737559563457649185456338551921184607744052281671245627192029131301888218082728006199345555808650199986035703855621710938839569520957916454331123648153030464117445717049979254320859531509702016649570608441854135310740256614010755642827566180699773373326304963647483686557576223696413572594143085825320166169098564448378946033346324213987050482383911090247944340220276496497755069061203589637288714595151528500887551141610347230255064587171993990851255011654923331955955414114117475811383639760673613548103608131294453576832400550287949265928090875083559052160858440833316957654852759982859626307553678095421792065569850429870589762549021687121187770889688512780040647486639464633389209640609435910015201427227959180349407381133067561541728439116133273337126724797569973906254513854710404600040248427096162794694443406400304884359213254365816712694607217615350749747804023988333908200026542400309129146916225661063692278304919885760498807604172320458680424865290866649246217507956771173432033382031163351964309836033585087574907173122272069982104217295086793288138509471656617586781260995531989254184693599231363402210832316383523278060553611285905187653858320186560641307446551899745433214898767654690094508041847933219688168737732494441395253101065508428766419624442497448879433676881878341285870118691302727984360597838510975949349067986495566118968188795680786825835893338832347032345242379491503072308924163486439040614739911778716655739795565886193089262430068110281039078040496226218611468100792223111697606729168898310132738321695234716088012904887289621026703032825798805617743962957020267351629349618657939320559045045584396754288778156974909291500326040957804501964414587481927018152517084198797627175807332288265523658792307869123214323920117910750486562531367859094910266449220859107935481339008240301073842519952896262369461910726835214941791081075821945750054591093548136829336603067109179348050060694456446619976936693659273749138553391151772470038280293519461988891216492083053457340615463063715366991430792112830921074230480779660703678483452395662370510720803052677952007851635083557346878044055017270300884447497231314808110123894990193128188594093904235792408233446573756938288849761338402867362440918799652663982380760845884289913797244310676638132102717510624618563515107192234465256194671240569868308670365945291424810036311573072487304762079748683592739693421403579019825113192935495460289917843422049031559121443697470695106896475061985254350403704965072136852428770530205700802280211171468632019601983783787467183383638259533053967184960109576308227209575355474017173114991072180055535616296107411534924117126952679029209137256102817347173948618684782239169735059482651346011836863585115846905094346229691028454240968832115635128744616476614305281395838547465408768189729266686535777066310255271521811450108070240328577082048701436285128504034162338459111262663825761334950115903667340037977286552057786812865583596257451384670056884068324593171439114938843211290250878983390676752649609010864249828750080571876822093582459645432574531528854708854991104535706591278846841571153322465434267113479295363827672535631641564125310017103115581110460910539484347309559798579796281339854188987337133644860462121422683515129747890532186972733634146219247304284419902633753624936687473253759111065867275844977569286399107118585960650694358739618203641189395656767591593133744581482066971859134220286930279217258343970243969805410975784805601256046649539186473357852383149661154951624893611612784132883260471170067238987862998685632127822743375848670765605256296930616330965772973892818354494522146162208228651808446309208988399647996037980242457905066977292788879841719010338494379664382968760919825575795762360644255422211442443720093687819539417809038420456832856971454002896310340511546119185697454269070295861438064146173998758860007832542763065143087854409088507359622102829077778839467600184225178638559917177621257088785284288801073154991264248803358676916351992940866211503721973969236022020829025189210775575882924433663667334457391079768106922944171484949969884554698858835587443292894087222201763047959571774087331430264717252150638070916680285798315388442214200809387147026134379031906676771335289145383997691222195641754944106713314834294978584131536287108939643182351903578006244968776092838443504687243086913776326857827625141560975395144372298609254690123500338850502014468152566424772269929584766308886866846901288581954262599915175940188311186404224362603473464449100487519632886037392393460814686039653419453983000553958827617250201409057799449066113976545208259128952026390183371348644789296896692453229662539675165191090519477660075084450052464337717895661629129327538047914253778741404634074170886476526695908470369304487257271360838517462632730537520040972353241146815795211412129213636306967361741157400195978511576075677595283941543841642074584392930759975730471118253614705562170309257369142017827765743708290831175213463739374788609630064948195031669029426606698544324907257366503733796208234653068867297805795324185187511015612334207669721027371277139464127144283422470722737561152810146862627523976661049616327418988706813912414314505267776163499475337879226081320794908692788536533999414479804898006394830914493220428808053516063528182166875821627287668062522211927166080577792921270181195349643697887631326502864597679865526895148828743628678178092638887749711227685413467400913201184097112272803021155280323121009794949037958450083349856488296663793468182131188769741128952470965924455250025087884302027291772577158253974310436662159206109286291583004324162401431922321050934488728922769071210580931481927341689249243029047267607038845061197018382660061801628615932547594093918947744779091972022893567734891063217810721749851196819872726190227275326164254028869353337216162391011249763775715828687105944263583878177203820343065913324699193116753448760455100962273363078281066733790788968450282274697878389562477363990187925653052449554188269046558226221135019054089029817007477464532357474077297708639540665637335643922749461283672594655466023787917269948481761123375020264878559043469721012126608732667849057394254737625015863757301306866761524608187985673249845238103674332508014711220845015233387053944510393412777468328358070597250294514248231619577616535807860646398701358088927621352107682867437244208406725912873347174895245680829678449269539350453502129848799827406504447729419297546225669722086148071769616207866211561492172164525804165006392597951962483983938773212740821164895421272634313262738749615164749508338598196489649648442841873385680521068546682313158105164094272676186049324489939686263333938320563611432700786710849034544170049706704097772548135049981227400970032282302743518374354182876052006744664161971065238942674075481846351748384179889759841469806689354068008722753856446238145767865594676898016718864342848353435176463325532084617910718555237991265650567339440420505364524315878122258870917967221376245764893728087445558744990444988352152137191061258345253177535415009030846129374601211316374197352478645997746584730935775910795072176296054663312934762707636783570933632860033706338847396532916567334133516453571929688291988387537281396919096299686931088339184783947118602641803292010515650169461340108278838899070274715280803307978333882128807268270092302945565788571392697374590326350770954887123249123342814282554942543263826433694072779423410373278206128200335569080625646765656219959169245471255303203845339297940585629967977619537329822519859088274032224751402433604106738886934418470424527952259803395458595991122150794179828527964370260974921949162080974728746364767490488713879068615926925136782420876358885320399446829182533794370952987970001549094321411859363217971711382356162486999663687848144963723666064237944837743226273018968470185628695289634713379912805889263866712354562333785216889074931552343511052177947012933120398295354344103916392726880578217504808552964866579025849783667458704187023955182214186110148356273739053551069942225875578442996843768234384964354649663555089892436456729878833869469157392244423947214226326104456941787247813987521230780108916952127858683524294799539868024506689317142191785381712108842320639505586865934815657197616168017476662271016024430897984781233193213888772947919735086789132192689866929481022668021525376889589029737849270472725274109182710594616835571286394332684182755604512456235419075646448230776031223516972319381271540551118956129717345341051600354186152708654053862572448778314973202920953642422922537085697318319359827451010190231994140415072047267125422681677447483693581035756446863234265064822975816775519901893492440922925491944012254070507705064995249855679371241896480142480667015960472114012066251299452850641274448565415303951545038515938220572473457562464430105649517144714593849314385784610648505372022686968882349305478372982436509995529745592649481882109610823436391091123148574149534988783141857988091568472143355653229086969748627002184663157044067841011664446503297804471121020801978504867173723683239649330907364812813813552645411314812737685335116727549024226979833493525676057531929313896875471675128110551760875965081490508112166154252755060402031185082337047275374543604116656256987387112892866752515636528510936607643762826348228600336757199019272174067607158781649920638430372144648096711218084702996776679763109548846427438119600830819419237298511665582963350231477794136481527909871910608540228229081840931616053464750538867038154401899828574447165530258821705892932985350190695095431144889139207736640629135945655026986396402467591278256085041344324672917490210335861592549667201570168347180701271067897705072396808401582188645350325756336986250296449851250639607411640897672846268605866047810113724166531520023336385233888007593310459949702111775087814878562226005266571289445813200562462789419383181243999513796452403429536112538129924624635389497201995616536763364055816150064497339208040193829593357880616305191758246957615464831584886226571470649792925648692688296050880868064075347357124935752307154992297699387095759418765476341762347654024391661447326251889742105062449972900595138170415699957758932193988645734354433532725037440856349906722711899541288062553483209649650178148363457963050234617821390191112921260629408449655046489903061925591835146653571410054817537918301355422497199536764478131366082116099333996147233613123530403373653018077681815935299551998669425941479383630861919835203563025537520241908788031341594151968373966174106967937609950476130076477179937213721250797263052307612676293622345692382927817452443619134499055018839443648586493998237834171101259761766532500823243096316987569024901752092567106508052432301264291245195738371376820991536966101094108559319895664837040653199934471948737060387955214706155542495919322761643430844992071661481626921702617252942925719041925410475653538278899993203398133632265432849587663333493919913189931216561762403197084480720692384051900057756941007134193866231083141710670228951455588813184377882594587251098423645008067265378529901395513616111816383969643972357590383524721460588893752533918130754888876380727896662344265478330358267732181148456479513569634690909003169556992116871908189190830161748296787317132154810274148920938563514494882444369294143241578015769493557792413276334711079546212671294968753196988490633420899846492209962450504540246041228168575134424463120267905163520417757747177723755288856060847280001357788791954607852314065753128469974586948559582076290346153661681164326123574688781530468645094634049937019901017629031102757157241360176257007465334850615213801404032648726066625037374606068202267940872498804560028947324723871257101176132749009601542714241543649797798520573449909988445532558261230614833627325858584666109079375158147805386503128346386779699154882359718675627643120767987329467879725067311440932603815148944177307078104265417569805548550365617838222978538857822825603586408095056583105934583281159564171165459772783175150096506487970636405994990247675279360780139434881392229454617196471858369741538854373682665215610003861660039858573470868875360732787315093280767135480662795850505459883134364657383929727928152093612003941019016504307556785114804144735656852331821160648826303537919566714277338300806773396423763424422854286183481847220162542372832199719220981291733405411253386788869826573286631548024985095159723874764069705009649707985728208463505859583150903991313212537744697281446818154729706024840705451759004709468042752793153963167458938128883656260346541823818189795086468149328979780568921893586242658613548533357364056903515655602090471215363529139153585721362790692469853163879464475480675663730818580571100868164884876555605527541718253747589746349248409393478968531686949912841547879593018300968424490233695132350339044416856701923894558683609171141518980834512592783201602800060598062673424359039090156104463571839178198105534146133608484852509830851050046166458986601522569522364632286620000397420087284375761633710393567156380305860612673122824288847471802589027517094839233426656906260801914198661046865195616503371874413128891469455657636821433922958044755383674033072702326175929415984110251261659543551989108594053110165011890197011221990206172774326203727470940603852367352147367460069514678232386883609461817863025943479126320925512077832159429769675038596314598714648309197943713359181053345670369403682135209087531311931184898247188151484855811253111634014417310821050657928775074654877231253190591368066890722229268997501134157034327107038245978674695860687769533369866341152378931293705662015146687298692669523666526484807744878574229544056563618522006942456888734469687031541203365111272581967415156594024542760367719833347047807015008512710912694856410824410122601626588743450224524560875754280512885584511163056296294477968273920518374137550304165043830613273200760017716370294281233660959955129683259807220543895405017656900681178407137990258376239399152601483496750938668661511589989454230974450212103448853522771572412772586087786993689924388472183556191210786209551392838496267545439503114332205827354980576252850170894449118382678817364834863773527342976480672067741401648268106598010504833175613205440699982771802962452892426296461911090241947632917136078366975194390941052675859730088445058162022631047353484085562711466279288274395463239277602262185127790149638361859280508442845369329366245476285127558043632415740334092755678329787501564555974447816355172522034587825430594690084921956623751199743469211248159894856148040846246277619666048691628677340747165746707640174237795254935014899986490528825156778939576718743934538338268725803847590858419052358717802229116935181623787321327261551760639227473634005930307749201466808009148411670226060532756495762599526177022092482981636728391079006715122674698649947091621612410602183818271254589545371093064057581113018113001464051026829674399042941108676960421792909003870424432971689144288376128158441956765082530926321039528548482555560381683764269429354680772310139212918198949493719258592390540669252432193893626781526000049931862973407583669789007939711804335790615331580384240838429080226213684554652063747664296861409885920573911064703463833844155463336639065989327212108481146816989311942117734812703549511970725697508283378990084050439094729577626904806167079395185319531349170029350801162361144675563368855518908049890838097404318598083042551752728563000292776695661170939736965677911443601040906283588099056305969694462273215551642095072097247651919573297219677961280731471625143211524262231030940476317541968163015803869240573108383983741857024975584291160134477655601681743197468112266259668923576857860158583937762473091882709519230641790259634025158412466429303383919869573237482626148912532428124071396648745377471295024728961423340557298227411296950777900317352784520876000853777604334876397604397902779785899548508292327304872213966743324066218973493256535736542686175299218958898809726160413047183147054449198404889808975325977723035445660243964656328659215214056413510963837123749169055363181916107752684408082182166527837901254110415789328943036530041823045075476243349349824633793162133352466126583835611396600782180969179345949728948459887771947107754853045817216458148552759671290830534335343571495175642376600874662182011148898422558036807506222630980434192272684849895859202403571106710379940681045110605411631012492866720866914686699634572745971927143998857206818032432824569832302503730894712379722358688988595628636501809234108984052256757566352691495502923385542190727341147108674819967121707508900032280009780821815881396290677721831766773001073362915818485531300107109980512134579377235282861381330910654521909005856893986972095538158753339428857695553346721774715039150070279791455741757531485911812153962540330337003527603145933011614235821604889636534435915861696138602586775430639212298265730937545199126723057132767055616704866851447611378060776543206067910303931606994019846668947106453758573383970461223992363785707427045616539117725695072576115509171247607128748219599873982603006601488835620742834397900269903532011703838381340912288628449868795791618402745979914239170327125934499588259827120705661794820273829544894264935399007841923182041732355105691015245422832781727346324817781289328438797588173675147878125472607432030154506257224673285924981742346328948200474393808406881290956566795732151854482867323943138418637468097775527774274447269488216728105842863671484929445473585931361288143181375053222277232289116148788063829013391267075264009206660191892438530068129783242972984833631000932842879243609257559798357607398046514141706006473282952843065894545231532926336249544407741610480038921119623876336344029192393701417625649658021266038338504595555752544588785556130995126142959587439684627851819075062545853856670661565635035601944612922177604500670980330142760277852019060150904818912244871340201041194237773616109071532931309204236828664442472938855546825023935550558344098353390823082714179687888047460480870098485921739993419056252241947772889600609927266594448210701486739909211188196587296851978779402024076309612642898646472919096677000671637758346018126212775893898863166962385443121695408210988127154479088094301551250458577168360138807062551609504875601922067535591227549104689441765251756614689955835922746859361109689898920757964154794244534619072683938548134095531288332806169879767292668791693322623540073313807089238518361414741881884950866004604122532470374977994829220459596605513349236503332061158355167523312636111391478916044125296154330656151325467166433458030247182385379123186007178283606385070450355053183254207888241952759598833998444591674012325254228552440621306356765647590983565602850092373845189076831565212303917617680695230020609928007784440969071331589839950702238473002886588605212178014442304735870933544029919759536283647399008160720781593410064767652065894572588439514248002793466347666236054967817368328893923229858374092632997613807558949277436394862936121230122510982207335235113685835466566011588689666047691767505437175761642092886562615586295909796047657094612152261695420951100292656278027310967167643346540767179146829737274115348319245087629504810635069717334387378967764715549333903677190385475523726094017723230649229577857652414968615287640384619043901511131215956018226510277530277699897985792415506357005980005966524486305753685009649572635101215210766695106392939907626295746275181630395970805278947839416443145389853359249306801918539456262634495957821964626398898932631217754941115481884233018775242579903966638792258386753331855573951771988404227621426117297439894056816348445327598948471740829892470316979741546250071997596156166168078377389559048711647028436253268946122517739933489285847662286749926425367550995637977643575911265798199665067955867850050113256389452211949588509671121324374730510773374527045174920758820765306470649064577485363125830721948480742966055345400944368080563274138333389647024808699629208190415891741527460512049061341798297521880297121515467891613338327003760263212495035459302818199260880970108863684369073104711238793826337066374262855340210977784563791895986400820204758802546020177908562533748365366751766918741929602007563141916438971258299735979931287039862196098059713485922394626718570832227454535631700289814315186317200768991380724750733648116979545327625811332236501294336054018068694639880088330107706631867707030269077081877077370486818440015301543718014077966872030527197472550200661813515403906817220763519076232565658153604145881891395404313586322335133142825856984179194856818408411329696837149982957730081762710452628168434341475627323746003882897287868151006667259779714639464572481211554584873277599842541038685951355208347616146234984524078193848668144559642827943657499282051375600958988487990554669428077819826932409664102005659147026466465942419362749358931398299800654781926763550684455252874019168104331708400090910095536823209758293583308721500573550243696314241647769880251862589016714453907946216990495328304579488319470696393530626030192398793101674604584548392495972083280525401031307792831093514677028003611284200072305872923860411784580914212369161247227448210399673254558482249729982724288399007074721399669711052216003088518744231560890013760716650770674122819024514307912019563185364538110247936995993725464203303866061146354842163226641751880879084828048312806219937022164050462636032776507104980322354923149605435219517431613916911681947189734142480717689226409628715547818753876356638823547275627781236380163426800863393426694839478463063096327761445681249661098930334987500753989350064519944682025048616451916630705672644042828671516857787529221344438714765546741166712936458594885142627310337462467418727740218871287319533152094568015094642259416998513028480145390587390813265852939352181254862781546992677215068612568721750088579579791544543948530110238963289697004233482256001319991989291378995585070046915227179085158539732942796568506841999885247576091610008294747589624586783114755871060777523061864881306951083359466131784281211988688724736486894361518961326957197541266555804959943782359139091035655685836545958304458596878991157077383075102666882313790344930093883000543675340469156372004656196166278639217054698877365574918116995369442760122584013852035761367112394116795340377107641816803419592344947206979172967961287167709215170488048655350275974900347701973304477467384227114026353516617077992620332994507937402542707395549337615341692778398854747528127006203348426000450578378074414623735562145471022940516506948226513228307634927737499132987370446624543507461494959778640685901118541325425091616551901755564167531971809070943792517887861698811356976453651012527019078495339653988110860908328915078487715106615139064828594602938056854007896258701482265237437842204500741759959693254388345580912590677337534540675779814021270666703500153973365267926137117754359345977413937151812130557900010285580921585538736356095448270727664710210411708591757616388509514828292334472029499728432185695353796494457740644232639785792710688687450279786793723657249116611961019372373337331588123826319010812823557770630114452174123879476656714256369388981116256071366188986444725300306630663154784543484563661969941650041209355096187548258893237096978285692823505772351356226854614388424986965150180003500623625352958142160024223693888754129087713818972229278701871923114408454967761825908789036826144599661275442723399611090205570083336774599477921950376947692355725934336763064348639219769791793124981013820132802338658878652412739254032585159922617119667852858950453612302905475798690574876120205406670957351734251465961896666564531261592112528132047677129141883107685775909203823094886539236569051068460196044414668714149630486432579116970293774053755724515642377665800839991129551830770732095182150520140011484805214297504854764110904774082497694325944336208738722791543016343151339405849586132691799569076771366319696181356214610900604034925329101058929022549447150874772016749510345599061889251686401191891086862827376046839389748549388301304897180626041686516827678682474475052156629766244241381395243318355376142129725990819565091990753868942464247791391666426913928894393480182235267526624676024499628081661794630258944127877954544965518324909537758700367006149324318926036655743960847196991889172463463025973185625706855887932207518919410807052835125775760860624785604353297817860370807087282911544849809428265810165143260259339404898437754463170069991073388251549878735680370577756162736968590363213682827156352523862315283588973538069334224628665211047013722915168489061883615060352384898760149782462223529468772375502568865480274768886604335191665559042346035463138275243409498296572245593600521846030146542135128966767045196515463145105254265670353607102390914009904684279363622850699996990106364107872521285000840855922958952075958336433518371397993284060632626270983974413383956801191360710923302573476707482583159567954446815965267716464433561806173220888717246244002007728292364415122981713991807376773178994501457935103707129499395020066308509630394664563699727168614025794326723171091173335931472905793782936402660757361198848081652723923636492619272556091628163687591544534808688433990187091506875105930985653339675077516960303731320513848974403397249791953133995461124134851983981695257500238407080533380940312045147334269577580102251853063791798831917411662083306608609477724127563650039574826883689338527596205398029790865094906161979093044200597389138126652602425307607791597864322131996222880393152619526426177602409185035028077937758889724541676820555074548837782406961819115012801046985608234265832299518182431373470588100266413257911430491402496478987096899717044403635401506635207881323743678949340793358562164923799782119603960896505502020314889477375346150679897759087836011445408289828439619232833891503951441587609328981591912546848174194871478569019560973395804883796179621508725855790493873830294378776212969880757424972584276310509915311590072625825456965533832513346079785249925995253819521689317839881813273045382497775237972204092232921190287984113396075697671885255972755859147131830251954073801575656914062414596165752483426884456563107707762087486155647220897943548540218201479694725945394315790896008701417428272127757262854854765795095492609954178662139052709975752453914728161154667459783767188999886522879883984727880968432088264371337202353391290235225590101830447116965550603974504486656346784699467633361899371897864980724214502305733291749694144641000807314797076865578214855616302871820570591839350790311875773568151436706423051278414726487271993086835330334098899717103474486792703497332664485967021799115417936579469846468471699096279957142255926586053792572657216171339984593076942680786244286530956732700071313607974594371497035831499056386820473410467997437305480408225920481002244677833592311467745208959545079110175986931032440804023006056486243122468796717658856955975500137255838973588094098636270827138569160955800856198457697577299348673184676756402685697235429350018053693203674545985963947641676560436891261986039195856573549229683464735970666771063632726877412885758645841890384844256643639060744704323905424201452136368784112122436717025272386951293127451819188948668878619547691821104460103479420987679924542720954173782062969203880025862915338137821690574812177542117583475979528101739128693228904500335564736172693521298871970674193327241813869870181787461576454926310557861274491079876815567417410122841073277277479929640895959292598722049141638602094604756912248601857709792852898226239689688853875047781471416156008824609543307873270947108522906303706171287356150729771709381891668251536550960251251557036341337871934109494078191478278004418014328595717797825239550047826152646240632738176717929901858407595644451878636403218937243040205812608763234179536059089657625598721643505932987634979557880382240599099101401113325882867136226315114939749551599675587977732634552520034283223300746346667133287771830130872111267613125463911889772821182116268937382779296927964176970622695239418898671689329148336393432529039522681805346465542492985401350819935304771279103037958469224262584020940737351750956763345342239155718418162627628212017739507178573978702402184334369002455106622141860415410358569548479399408810878287333038088735041586896682509283548919115902195689673289175375038716763794583769298901411006934393286880279316619827970295752090274719449657181729883305076286125831894611918229245376441952509769110455812713023271942541429781887821078765474856382488938527474940147035314080310822640046051367732767104205677412799221594892894052201141650142573741041527005577967626699169837211030138398119543142737530107099876723644322404528302105799101836535922089401933054333711355869936724140144392453805740218983542459767528819686004285234527812358128469438662956298407120072435736464079102115142903687139874902715830080041966977772110892923978579661930278191518730117480035747159534974856593603762454271636368466096688669055601283673502512335407075819012993098616041311453913421783760374732519985818358619422869774740858510883394514844487531836808880815366850414007036306175268095358401905643964950744205672088012516695361495974492158692149803495585661022053326791405947298535546797212335265715054596432078228537286381770414549157853274789364167983113033164793742704943291063465589010216032085014073578342299121437667910045993731618934856615409553370048271340900082505332125780689030707045774342754255333164456399260072803936862673113594245556087247328340206460220215743151761619812380109119078967172313254412938289581990961507144678516420098807063318673218760742910087616337362819313968354677798023293276826957596635110000928382976241864713284808911668055325351929021852978212247116330615136267849747042941727346968894255971286686837645600418579099868259162458745929463172202095929464579513603915309106189600071466879046061875208815870062845110346365010740988426965106770473986182811227259223296063638474433140581626698540514888437670982755407962869531803454036764865400834665510104385435663805874934589798296939172619067623278418549216115797881652993075820354290628574651544224546260927730268484081768518704627834211681852433044282506271038620680063358953082968742118712546384760064666880297023913455621173650533883940360906803199996120647968857025474099459422436822607494085757643090393775715386493124353999068597684828073762992104476579840036072727772656954973713987724264261833746348417680805474417127236424819277179907000710544785948010537048594933228367916908606273626969132667904148698803320084339299857447484740942340190593605258507381524265177191328260034733880198978383792172736429300431974096087931264785833098641397080438317049336288226813765438003989784906402734208903468104984297992323828335942285848881695531842846787282184681231628032632920376437792703072230232726792036169718106050918941454233530307721939428595532319245486567389473433440027038987428872667655381498089985670363000724704216424515792804161926888772779068972632647207019762603457995944037116391200304597091349318866245502915613994140495692672277544137782712551166310341940932454153001220651174288274981384161861341063965943670335185922462355533027294309576240169657584844607163974233270340793293574585591115282798717050314596365489601890185586064627114622295350349079176292881888766229637101628702154174017270051879518082165071062744138639031205652743897503161474111553080450804608447331409930732768333897601574019349037691925698932937970972112028456832512014910802458133830760234115885648531597961492848198370800817637380570200414763216528978321804458704367938938564504546516687991136532522504662403092467505415127634257759243766466671734348000716043622583197313419975714297990494241039550192255864004865426698935185086981996129373871504152015634719643468670295096317934087069004724264822911931645889055556406937622589181732944956172245718838423635581143543988294332216630968004691192265258989122656818172772318331588960891323234922059950525750592272488873549241288058201375756905184915540756530801635930381358138363900896994629826968649457037133072999422711726423758199949747235228910038776842107385883375350667420882138154241507175149726089161247007340867111781347086310230470437764184612401921425554928146558275397985544009197955891894996114836161222435435149648290507400042822301113142306894241522953024428662528003775385898461128318220411598604177935237979345231014579394482888442316869875801148545094920776007056267846873332763098852061887944533393520991815060483928383631340615842251248400493859202819358439256435992038865144914106738366459310864827581896879242788384177991070255020736105973298105186558448551980646886869926353584704285675886734995219196963089869060426573192820836907198584318919263664027039821027129299297315473999725515633653889439770586568235736554914736940384632050554827137959977316178282180295554869091781700130534014450611785208754062968673201460209374237483280469121751504454298018930819882054162781757437852366822998849177419433857818454472033134631841742934501030751862752692888130852174667128036539973914136654170390869840433602391396819254723087391587608986876406621818532407890711978762861411315684281315801935895995645161604018498112838192040900636652609186350774285833366015278618519902491244824755050338842844023208253612745252310527841659268293563908646709308778011447868922512886528024248132086684695934338951101979838954652203413561588862217396524458355210318302240833113110651812481144872906193074672945271980661154335687414250771532253198732073307209813173653274962567565179263209167043596075688243917800084969928890820855800603886113642249673657249098917599387227841921184584869684558028409414770048715817202910678651229418567115463148284840594645290192592425660315184414734330592997441442344877668557210229709843406830253561307257565615041992370116766221776506554761835651898343973732727023041588527921792301413776687900245728718731717532641494009768444068986702291690546284998750955920510513617868380410477190151402593381388251672828718569152475651429291029984787158718939761694081946004237339457397524981371861396718524116724114385320874106177954184594429282494724868585215441876978854975395436219464715397497028931975624550861953729622592666923838414949248555570470893937227326436016287595648378478116855779932632947225095733224038412835567805905431747423926319887683958953790270856456420683182608105392054561595770219748842085035907887997145131477980472659720358371744442137894576416862790619874033974073121253554296188133460823270578969611452345365142925590033601752693042750296817224867061041990706624827985516769021724334897231545673051176261083763802224731064587729649944948678118757474290236218512768034520804176389644552328578914704656614463926958934705658149592516600882442486992526759100524536712624808434643780790906371253894302258483892837471326264441073704805006071224172756321062539647775901209842926134826460035246656570180696611176211440996377197657761059893966469244882269652806151597724251956336170134844867491040293080310613152048465489435201237875808955090513853651926981620189357584855836491652915069398423815713099045429058257728120920121784061729367334091567179197861981731650781002532060618444906638848451885315062716921322451188518660580073119203744189613448483486712937784813745736342877760236273440062652839456596460652026312265268640291135703454575830911481118183353148863205209361078338123926049321161473297255266591055678497069949258017727397722711754938332598903149416771060654243727416036171476264240795000678870115938018220775317778151074808518388106701489796921827641772517618512417969750298633525634275669982296113675055744348041118919347902762559590433167101844739256971810313503828171095299878769872814697627438730760474452962283294413728556951881459907623727659006992188181228926899667351076907494665568961714498417661369557337229326746136333063436352461076857371983254021421102747576793715272758867736847790991467474774592854071482507490190497688064827603168903673150612007977112245189337942591359814735664245985369174097319999768453238379646914592147870337163150025314741477205313151635661118372165940472071732347376328494379256671708754701418011410406222363143260643874559603455543990863280434502783190998538367736890784729624173295591662883447740457926350874304873120235213458735880686259413192262246907314370139911122510571353296371108528569093646504252303287310081714332212378030247683407573548159843034711481097032229871432309014191171115090930517455250884030996743977566151132147617119151678894104024853604033807495735402099297379124506749577377438182768939162262829682958744902184992050036743493148636174344897771607350502595927721345954664461491393852537458204981464355029725811248525728782317484887138821882761987772006653745852544054012269644843794474794779460439331659681365746595687765228654018979552702430142240729593017827651617887703135393845493404922330385319189061344983008283532925300967105146876794368739390491806055846432191386371962842306945024222653300883704843752999422827163922681788878640025348910334367939524284072700723092364896686667612927733950070797149310781142668849536167914187441164322870196017384571447025076538945368104679010631716511200191032200620309137235029347247444128085598762682516418770085334177961090435574037319101270970716260303282799478445503202604360524854154149067479454113562617393273366707656566277298849507945615356239100001346047717976711314548898052421018521446836788409167999954241776667337445282980177239375511461359565505234222644295317756010235841635082466762355808014824296685413406585328942895424271102772456607962787192745638201449818665781625710500002485452355600113827481165908406741318489274245864123835838103201123409569364402664529001987740521708879734689608387042452332439615986068097501257050301175716534218013588040180119394846224486109028277143588214852459200399629407585372242075807066724869833510357791366184683684590263858008820308599032987058379774005519291852972757857720910035439969096608607004474345539093162026429192595047294307806287190214103821989336052277550624743280111738871094209967107011262333655946257009210383530836860289933634983671868911468702578645395039792956801806181681197131386352183316997342376751625140211360822506363222101206706221407895334347609728326214311341804659964725022176187610130896944815228017100247019977485731515727216596205225557527511117607689386473279022988153266658947598116958059674695209177569268540019828220979327595041876841660549966573300391430407921302312827968839208322761084460667038675070259574023682906258736115634478794941123787100453988441358817592621648903749811771225033214340434213483251949013248129542288628209810855180163538135950356819968512462349527441752174591149980270896770514428249082083854957882600817234168421262248681700347264315300571057735287964971949415935142844255173165064341631012171405115148408732844700552909481374557099958301392416910862345152171514487811329045567175571030602817613735129900526260641118006820706430968916070369022747438494571662315209578043734352806516366078304592149773103976684584517676910191814223148361410586399064165560183842007988881917729554054993261975720383191131914121557017430256045893815372783498943920167057728015611908003211447004451776703281056976032244241764558848509161246018388104544564312499941570963041148247149830148601059478536800977795286978199562405685739511761619070706432679210014222611405503639711540459892998320592937186630822586181389889119329680367373638319687100590079127698637036574572346359260506481985518907662414164738197641244066990050448717029708461462821632945717250210350343636227515643549443142483252306814736658606296645665979794414616135311850102631658796423512755418694922235435155005651498179165609897078382072526548113203163795033979764564577941825056049898506412197422145319663680445196745569200503579740920153525690306263975371709074652345025717560830272439667657042074049607316127672986854439506134499824429917370478453871933134701600272448749358443031086400893598124457045123873087840705578390328230013915649540520294961846872664750440232637444266599681047918382194907882551199962521297536708170768391926066522070645289873514222941620257650303414619005491421690778850481467744134813496219167545669861629869380888740801377449534070252364175836286175194915657064938893368758963565028297837113322213844566471897825554380510285903578222932915031709720325333579573063261397390326003840405503274610487295978692269178551074392762833877865836103665445441253965976734832352967594114891252054727573634867666795157899679933161327154217606326191371358518552705782366530765572823378162599149098541261763643355804225428344904057346389154345369449287213819150326405132875662377785489904706420593290037754172911834962947397605642592551545215475931593397661684807649382575442972333001845335668919990164029367193197913863459922880836551492333032077556179532879844416562689075976849804164199516450161727916516689407855524422522730772601424041134495186081203038249271293254771972430390560166365083503040972374028017202696549223118677483376426940309702198342693863444118372826821030287498503621975991479686545240761576534804336444449153728311547191719762131473581381985072505475736320928533953580900368385336033869563432190501835790185790919937630850594514039626287479284068219282231593738007310950319163778422338874450726195685435224574858173824563364719001555837654259491778747516927300615680619151680540671917228279323944310270182047471723811252618874080743143162570584714134156935371088248433097173669240457567535501171237561404921652207036022495603885407360176553031460662741183367285088607872199768134763208728101183753190300575736888178912914431090509169522042026304964985113418921436905022530997966696747374059438223096480830937837882361375991439077966084826642058349010014501427901250449141246353518994136217898379711933832164375257185335245054688566122391695526026786776838890639790023501688368282322719714781992312262967809033847642324847995879368533283035475252481893293393278051942844671349416526069709786539418132971686423177201800382700795926662155893109967500850389525853095373905079995138526781447255565567381282190127662979517875548914340007150449844863513342329494055416315295513586172264803416714413098243743686822394538507684301408669016007903838462817373519130922155482917400248984046544540971570768136507930123739351664062960741366593662669658323635733362128814263607232926626944280525488050198090381011428150399075035535449447608520502482613883466034517040554585142947939522103911600711173399119420177429108006294826387778162008637623013928232621607747745770441209247755846036099581013592757471458474448717388026913523582632534408575371494320545540240400507310250252735837053774845826920173657215096047803809429646560246558653223290899770575719261478265393093102297957731027071986383740178471131076020102062364564320358246358560751480977007538443755429967473770948222702309035474405156008608678301782903127915223633516906184047677873093667397941137867847868704857406714977446845191016026215860551710395593045129488887493095451354213479509011992828655839314740351461207666847228793935864941963631202887762281588438540023207440231587750863776991037099116430050810088675564890940929870955111480368173370874703739973077168442804572184118647149890224715727720625238198191693572082388818123386990834029739121192387139558792108470987270487871313583216157523323939729734542678386947690244577518900152087715623531238260715604342543816974908782682494620813905758168539692040955141823157968103635176996959179491644142594961668777435163233584830330025770053991130799431288283216557398516477995357433503575057066280410100952644250860300403064070799424212883747699938599243189952575649127523453949518936884425304731631894260723443953777296499445853562668350789704355472428822836836544024727591113352281860131072128311486966888271482078641278883010277886239447833099064030051559339013189402904229104009575992287371347098758545174137020973797343029514942503114452710572866974860899558537343237914060402864804712284055909031311962554279449166483331984274328416334259856021922255219248596614291471795016619024621698526330539300728748749311326340448854574761425420845176415607559082975539599421568899733674658672977489526068613287520225200759478640455917686853918407121911321382477173136414293904272515091160072211071506708559242356969113057829847232058490352447674368565468640770050930341755219288351272859754686131278528839752545027987336859116329442462329209977601799286583568063128533072303175369891571736164788084962347254222917838316468436658132277224553304529404263133182492089434928617291197489791905593249831059460881473730456974230696342248116842262343145474437375760667371041048337984605758177051249485854009583442038939932900411666929741466657834580597616447728413546987384920169573182986958372931800824597553118687843550262718273977840971258313987456186890679769325557740207557584983420179242812514183719784524507766203698603453768124566749109171522807517225690428330199693324124306712851230550422358917425455652969481063556017502964980668378465967769090498814638052754013260496598283331381150670891118942846285295538393614811269238206862752051602281696678913075846459463372855729099752523187054885072226762143102626629205554549754482576114188274803687196786688890141342990565490153391535299998761736512859528002565771910737761400951319997562849856280050459811187524773308778888656578293912603556402995128090966876251744483018028214177096560927356835776039344510913555990649745454268245282522406112691643710644278558724611633268753422361782627912926745815228586156168345241597258795611528785993783566912365086031361632964496807402389251425720576314681982539861777344091666247238699753626613253322952271789697574159414716629896751284525212454728232837420731157190274881704132865265027962370201869923391094391492847851759469003278254773271557822118704516674765148010981023158028185480301238340599971852228565700731236012199869852764865280165465025663448527568327047600672548388490517825054034522769143941157784375804715929674689888466568593914304321827373443426670632117660898249046722025975221244472832198618894263271514421050298734357812696548589811135212908677084241074032888062925922826736471159287524643800662466453112895843946419808187304465251151760623363535420531944310711916315025397911036724912055702470375633228997184350642986982006991591315508367611307174029157397141115314419035271019259015991077737482498098675441775910422478793318587567312784078549677968508169296765060353492972762515542953303561395003917054158843811702036060507739327706028369035707592602698637924886163041353836551624313434325557909409028293583973103165080519932691254905934408676438058980741647001087048956111992618614659101662644333557662777012602675683070417745181569556510556467853647869061916231459571325843583871356924510277146078398970966970476254366387240765527207898401299007203138973005210302658250179486287459533987431162010667272550288063937128041663214126443505163047942350677477596967829229712852680264105079368176449893932929747385158957462528783358823242675187503169175146414948829968114912067704379970159251101222602106533664527808759960701704193067588216953652730123956729853333138599750941234389712828237748248225510926061735513004643948704578859077870185836530813810167948234822400418603965500630456886911085612365508305577494054360725283120796621573243855642632697058157591083029547276705142793419836863187508161517717332067392180986390669943136860369661677539098580304524598248175574818010793851116011504724032114987209716750288834716152298309538838642195852062851000368366648672273582868571268369545163711786860820514955444053115838350164050033892976851280158236737428806461414656817085925077705310060076133376258273871139394204925170308222311381490529478339936239384208382130061287857752102528399004039425347870283030512477565989482133287645839030287631238347973197376656811058206037108223403213449989066924119229277372915322397562757710781171389866978167269313888259407036914217564434311511157062041575211765947552602933867335887530097861792336203160870808376138350924301445099160622970788677842302775037271604612056165920918071073738813556291675767219012645531812820691873918834015163391914945227631402724921505185309193832314646602794211907073797794019558179068716690969165689341212036701274921488928276828916084255199601222076967709267764977579205688520242269426552307351772706904036309550581135851879052351781959162708337258131253572146253407397630342293292984938435698980972490610445201299699733882677232651523299167663411953933539122525249493745367848411624886702705559627049319797602910058364230472821018223749959809785474800126397087218663248032230133322250918136381425761947812295772585340274072066008187667072491877965423127208845682780402814728292744701260377935712849557054634495458292704125439975502842411552425810095799909084110070882731494927423527075286386682317844511897099790686748468738098136391173965934784517793034597151019963492301912704444357196332149833933363617869590288137333266390004613824557340069156170065518267327125854080793284674076936656554682746942101850779134121107988612197789879271738412846060981768056928418287556842608720952245802667955446342385420333420016704511707050976119387796128479704337526113540976471829613630290062895591294726357139080764001574959650727028285522635265305687537859067359219194048146690119750796533838772885870015801454607131707007012838459782618924807876180337186407340414120564316770147314081399919599654449585339601277436085153433273852693481940549153519273281297366782389117968389921437482906172867069003960565092793530788083640204776446000671948283728591004767747482056686152358113840611379124283423177881425828098243186617846124872598533836727558400625739299738484547893567348880585736012842786060102150166750333321141305901457153663752924114005582505020673418522719581387760848870240271696749976377942914062117586027162704374536939246598025157838887804363101352667048433869741120602822941687232698146957639457777940468877427102459379468462710903220946498572532197271418788829666528176794955025729056822602786169651908987544465021304873485971296011234343604783189002126778675288754479752380491577196536264177906567119820521652975782574519501560081719493587296113599579340077971328369359438810488833498540598195948717453203663603739848805383448338000747126140056914403890213770251877825058576735045189733842831009122456185873216813920348021116485814912844875058044662834235234695137410636972915794369417394635200610879946514525301078852055041433478620526297220061460204480408183697782469009703692577571739286923257518441256096820856904820052930900546146215121820227144531413973650276146161283909865081414329531452463595146857845791171408598015342975903221689213533638120994714888334720848192628844075424975073325582519333212863746088633897565051326383134256255850277943597248880461987703676927140304902096064212153890586018281362957656767116358599233046368882305566532941441464976096756371983247759176312491876023349351690850442972234103581777014584770010400259942691899882909510972027832998616431497506952275156578930321075556196477701561066886742767782748948567352447429434060857140039019568548678864138469684227675852767437241840644941645147231288718984887573880247282470393436100179478019025624025543886111347647439619435719807664995560041730009824097906332651872579819236833959099834733503431655937563843287778030713999608892662401534690125241838650034450340810632955396038454086942018113760240641526152525826538070596658676695218242754484271420064436166048391459995207868168446095303255964479863662347461484479246333659956378383288913790442595456871499841042041629761887136765916211553916531222580088348089707460897198593964368349478235584300760030192977112371032583431808997598305657588119530256154636537494583789671592288004000785524724465823753318642086579882280154572139334236628396982694641660945270410728388661036424323131020173430060382164300228910119756105850617188780068468386699445696389422016945667456074627336337158242964862226049814010766902346087936640998917012799677015505072283130399107327910247367828357826021299437739796697427893657463928209837241951975125619725873734148849060823448917005706706496263066570282960170190216893380987278509366358236995937750619830353966459328353890406044470146316445070189321654116547103118421737514737182918604472821709474891093558709363608415190751082491624739580149435100511078108227861174618823992973294876148574859391054559014171924088784707307075745724069822437606645039067928940564932880501644675594094184876966490589201790551490595449304377536020285716880206383676865640164083922739255193401206312891738135102119370893860161031537115568465956159609282110346661119234835985915149142265181206463719866272378498382303016630486152076856110242847794421473985306875243559774473563679026871128222900754795992546592262883749523788191497710873701424630172998714271472936325254943530307625159117841593447535802127396386825778198375906628231952774735140963002760599807862427800251223871481621666751955216233474723903132561076522933137117396839624620220001392682420397671046050772420336559649676989406266868095669799816971453479150996091631541653693814822317609726167347033647650802493425176230569018169787336002516506491859260425511342920881216568243523074927598725606086343620893670403579497368364882156914542849952419941262839069438117958862541769475417534401005318214229654962952755823623019953813225347459184608768728675348968693866764694041059997215065347982977791394516279922513042903849552993545939038048520156066240940389050768008903662475005861903141495364576765171971909158830070024929545847871986623833206065037912845003209739976519110248255502245015945826033019445269342562699900580956814448536891597488206245365531432428006269072811424553962881897423499684747200702103958142839644666908953671481255572588793733695786977983911295496699433462316100206913611583956659459437851450795567720092762516901759315444983197266589234765202790414101504181483305916086721043795947015988642573293874490434055568233572854696811725006732005169808486481405775831323375542131848910834735081673150974245711390148860102812426189281320803395380501725620637293020175772934732458324413175438313249598988754953092588675312074109047738956720543395595810042756719029752252065058939669569365025864574468611891678966818604375780144269928113315201614941377783118087719679192246238773756422125125600300017905419011826777807645753398167864476564212683602100961959973556402661121717625818571064500756340777356533684523200937218134159831588803174540903680024409182850230684433076873414603650652875746072841329889432276142405045504078142770651840454335518127334521781683594509098418954310149547790879436860125542000032624073118439194091530240264062915686623696320405354276323203538637074742863831648864361393205645116569130693626689184277136371784495452331854419505445650696738690817101521941898163721028690190280483442698296375134653035812889715947885083144534217139010890107285281154568877921031724010994411157591395473620550759925454746560135045428107023218964319757945430858451106587874130848216492736092211726149775053020141064902532767767586745607408882136080877492222155737343587225725452464767465576120273687386851191944995464889564255845941331935547981512303022792810771235711157115343527805190568776094202873245728464816408306041045441978289336797889201904702184776026232935751788466570259314002126759326577261534548655689127204968475611235893125046879784247398798903097975553408291926459603831772734001371270570320894621097375980523815457827995543496322730849596125741906826053085691800021157087987769455128962867211088090780295863539397219638077724856846126907772901982222734435144617573982211605984997777499021852445583657695348361366134858152140846016951381924188559003905981269162839511929969316963298430778604763715657728830583131655104031344814773200522963505084135763094722606882509941941046551263612136034197847083686876277769838534064317938102986158175752230158413814802960576934813524580008823846509012528896131266860412866380811736121256775489788784930128988895751317072248541475568153712519662167646703108296317753634872358562057847604950367889191495418630811756501137538635991770397297054790083391384883946981107951015367090297562331556969584761697594620484481266430078822250087218492700023404292018547326032399478548232080379848603082045925175986969628612863631145147956495960995132254774453002640469195455152449861331142801764725181039710802640886355127014539932434098187116416074058463277684297679614523370266707724072352403025823882080827701629274981263632334352154848285326826626531795891714129209205693699088630855609887979207591956019549175354413686570875887808405436473889014889315135208834213574604089808486223209003651675203851527816386004777073668878662581300240135280297766254523465110689909309308851212740224107889128092836299067147947861185143146801460137464091305584654671915366342273837001844845920052259776686680671065412100329448539434812130534729348615926251500562695237015844460819315234452402719087946689696599442575788156463426626058273880826412233908152543989106795623766075736420007757822870375667618675778996053952959215847232509649040369142794212366199462517301730459123295466064392957406369170433030488214155210650227812335128639416364035818533047045304443116527061667365434462038131786619378831456176339467005788689766343560674506434165404771187403511749064447475678310128825322677442542479224501286819806991274575525826572036907892791452655082561694857346098881715719825564718399204596033181788382362016660359913318788941780155958910843928545750481631492167923195613149809366048018067580219205774780880908704757518154010062868135712896783806790791601396677105564625165338094230704413162267975299583835708756484127199195229504015968071289545012573754903516504983242930889610132433003549936794936706306206339632501964744684990954486368061959372364405481582936186330891090936058870406949303880956256128071708915690368567682689116887938775808104479934549299114502567348963245250880980890783966244003667547148921914804785776504766886153541378866080010428672473082342232571101003057587789911252387762480697696239593044854126716976300649760651911911086416321155279723359770208770951199185128844527138946467655139247103083916041894270026988025360382124054047113563941331744606817043708188119230091189377189819966033402963343802102499763501754433720578002237495725490642307460589540849534641883887313274776956890244223488120613593840677706236989198118749556378739539741836596842977089941265609571851460389587749774301810570834681204415500644766983924444694260413802778824747823391443559408929977622656652573004686931443306864928578061949334828099435395496037812162880434279435190148110610897047451882908513466935123038143603605818207598146925936971072079615805720262951151779580176405779880635287697945398416885888633639049943411908917535367541811971149074210460125596792960114362342992560818988372329054036823978179896677899873359082307064592210152860791789238373010645448668197970703713411793871573860572615629422045889717969169712244484167858925925497587313516519158169599741312459723456193186737549647277228227321037524404799229788951416632658005973459009770800690576534862997237003050236715546942051368093142169069699741850853661940090169000650200237040045123190135575188257421654749033672653857929289693409839914628464122979794327101941852665552204719057041509047976307523433592425114845170283235857681897556878978867197093472064229234930192644335046461647545910686529280621571134026866840398657962497567191371551893241639710334812042127823278380394473133040215468861086597631637936933154858360521182240846729188395944630605439752796406930158650971717445229860714014739652266089429886111227104097273886368273040224183039233054662809313762194650296035139098916694999908078210979658443166672015775332607453924165098156229770656784064186813999459615050709989339954580633135233285915159557475677313501735202729949107215126671721192433787003028979461583531358345766255723827976533952229141591384996331169976580187777949031763964226931821773230594165221283493021760789737390803747619009188957716914419991421910168488393964680991021904989432745220156149381983521126770437985487104916903286101568607799669681976593809961108930597294880364209355794408526410115417479248877282892116942894416146482219581055728168538950112126826369143026946707845075302450762463251247214868132942254587245692443985926062910639396465747963734940422066177348934787516417293145632799166298663345103527474366315941913468344077444731977169028658286177785623638617972745652180963603535786159173210803849558233348747491817887924551863724727821297715124340656946970198283694342270787215387613206769159648353429036607962293947232606464951829738707100289551164068366194987419459388418065325050002888089891861773517163523327696785274524340001322119035068109271457170164702445795076756901968939422399596272023084942912813626987258567616890607040948114156011287171574774188139158511128685675852500714355659659635333821270552893289467517007868405105146591143266779406248092182755217918450071975469780654323939858521039943523602196647558706065812082350871724404360576943934823463446211888491792453441535068926498590266073629002561119762122147862064585875566100283041573271955269782705976541809313333763334699490958107903088222051867674924448948181028848265147648773536337101109736524602555322956622200916374299108879988028769994609002187776252038656845441140866772631668488925291322438297012285257831129873110382952537490798768427347725921789604416067839892124099182412303097839159182786368433023001450376204702193607897535022665802336405133807372252973165632014856535574300774022706245214825871012736410487658715273849333555591266285030231282253472127119901923615632174810085315633414421396777344815089112701359959335220573102066865425431052968156368794248491627492089616165497195061900593758089619533365246520130079241135068867378895939035362780918600065607541229473484020839604053449796429607360321811084681517413840120320930045271079969751820908867893543557085746281170275832382017658379986466634321489339085472702025593937664458070920806708771918510101204587561303842520898301077355294125270365131526938389380098644616814395911702796500457884202873161042152225544896150100603307052362338870376056524220362315966053921209852663266803227916279983054047053498811387580721695454418959149870243097515510778510441268445734736560618362838029732525950707438317744754950066495133281995580889148200937816840890234214874079440009439062450743632673868228889506187569370827052242973182494098993667596033330038696496470974000836236551385537247107020894540656421591545355060916522660540021385264761128571035671011458646873392842954791917997633046515802144149015116256347904005877058802518921351239763866375414874947114006011085111775491711619648909198136274249612369322391345987618512644860142201152584838636363462526202781250215784841236196575898231865382474002306091755924542944673576667711330468718825057494722806018468020441722686718766735293244122600349011263870158411172323407950343348920374839756760511534903249398486723975780763627323316738384687052066130824116171611597404491336657556432517073970485285909631431773676088386338382843677430311759139689177733417786324864040566337375542275404463640109582719449124494034150661588290891643207707777056910208744960627280177926908163434653725837590918148394788653590721313455133281620810013722153382960847274021135705643822973206580834588409191038281112359773847530154213958514179952514160115077588563094854131764244205898501160907099498100076684522806144722729430444281774517202997734639939044573860839909476386497467906657238039684680853955538017330928038815545765417741021908864505739553965967247603110226161690612673392788908982218364395211667088439943416907199264975559981013112914379890500257035595805439646917292022546260623633113466181025751355893366519677566783523603816073035757927704165346520258999439935513227216763935057653141367420502083899789825660669893158942011351930991741442172397666593761685923433891706473457150387718067452455916381530152510041082610826204975666077983189313221950211203508097387072632273230977266437840657967089930420711632895153682915224382965623877677219766409516308187107520623860607918193424146019826713383425227915957785249007171321144641726962328593734968595050754049082298557214539811721584593374980812225254332371768778842855873580723568017794890875590286912882694803834362170905687951426902961440702941633740456805086759004589390581895125293561660112803940990238752883475536759722757113245507161985099255330078947667702123768553869575073571526353192034249131292955097346161594082207151130731807539011918175042308099889862796386321459478495637012994788752475130597524820850765654443560946450610132509008992088909499594192042210404867646094284281028903253260921179569084144190927491159183467649599719603542414549173877093548279395068912154991118435671824376425618042018546701585887239741438335208298183866289005945687849796654911529319581407865334690801170988532344060596674283381436160731192257898116792378235971747658555379604143081330290302686953396883178314896181744314167970060136367839569635906174647393510141999291136272028873616056302677563039001657958241883597806306653563730910246864150355509466938353919683061971032021666409856519468148836466702413974002132590051105889815316683797323827449541429289043717171794982662637177985502202645508953228635258526957338921553988148222600270189905186683635215882555673077204789778575740999446044111606141615151013583262319738999801541591589687169544168428865286797545883762225569423234142147049781848042058477036677165181168276276807216469341231188081660991252223070448372324162368055816143552666236228246659718657695412302418221223022730563412871279894942774181011676336152238175623778358145856336029834044696329984991854066760722106391352228520421806854996879405801339815580030295350891026721503638074031037108370710198276475269908571877708883809126745761925450234822511333252971739612336549917839725106958095375701902395656843199354938396758884002926337623103483058503900369373603391861063522114404221784813568023865881308244856757256310984250228670310226627464395299062994141440453720052593706095599867752366219684031809403146925196776780618851029334628526670759272258483102729647791227915805162969123485457789104213444472690913356205554708630862667767889156989832059411111328869096879449794340534961176243582301923780221690742243634218015884784702324175274309344862046157734141927640730624397247892647335635176062779249023748787589148652747973964692627947596105304452676613445673348919071822451218101218560908279089163532491078329765809854692520788726092841364627031660709597778562103535033028288586058366487462442201645775649832291477921536180939447092387195722702230224038053637942831496484953376587805420140606389070180246028687285844579837036544917076215070019658792586772235840858418062661544276120470252235064365782272319592789210643073549989342605983672696081150063049316863355405210737074809384095290643047042607633330358080395651813123903935072711492683127317396140681954053526504934966175295438114216539379757726904133690605452167740836371666560123582369681094282544399029080663348798518418357896594264498970571870704739552299286218577960102588889059161056489212433123876139103776280754351459450830968547303032638221393650752136484991559251241165970028650507848593545971283391955071697436824027468743344845707549217808450090322001832896690481553479352382635923219582816377530596150561244353386218753022807469252907367865600901326292876411939081190370588422839961390487136906178784527840580411923627326314090890393525624149506726534218740834160820448828557764912211178756441883886110201090790720271826148059529906799214395314071879566294622465369497619416300079241076798697103973900691586303437211023231971048631219246797631637350488416267465357782344789641459516944346988491370143716195215497878761968332094046117499242111737842173189852319029395358503348804070500218464117281375446899757502118090484892334541822938539702293075532709361983843909529790706357486757504437971931981512346794906892144091763714087660957686847857013855013181950390861443064594538135288698759707546714114410305805467788101621856508375231137214525346104425422541274525431619135613073270180549169940853936553766531383818772172616359876376252817716133466853806566114796938104284509347283028440954007641784769203362869309670201755746400532131695287984174564193305131144866047361242291013178773055885352410156957418831501955114444563613267203898621251364880758611013306874195160077537457891727604702881031769502026495430818066867501173714835162724938044329202207721358802815532507684642134714983054164105979645512139714649889421626878828820763537011607144250211256056977840191074880134873052028010408047864591972453915906773622817832114732541361829642914816732183795083934574845308785366070900427412551543003526655702847900584460846164377228701514715465349441472573668287719297309523642092337991462249953248798704361153518172793458190045451644372297775900023468303605095399874839901984644699764566480832737705617150298096261343314199660463469736714133555436673366845533933233173043584509461835290019711058910247684528163668288833565243094416073737051861862422148672214083394390184740718461149461891317656521437819957630332279415823992016147434354680598637890570099228601651860192980104101357047641914956609079385816475229282639388232147477898730931344473263604313157604337815611915846559144291748203890734265869446264311635713409868775196197513172070454810533812311016210525806991453971893841221487196765660420767728482565141994973027604118263602983161717997871464421632822581526504273374398652675038246873143695098845406716795886970682999520073359825263627383440121279594398510556400053510915909306002961279805804433307418070228259102062919919213095942377374147955751914353446030240173672040724725478898248712413938811571858531431315880801993004355003339780627395276525822901500100239400355000373706537035030606308219981902577282201404418212373716014946329206745559447985157277846264221325298746232386549740470944270054058477246476244438963179633486554679090729500627256490947928023287982507496673226729366550668389126714034366192052857337378867444724390581412009475546334346463304826781337686836766991435939376958658562910394948574116226746058048078059505966779377573074433956791300897850628701730761184823924107380965530942109658956213447300577355402545766059133981408400962400608567259932071376695161214321886879924503665927425011667320792446499595893794010930050175834439417763031339937702268091705314624493005852356436437191865336520897709794433247229254707922855551259215765814377290440116972272242253245411811447104070401731975611953673296639616159073111482752608755708812421494812109206419569327371816307082187381740159048197343038837353817978340464059753191668341500576963604268524232371370461006855312969226245518727248097422972179935760355235579945304051843487022883432878131722406723052312012595766480675316114662337909146103868710003976647687181077176398371918190961419871916433324651674179512219844469712262323704370123898233481067159359365655864320122598730288781815224743924403436248248350600242292303732657461555419204217638999815305138496764432293702862972614921340322274427438020581225250061818300224675781899402625553568732157988570894758479123200697444726940829637616608904242375604558436175266764326867277524749199843378368595639118491405428531858754878835708328014355220383970096048417399039712343075590091302491059721446758898869653924700947059846871064065575462311101056332567402705106981676778341227413633142106775013102992700086934954578115720618251565111764407319608160505473803072019092154474063993414051847599587768905977156009927923263211146416548506149465011337627725397190331163120251928074934368796202717180042281251744017886154135999693461956813323682425278721294131980216776859332009362885231864885472213964809201355877236750961149458261805982538442376001197759866340819430907921328835028046146536377046886176042783842085380979268963868588337967423942602677314080244164529490492473049773909910687003183199626484385165868112001434131884764941463729834506485426014300426488662024201244932180272245927102577101536640486351921364176160643969499964830416586851235166001157208843696197635234782569957532488976101239892529211273513288398080298509041402366621916364107839801736781799634008627395762165077167781587978322340421231464386158056219991195930032806688161651034355324355438645876022837962697073853741551769527370829164782810206473700281460854356741764343386216106012251362711649554715068981968811401534357902501928570682078263170713758602895382910836244701573232422697110253655294869716412421685008407425257659679431680586251231449031502308445311448441554833650012680249930479168622797113710753080108034034931101303276219296070353868020608455864491246874126560396431974779058165114208618301547163950588801123684138654431042950199777789749030360306216643088716810938343193375257831604949444371717211894271642533850008984806637954703461204879104295381681783283508680925183371561505386416959103443254913852729215511286879456579859526963138682416521952469545124381418465457145574984385049513078997662484533950886144303458926533740636761048655978584590309162423208402919729465917648959206788463879756976284285019595959977037770479789550184506029025188918659567009180317134406041753008695586606776588737488303224180349545186195456283235924646720414943302138855597207914359731158395528689342723214654699055085723726594104629459362097105824731200571255910443434036235743017549089133138808452085133696269598785698499979350477538350448105487469031428754411687031362718382579832329832673863408720132179344119703862319511485879379182326916212867078228997234423648915040767309863831564639636549537785432129081823144462791349781622954581888873248827634510846926480099813942293857420510278621116766609251900489794634366956229159354382194769737131722789478926054374689351967600523868801634660429399810574520237390399318215946971715530561090639210520900268500450337602705935647563378814861845210413284353798616629633651917264789906042622461189680629131967592857377070342193255902103085924599610850453017849510171472760433397009510823926659998919401619063111413238128196448589132125567495911431517588911104089949710764794550110053878513371442599204726149529541064888939642704260406777839502491540666845787066176352410536289736617472430193259979384989941022612038928509141361386361439825527401531240009450578749674983436748598792049919888179015460724120692700952391452192386729806556327811775992955990743137470105998027030305709899185960525505881809788574470520995761011334543233200222647308624329731226245737457337091567591225011532309558604585117838266453088814143076138888355997484477299227877046421841047321469218596462841237364455202056454046907133271181640144544067596187204641406507129869945560841991233543153987391727469021917669037105042269140780631141482573909837064732979463334827176437797013052784342789528605858268844872103527169569321808468160437894013156069555739759349929413555675761300090992447335014583108507928841911828276755976307913207718618045170387569277777452833385947992453175924340020967507501296244758756242171561839177592288374583305467579625755386227085154984581990083073739305534996201455547605327900199326118491159945357042786517533424629836855964714492275976755411186044141074286676090632754213777094189596257722623139930604300183828082848269560559806649106785616521705927268605150272593155065665409132337803986705011475588730345720102248922469085340698942591671304233889719094137221127516971138198874183982771850080260202256026326185066966752119196331516868305134537008822794608923487258023448888147219604300882668368207941335504626033928833899440181689115018987969978450521517830812909613130601384298374441886346245327044236929835715942521678947831548530160491616300282030046471753558652797515004808662375655891096354280745193064270999495676083068474677326188049897791910310000125805110746515012548470879785475927549926245254792153524873665531831275837743405461841226095339711439055664432176247172526633276867506091553056481564081727029314873235336615070826628749076526031816224596798308892790708082664398871227770845749247124683833616474883503245433016598244216389028794894982028090097236077956486088808597396278503814707110261696438273687046045037343803883716767481495842715172292365309308870585569621248991967700147321266761766446667455012738558519157036412537520841112940606997944024947548292341283309407997118977932735426095084111710550086226242044586226915832374182082399410070625576865205187608143251671728252222554575940033330254340341207261447147643421837099133589266304699700628543197597787291172357443732794482933457320125930124389769626981082733771274720981906755224003780144872488923414619680664673418976680159996246998579816954820666631874315180241194782706585116290774817819437343342594703566230358718915668315076152886960835537670649527239183352765176325861967343760459801528465225156068476631754328594367669801917162084544981671409042822970317402932529174092269679883517566351983053120799731842180308904216322408213352978322901125937926785512161270490556720535173876242303669804443970453788642236988714156790169602765454853076971307055766475508047245271793354970988335494815758696985792231533579148145684735280757070464178738114453716420452479731403133973705956772903506738064024233046537588427351709743361779553535743965493693764824543682786844855526058366867159139335850129716557858449828094571267764651974688011140365874605059003624396643556677759460935428335914068299304632981328025220632380304410477400090975569933879792783664658053139077379953917116332652344896212413384892253716898395434844980035534914419791404932071567018687367373609428191094210634279300362969079262266089237557287813152785278955143146439719175957085358886967166561746127750267445421004272807396073081154863111504299453794656680323356355357555707955506840298835357150202293045358553940485208692527744911252038324866150713687339491125971882644187159182967748830271002308688100721234804236699542270057976028450126935525533006898466175648053977507630812013008490198923776950467899195828518421757238448950535295788576919684125463998563357579517680499492792364336993479745589077078442198377627929064980872506018341018221729953486036808024047021818770766120114804342643739640049983087579774733852238619889327854957329580219460418448603103525607896403471371989980058449718094562008412557185458972390450956898069091770152585963388243888257495460622649454527307961243257000353356034915531149641881356517348912899948641545723296305635138932947093866980715370485109019438847416530952430832774068589304352223037756664500518825969076539241228058941305422889654160303312302198564588959581351520626830174923802221332991301187523554254581254876628015513825912262765825293731802756303786374599092424086404413662345825541193380680802068477494310058481431746644420871513520836429339577113010336264687834824101597878207079526589682800744701980416222712770019855802456227821589466586620760197958253046309276919670339915777419436117685933044805535302986153116300461409408886176432363263141491859227271179472055844840191452341599920961127340659657110897666230953586160948813162775243991957487487069807635587994902148627785439657786998778215274099961489144881415436840950818343580155910905668995873807252023823209877305860941199836885614796233180228203002117983636565966238263433684196211060166516376847961064851707174329863515054912818277261363415038789545581200133802083759299819027816028336280556334149596668792742744325229815943955241975544959426836229251547582931621262036713867975251969325777126234648728298268806389278986240837013735282808649598972664106552250549393225824764867919884222248065218509494832763043945666111652413892571181597431723701461409822809345571012012650686347113828408450369825809820073016423542781305154312766777741190776006331901839996703072228971829381355028949684710980035349008947454747774206951364667065593835805737003302830967380395058835773576012514653755865571279980369319138066407416874483282432011092784329888849854039002701255149229159373172098165235366613096404059378495402006491179767333510608196613324882239805211982498894542002528556600721871507522729876835833354264523780161045665767094658925368991001260674992813244540910375344991011492970941689690142467636582162560998837400878544263466320737804251252968075383325214685702069009305463189519130577285654742244743530811405606212976280637625706648893927336632563516748288300992415593805735791611426180193459058778105209833519310716618496865199482846635848044034545720049900226449573147377549877417164127192688561719287440438288448836136811181112087962106939178064716910767975660023096557947016849104687464289955216564611270524678745176864124379453674573639480939892812422027956818695080467865292612926380767559035660457616371681619634495308541402651819962053141903682399036111932211205837161446789108584833460523579046033112779208084827368120673647312714024458832303795366522187730039318544781643003402554011767067233770821674191169444769536482459579237838777979659816260862715874709173341052430909745123871381919124929571412840290686117566542077599359585334288045980551955616337357861130700647335683109381245245846708979541539246118893166761702566706087124322000175889956764645285682916189904245992213644980252478203131457889580268532138572092947414295909866510211884864800989279611350317063737914556739552809314633363722254504068945798957681411579888243353906026788960064656738595999891249703255190654496321236504415855578358798273427543286169899748556613890458944694382527131075092736252166861721320191002919484787994212944229230349776384677636054994922129929534462268164419903489020843930421563273694245147079256328419987404113879004628917327765613486720303909688172810731967871819986248149813432450900071667489480337131306475509523676645993303036557004260746474358354070841427941555008039650796295175121953325074645011810929363498447235563981299024639951867568653734207623302392083751027387925879403558187532223191105441786495671136782773068565218367760670193538299535190940276931712179407572168774935984082979751197764847255822025786597410304012152997753570235947836588428682237215547500708430158466941154121285887749453787812634422323647820228186332642802955495100358654394685360504565940937470773843393432113044522297599412686283003266483260026555552084062523946255223358622332023534042817411193475575282217433552012334655181807180215853680196314359546794962226896085401029155338326511482372282479557955717935723375215746649224001720181493012746553564199745638487667306651034551717381006462855545222346770065986551963192090104530030835545645039621516077448100076187256349972120532351593761059344877655941305532532176744158910443882685630745786588472900523497388862199107982665095946312262710127136647465823937653210805810760935126618430692222079184270633781028994012455972710302203072887126471527448855844411187146412465748072790149366556564190915149931781955044124930157110327403651415737034621460115747835305964772335805102976351071798852264981448194067292833397647567762658866589736821591146482875781282795341991315460480168117121627043941160540379064341767194981510621464146566289333612904728492959323428271778164034854262580835043595666952371562301053686328146320532388870485136183459772834840658155677528989767736825037751048457157117808247362085878122934040988870742364574017954895618908863162019453690326468946906987548827448235126596308198745343852777939040409162744099473471731430814963656187359985139236752089752680011946718646831143871960398339541738366287040974873347340502180339743818882973995912575938599885258640273026277806249730864352029611700885873892233186071499767906382129584393497492767672081491193753647121930523462160030802797143792551610364816077729417719863687953836700740799178087210330954951035854448926345261905647697944158405793878761701248038467738894097213416776995294671212512892903180714375645000260822267015943886105470424032644882568140609278148507665141409107801202786389114383139662429925354235492882775801028342635325475174096153118778883870083242369683240521216859897644028429667281042359967101240084670396440410195674328571346097829111103955882462762491663182147513665515015029569422460410163316463703023962396308587544841562029756067020078389094674493487651424786022167952552139363571131710320499808575443734861755124898746911884596240655758278080010400675502542844785428138481843751752692054413514431431861940421708763480590743801349721669744765246298284308977649956373576387996665406618268247968076002992956062430394597036890805032407309574016176815655663789140903602563260282715636506934994417091774549751757433673675624843040648328435491121296131699048944499391335671610176081109047928274186995959353863567223857439157506402066109531310809408247881651988863378853472394149511024598798105787693727273333895453114348814317014443883565871030076188912416327994955531616073682486091920787888217254705884791590649284143016265113666435990016851973681097051846872506795877040807986634491747324456737190537132973075009153377815143819298808559157199436018151259958759618528619152555369372336556606016893308638285851189823088504725946165326239726679206221502562858350342080106860774669843844644267833495023430479631011251036128888649703874331917411086889289983440309626720196634436090219577833528205704835055285346885699119094641083183513163094275356199726489303697933016840412218905727047290623232211234229294823159533473018549104046554708945099482664810044920442217110941202729658937607281791072925254097059321329332594057399037840120887424748593558619727369420303918714076875348241613195266635476231233985685379750626301716378824737248914963309227177247232892787768254969485854442797532068160154472851123598998599917984420053925879714553782115808151792406272601732066370396465354596361565726753023348024741853943613467049216895732465457819877750417198940991871099995810507015779228542017630869839609385396924349068531049318500609212681429869213009139104703539956271773779827281845121178704552766045842930765622337879479819719284401762610608069107740042723291009911291180607975366592927425997404299545189528437617795713956851198570694570614713571994898660112912146452384540140345384967090580141617419985459738298933149515369051105871074026019656006042789624058638998500499326133081983467314606948332318810681452504986936143350814449519951286862708024676426482441841284500166530196479547734193846161675518877752516692501184672286929943683153244023976321983636944585034607566912964035209288790036141115040327164914407401667411035533602981167653041713791980477739890432328078617079032084519148963530227397725974215766213188632843405519985632908182208072704470882713539680163796487922961012047950408508459198035920222766905623917180547199684895129421174696439875161223880260530661187618554294222516533142790834734659638561590365740959351395016288006045097572559844407966888458355986152041497817099516053526744788863495629852265717686631703249222686619681782307875370095203806836774566038433037728834417373913805638500259668694745426691137310172481612331991505479996130192986998422670166451631444681020618185896302324749019428164524091839739770622995649182248075890673031987519272158300492448591933390503908476174473312226141486806327604148016602115217762785397335418502268295924720258111439117834434899206832199215782100155579136278255680670086303314291141998931838076090328462782201479929427987270592420907382405515613379962442947872602370825695300431651176253458103766007574921941333902706619947225256755521896301350864394969896782373908704242231626970646498271684037421713251050311678114500929807364438035957047739472045806595640929648923717114276125104392095152775260349883356619593879020330534633211617723153817868222829149383454639926693615686340690616364378147251906658212527410098721312972943962043020435190969113846274174352003135420394054298187078380529004203756052510060578065832949915577258632702535407493989878244578167909981893709588009341449555806575616554114548339005144247576469449608609210810940327897159924070991716040152766865799334877717854987777727120441270605976771489215169322313785443543502084619934395603760292135582511866143043805592670352029864792817646800820940405661686613622315680440490246179122418764752444270558726132014189566480245527245537228956973599628031446198162881140161126577164788289871432162741274228726000050943796136179063797275494583167797761185947816250088641124887505890398352745619369619147286786677050942891002467760108192309868278134066196803819361681718417907001430527068732431987047030417303145496639902230924680771558203040480766345209288207871909242395081413463935995762853068320615356793137269454542365118595260596251208154004520972829144632270399962297344450696349223037008085525737719006533601868140685052482334420814201362344872554876578864952959282613992930406641316534152571230489846950835244488121527885639556775598918034278311639109843591710538323368341620740690749323630668953118150010255620190684579070619357987583988318732589169309297654882139363224822431936080674696585143637318110612217577563351927717617852908842355318008217520258128285997084881015189320298946325664737691535318732178249627634066469512255804860970499640772831242314265551102699699882209378723408568185462987002106909038198521187232801333829632652229434804700505441464787652710503622722301947847198969305824957915706539150023809934426380123098902597853356409522650867227837441614795158152767281053705654834435094970028761217061322166616908962603250576788585033504052351340889817633384391371138796439648235976142942078909189613906096043548059818875247860181077847833611747428128137317813285058509499389962936988328666258005495507398847725462291279470006991428067490233811767378041911606762246866194341605612841306038608707609438249862252300425390355295943147532346938132306187284529960114504609802950453851617686343407453228390147332282832745300235970138054956706036068869299326882410243395375246042866461199715733149009499978207200765261167924379312569506578678645861292341583536955689293140451262193369633567486831758881555396606251584542839015055569652786970946793964030230816949551764756113496339078908391439229200637138014139890671245400533388239500015346586113292387572269105178204844300034391310341835929880064890022401607245974590786083663748178235960863741410089898947332797952470984069737793204590959674050790903513781719105999296335496723168351808282809551453668096136458947058273140323832349180477560038658816879233567320212358438641255496246331529594721440412472089946437949160340436527752582478591929612439752656303650797180434979694062508936119514485073864654483758243547878927100595291963171568137157715989932515654869723941182453152392853039694782722014252504303507755594940513099730059773532172705446819759464948008757670365206007820121347018961362792605784176980273152126960053965157830314419029809095720864806803917037393135581506799703493537835476636696181952555764920579561365233735348276131009578938694918110274662314662033430623126250920511741937208788138204411537299573032416498588681781500145963264238118001134979940810125485827151345053373020669654363093278853674540196299096057159098836340332280831473228280490992296019249980472608124124104484593050657725477457738618097001808829742145648348470377546914476704092286932289440033843176819804246391058451102710958904547230978344414387835347559488242755426528493367043567925134429564712255276695771417965716572851827801990864262163542730529556380394421352937462764298454321685272676270146260214137468364093944625962658140503478398420378226630357738382242695967690068278516889368405684220188534144204924814549328131985619890572008001978334511089861421374630730524053643843836786412921225461179410378920660849658365413142602629123648735421980552437233377891477373042587471472659025659708880869301633059788591324455400466205899654246693304355650850280426989398136075529691555809320370780736663630578874529896470148223540216525787981081728172475288761324119178178022847611532359450611584773904446357079799161200039950968397067804722864781327722031204685331774305081259484387584831432184719320784089921587081249489409614708549998444809212736427729903658126686420988538214804182146471725180374626771120124104524083153629081632555660530823140565370294160473407058681398462663752922217277626902777084872647674899047088150001863577725220172639420863091562110142531160443395548400515621109306337820524433326454894604469088793601250597361442385766178169463971966731776532331683397527306486735490652283211801708300998063329899588102127685071734475666380263856395621568347709941394285605649469210570047773795102741374473007169082487123257453997641835697837071062602118055575453478567341182137000266993526293129243085917439558876246984252808623382071951542180186082409241581785048086087069921258083346503853560662367080999133638405534546448992900768450602146778278180232586842947534250005446224561042584859496206243384098214281378377559714245297828163680762797758523093339010271850447086124363350171416888220498835863329490864217912070544629471318951032929889367155611083814875309592583702202894040702827613011025166795748721633831848448185342767286105560889485116150488724155711096813041129101529924387009857923142413950837259724396056401446308439538400330509674439023658690030381849509446770863101240698309185151334061485057163650872467973710541479391947202276217951550149286303489521080089505219648316962317048804681241380098610966224598225753609301461042619732210108479376089634854991359298220186731725770195365990795916589948189237533862112639624323932775873362337350615756986577016789845996878518504139713499528645453075579461168721525214197607065142944889184976155017103506772642420223462867023639856102467814204873457889273631774575829299892203236776306240523937473657715045065061452574099580503672129319125831619422448811764287927135535297168493687500705746401550661335136908995586597838491581575990553012968044674253408883264651539495150090902492103258526711362475496262519367364917127479116978100284807220346899687312236347430265284662785225586326876185363689575490564460870978000909323861699335360426813536560606129654572655377241707081957782285754637100288545221022927812491138868761854748987403667991693291718740359542308539393339581386805833437763814901630899470437470395899911823349105818040999158378574584841928127396823576839908994913041600697241631357445718275956236905554938747150806017347459980453710941270212852793656815114702204600997096692696592391866099102807240295863235939191442082376838052905904404629324445445877859454356493969849093498816543984001482854687829519333186575722408320249102676545883183531521223082760345006615959068496455571726832735762279390493780699294284847608232505067196535223048908612660116750545197753196396377441786579875296155713918843376403450008106563228357890036854597431194274768282945401067053929389215486483265084202278197106105126430822446711891878804450642842150163236146297420435520910525885159288274863515034881626196516162285457124188517100487953253051525126554695954376635792097346354560527703899423965066052848230220676349235769966170309741593588871857713369481984648200780240952480122933885233043819132921545118371347008835723438117429059075599345332675225164269695240390394564111734178399612374439476467156355043955278732998513966217659734794986923926466402957789622538064217040209077457422463184091279297613420080140489598729186642353985836212926257702678033895293255301327990372303263272789758981316627556957071885099567169741073299723267972108877429771991897664073126776239466517111689116841767016403594148451842162868643118827612271354735178880284019689987547880781880572271652722173872772451848896139132110275591202043647232563597069486690648854506364550391409284335622187291669049578580218176557842937131384980226281602675962635389565185011656825218656329801733593949668044684111285912796653934422312696785449701409236157831170447355690796590775193510135476123827358908662655859279479756220490918843475640649872458341472883349361100525443112251864889987297925310875964843572189403053294000391430279560299254139015452205600052223107177749374022352959250994763853631237903179772432008685415918551990518765371169722213431353828726718533195696172419162319726016824300956075307839073711324838124640001548737293164138018295023682680526446364009188087834342096989472668433029556580071810846377702594098882856753078559337002238438486595822505307163629822101257993310308901106060215354867459495177543378581042546900607527046067982398358789203334278833200261947160551185406377679832121010972821810392686478994749811191516706203096863539090073289956350259926950461674875663485029867828157752504681931723049362747221010366001370821753455503855929145540823135734066274857547113145326814581834605239262397146798121457705004282557935353522615228848446819002381601104150045390115006672011060351185850130557127002080525842271741928799527186640062887667163761799190452254332229035229996883484344221197179775682653014486195536522699549689499928269429052090137657199453435475785077913349993738539788565284157038029770482961187411896552581098724329786029930985176326156388506928867897085746808989719353368750889341372354329709789320877813224045988910589777967715401927721955204411597305547211798527774735911318943066009747065720028791086104124388189674653149648157818856833654302528327636923670787530024020429646490702182289642169404485320268450856815664164323112723153028334728554532218271797296647824160080938890201157441087680763604728455212066013236998196767892332837607757250927440022058188969600860560724428447149841248486238157051755327816547399573391279077133488222888956435659021271542271684210312436055232703408570926639985674556829255969647082323846233239278252473680433258072688027690445116522160661632473775074426695729761186981294888722568465045804539866559902341762924803297255279801034598847025785783975806477625806991695161239889435871388640857593894907025132739454079023889939466460345281916204396206848043104749309023040796935943510299670009885900124379428745425944542052133451487338744930390613437918042565901909965430457032997483808646173391391853960703884216556129673600461933173851849188586630472221535897552758456434701615780815820788945953510861182977527829686293923580956685387212478388428011908826712534939529462129239804776588273610630984947438635997836953717326978139680166718765954139400695821184074565589527379685460082402234712713515014806531116250063509992311704977603464791158763510129828881972528322101638612859520150186220911222718620230813215057862299224729310606585745787579253568541603570023389985317703250299384451024495605000486216354105618665363355228982718765259035380661940931940740689439910819648181676610270045334277973635066558002398160867589087362565945035256516932110981799336051321865851118680552079419149683557292099268373977401866119804989041828694875243229427650663499928920097277026108182788239913499438206973951586580470499381327212704955940151863638999578720356672844248356792382098273695552126604367636555135147122096290746115564760268963878547047158928546378951674197945678423767491609955955046795822567476059303003569550442107235589349082699429871502272807944097853676136590581772348783778592730869615966267170337466345565198859563472670058157091604981026766910252792470783154164767135807206127296103674860049336383423894201606346166127330886677371553834559784636613496615788857724448122312678303199404191219492070330347729563071545620394837429795088824898144644184778923777771666126241642659556566925808547912454703677206497938046082566179125728913606427709668597639021573237818105770567171012028148043678810209013698255472799014081223080357915144494550146253693730628089187599044751316598039154923342181488765838592319572572981475785919102319211845635739463980930382489194181562751296051219287952802988580845335146342203386230077620771364253615797183784633519529819807868959795008491252171775236831271260507260114404762144808528022913926237602847086347548394453399471787963743095981378509696361669238870791835281045585721341951005738318285057841321109550870115190137796803478998604562927746182720236004471845188258471146313077548314471450477979209322950898023656590912297155414801448930025733510929169385533078037456828684268039243062108114116718460367348124485515155138949426561523393909417820751692691632727116711225155559571583262044997906824929426781523464249244139277975003220450482808552481827068435209372945366958892761098335558461998587383128336668347236216716948866135615225179152016439776948700819964901102833351005095269930521943313566472029398474682308063284683362225109991536563864000334860365200964123985967392234603228348234759588191178660420190085424092301573440738851022869271902900574168792793322050724700069580651471261009484665038714774599769380891588896350125425877004395323956347329429296849715525201387956928529135559447192273377769221451022623616329188446489576358104492703092000194284888305368401670199287762517958220780032932012396825295195595717261655809548899054259132461870385695078812142147492864023199566778823497065754282628813598000167709712555352174496998224328195597993478726048957932371382684415992205335914847291400969090745148794570400832282438522207321474768075081024362904732637021859946299279659917687336009673611015927267776043649925900850978504826682010857961968519019751250353721493026583265255588561154389184601938262777656720184972518582409646619692106216037537205735198422734204886692040462024321764453845687534194332567519810350475161808151277768442152770540580742978912975048603511289725406678680983749010607169580198766603757889196432054363755710168429172461923476496469136387677146395253765633679095049493606056023667413365505237420461329985895688850390901731409631341594282452894299627460045067297169677434713445829850274639749904607125780911100963524805132849223154670924667195176511558728205645268871535710837971510278021365801458212902448856348403615589072912339083285511421429187668525320861603049857963545530918867000606732421833669963797733909281840276319152191213106574677981522043540426724838825189584772870483001546193443457579073904925869225097671844845807165962787381314690620004758455881424685392269161724155016513691310249149910283622693737954617671210731670252073856563261578062113856163814573544699006356623506873404734910391281841910450856979821527581782021024022850450777502859991877656166387490248851358290383048547567536673009328026343603004635491437163138137651834755014252975037495980577354366013343196474965338395891362884579280198916933268059487593870835929997241576250956553025581977182255878289255952084048136860932752120679542055564624859122707369147873481590868602115384061549992917326524231875586250739796262918855775815080348650911393362585479089246351076094869163320954900200362120714800521128960719804936176864174986551734729131978400729673651814220467936699380251976877387287396150645537854249895935635894869241217654172340427345956789772023026306606256911129435705477568946798183332421967928755335789134414756120713795000217458034480382949222479277814138262166229071378083511834581075273406945561070277316321376674392297017470711012749796060823967763017534221942546150366576116125302415948519065435951300881822082233482747392773285220313494117316874715485807600774530816728880729450373930136941819332957702479621697480040914825650780768832762434908956047948105065196171910385815834510965489925233749515181361453159188789241257517145887839521692914963014721338286181621103334312732210796098919579144372296823987011182211567458030649827969404283855939970350268548205502635791964500817648505748635275494039867002545531045352490905258874580311053531625279312844674083238587786555328729679022785445771997516616431285830737120424390462170316423971646624990946017493967424354437987499030163661438542250337253883060640993134653153062404777918743623293233826805636045841103828869777758584376578210636819119530441685343665967373051541122612545075038840207111579536080814042213430181485596424749946514492918640113693485952097972916073385383279065739260170454319517939633772409502628047453610301702254018739308615849652668801358130878423895372268985170014816200957456020448234095892180888302822554454282799588499412889971045325049612275706739625265830683826811790422347726794867469020550608985032598404169678213327702145700042543457930074419058648172906313901866179829587608194484083088411224972670564371489577353361449475244276052806611719617351565359141005734104487210931487587413516007132647625882247251732277466554162713906799175017456811242053255544601703431151241366090105579252574529961343796118431673251027199785248317131691514738551318236668307288946207381343736457301311663845475947884728110205713299271796023368386930190746885017346257428198245389452103759630458007595511652799078696879365446732733598433024806321425885686319843008887432716213535917698723913229268240134853738628807923486330915883927844703585612016725882381604994094191619181485398014552571314011316559675805702082539757936835393971489060509083228322109483942591249378720392009425833087819880928154174883020023465831365161294901603890138345439795284091010075601913789642999023696657546213628411006801226084883207908920911848750567853597488188052957890623219159445917117850333165717145439183181066765524737871712685975234377341301225739499167734575722710086325474886194403272877962173381507824944064302559275352346643611512201302688015442476681207508072801256641533281756505031498276065658164857836810063890321757022441549122767180976674710294757760157191347469182891830925113209309192107412935983575225308575978142103802976870761414910130029333760994642413891607765579562459513497610949939929239997343648733787151448875455662527226574830849675268306059117863182864498160665073131532183789606391355792916494177458406082946443416112319233673011893744360563960882870759026223863831442953203333418822407798996949181856949154151366639948270994556353136488954193564928708483328820045776074729352785070737037719385967828546780427630112626946035084347047681776555832647736220961281456228487520303015894311957471528527640871967455982340590721845199122077433393288376505714261694471479253529949418657229756713378155421055816999948630035992574501120086399714673047108529829277499696385505486689381850786873913881118894201912440856894770252178451146835702120062894557603715063561240412520828652904669298652041915522892401133728321028934103491203807070579318607303760630306852539546833194602355516303930457363067599961352176669665323642422829991359994943271288022172347539850592519891040857438252628834383994323720840887700505406005751766400365462674311336097265600858560950788347077862320484296570111864287491405620371817598793670012464884340410917908574275292057894822286646108643741295493523040281119711424235844364318619085684197708156681248695073633809883558677721510716118280606972252292252226504318230477266265350212812867146987816455361520564422003014380747057449499027385576737642312922494425980797434521528056490729872656986218225110648686180101699538834303324914406684823245000270050907914787519079885965907085402352370674647669067956290693265523224720210436702578312170972319236826687726892546633845006368850208221801104296113486541746795713438760717798973549975930834202184096248242109231133776593849689524714240982098174098027460094583354793805997785998636042989197025774420622795848425169912020713117129359239401271896307174644560845884866857868905541883211349383732322190005725530491455384973987132261980831721192290565025473521103182969649968458580460494735209583047053746417333838668819582791372949219509778537599150065203754971791758292348092585348868306976372305571671940657370724653822479162020242894444731800864219015542623534476726261832935545794345995527285450502949544759353934675961897571078934244690892465431445712977677912211997483343011391192238627486965742960488940224220673015452011834245806758305851420982244381366770672857820472891748086571212131785791683247260914810985176600501945105165108341494475006449108017587170237190076928400848679881404126389992761377916077837131023249211805773084914423043210562047226473687894121858941072880747145763686101069531541682421815859300225455329704141314308931501557088809118012254293757243855664990618985359523827888345565075771269192949198894687880767400592909324370193491452380088054896098179198512581530543287955901806007710168490776239346005681179340404648179510773139241219678382452367048465194399611739314705554352287505682652324068266427023968928441801568307800196695949166105506293308250530284569368879766520892272441920082853351251296959420395895955250744241510321498918791372983207931905835955896818498606156203922822524036227073367743196762949014625212475828255784364758262888656374572669721027899919474387743835476526208985776414021415137825136963597328841376561338409550938156420804921578890386899758176042248592090530875305812411852403533147894649439425947078912015540371071946926395808237087884802751104659757360013583162382035745136427978873375791832428901365451909547835089915058133265965889112877419437515635045915237198089841297216359286962322360248610962719226026897544542304517951781511868087854952774127646074565062347341629232550144876568394063798827013361472587787136944568006017710684626474840461789940836155649408958478258584542987468807025264653167747703616222688303079240152148991694942904419452273742884202341207746588388106248695306998340279567587143627883093933635135092051937183691811882177963219397248216467664100798028345843330778363246170015120256813503426067636162584373550481243951309845431604309337591174935889112037971801845148698901505776545281614266344408008116677453043845477121996228586357545787857255371891151618579596091447207950632064142164188380424691759789889304214453696219941917888227328972526164076879579860155782219885775338138522312119012133554734822015777737276822312886304338978444837065010802099603734914502225724754274701438199747494071757484631132248616807154836719968904517508570081864054532535282314897263091329302483523455982983237961288043539225584927933731750400937599596848675815672673245817855083992267708948888585950527968625518935160146976145100737204707705367247200809363430200074997814167334731300332848663653976743258641991531259737561607880919127430556634170955165653211382004073969359674389471614813035889910753019405731452169091018280328877140888667481828112779119846292464871521015579306714872571904310408239687330823863405062294914747721562699952945296079141156124280491438480348868449843903444404054175505479755363476909979344467260779049984676996646698093045237466869274165583149075654867654924859314371764560740925195683348043567378117724237739795179975590312091563814953396812675057832087677787900167429598774398398157339832869826547346750135109357851371861281644243874135927405364658551462671432107004798108041501682952920679151950928742788872403708049083601170809663090402341847904226803832622145768723443734467838386754678576162078639242915809180637734183706456736435249842916236940898131105765207669906274755279952250949779227953761212855269208463572445210372503500548576217207058332213073554888960164914928988838607030558350917704987975863900964744830752839281494973197637766167969484519140913443201294962536756680326974769205230930371641860319458065114919018636369748713615770687312199730712137690131301842252541451109610824368483088410370619479379102349839328237677603549872795852045789212972699460696157917968356940481840997304824805741822497773193797221861942933135819098444484142962496951254006095848720188969708546936018097341569919461740075414500589825469244771912761312961727508692311963248142046757968314580509480800182321885309839829938817015858816970449359574250557182224134443286508008813366685482510748556745469326114271035680835644702268276027104102486594418909544033904098269608648722405062391333071912154790371781702491186351344164022715614405973684902938656210211706477537343940789353694163850325660357634975648568600697968934535645086160964986445183203202346357462207734230787037747383729404646790149986809398357158244481719863145907564717797189678780597290707705909675709549298302307734169549144323277162474335520628448114251077756487610330465701450075474105678105801949329351903957414139305229074198890457697224200053312489675993198313489415819000869821278263776572352717790401426535747858828340937748582512298373501321356386497804661681019715369971125569499255471073660424741786400441546478576742231016994210007707680649985005598479998431008729831060948205737942182073273659875836949098805203039299785693062925931108662113238789637561928912096776463322607333582799468951501062296476979589201922440725339388859208913792269146494502481067414093432730268434139460664439008347212993611722113975451037542086418044445943311384494518732095435124971874881900321774348598331241147231357345147619790111719281540574834011883095425258667462485337491018872544798203618054945043433308500970294338027096379595573929117053095184486714895645066185836456511329612106353213769926064584649538509990599224810760554246415382917026685287001909921733400076467687105478772990309972282634589134742305595497906655470227328206505063260503781109960460609258986133378281958792248286543652021249791852538559358249733565074328788002739031438710141398861877244064244332631517330046919280044395764743927397491529207022112465113337085506149974342893821020983207555870017360762271798183142111804246704417585875923359987687290119814947405368163153987840684584346499476749573852408383932992373151073984467430214467108783040249164026743275299407687567337561962324278762887812093241741815320559769055861962527687481050331459946226221107003597467956382401519456463779135495907963346328849508897051760262293336960030206759116245603179748549211663461859877582111973365157160480989560310124856264162583515571539956491745965399903293543161911602210711427735124972451754326764756041795793990617682347741181767766483801725157864057367402826983093497993078970417460188760660136175753613949774365921317144893898396095561856480198501911803282551234657266241104245953633199523855182322661191988029733588339509189968937474227826247259615546828522893665177533127057862630589014065977153134351276100005940183796424928189370653442941095021663243599650152291062153071159975991609218471296465060414768384798993122131420943327093770836586392731548196004429818497101310991856883157102290258888535115998891183999944926070527512592498749260144423657824681388777142246634553763615101993606150469629477242742548921284479969677640481697568939303811274877419296458309067914706489605775141042056428652239649107111703518676766085477010766344308475655219774631711980356921005691634288765779102410616776157530618801637555219088689244301990967829130172909872330544023741426325308514831325308651540289384187700414286342756605036050516281279256707036041831438425166663127140265893638592451856777434109290490261561993500160182225876126514720823768229027410847685028952698060564383611635128188292074523678061418566214356138872964291819250378386256400705232943367719927500657578426294657174542878976211661815880142215240094151720445175460480697516706348871039431233856164551186500943273778185616486219332575999310498477638536490236134606560370638104183809492034150830766754281091258024247794348074084619323248647118204920716626892622961113222742515224697772678758893636600465744236289517754631173370351320635470787810810764067993277016889540327698796263067355492635821387446988697436189055783739551622044369344113965452227802356312125117819288047558358920405781749181557358644572770094059689077935176721089740310416024920577468660246054275096133229390033011890093236762565975082831925037149617463662652427676259568528362842653742881596895689999996694146126108718487760392464529362267867992576068962203599553261502963082684277138148104262631863017140140887644617302121788034375557466991751927285126587742699285322560690296513237856592118487532420448766327408316158359294280715405595870955324699313713646645728565609308619671136966490064388275763015171660875539967701360694170319853560506795964448638874127385066393624541350904831550239567092109569809773138672186130866076903598368040923791677800385286238101816742522665923387689687533969850380678591337049801063505134752447278517698984530431781816094585078952106089691315848899589508684387212681463241039619197482942061578031637692920834839924220184383137975699995302008979955490022839077421182266347876516849165442228323385655988774813582043311056454759382175810762651692264616614487928232939060945994124190248326437254709595923931564721764334075879280388019353275002354819002453138413314713673261232509391995919807951639126062540463155740246384622845676923405853522998368883555541867189331570001847748616081551635281974053085279712438330539289425629835216954521921452812974529627363091836832387605107202903039277685447097132445156386248863342461597134342734833543129799379232480181453939920265568873159348163735149257948375393531253027627891087142723229149806004979178625146124231719468118235823754712090954308294589688702183951870411945570113664295167683409211271096334432677104561913111830744971352473572208957323240275248340207611861006262162812746593698068416649792941016352853681632551455536151484462781762084278118993451993030658798469414787127519886884824017371155023246814855934918125266431950790946260354488349435391053092642051382244748798370467380567194454094616753969361317030606790757192421779457028162704640417017396864425289792180359589018979481759569330601082874217223233094146100947528989663528715595349592324604232253064526164182078495500809337276286534810341709354854251177169107558179891152062969078768727779785793834242617538564345937318525614968033064632747836403882247159056993221812726058011209954549601916287919417992437144754069991614526262585582569479800942915438070769447428944032923119092593697565185599725304398847923121244360320974218586929476190171971438913579402671301815470921311145372866403469888981360387884069784904343246024638550908764605088789551678372469218550429003205601342688035825106762703134383896464740548786309785240935088123729108654260078118854261339449529223069264762214069679895879672984011693818455271279750731595136519886054115749662201109868081550393194013421995912334335151329941147624222262080936195831970165167243837966836667182667003052150750330486570628751342055250566567043704195623012031853346177746441550477934310241336496507054082576792125437572529831490880440579165438747090230323556764645264797801131330679685338960888257360338200030653383453518518405747684035232337325815778017940538832132873724847644885961975732777101878083559942921065713363737092430402179295410830916902272077146735091571584365626457672251254326754775714821690924813164685768682295492502794534982623005569715530374854522163993331555393139395013343376759677960831115805080183517485073270702563177919105870473170686583593741385226551032579571867644408563576748811510001332098957226355315443147463271939837199178229060152848014243043023869904132324979235569419153518052982306560344665696372583887886526054179332357560169132706474027056819453482237884894921438488017974780801604696897374950388456142605900576303801113104618773354060521584424206568713185756396807901082504789081212793943921379037067198073345334613440353685947754344636433041026327666661901366041365119175464790489265804764188664836195851253149785124010880289265916065171503639360589885203694350435874390401710353853606206384940652314450922825464111769363366462981765543029467734967304787946235983021350363323360596983281613733968846621980050775228590195733667618257511217255022374160994516354809596366870941102163262764396016174171408844037784946544175803826263448760033012503921977152350768581207233027176861539521040366335916610161841195989735413848155551925319502085097872631640907972830710263553207198493656625692615780288815655595366418368129459236499621274934505625393784914557622376059313392556738402960828586991919447238974831145038551279724593101150561021593318095507046242213198092412531339698361715656561107211385723524855085192651455107678511067644465946489058592833248964780578850017025071163485456419785994857826560292254629771949215180176332823669337110244721371541837788048532926069024939475124695864671882384124581267994667063175092872122993164858368863106030455644389511834676077086074934987837046920851241859264696653253044114066292795412129781251016205570913808038378219994830091913007552990437723339652216075039461508846881182693293579873020352644353142587796939937898353721949673273432502570973778323281234015224239522098535995475575427254886195715554226731733252268208743517915432299127160006139957565508929993168089101442876864704740635050200356947044486451485962733465409353998677005249877095814907007919562484909614905518614296896714775552503812585841459916961369213445857975087361851217885435164857681641336095721520498256679961149569771005233697880530624391208018018702454703494229284595567239606030885212040916208395362657135203220417455598362363470487601773586088760140154300427745035510855831223140735039647692082640134301283258680055724762194554182544991768364142758590766311706350500491524070670687585931673217300388781424927370209900825389499833844468115274812998355320252118072669408828241910212482638368184170465732556862494957758741839129371468791738084816565327530292015079074144603339203231636706171366245014749229545553493485412890592352230029924711115403530650965258873534661930174325365464753469065704346909553863151435295809257754971703146505409482912935324432987077356257655613038606235408021972301894582862811807998168118075373145343714512405388849434903732960911716251789483757420047901322035672000450699337254422638034544898503791074230065558512468224126972185973665545115267193051198598209662880164859867892539115617422198614253533319996245260138373093551101049889829758849411863151495498124083914887014217183219907399072602306984380482587566221131781402503368644103771310963583057245769013739805020767290424871259490450466873189607070188533934155929498747757142943610788556308468440959698455092577770610208008955226245945949608593729963885415612698407889059698178824622430595105882808514377770811512923502154446309114415628678818082580018486847929042595788094733414797729287186025558290062476883184258785568806472667232965896512543486286346548785509209850176909053108413253091723046093792700368096228291490598497755833935299586528520057274356768869154165975567524633316479027528751450362797384936419534015742048873180280721871186993383710536886293926680233080787788303029462001356197857558966180117617050901891715747352172613253543733373300766705817902554069468865236233054205907408937397828572999917199645393946903508721983180258299922539163186157461458987490343165192714649399076138414373701451545074096078227763390329278919320087455544524814887566480610552543533019773299626716264891971400078465819419974413993744921877761468994950454114556513611065585499975780961283342164597094107923558370748339697771582780235616083746122419487406718795296017673801967956267609020011995173575791686589829586445387273806207415160383255951199154300756271426075427195282787114047305427207212447156159417289234590135084397173782225452533814088910007729714021026726545115230936144699282086551131718845805264805424776812996797288953158810942076622831287158278284692019717658592395464508803071678946630123604841405711097238082890046815063431561537071728620559098338536055325683338612119030283006799844015619630523189684014838870098187469803269964883364950063324143091765027324772876083275481164029519352148022251860859208395949862815568348733293399484450765589489288097104008567594239692576180260346714499262180573157709589494197020081431183908689918088873930754471404953532264445644291048031816038085629828426676087483887052128523850401135416561289293236674358311007767062552873751220025849694528836117993078068151138234507362600787802074272239651074835147554164049482107802947040336070559837466884909832468438969479735345543139537249871288416823028230338864883491824552025399556128539943230582490787456492704659279382880963677738485165262236195148367242935733450914111327531847634820475963332487957814891761335541787199292507046167065326291403461004003889927425411843386479793575846352424295061220758303226920230788738297166856398855558402995591268544378441620394259164542088224800368759898094946159373985772326757774165786325236879085613578467414703319307212914509445524063802742891059341731635920783572842030441576227456948354786842127375880672321770263512145377457028752216934756022507766131975948634031561822515103188680888318572795614581781000842995637826677348713617113522620406097013186269759172083431129956526455085354963083764500577174151485610013947777560061583391188988122267726255215383522477302410340519753275986322115584652936839581755854389401756530466938015182688616443889658712088219918153888426977068815640399689676947473760292482965411492727088676093691847272685520878323731254205032978598029649227545661626061450287273624754968032446397611689169247981710070317462429991911635276523678121571322596092926724008420419550383315565206337299133470857845511794195745187735493719786435420169059303728731906736290287130276584591174024196386273270024057222855974045167270541111106849757835396943552516381249504676699405844845963518415706003881952869257231464829243766759489628315481541639056578365629581546970109122963026319624975034858754954695909954998741633103346005811091966100695678980066915697099076219226632739642719308253969183180274958012648157319578073211953936608269427366261344696216760480597662116015083514918117030695761541365178969882060861459186399505939882389997864519685658595729462382029961051008787376792502318603863731109637907914974311670557157241749595761807932357197784031363835056602110792096164473972555513881430935003316159874144104836302563717359553679083920052408836370557361853951166268096211105257437914577878020205526749448678721070478556400476135660039724193770364494241925746914796400085905646393990176295737875676621971943952052935032357841935481624925625668359484153741079535240031122424755679182812407163704829718169301363046117744571298478230328246831763654925156260283009977852718094583835020188579748637510013058828061424531201077399798602002702040840128895142079463562760690581702450865523111125987075493460269351470581467906428624482678116588489557679416156366585261864122843713840125458718786687102938585124998068913152359036640705194346723320007778349917646798985809598382123642441455133511674491538783600510440998759555902419151616917966826413468092700069020359636901258066931811643031269605231433839091143194339895957729553242684126488751356927424523913045804296148609137036037867938787570183740165524771831641540281296340536004028520266279449366106936782466355643447184477933762876898433375693746765530381586632276626116814296022924100696814406535103137474383926521692823581056947171738330940284800345440134980187711679908906229442145269147389323984703245955265868108623001097042066003705601454668133964966701136834623973387070232853103939240210848543691832266876250718241467404576878454132819743764697491345719332044013966220320496541101041349618507824877879324785779723168348929973938017788544535175831795235696852721230065139986414196778472314835040895637050508081820281260142825597310878996296968995098230962156449291961149561163221750630515727557927872983535721755632549875460274094771232649798241606179267179053043234685770976771677405495469987058838855408050727141708294840139385268294325060327407405592711507205394218464339162615937081648644844515264761789134389256511912331695823131922711756323577598702974173901916367734919672329143496110642194072564066170037034788185394587302990912914837200149838428356068372514433089215825995696805676178468889892874553027785592641564173585007624186758999533157778798921673787671528931029083710560807575214700396684136816955942807134142306588654997632174008071678481442793495545836321943849151253913166732621387663516304977966803275004417426124101469127771423623920616408274943116867969889667871962816956152616936268571503734621614456891471469028603492245782047154657131332577348709481282662733311425588754703576152619067782469521091310568976225128239684953740251076779021122851886395480076101851879651627583743634781400592188380807037454681036762862162702337836943830412190373686629980160762562905027780277414653952430129200297280088371608312570350888944270584901275809757572508122363863391122432434817672298116904981251464003680487306286193555008536272075077137401414509769048099754071318629765332322506379204172404750933521362846354893467447194323506197047855576772531603404486798099198842159669571228232771083103668150494594695845806211497437168912754941366615169344979787667912852833518591148159994199337269786913056399925188615155100195149899590916419611216407922192769892529654506202111805753263371016328769554643033067535697229018435339127585650137656248345759424860464984544909735664468776514049921643151727984899011603511897768746880535225782276837038914559955791588222350493006342129688651139835543391098666543723280769127650806880748769886834669823467258032028139668437250491187702988450301131765946766193150212740183052649488401676602012608221474889524858875626506339891391370412083336072285259871192232699064236833294936451337635494770692226402012504550370272134582935523606797852255243106500871750319440931242576251750701457839432594052072306087201556478436050340701652826651969740212451977445591888089413183982856424307266985253698397430644730090288135695802650485935873232851730121051512781319750407162191773913497208665138702699981940463416113696181536937413404994203913587483550874572883094127221447627356601091258895843151789762731196988119464284750583929284292393083296718650117726620002806980092398275737907920681999097362451402599209586720790731737491492806650250250743681865612685817186770763171749428569858725786730249866197318337575648565717952390786150800722383927882647534332334400999266425966132573193248233102660079839909473642541219526830324438683377383720933988558335799058710981773824494615125674236826369757361702497214215271571114792372919235083739788948880798949568923006971353628945172049343942308094067584066390028247150114988580617633654918842793154021833197193085554886630573056655253182410005696650827000972453041809345455883450677688782722916351869870464927303558815575876942690887562348839053793695929818341307865216420639606609394882979019786973229544890786168575647978512373770460783065355212995516623936281641684196445823728994602721478035381957016811493531824566525103374682735887326374926040669161743646870649853328439913895629322643703460587535690586266922467957462012321480763873782264774797360796818544242091377733252069534150172153856067792121720073716380596355045260502705826192285046239235461623833769272116790265318960544110974239544993922208276755490467486135954440180515955453761498308248646495535522926896824306333819135204328016176679500190102877768790849542264274883665492491951483933669528172430503165339455962316206559772500381607691709863550810818162575204386504826777923424181463663000502487178884535589500845690344419668076049270843508254949847181441753095905844723179413295359972567169174952818365225190590739528583104991333624096198482951461810205201566562289607815455933939787197748116048155699006242971114369020342536844525710245478843152869741954423937589272009394466217234347444707606634277704641111344775989865615132641511396330540914949830182697606503398972367229630507934799584870886282477372061598138031158002924299270546352763736110499181379866566997973640053308617939393101451689996921811904378035548593925960598572190960993995496424868325608428831689132050383171064742926916679850763127437981659534847103106169317346084704311360956697720503144857132697639751915914921405032228247583157230744495578693982034572652451743129300373872433139189300159415214542515615180209457599204452914834907817406836298904602001738185237733842314560075004807946568576658657466637199889080041849556614803656489979238520403392982755662820390788639994742352738263420443580879074332369726175852880573574742378358147960497166256456240523019599178129953678833723053258706907545743502869128540613505599629782534206333041483564581856225205597257398235797765679774678947028396000357894811788885371915902848160406435788483995752560681869965172153613945727124532149095770667771327778339923758140828484345786814243451605760017397523999908870785875132600958300427962131021963708892039437039638046898399243960067494559967801891386490964347887192448856985450995589654901464886978786194028958417642227021052287808444274282422424371788596964635937119785218049927572679593918287079721023993182645566631667656186789802184531120177251796330314349250120759638197695495254761057769202853895291868827283078738721619348275275270861201525699797956341513212087977773941390208885843663029073797202598545232203629160637345369064990338092261331438171170488984116900083997576279725508256692606210895165348824701671939962672737246188887449905045368241622052811949635664500043769177522938269835779353160981573675200805113766542648898747653186386370498294044985390267083621784371142746891737599040322139003554809506955189646494315118036484751070817731435689941387793184922291940456496016154035803060125869134411475827214624821676838267240634796862918270299663718768925261968378871599805266294653623045571842317593215348569464583894410286100836339616360002889059529318945105233329798353438603997386729393523151966475296154598524645118593827016724618103326566513103892201688818388259177870178081632937100580894117851951613639343563401078807945297280485266462885149621075592374653719403505568834133897037955885629829816178012478132453681818581084612177552428617642081054482399714742715288009560553401648376094295825236560826765868555762984603619379907992655896398269163210600683353186321161244881058944315678878298692523687705027204769319328394681574106639713903759190029030092643668930400318578124065858993839738378740099681047607160992667138850271806506592837144660344828387341562418706996479031106296384544765599135865498906358615452845784374790366595339711768991900163231821012842017459548757287810078793230767440845811395120364710818155086442351854049695180985170919835357696657515836224940767850728562688595614956711523638091320492603318640010616098134375610307902417509476187733556941961592879659266196141591197448646383199364480762119793423138496439482448597996256490850151307249404716949365881948819583984939334026407308525992422155158525803789503128322583368665104644915016933206061602000447088327109389956113865962208838965838948708902670078706887959983665956930662335072417927683040849682425661943437075649033355704855636233321476138015842202045632602413067050187790661707010691597797834433564858856760795941978175438557360112709169432849022337047570151696671879724472892660244460012222224409414035645427489514038213724781145888531501975936036587540746067387891832609696141537564454912546028161081375448377820871110549245523734029480569341247983119538022555535427244426478781234554996397171839817063416344380849460572471471355202538464236274726145671320062767896604528014632386401032930416728240166468609152645364029868830279280395043461134060769363161913532156112188569380417233321316044570952251048796534034354491196987809189621480874979106989608413390433592877049228005220288812839698657786083509672393358452902785006401264986563333556029356458979857835994933905999388965144714567261755234977380122871541162452168750962233777067690585595742623517018651031739617643329210691667027369085559880394491977960462426950479625128090497926216377705616463659467747609167415732640473093596337699855349112899346391618406536574265857405337097939893118693098431188196223269382870916241635922506658722903065040396511412268542679756018432137119782812119678694051397541233826190142437277272293514476545439180623998841838390082907855674557908909369755127058231877271442068868497437099287658388938107988816556163146084763698799695127632373723848802493307715235830681718272911146654485293569000376524258239364668565089078738111099397344531879916336724528489184489129472312794331778353769618980675910266603913268391197594296159139692849705022305167057588858993944299294362576397805029449122342216727001424263730720273196038129294991799188280978069966611668181856300084892214838727456750799276763348438581243420248681895532201680005655718640768835681862564624582205843174896438644710603770328931643959542792948639749518042334670160936728306426333005980579484956511078301337599091601595373149501899003960100952017099400335353061462012422426519405080719121874091771535097885279253707834177837395259191539816176320360144418958989487515164676363615408755580431758548417588642317710892944555108846069030388883981653326780137302285578990014333519828102873137618382574557926929113904041318911950755474669878303058552100356695392094034790870982386979741547906800244487434342343358365914245264299521330083736498534423145226701264940454710913395758552270115801063432278218882123543416875100853760921195380111637340269242035473366667785867388181964589982966066401878167372631235819466142303701385882479201448164262771160556021655930654419205152304646363995981960909486397939076995769122898238979684007860199210071427259913897111095696178569248343480412638874082971012488251529640551775365242882214384503732912433127161798510033746685332267266596985434396895627064895564929129294281530745744544587858660179411979508119271929363701091358891216756471427340028440175002669458157704516197359113228950511938617628177297662449933563993302771823408491473605598166485285042852703847499768939420205697220825015619706337124437813025156831055155235438209402463099436862853864907292600271819217370473128571034756245470932246071716368149412640865711717029668347035943222286503929862422462101217768006572705906805958541495917171639535734261084657906492717068338320011652675669075960890757144644617513169670543919396312956520687339664113861015876361756308670122806453609329025142160344046313695164353759086994455494882040807421470840738172397368570891177573993080904412044568958359130656688302699963892214413562614031788624533695088715476623239309999085945119157200473258083711591777106491693798410910864668711535969021976418160891920817841653154311052886200865231797058829201250588034298587193554827243343791124357039019609768976090309942414928731794448472418173619010211747210107537337960225620578568060820730834245872699557451142700229165628963510452014364951173529851353509707097905177033960612103459733994152160928805381045352776018957803189549463730791450402657174760398033133543743372928910571948888939007578145798772991168665457300959673713801678118515180765481283715797970721624851014112841327414829263115018522387694323543270540314435998687269468943681344539435843333601585248728408374843380294225723598661844022038394393297472439115489644252454451324502526524221952021836464188883501073069923264000950872286788901669377725525860940519882248213138377220353518667737015728967267184133939308935078475707529739116918708435846757511089832082896802476504874573835415344051587155579430295873651145477238592272886922020171141783337438796121640047950392710874433303984483129308262566726902822730803070079395981373669876362172332499184837690053670433695973079092744987138507421371354524626384196166886307087604973174791353550379673557045471728235523225966162899191407173728418930592629550010303826262971357551739855705409125602363777397366358800656996879773314160031737919362486451716633163083636071737390842380913882160300506238306246660633277231492249926561685321472316623222555556066400129972218717916358241782744905220658310907463511896465016054634231639161061437901151881828902639518105458796312799334762752776737401080371064177009188467936428003361489177706097016598668179760784436834250972397068392465210041385356140514694252372869959424949772424638112925203166517073888489979503722744338448402453913317063040021182338062608821835256973740327213658179010573367795711540874396917112992170413286060931800859056853578271774327109314384253808712126429996372265033133303712979237026600258000219490280357027785982887500957119224658100575346780875562328105804110051423262767244582300451945268869168916893815614461879024517375389706013745882466671295269652491555557375963057124873304859243174105197033198893256776010175248033324332788324864571515906956594703234050266272211759168887895984621618392708860701390272678479352017013089337836470733827381711887052697223590201310431599623826380097449405142935953590263098772308121298159484818795595706622982265575160544851819114546854436177030170963560819366337949171379414104264137360006587225874587100755294661113862549487795178961437503580089802628758399304457941323266601004206202373809356938659691581300799340189705508596510965673903650115918781741997063785812258839445836919441520134944904330141194061499017155533394266189582160921825447093453776790954651561075970382543030648012416615641307857210395232453569007617895079751452508371893101354255968618924006681143550414886847828019651406378135337258941615046361448884561773756149617387168140479037096715720486445163813248961765329650726505815960733137858451129755823660280535062384534358911191640220738773330161191182392493498721148728182177485278695534204870944770274728763873111647241382281641401002789920544096546220165749899996502088697067957331158230291439024137556037927068992417207410482763002911820852946557952253599087857807020944740707188513485026586475220104538640868395270785796675315993644683442606357221736162988290890926341044842199922736429273078204497467188175809793821970711300238143200001511252775434615935784767574389198045872027105562733487554802101993751471678719503053957532264849992289139114699688784610051706301008191153252071621166418618440604929354575699663920028807635296482704562041358009089934361935819153429197292661394142340231424178145560433505899548123166642713564262148670698804372299928154814366538444126667555747503204115560533938752503353771742101858042252388228729027146208486196138872636270907958413724180503996001583698141013591012041583528407522365900768435434912319641743815221341508029260131074132877175249441825591065312382617054113327739963916122058376170331713195425290864766277368672229334170789524294572614598785870913855609878889925509797944858850268468811398524184082982792021573648643394359209230524928267987418206067950982396443133449683649892373686754537526282629315480190391967660526341811976979697716173044878777309806523643969446816057263557099341093143779998608790952358007171161455363389772366625021533391928452752817720538976886657406105066770602227244549612213395710525150110803303079153584725994036578817761833182602157740391213467694158512713668390962100885051375636445244783222184837950999984989981758054558638842867246154605374949630058126699189311434381945876992506577311145787080703245433150079687346168093517319423185379057148483460652656320110795291593705567546693788720701295224427816838624007886233417224029403870636670641755149248845537373767740405475712324978739513254928854632975012263107391713010094893560298464562455474468455778550118563185732647466797762519415864431902116672023911407721140905301394490938955429574138593448057505849854507728876339096435994137484231544557921996512629706399162600636686056273232890400976992511307374181921400112621832953759463638245691265787512710503700886924543280171491741132593348380974372674707120258688572475463132515423852536987983869134697002618176418728327992116714411812791458207318069690705405259298092823688361590646178133594593825204262212359252223531297647131353698569865297178361443982614026377316010167118323272522825441825824671727640319638437335086938116693492198303769734145321890033834100627683204449575788994273505635537593618039730007329740659598065322682882526798973874460526389507474157570470823570676620374702873023934401392569562177052682233094892765088601615649211099016732049507670970782952214643042941705849824844266289521265530353084213772111982379293240066005437317259575961525509328380441177475262968908446347850287187498308053943134881305215232127824430570526918482890957669435486039078130672574730662298757277437952266700343589949454957159519691336003024862080760109226993959666331792415065092942362265671833664996963902455318491453448291792485654895560492510035854918004494340121203315487875331524240694101975271277203858954118245735760759681936175537222085752544040890369625514835465541652109615667526724580615344552643866816412860435771913037398999330126948589160147379374844916241151179352202335969578174265118510751344016936861313554603132499811401907323268251900043597427926888797605205199441906957775826659135107946214082193811184427738476865260922515884753398126112385816535653160703536612536878875447141234914954420944076169063827957930044820034011010535131658260025154587872661237989335195358712522381146779346966963316720785823751238816349125582149224120126431569969946902413548727106854653867769620859159501690895762594227681130727023825852144581025403124278334142705848166640544415765616842774470730646999901411752400718541375783899220807677540030932454803849690336928075071516298819595329139312388466806739960485412530281214150711159284009444050184950888488541527325368020276084257420929201766940606885229049657704227263747311805821309685686120044210781928845652779746899951371958948128123613438887214971509462068642268843392301874004654157334530079163598727318511809126043707765543619749244879752727606521372732438832471802392151352713680757692821234671272469238752478965242373884419949171801650983906530881381453961487313701064517196290256927816615802198102905711122577846206894894835691554479224665135853956809005082216377216723435843416489954399370012814828195760477436038018110335884467941522793271369156281270943203732031016850023735066621521906351884790367005546141970457001667706936140801629578981743558682260737678519555802322261945905274632280694488724096562435225800531731371712642635151207112939735604625609403653189002258206332024547141486702527938184282346275907614597017708983433098000344343581550934244708124321108518593512197520712416931743248447811851628183439792496182847505724465314946787933277766747359192988038057069495671839130388857383530358395896808244541227252727254192627801893977349451421400698250503526988483679109482421982201141040198749088290688847986546301695027682451496089006336485568862207397918574015391513316187348640412171856604181553450891627418921212014206192327006542529414660390029130598832539553746567787269051065964301222699538390502695976747026858612083624567512671009771397770082123749921470470125792759496029460804502006158157668752684069542433539602607478899524128305005458019199442756395854763430150391981232725727276445952803098484878467289862497253441941377998421661521016512071078636534812508668617367212778013632034097815973240789700192736714687153126206544579942658849709771406182543512900523533898517751101983046293388258885104861444905395252035015403774565789615642108978113669192804886656093944606612748641252493263939258054835228031969021711634295151844647916736598886983790575159690288418246078486031270396224227944521166735567158640751135501915478194001113395340986434565091719985054553451252898890002482272792848216815681988396084428879344927223837331706745288733334567399713094220952510098245914948323270536157328289972689160068490656338548960227181419972832894339521776182614244861143486237115317799378619120728806621464868816382182103064235435508236865643332965077309133398752609946758935140384700796838164822921323550177999126918351231517004167736908309585024226961782947948877960731966969679890976983971771188760621496988339732579126586212404881940092530554013531194860135773200601622404646541864618957863133160086395715655795499270625595978295373569716224631638359613819475438051866180129276429662151919283316907027606797497099657208564170501847158447034975914705273432808586035290967405357492825809997641211262935070675982152142903391436500789614411672350243318148616896681036550959920955485817395838019783580238463632825624357936306332020386851135926020101449521454040332439040832956403031886164252408607825410300117095485803158349497300420636203676668749953304694067130033440686750095732868623368842068458373295984547326196802447656784631952928300696424942546175540370240956735439011666413437053978996108909126888923727421866145266988813477086144180736093819519988268450372428345049061609464317975835421356806146794655360427302311262857965497735372255135611120527100767826365810828643969012051132174658141196943618033114591746821916547360445289911007485781525590824880012727280333859706767169150998487929629577473616677122538664975301198737094861989780145243017570134455165184264334702461913034651218699781620465659099759658893703850982265534729272345087000933105126510601821866715165941947327711350595478880123083799546264053906894788513145122753790326470295654354728676713137931208699796794722740778710698149497757477438081132510838901034242046962957066650585030048170834554452266445747430618384036387284491013814292231941961586415574218071476379701578788227913437468821026650617968455294990644996623071797597790429291940288686020055462088452768856614150517323997545498747780399136475168094798567200472194695489580354302492862528301887617029469431896557697140803938572002479491367626913605776379301358406347463123146653988800003350503070032256354561499658460726125416773526549816711084437255794739325313685202818875930911972723216902461962615758741119229369412650832196388139774524491737704550516243992202454766441181842180850754783741962872519357529784515091466211028562440493581436817934258757293207893737860301873082241265640299302773101557973713729342294447438562418166550941024115046318058293303442220155521627225214409107217831503402813285961028666967543725773607307264038457099920261232418479536654025060403977994407674252502015431766360638128691382922802622514064774503372989960015672525340777005786058239857451090545394820396887180610618454782575682726295990093821304070821190097114743518709813951809809381392823355470720825437006121950251906866585888605542350181911571480650548604294797008573821336783318977012797403906064273733676520585074312395326037590896168277021430953574907985250470938280572553902250125657295311914939300055544068578420160820263533933604083923563026394520726423611505789545935294080169368053139704150650255538023786369315500509647196307909878689594161860619350428677171275635583072266666336087762031994192321572522623482053902351539122671884222004497864382037259391910093997571225901806797463412211553370261143743155668159951886788209508289465081168405280148113495668888946346575121006427160030578443341322874701495529295582949941827176645499813192052317677714180315050428263983481606877072978311761835557730015404862130339384970891251777032571522384636452776989761509569632489601724521383315281253392881497358987083071691947114965633300955734804286220116423573258492706786952743818998044252819223688960479714978680509817435660285467244811485700012925899393507272722999389584281398492931745127883786711422537745391995143772792827678264809040611740042328302417772942177390782159742000735301133490994457212992072604063258804750258330109624684343876191094349112667516959617506475170577452177709099337469585794644317297948152268606977829537192816420144366167830526938805443927023178805984345018422683526238322185782943422817450444384007627220894381824422210009894391265778777211026543836250808394289373480330320475551211968104464877805607892249317743322447977736369107875772831618908686358814387045176066967123812650743307821532711598328664875882922203184747711529610595603132914972764058651042163800675336738266097107776410476135386003861568030837534411583866252009552038746936678809501002404817312623298285032402271367054716145528182925134874258070654253445796832464761566487542929001938058297480859157676038547399942259456864478677806299572391707488525264395289273531295666545600881375410384421629860862994293857685960432607000036612220701031925539201974636253632346150763756610426156729023241537609870716523662046334533697072699941509909101232682172718471358006965838838741055929835386082262168349691526410570957386635130701612370064650562329293532372790605888973836692751283718402202861961306149067447146349407129763522868993631765282919516001142229161716495856082950816735912242967747493128212563705228154604886069678099685115621202522399971420571318504672769718665214179306621815862747460760730072102338112190179335321449261041619055125017467084269218153015149853344305416663714228309246317295592203001881361516724999750673161059727655864058177975874084810526926536926655313561113737871839948400944672948695560785594908350785077633842132404188890607751671647321247259945187927420883703654410676563315744480922835419421914565276548426947899853097214438835369495017958699756951396146049545877518762095988338801827347360808392305497634368582885907119160760149980971057557302219206846304157851046203706425215141035096929647913669394900722028020346223844485824826620636870764058194262796241283040049720532252158415559945514173483683494819043645530709601391859371250811875578266930046467702707256393406990466805875620944571424376232048961417993641314742491765950336891960038517149757409328421594864933322389576042392341525299615857270197728271702167829356892810701514130499099233948358665594662794949616440248951060145976534322313829924913862267859974319892861838777526351435237478578880101599261249406368684540848038286591136842326501543932113892189777147496460109619054635348385115474124747069333887466557128128378230030763146201625344050467851599550467656107817029733108668952589154688090080717924704409651918435710840621212360702428268902767387345750928081907228833370887155563032833135495268416549602316815567118890419895980418775775046296602359142648418943712573346950330762749192489051244131344179143070447594356092686223416469755809269210312887790207147723861270789754903413850787691810001271246963145909596711659290255972230688589468922083329109362721185919098407322398043307720523025882522226012528696052169323606127296003177105218316336559098153289941816126973215939696537418404845355121523534611460266643931526423398029237330487964497534864073714965909168931061147404849558378829715000357082835366733429555717859102984621204341200734834025768011023609996114426832486570303658214424485656913960317811079273852662956343505186318470185444820775777231475074556158083244173768789542337120480153029570047333345557552943532912308860007866923939691262549594255194039157628784380241237433856867532912432966688751500422633447626629248229215848321816086435302751694441317890629630571027162195715351715472455330820517300403363987123463736821843494124246783729360609434531147704732692150118857304640641615189947947215130043495870866566345885861680866011055080777611600990334883532629160715541790681837263890369314106169795759536834817092362353919242142006974255014103120561898328325325227369490569378391967495554670797645496953941722381963624116378422473529334272955990310077840222480108003694173629932394312466833249524277924718311456997697214680238700468283467856643744463464020534016531755426381555853668539680892819343292647085855820833289328595712519288194432485823868634845796272348223578991949642670683618871280481771814303082854500176744176752865599354298923522499977499200532937753340443457079883587835088120884256360633027447203752041280056043169571079653467515775063998567056609526680762383256766559873974617256626262709127194508852394307935202585740738268580507124256946902682171547064702455238696166594293695819108795762702147069887382896549117964574648477456094471652298028108064948276320989753935668590063431983934574054020662394001585283888127156564225090694184972511255408566659725001033068460441049675805599807017064001492037728685634338760498605176410000001064562172531894111054142520312703191959046447311907832274605934045331671852176924996450510928038078946669945389227278073639016820898173041804474606621307980981620066911884047704872145143911731184919241440810698902228077516526470847528477462049236543218693850613464735516311312351966440223863687699408515076533171552556324556739042563180715926786484777665709917383872843958856597431628324883860157901498679375236958667223656271364063330284356031166295276349473142233399447951213745090853840726590502682580666275040165965334754888849673619627879410119861809315517014164061088535690304099446104045213506423675254911697786125858185426365873904696690517617559552685578917236170663711228851812681801641297063003463439936923265909895752992603420074866594627730817863146476427058959497844583447001046556315630085718422793791036272827639394732331314694721254920664491420304852651677010517041228731113050456223004944151888509256039784474777264291074347019703441268687359962891077797147613886923874711597537583201569564099366149919703636420437862968581299300506692021271053957902679851513238226759263206522902868336140598597637873310524899791304754836852867547463402399576953342435571217328688908170681386675315515112715217661742027810080796707102173766062290719528423033605575075458205434868469025409903386245947654246872173144953762545374213681438125975680143187192523711390400687932744521639659245591678305479450157230917538786549509471866645280782276239757126583121452693881998873044274355237351736168366982056420109745435018407148429853894029300801185301594573758279572705526428708558771734459916943519895590852774940261963312186333503143500672008004782601712026847565069290874690065480863585961877588722216780780781847473486673741907448782631195373221943362235635433390195288525795789315296782092446809682291371458198990007363305201760407127674551575112762543692252216606524494922277866379279241986870203417405097388715871861004638183460963685951212739531756033721003373110154210151678986083196887054388196477331024142450554566071659619680772393118882840647150507536963591847382533603546547343023026063281848673618174855899459005960019409590693128854266087636063103786227534122874172719954092230880760190867305986802119674311910096843054689899713235590827583357260043345678397181146955253527451225971410058584220089978313227980709273795683973726372501686885231919622770769890206959632354911911282558651517836937352287806767024445761812369356346875085843839178420751641448004021751744476052600984722022939937030967935277057568732204446899790787827459625372368392163085022071413388557599152068661167592694001239961960967181707438555308925008985022178426967209133127505045034945067217509316511004086359623922995742764194077628359095293946889883943641323113988283483816124873686851481836910093901125279408009314206134832947365140807788523930766038607718228438882307695973323274247640887715091657069032134863191233505722258370538743499542478701079742061629209449393853544931824995720425722733944345082475354570324580749693513332400444513868970827126047010693153247177470703855856518831299621836341105159300005506084352540106246054228657065045887981269141049726277364993276053810013022643531159979341112870212177848785126115227641036251471810487964561215745960923132975877387243071945141909308177754684204292731063058868774808321357034017788433798630711196769204502804049715641463593689231369369591209366020127238867894531674902280666797910589497012064759306935252283264719560068250742135329041882744358096969757160515316779705257414631657097085877276512512811999283664015669239221745273482553830252814129699761889523768273057212379271356052093169833359079440693952956298263357577085950489133384776145226811726436855645587043166771600165169287173940600604592578468981450964096519575264698018120405936118390581489262285254611700298845697439025202093115881152193459813093619317519917915688901673780359632439225678540483673931854580884979654392107205374199235824457034554950451682288097666207838430862717800818857308499477505659778045428578805963306826406693619783886265972493804784841616921347223463616174806885537944614366215558676974759493590513343657208925909203557532016954481033085090813936764480999366144020682306719480510996200188174260712213051408869780593355185915002516411375700641227689067352941882784033634911940399721508200453108702711870947018763585317270222397293056743566171812311418494693897801815985783811074192744749419528965230032197813877789359060201772523008706281135200144101136808985188604376086912657031763455131770381057149548983968896574198131969071698918688096829855628308494633437524949762014012007464369254733951284550693074672078320735205028180165257740269581289969898862647814846268813796156264430681035166817802108702217411370470887891837432692180139549102532728060509015769734729451135899656661047803855434412663930041586085300211902111231180433759430554320839617628358732425828327982993310150415824099566111607254239093075296113247336928859314524847069063767779559633496826127381875819588186131015566939974223095801757028288429317000153771533718745864587797135633530896089863122487107317987104940876751606880665279303598041411874072231427987463488287458718760051071686159069021749280204002868044398235997040592724721849614289198993430649503064571550759096426858245963680248064380238104251484482500767177824338055569367230929506136574567881460614776433338910273019987112586716531672083204387924635525278453467985194587706948329459858861780440882555567395121502419515345099574040578488161608883050798238959658952027983878526879690934286756367138717626775902665418915538818637952012681526339120581965289883127380058263878127594336829321754475301698043656074899043400845048581817507120183864708556300373568703724968038036614150152520635674888161938455181810634100995596400181063709983356442227065711751917703566316816507978837451462432045674103490503952314937213768465964515746923863530622211267937558420273139898359273628884923761894452454210088296011436961508297037925913610208919837469816686457398994593187353899296300147152744329180587336743776207359374971736982697393036827564079923214074908631936398682914044241184614476609286796005565322397176238812293178719680935667621292248356295174779074939585746546518507715251621142492713316839945454924970578569555703670801926937698719180620492590755937733482713127021969642675122342218208304280819330594612682264427382684063382171764428086274586945252648446029275681694599011801792012507410421914921528002199557682751061047082082352389434175846278763011770255995528689086427732622867047078599374070538460173998535820414376899485192485447003250421249415926950929404101896890653653334421263544154632350382929569142290618308965614288180058483533252895056358066199285071927117861964515974857397302557222568820230186059913433146147702234657454795056036445674413771627979468978775317881095370481729654136591195084351734966787979975226385096991477904959044321061368012714474333209238668690422832775397274248202179197093289359011904000818545856033218023690700520068844285712769959906899675685363625549636823791377223096874416880850239078097507519390002757871833473504188849483580348071417084285485212259392890190423937785044597274391782381876535001833654242616662767157744401385319642117471336189384917255667275695653653742904026144263341295184023682809700225155598486239136920943513694895295014062808986243770327562490817935195608568499352620673425867089075213872863089214570569768467597362687126608402388347751424129693995605053541044360721782809404743349374240433140582771557375469128918784696010967205218457827320097908592822604041545771003499272406942986650425761536088569952592974581049366497576806983962436872572497980826028233919671144685274729828388861419255516599390180114558646826079150077665974300491902469904874384239517136100340361711521903778711302135282981066595924054162912666154028205275926866487411123010408344701697040778491286351116790722614818002899305168710296981723042520306833045370467786725405746963660088755924084479132225515660442471343039897972286023929006609042339701257736346828509676138473298490570563599936681919456159840362580422660038651935502083950825798185685375010516382909752895380775344792724465187829981184617706461178914222194676603736422759201727064586484902436356634064161388964197327257202328243175865258801911754899143199766919297880597463056836813814673487952563337495255366364442010281883973984021255659508129052371592401780424909563242236422436728792044536627969012861585307264787101397654854026937505896386595369830417238900314738281972934159796373914508275501959097206011397781747768476056072218680732094222910606444731198226750234370495858222553979296398348971051667522757842752771382144868085300859349085738808827790991371385280553361982087673077014850375465485492552002263117803761560057896697037993827706519127177199821274528437729942425551717232711782871579013072078995119183015883779619439908153042152278660349862850025105469747757019230626974531067194174264878341305875967902521014157464707690151119000258949511774992726618908446804889869147605509206629289957997683324713634755555655259468708440298229858673812256966442600919098687256710453868503004952145045626965315045331551552292694082448329129085166403727384885326708859108483164226490483167447031091791574311251772410179504854616156277041924293116002837666723381505228231891107561854834424249320651072505746847718061615390543336087229640046742379640950048399648230685648356741963123548619061931851541423098139057878555767500114879372351314378875692011653434346838695545297300225901416104991762024817733953665795029090086258927334349354709959122260330858630884790862877545741207634027553727369490740618837250364434135582714064998253254516515176018504917488790606003377878241025461138109220232823274757645944043637811930073894875531075378901307407225371207348881267647122545817080361424234434965035695854942241792494422082250312841000228859824486357997774590924491368944383366558328567847413518443847957826987092625358448604534354296256031391120745592554414660884466166498431240009352933696956679093263924215805206091663145488433991725099268807052783166746094794458339666763603639132418609437395444270504202492360208924940106665808576016872747392405534936166103232660835428496895695183837485436508155181440678067391914832188019415273854967841051877854382002847637842698170056932747615026392687342304272197981575740713241348370647325652041496677255457258740189752567852507480595840397301318474530687630567116292732660122463333761563993002211913695151118292337808012561450603174385249159542465608678057123815200282105386796685742815638111019988488179378372422483723001424361294173082983738380212074357789458741442135146053153191285212503241454786307015041268210232556735808257134958484737014585898720585744401173666614030317418223789689991980400801258564925884560237561568893871576539480367860101937665073128473822486068003204982691124745307289582304348106911419803171446156337003691865737597729571525609347865143160771936340225082300331910281252042783339301766534984415007276839491271541078364403815941189986359634715765705111487398685091699076263719355804464087151881203321831853597535570384686494090714000172955378772744579386747823624812659835958722421053071415627326032399665171348228841798727163864938424698175172015878203538759331847764117833585102769958021608389444178919557612312510248928601796402788379164967368868303154173688450114148499766023557233846874511338299656658544615694422855328917539568718444513626688240234516881631890163928146411206224210603613260710555238347128573080287208148903690677567016988366067244242617146076118268496566152227240433184988239314010672982373240103584506895404481759886872404250095732418567738588060311295992895533122999441774211300270491334227179644135935316909275199271419461547117311161544772287643369320734828257667113175315397977424272482122550666417375496303977299438790137061303404443555465549187215228840784729318340362177011697351599808405781600047100763952530224328646492657612854589002161232382565933102684338671888131364661068264975227948464284939965827874565994689298455311879702750001016940176152753905908054500599251041530756093871869528059260889946400123672287752874619699989427622792643355602327855376433976829375125977348716328318479610289859441315587471738808815952682020033993478164102735140457200815387880759267198542859029864727852366761252477376956270906698554457110872617079178992949185489336151651452732464139391407511223314210558120972800359006044488960501393349861881738291923388913447238922910218996349997374037723897291917295637558853932086456001336477657693036316498934847691976303844404657762907923018586731398277489399937148466021794375119567839372405300251840034801361903007553614764170291129764516859900186833856034145672728190034628889485135984175756755477107349419973364161519993038381621698174676995849465600075758423015766033126249647150851866095440339168603818220481649288716080848506135859390832788247541776828300646516945136958833061189981082626200963463398416420222094430064816139324822937775971033402863373996800543490588989117288397258594265107833578835773833967607873655662640299953369812286034997050750542407213808632057052316124319146449678738989243020753052150949402084896409530107733366954450908674690733956366073300052225434411654870900280560393358295886457864899850422514892982828036073946390445141401667249911333233677667070530808917782405055759427070682684826297990657356016688694021137179013924562839127651553994837171776775587856999569755465526769199788589181474293562677329909109180867925714296921378003016261411580188271433236828910242057648167467441968619414979762680144020127106128847344325184408236247699007723172098017897057420810737311546121051936662072939603923497686909081692918640559061718624649108195254103942817256367080700155781015640422142494039237497322039903330706259078365124311965152222639901742884696048779101404755087886331837646461140510338557456220979431217646829450237341876959603655740323238308389209299302213865008345965253290864572383460996106050780874202127494539358213914334158980880867522526763412318383923027037810872762083073188493541292118579465793445653001809663476253409274416014096771807470401692237434137368051872663879261016602117287360602540467014704776272216622739406256826803800994668314615655801036062904913251679012879709226957294729497152898519944337790859537415771022048885660492482215086584400872401538790537893305458685029076254787546616925734986431486332815100595785791227197492018832186352419896348229522635095909408961815255569248317543768416821576703584274358372397818760720493056052105684863640583642068308046566813606435776825172098245145688355285562075987679098558502945735395497969782692412218828315779408988073288316850360394449300116796145928918502649954676965090945442715428625001656919018857563725435948432511779161762943719890781632915998301658123314701895784871359978056996739808005019840207288513510782072326135217599707406930184693412826672787167215939055896515646253836354175815659277803046815244605966738732108411424444858585181894027075024017606385822135303881806128862233814524218584861666283204804229719691119314365268091735173573907685594574192101351489747368636090474811555275480066567136668684707669412993092161063682040752529089740693213950062537238220909425568823149357813288259311222923254739128424414896333850854429123118196488271556651216519898167011366882483069985065864262804171614832313481358177044297956505826839797912318506258837286099856486799057869352143162623895008029949234335135574235322234693762282954733816880920180403824526904152372464008676554594830406276429007923233851214355729668530022269702768572968690049083451856298072821338370139355525112242321747424215513973515729970634469282622054435268011305221466379576119474637619031271274309362515283007026326753512455961000246266711891825305817591685666503532563623845316505458879896611694790720445870809357848770019087961906193098179758891713128106590985133035539482616934621497177528560802618991080540664373613680358196528457665084104477710359671865858463962044512413549810851084133569189206618152693816415935247772792565990799263804199216740631564875795808034682324405648311898489681360702684163340078776761604488822556043100644167224050462719715039212229245244913700514337484003691544702256821454964751988710463426960992678547671974920912681828309991877733095468169565521469693453390354061447084531336960674983802226785794028874014164208547885806398871318753306222969208545987702518314123687538709049485219924401086456550133222482555454343933849642734633279893816560629552874446011371548508940193722251446638689793596803724821942528704173367285100029173293891621607786759521195526102508793099252777436317950081254383023922180871346467663512740080688429009538097055665069539842910524071644386705486622993426277695021990616801670013874277872536363722836106118941022578376724203020141131381389620644135821591819070390005753240120937961059146606903318060468035136490366007790815305831645632799446456587077779894123718550456016489340464634974707770447901454847704655913472921353473710230579629031271069303854098238110642079649360591232403354121713656465204187840395427460157680698224414749006091241394010300614205668767856175884086572332113871321047357446901060126147683279770649158107585598762088510507587439369439431396943729453784460528004422336907125920422676032247393781499488136316774861449145496381786107614566813271509903044935515154219460480891350514860401452263488973141555571125181039500962705652097465355925540730313555695778529819348375535209110218493567784800426840889463306995107679959532030599138589344252355782353683475592745566607523156356659851025154838075721500621471121829988748220539476140046121990667126955240847173765978361005910647994148308783978389916801343446075237786359263490195869047942763141441722741077289268741061820261601832827524013267642239398344743714868105296862312182016242929367528302190451107251843755424357535836558206954021099654231888115520471743089935219556843194264357178353157763189210744068007089453656662696273590070839539286698763013836997571854364573669312191344622635979762718076806176902472462645685176408348861920367371893106552357975726204325271426780913405367274887861639817108561245169601145286499995195712085268023270174280659824360201738287771356655302839340957077995998773569681891107182421316902653016014608931551526532978112795917097267171878416537501500787121368208176256201202989864735533398061477566067998636037410857538563274147796484495393201396376404981236703604494058775836181610661158401932535818127715518971297309073411761414759415345026064417805041940942008475585668958502954242331413041647573647595385617965197466372348644620213409151727282775970683624486943757729735663170534479056351657108447950342704705338982984923695884223864210390839654979039594624725852505330900296581055047141995042584337951581182679893660987240292906706814071817817916262237061237273424766758562369440764677389956709808613206939870654700967682743273799618394908144260707239834061538248720455778237451887097614916733094459735962809415329407736971469637498938605083412028096364850562540667635046461367150256584322238354410922129919725768826631600126136854509050648041401509344979082581006270127383747424609837111386069103128712051434255488772763585956222072244940960274310212194255911302319590652177129889977441788055371996394273176135130370101079819455385327854969428673829668465071420648408892277365306514915287585891894309092594653831585730687005823328014830209528532736599730365762118257456105662781786950464345571209111915825196385415806249147326926787857131235842124749807885998845399229113221849371716717380100023083834484845362338545072610430312069549420883659723547755760905375279815261895201313286835770334372321894123228775355233085689546935757377779349506143556643087776179688824908902745410316572624083366583416623746851532260893658693779507790622197695411007272783203535559458377860695494620173806446421599542996527074173611560725731746641181495443910178810379127795373509702571851543881221680280460878234527616788725013165197476309292866464602947308359397398756577876711132259809852302942247829891482741681834302549316864730199398961642234698801337965350737509552351750523519960330180540761816144362048169120497776043225309445816784837001606846062236518790620989507341504904795260274863703476138908852667280271114414653969406973019738494153093794615699257718681335909007954529868383918579471995212294766339525997673647629668718799496726675087488635354622488338530977282369395810272625871177408004185764056543319151306920557809028107771830825452699100828427100718963759343614828685304279068517274408770036924815971096490523137750374569295478117820352201534293502549601947937054470425258419663366414935815732133530518115654192671315912022955699174343288895042223003497428314422378848909658320660700294718055724205024724146598559039722996104453848888428337555723974500857297460669510010943260402841767060622784617967038829898205593508834863972605962302061532103707232953695493873484203853681381461018229593715383279241638343534134116939713189557474755236150723382096407184006929227834386720669868526318229503894761153463971009144722554628478760813983168147606974653930404595687991444144357942025870858459073997796715824308186881859782957644607651341465679515626586245030645322467435958023424787434235029760571168567883023564407549668466404158353379713953028913413804403181709937583697655407321420181399087039130508622829755779515238470425039595489474214118237627592627438417354067010938578339803343054200082129324509431360122832466600943938588468268763919519070200803030921316639198422094589289383672928264402790252897937844962116397134909314589371529732522581756188000487139957237966280925366594790759837016343051724850904492740126002277374851161955630004671536626054231639073568805435658588935708690800383490008790729324409857437899928158051798624517375259287032377713525549567233057894383761110148968373264084591492837262222038429086034671132963962130450872442619895342093079939101917120328949049144567389247342854454813575502495248745931941786258508493300165339244831138596159969705163025190091315815659409396177711696464559432686613661736648138541656501586792048255076070514585026086349602530598333020591522735699180004385510237969105959053656384132720894116010459073056930932200983333442655588978031624426694748686457962824498796139902092147438270171911526121478410964094960615466508241851218755056440200859042925459866310632378400479130830592895433096067618169821288353167254476633416587766117990967406187823322325666736202390371036329327192187790012202410704744922691515731823877217045952507382950358448758089303880644528139794157905158753766285804582793463748855143178161016876181930723409881663281873671885772515598298324654602225089066642873499446702701955600510135096224099163572087896979372520625989245111414369921631734780915433443093553877453968472673804250461972403441972690833694196594371700484263567005677948923221835422339326824205074570075899644791538496807483850561415282173476089211697686436623000705491933739157817922286286198998171543345524513571280130601911278621632626280414775168205472059369696513792137835380129333821593948441771678751735373233719927791566042345611385993640812415398734639502555148730625943736742565678693511259074950649199614087858609118536982221500889256382313445093815456041723984882559513598685354362635774478843510657887340588878784446830070151585258774861329594982151671901763559467889654749948619902646500739429628094375999976505485234386746225772175495009792931287566291850288479031160070481675533577609363119622478631047305506112916060967908458463775967072793838275524894875956792176317226367181255839417337308643856358187637884180916528908294648892626294693452801167684081357283561504065159999845648131021702926744424587734844877974203829508347547591695042203544816424209666072256825734953061329909087746645791010696278720676821025540905766305511284350876422183528698682262379376312411933297828934878117081540401366212500104262139902654541680883702955860321390118996592319484073817404847764030089286382221523868202378808764211686013680557705092450146144100368742713763529149707444816464682396601629462179840425788541707293852096317980511290267167766967087696217827048930428824823535033754751760332426071257362173705649437128682733444729111953220824044918631517835706998187198014596739760958886876770663108961574863893722674695494852474311817273503409506342376701233857373955585032301486729409163188588777375023385765006706046274907095773663448007461793121525128659772240888898369208594480891280272119585260570349416951877728416989449584694764888516100935968158448564657702313575295889963173409643038660986115290147695877224761722404975864581479066287774312778179873212995064253793161089825590362696034180109519465142659552264287118355060324171313777139526386540305273720458639247187263336110707878679987904196842658150702759325343769248135452537563080541376353536254493932769752622869562817560414553589103015768046585821817363582391248429049158579013797668412686015431027676861985413546256571248125847266154165668825244708559220634468052392031515406861975060607052840340081387166143426876044952408284855643838687829862292226131067527220373695171542003695737948790535910350266064107548510142226374672768068472524784025609367293866940847525043736200441681314410272867262023254633842270163307227600455548862298684230720411407393704242492505798252024230251810132894556991508705762428503591859831118682434570101713580425736356531607280282951160696370446451555176365599878345560705162467283571045458357336708650853300251867798199907288899530009874127803217339459645034547761384858117161464803816706366538500780261622222913901265665499257758679946729391498505745280465654998315328915266674693819970137658386301653851470367193116751792701651990454626095302076537954392987195939478205149323386835242190761052412611267094703463015941775900598878839996003931510304756615086481053746249819398138114750466951040276784682598775120268724560658525579108628270472121408803645066495521911780480887845183423156132625853856913203913278015797624306644547556675952201271246425705166740290542825629980654612090742698489406776643076207144331510425467468755025444224958179407460651683681790558122777360591595539558821047655466094689409165819113026342546936497874419687163110172260943433032152554878614366613169136837529875959835186169868711476781038734153438956952457286029384877533854414398762131265183684975304305004227164721970893177610660887690799744531355474324328029637076937714815668019814620210351334311080295034365538615669313170298221233674561002436507834486481515349598348808034435980695362582768710238871899739675545673756040622507511494779683852996268407562616190645804132699123204064898112005050137633014228690972050902116932623275947663897585685396065115529523176965134621274010770456852155024900529805223729626367193511990789056457127105073800143464753107952264212746897416180437301348665229530538576172463050713693102985224244057624692117222816741628305034990012650864285053566090699087507607554593537247126123276718626677671019010426966560389138467590920615725037180296802823862451662106690811764643803141185752381622531256036631355509293183812781075392943449334309795064569496013517599748171046312597822963668149216369306203333533639885794037335652938321077094462968844140087429030650404683633586437522673962195497761118890734197031716814177569100634453892037033826127178545248978457197044945873550417862581137415033584737724343375828004501436954911077790750488235683722289432685207169802355276427724499144364185578489293007615106202575152712465656574708026507485891523923622720321245276937840168156148086451821048677194056418286938879630499082211596547784912487004307467816754333503087992712759840280438227093778775371330500329391322211104279477114263673671338322980469252722207937157921783886900454869756165025333415622499480081009092655618839285272334386883198715216071801305918975492420455419171132059517056328037035442185662678232542040993265074353744232171240341887363493052177108741450155816074580027671808389942160457973846538213514103497208770899558763640804396549176525181920570882335371984316997292565591632719571523601648830641595037710143634124204449255688153105128657502287508887777567267209321688443572649425157289348783184574976838131282604289476639384931134669118435920501316948910628703483491344630959736624728979302900799423905828470983197442993661620920096607687996802847712417313980862766991317401824173696758227364734577222716050144549341704076841289904401693787972801149870626917221042839265059576428828528055388322084803370600812437913643302440756426209433923504008807369942938307484201300110439517563347823342540060137187086467913144615002357184970115907377877286978257737125135446682062092361714792625120724604256202047516509762990467871471030067270116625939016142620589657462942316774272599969441808136538757777012693824646408972398127748474519358993479458150369520703107803531946127032707681722399743975713025861673334228283947527149801834426884086032695389204491583669121481642911696411585084434896032564467630914225012172771488882830423550427124660698699094292828113564982969556184102851462209371680332447464946185119064146973521580799642026873716773358623781022888164243014631086698808855297665820464679419730921010510876476359669277928708822224584817936539907159962225630280726309071227476812896021059783107231554448631861803881292316032185649881852294621639647417329135716540493065787190526752462309338462308933454033152349746263459447297119280101043043873473175155264401849735425581822156809584787976188388083310930612229385893357671694873699383800326600430532482881234339645272856333022471052425865002573506676698467187427327130084609642509104286199697613895322952687126916801674978705227657737743282449114316325903340445857690320744319508762341384869020244463609710380270124259089665152709427462541939459246548021623922814681356738649819401600181706609043993126245794165013033657224768906501484856877276574223962616520773082556362134311825127146897412939355382105706434555449436858629150575141391261716311592740272401804472071171770622758975175528564991057916230972630556171992986452082930303601300165120040597155391151584082818228419673203858194327324234040987495057045534391778865705624605190542412455834927964301792170261429280207183658524444960090080372589996282400867030932197128774539138458453062854044534056046955318590877921601154989910697992532240473833471658510573767358891750545437473534974362592083686201292194741330370717671350680005933657076888801159907306220843882319322956721551556976352080554361906938906244146303053259504224369197265663018200151651112259412176362212514641661814856683430346787824532819049395299644592626668132242776071443607200298180952657410636228346710158691167922907393551477633552445980045778743514903846788218144307520940992836670950287872979096770572789655995638361587192059278934692630168141486236200497737250320980297446277532953515867839209930125428918108813177469237287513750381639141634361615033369394110391039946782555760969508755081090663266710877520875454216408071074214227632410852654406271136859929840337434129540331055713884642229100004478053523294432914102556639757179946236572380847034949189515635606618180140583705757954244925117269101241675484953555454762506193897308153991500812832646470707775988059830330535390880237905460280774677251957640150963467763711386444448053657221123370804132485713556834509849708622560306823966635934579540763969338632289255542506688048082225988447490863139714771948186378148073581363015217958290076672558176778078420580352443354518308992530954247080669795482192539189566726964744240937716339655608774314074780964348867081767027011603891958234566363057743934160100361361149955371865643259181945383275299184237056835044548441621327719976450223520682610144454152811064783179833646553602770931250803319725695550408719305189916693005093031231116745951222779643161735229207001803691693215257500092551956208536553508352410325218164786687624737342158559354776506960347214164165033930596078428364642247253074038699461422222858412702364834766239619502094007213002814002790397856239944914784543236794721221841927145617873488463200642920450992519853481779753504243274156479931124705229229687624225419480320623729059482046357369146924118620994386580082691860335783649730528967716415402879036292874248721020441163613733200712398637162646612317665575258336852169039181482444468693751256145881426470900057098727675281814354375716776149519823530338858946577242191430668035208233847496684043573539168443240526202062546694480201575076486400135635256714259106947052959253898453212155358846719077535159994720423712617770400609269137308079279747421088974282248114581252913105033825596302575571379033468250734778078670796089435089866519991355936926720665530752852781605437315939626776951875404446176100315228429852765429994225679021797051471443032499679954300087737833087178003004019831767854665223607899033020720573869695954571437601486997778112096888906760288747938881222067126103566213664076270748049818677055980508718651848174101597705616401662281137223329763078068959476252736706591391348985139157973518655096821995875591822036757901561074328325451412062379683533516552767479279933915074893122043663864366705019103915640642465587487296030545676026708223632076514462200554777722098510539864093318359275554035496967390842117582759871186819369211441297625462827214828369955110608615576181781299218849765035792090337722369191778329825399887509909622206039445549534334391946983332711225573348171461065096442828293577238927296100267559604142589288189897268933131445150856928067601419430158713744445206749377242304236832081006618599963152785531728395515528251756367136309945213774655899038530379935187848411647817163524667167974066935106450514990487789466429498710266634344653408033681200889128986549736961766645237170560328847472351746846631095226066183302450684718638933772802700001358589913259925819692849214520022289679475217900857157198853174173574515314011158274215008662644792012131478428598558072994595378376868262505340217510863890415225436877694973232331055964033024006816344939102561030267208870146183168751638813457411781272812651298432527161808489625507324628867049564852811673551342098031333886563266952415795637921523842700113033484809487478114869630387018324193997008802429508256572099684061803717302065015878431995451846062322521904867582275868136835677173671364448534913673572596749240252884378210864227394692524514192541362248264294283338570337355847084035133248647016513542294465288630259891944042290480403964136216732285040692938907314579564914856019157445774947729872768469232487542351600919464306622406078937884802645886000840837064532314795097033578181175260701069774807612729094799182293962319885134050473757607295564569773713308239267735394555383044241745138225918385029186344532374326601976235792229121204125813690657623739456685971389808494292978592256150426851488080725684465638676155032609398325102326661111060041955225097853381043741932117757966805710624807620648062468091099314308611462967462044095363913460805347666320499559588664581204008052358638249363014276615943874572497902160396522270410059338731616019262326707651850426500286197256238902173023196299526022189926200513922287640959545322899692761951425896851891816441114191783510932907745846916769479165764366249138331167166316451465238160462933620602399200295022868517367770121851935514892033329668639085298611801471359518904363791134517922844509568591799616561259900347467244894987320385257649745565741047198160418037501071896229338512626053781664171926047877771993622757293447115986156340903742110406181482573563708399006605064436682291143067850401042193201005265539105846323289329882915844169816685651840828682000253375450453213178774390434399497804445765200161438275722467849608618073665284100551374060078342291525547686271868706832117903372100558292730735031803329762815359363798180499546357828067213756436705096084307516898368377979025714610078960576357456464520792344109232914437106688771213421648612797533660021719944591163240679081435705447976016103227051651263491857836558010220325431895733768445712971579523260639292994876492343228393542813763205738296255181217770693622367781582042756924165567969950325005092037147313899706150647545271953075076636640429333108363198645128758981836459669086845826265696660726780800028270646512729174817964411064335947314861350976700692414125392148700439835044540941153580417751253904685671261596464013146975036021572433797068279547512024540201237878873228411839691739963086542603482414552278595017341261796286542505473991519040559269578715817697625014371266414460006036723329746115023882497311626529683942517007016765920298277991286538944862847804115461178814439618779157201353455731441165486034649835606175361218981633119178740762249655573826053622613556906009945853388394681489753562781374601326026525367595784333974384095449715000964851872900832202011858605287605447467553841797328615589023628379195016012524002469850668382052840125665015346195940731491585947335611864389509642538029065571580342775001588012786646100014444563765082591049539077172595353713739659683246703405909433225762425470118664023707382804475658561413951553487288095048992268965411589715033857038288160800357996871978760829232844686642041438504214081776316024140988416082507241125646729494212348125226509333098979889684970675607354011367386810882259921886515597412079091749068465705428010569810426570069153993107590828774821850624994531920299421129532731638569865522242228181096705457389345397527844869589799101640710273175060707612643772588195755042858767608153996500430077286098787815672280571167307328453339148295640233066221839835470842145278524506809204534459937334349552452929015656552749705002983306343933314384791753831139747255061682455449276227524312266260147805239274307352496777344106939206612939778041304133630242318956367741131219280042251090214130240778199475437800060433412882911808413796103540591500873208958967948023989648914508838425443126255139040658249565866142744813686608248919979421354222870035999636436702777697932830252292767705504625914140558276840891427037159486383394200022357408946863457216376884694113622706512376540329004613274831668661515062685696838336749642635870132696482571560175853697719737107856869497435735418508845764952841508031261867742815624493609164111204838359160121744287539948631677690360414350936696115201585742800154310497550982058630753042351175124051414975357926432154837854836772417800521856617469619363112514736599812308665083977252757060303751063111231088712987460878901949970906592891293135248850013493498991156590225049457947232234901520896860509694158768024770582349189572504494685141507019895368977735277886377783121017213346352280566534765700822278004534386752699167020069156013025075556815323290795986351589285602893567750267650915169917713911194014827295528360972384212107037946468023888608285026938336712664715189523172030391745630948985790730456279920731178699351725657688567039448478080049298239956176324185272099587598426049173405674497216893666716796828977673030229831874306250885033987726340269056581440893349091426367678146005041270959878704346168200555653175468125299612302921154904149338590900725747771017886402728677439702414803584634128195254272203525108781078437351643882431758501205420057055358607494483678681967402562779642212376506543179272520798961154820358779137585693921194254775526413297064800710472456241788754254189978137016817058214754670523109480092211238275062317299924789141956057271587532601159357012499893096712521034623557897463435210438767511597657245205592416096188042692753920951686650874760376432931049978755332927297007360078345110624885578350648451095679034375986562199520749589060371221318680910685357280764855805432594686558971440403365573995605130639876516639750344490181300490422839641220780235668599932500648339198327403482743130252892076877003344220062323136073238862187283132085842764569145449625842989597183480418700289338828185972440633519303508932804331971801586017136657699164121025905213875808288709162071741534137222453149817158048476139782372346620063857576133227697157670823394832992615612772601525828909107644126674020085155093198736534578165537946550972934033112617844011152336917611452496667924338228606682012089101744374845321840574055515586820990355063565690568797871866091383137756446106845532990736446431835671754991514685369300229252052059449804356862576253963865418512875104075986471720863341189152543814244072673038443951277632982220972041809965319288132040155464699689112762553892536160981084307883367821047415680346511094736570465140391089525475632001399361730157891662262930241984207183154373117956407900692895905444459744934616271211382839635874357143373727959074122861179250756377268484873315589202108275030521932885215438239887858665224258036526570642767379283338678754750635715569166967352181809758627382985306147681422334009559608276856643141467253127527353083277777192066473909889422087215407957117199534898198835264693551858616412493403237541697594462918860499472367848838956917479434058170993014443614207129833661215381540036173955723969997313550293136963603593894891685275833057314138216185496794881178106565612483495354880546069280898752072384260213525255413465309008240325632156638644342410817642751623431206405380009328574383409455037216271597879739131241836872971012888531985967782150988994510898984506621415296545466688282007536152575271460996405694957010491805589273117867614698161821029202313669107914830917327107953456385356905069124091814892525069217708235256140536595326960764161076238890273549404463988601882362859102212195986812087566980079218969203181264556203841949130900795790971880770399772635148555732369251698826213297323733016241009320478079257474763785267090517683382216985452218547896558055867564877345974820660196967447733797141881482132514419710966320296201818544565960082844850588178471587604005525044436029069144794439301266305804558769316007389236330515932052672921564592045354354516381169714787594569628474346386012223648013146212578228485466400300728724895394080557477043901309238338989711871610064368975393224643051568623655892352388047007243518502944173495002668427519129574540883635189545252800609817378201520423737315658877178174767817411175184411812644103674153705369987517695012446272558278879225273233849527316038542491300589476052968238763058998525478951688997373235465968204069559577523242725550200282480464452503754118578784767909186251012227033502077446926023504522495831257812687537791481811362079831090208479095288129026649274836033413755785964876300480018146802837090869965695292183630051530798344786274466572297957954219415336797969001392993857126690281123566780192153685459406877881721697831105723193050871986466344005994301514565674173611669761970514304629190305442358524068990086325789748252712326803377655090056753376122926683236506364772821193537597085024334809144045962006013391747524602522022199275713909363269936407115648851102701219449492911372200588254294475135200445481266674277833413169608622603056370416536238493315630816269989977985573532423991275289829400792508953389582651457563537788787030988422242883679058959026767005021697710575895354845613002744172063873197495927032146093162265424945299062261172379230951050850720278325772955583436342871390473523571172128951373721509804918023577369342501196085648937820696488339817353949910822084495409734569477006501854968010894484441777103627112732296318782605682252335371034117853428316304935442501331802385845627051613419976220347397968775816312529257993423273117219913718203886864754169454114736974288914796663074634314511546415498692437855481160440725819516705574747448087568354383033063353816575780269818060320746062229742564318202073543377805079326470022186251175361441959839001970786393917856862926767072630507932908734282931609605807871522402297662258406641844196688870747690801807654785858292095991522601529777035099166238642983311794261427631440797825691398267162405047378474498670170512947754764935063916919609975141642784956235304464501116543258964891162716460857020894823560978611236070767147682358850662098388470761745703656254440739856272707015980414347751799435257225443356625661128323738387598959217425033232281743454442085729401039151315072643316845282503825622622372748523254805062539484820947844205562900605701319650345891356031379333095165395077586631806953074210609666863355421858228271245860925648274761556719114760554550660477079754855185851831754422082956972284628373875886740434060278433345648691864799057803491503535336956949189210752319435039548571171101745137078066670107185333835182832871210727840199913094528177511164524362108845226996667578181503176073236885412252556687966463461462263318155887793020076308753346288716744981545725139856414842543393941103239381537199583712985805995149134091311712905576618682141455695985039260983640166560834828873921758982893647322187794300532759598107405109508365315809113678390146235200538788336634058422099837859697173986049745631583495260735471441395792744594710461970616038817486465269994741180560999457834646383705242840088812492885460985250891147691455715758028752295200221630025105960610352483016219154628353764886714376482830283545129891366792994916705587602566725349212394342552099534753059809297797863964556396846752257580644763154251778003752648129990442441440348274713688604592307624521588070092835742071982853889603895791869498536788935589614556658739061861107728780225941985925978729527993834281798759451608371241624224649217555410640809285536268830373644311290630755858532677807846802666059070228622958813247352521753960336211356492724734026166197504361334309585443363263364625923124439332425551569054975092142762590484521929240289012703970521423022113522935974209465840896601898993623150495120101525160887873459245002556147110569334287973642187070280028755667658731759959888291959092276896799106961163009905229349202780675956593830508696734726463316684329546543918942898822287432311283778696658335585660872510426450420975450222745632655936667407218514940837167819267220808349204224433564894835437104491669125531446300355870367951675462958054949496115251604719782526446469469783349071268389209588848550980881460099900127975868240321360798675766522603360200402821509767987671421753667572603320040857917658712490041346584770611241861954965699187658801087214082210433192774910286982307047998018364374093221698923480646836116790695700651464751656833593017631606929802208388887960025440302871590160595848051524738535333285220478145919666512464520605194952350157049928648809475858002623273432478404958757192356503590585583758156173687686410660132952230828938940120637391382587228605302743869803219524985983693405501920077725229951629896804079291526304097826386742694666038923343863958960915720295467064921215884897468020835750774313714552834606717116189294656927458583158596439222416226798364977422750970364914809645928952997832212862956891974015037999794628840759664669967570656488447573276535203881413755203229636618349107315170221196585585752292653751277469147749752867242113834361008857349605418458555559112772884211353917633589967237031045604117175321623133958777547737091876473158033780850234974723332485019858719865999595659968583849530790661167952340051849897507004117337890949176170185314746757833887965283631134708204562438134899260000416251823591267872507958971464171096371091009765057009408199176204774203388639031138993125347108283466768976880914088535076087730262860955718396014105794079367770440903835241934214011049436864154624091329439709423674196580966359902843353719682385357308920896633298905371164608518049448853262877771980526076881585399015673705083255264635584542857699862902039440274712267622623908814678659675775795020865262720554617799923399121440978087009193830786732832057751686915406169589862856304173135684201484878141977821639826561302887061979267391814814779355524966068952993917278033262527748294466733725845322239898962368863768446520920728087437527645805592111989569750068594877739601831517989239354671464678097463696291615375476039436423521310940602876674825849895550211473001917095247425009482904439809040499956792365977925557543441652421345054844330378194968354791305174692464175332696032056928615419371950696973279037622740976115201965507962309514218344091882834097006787170554345698675989839804507613569501594126313984782071445869837050014038779716438493436367248802324312213218832788379557180504497633095379156554477306264117132060537711778780124612855266814247734481787861174244659491366728337264106627052362061949862480135835848316058945201082143251394190027411586609391652565332595975863837770650755506891421679148719567868513324247312034653575768977094596041763155302466229697057988106862555720523710370082335875628019165644215056015342505701985670754005616756178603470444599608357219078157149153502799173657778113449721258643417584364989853793611025193865711113438081011569251108400504490651545465045257510262135318136018136297646114341518224585839748866548467398323893035071325146635775815569784822944031116214664230366804887173721323617588226899032372819398663668032805667147391400596798855085464210510913603191472291724347737702243655305855497254592300493984424203628606229804861428210798028548003280499621518561598751876676636432310164112095805064536906341055814446372290907852906150684714264952659648025064420941025679316542875223867394764322773481134664446933215458785060966506616747467074961095547938423293513077690341652584897314768843965486957858062956178872984665637660926797029727216805367371339616206301221111798040764291579773702421320793156438207101907550335141947436416854916324792960659955365305980562801936253719678191080536022045930567697108757471943707052278250585123392293430820112748307002656405802837747424257121368499640991882994462471713151612695112887128153885901212725649775363361960985709209313012900066528804168714846132590794887681188193392898339458381232639382948163890028785282942875998060548014334925802889939831723697510078433061198297747121283534577652851818467978029648940118328435956281926632789667450163925627279671493697905499498534459422327036642943089610791393429756302515100450124272953656784435933385244253116696647407364311454334454054509381397640943788511154440520092008942378291358633634193261175940237879854993858089311755302502317213412868741216612157770760563063394135542344814637795584297970084658156991552733224204799764680058322878203389049514450416798976928867632177675915086609442127684972679008548849885096335455600286749768150859175241538877103949763067654679474234205877624232240018770212536078426580408534247755006515004785900713311424542430559988799206131612846108460661926367455255025546947344971649464030162672195722033206051527954357024651672837759825541314701339287254756725196209338074774254084534051194220575034977214816502908119942126269299615946078318228134842815616988838247802864356527930392627539774154407238150683538190894590152015020111515032425110752244754552865502554597399574045435659229822618594081045642486779089328261599381857250509702537970720227595260370398608101735658355455556033393249751327186185926406832610265451115052573249489673206334574962388988364880497479039190637076082406698425384513756827052220420678674500339674628332018634924178550769947358867395441629758777467877685597991571804219174786662002010552843964011532325716253040295814897287073571126473606694464573256291847941660501603359229281954241112821706591564446721565349176961722998225346338626001664089114145312597315142425634745750879857843537235733170098121899158918842569973083575056095035426602795008276286897238277151071667980799644445027277049577414583500088952558707503726988528291526320806015300415396778770219903728422479665271133766673435424646664762929866282064236683701200831642001220953611188738821344873194634719523388288187602570127176959396783746729032369225487912809093637234757441665894603208979321440440681163730277255613928032338917674120595244706989202543993012182748730520346927043788510194732378986684753873535616658026711569695269523448491789438047491343382133537026247306811899017093840348751732576825771074099161436812242780970384657518080599799141693714783458091924463999612159816857890756346347453794852954202923766969036593505245363497254318972482299472226467000457027570335113971443404884981102703902462355602457688903746472337502789692340152484067085213822476899344076577396729946663502687525730406426326556766293247416044850000696070694650134763240838011807353813800851843057969385944282955578477326688723152887123327791339110384902474736306528859839290502212142572408371605249563987323607819969713000957578620285352933103046127123602954735507973137685650919444326994737915373159397338325963198159434564169276729198850877625222216322431191463101104874829122284068654895419286225501753604536324234593152288965215882335482849602401817226913374117272102114707132149074583608687252415287287416843958976519681186864458768141592742832840063383598486221270150239029537385208522951979208213641611998563079083055001073304302388480757880955406230220694673211270799456808055141745391786019617159953981940487810324254305341355988279912819659871242234576110796851343950345520304196001296721907866474929298917178406687879149098994786917964363164232652906917971814713771807421251299166593883161395083709383173070490632064143757600535196915195396760343456635594269156553097108837895369914605587291175795039754394737042897913276869293606089549685902818575452895474317497310975456155937351509939974833122328274421134974584866541216890142027361588519807431575143931856823078058281601925736805521760118830335204124053475946740201365103649168625975594304091047738817608987402105756906052905533769471852749583857329583720447969864415738118288673507750237947191790152554437367889786776029450652603704370814213179158803236390862396309027921643356993670850643925905409532309933633524776464581741786982675407338032636765329854105205331407030030126996529263237345821473523010547511151654887890712642334017453299414006293216464288861011533321278132870341416773587692284367970577327530453706400158334640139067809338795706939700354625835018650118816209874418421268784481812688556003749079403468801569255367504667769387172879581290577606425533665358747321375191118271727137061994198841845763208019669387002317974030750610219170452676337399711168391357074398585151996212814659286187863216738875495430612866741314130042927300453362029444461028324935071721879174251370630178689973538625111958759924658596204263564164728654592695658550480315785820626829993220044934686823002874676677651402441313173615415552162028049401731362894320601104410925067110920229322027778728236451267541382033057016816875215834011474944026760941268834383989752912991227216567791510989855298145918611229164566800175662744199687123495939434809299404115665295654194358581898663747358991387213746403674660854788610708465504291358876105456152612232710283366689153403422507816168434353626540080276176572241229715706693729400914045804034078647390813432296049901943716011755212457935660910601909764479761518934178812990555973712371922203678552767237465393692442218909517993046647604396851010193223751394742642086381999755883323272847925187775506455775050737541500667143195296156002764854559898842299298408764658299288711869095326445952754228318154466217491824200563620747995895268578271834969236155101069636719409735140404255131962633277140151294847381466546007799539150936878979365133266078952442603518683506387829296446567442429020690657498586254000192841145029030631874284094564137025150300867531409958245617896564172754607782109777679422253219754637361880922987203892712704190061430425194400822620745553613483370958753933507849036939194226815892271874587749709121680527019781085911997949704189696706048321900181325836693044696448443515487668266707723434923792447040805321380987844136111305508087281333102043611673249674326661512875419050277333685293695929420539166357617895879711213033145401574499712171757044311808292370359389646997752946133417286317407689167179939670000555419248805995031275636675303745282620504580127618231380159370242264007804896298907942311307224202900614810987955813677809231518068234393554387544403569757895784811790303258166195786909229351434617290583890947643110795994701068459591963339801860272577093364762327772537970184859557088608446970412406948354001162133781048726862247021074249773728090395478168444697167828755099228567790198644465639630746198117754872796460170015342348686093586483550619354978536625313953866411832260036889164032474584716128445139773334562015956772149038729455095570646635097139471906513749380522733748034190259083197533302750438618264759672629335608174995125397749109825897407258026053594313055036405555145002770489228080124695610619994236911668654396692147743330220387868707795714770954406780580843414302077335992418744503360625342783733719082669287571247352484028366948816828015586973528859381491084052025849321853909710829783035010483091261920965311105661614812948039627558674655793586718252895281447229228146587775649530307312949136025775204081374187315556404880855979610674109361254555039446062015317815407303552836650288893886106053003690040549099406888009160657139300356535723748763775618598889543236144461844474545535758449902437957693844667457462309108944386479334375410669999150332867432754240665132327778473720583953082465702465240751865705362081914602085364787941407644226210103561030871899310086127299481763511941949326737197859166237464536537498862367485907406951795024293602531572811140399068081661328789982682919482935985585151705024512784443165595152637102841492785532129270365868174318072451962393666078392274338479943647362077260876968769722709667754149002508560912411606902190679465910757979882926204813123075338057185172509477573224087065435996571658347001837230580034763304982563982102197658221382397141364791142617324016752967429347892010252217022391317046228368744623315476640968947771765668847407940919248674795756376720184885248556877246005134217862733805491712792162873035178627694546198770384394106294247215079089247799404286891872010628423193116758583558381412050742091169642783287210218598938152904161693282222318937712140015631496675117472942337780379308387452346316658526680700836513522792911949281126683233371811291343314862888366342131020452158725756046010025179261448786629525740409847780868503057424683654156095413833019175573159693187089489654728680872316660129003107164523778749321064405923168383308430662824310787890690269658323368805278940255347705973779232008504484525870905494469723526013161261114884177466443738138292914688406352372151986610549774080290028798810512481833823453921406194545919270553078202997819740280754796671168401294014613323506124939600374022548570697527731385556695760786492847883009839446660493364058684769722249766179946941768555438217346229589862200095800993469378728914785182958017981970059356928530519192883721905877123099463206135407688796957304498548428424115216679863508016502521069235733705831750481620614550528372549504506174385589384848193299380891351541306557764242674913665978329362612273139954977865952437402605602389632570377729069237755720319491888516042564480101185966589838618406665031590462127882144613184091211668195175238388139107574480706965296750587862219778312423388047935688689374887767718475546103853405645549671990170749050008222563129207588611449275382414249616928674541054449725027848366529957481942772067581604546738154887356004394480133953896859834908376097285671720211406018860375152161747452572837763220431825376436966992122227720878994285816829069371407522284073837171107740215854485149405275924712989352741165326297807198520065903859558064257382211344067502239355167182134998382487480297226063253995233575218206354135911763995461770052193599879060787700649253544988805399229571181000615438681184031515085853683267860996369006591154580983069049853321371371129853941749225943197116007777624155056079889914118421101024948587646232607034712536841715511294613955345967392155125357144600067631774786242383388985310237584294864969560336525649432936133014273392605871175146872416493599812958386902867244047923701062115139439602646619764035614058192435645530898392387036440646706569906130309787333866439363268574315623738376762698314703318123643916764792299909127632289132711098211667730251641833117279990235179966328699587296206028064132490492884235662588887608127018838243180016209576687881569530033326899096075874087244057062085006029147563780955577715252771984003956756173724415700862361674935196787503681317766955811201786112506498881089576206135376477605093370972613582338464950654502658795092173920558186093914927646378092643897947603226683634573339893795347815687231695604449781298053068041675788951437851021310061978336939084871359185000910332356178236093023778109861859596451359764654857468789274684735620558193616968392701269607643905540932730577024827767878237968958192887458771396187597012729187272855607719668971928031050518896780071910081351595009191330994261087770093763796742025780166465694570758694598229610742017526577005761034415956990000995364793299171918817500750163830821435869244573792014436693627330494046427796148687666532780895528154420411764856476869293377277956832227564142704148021984987240793931170304868892763300804093714664650210543256260481127021888912096327082219159502129527146449284285256836783498608751442429856811231200410913702576085185817318492444124292281179417509170055141908154576015307544746918727773143725996977185153703674773769349965613868049689655121881335609417045260694302666862828340817452828662876424114780589759429422023007144345221171706151647906513026329286915723008639691696384586661609485571430226504426271609235875238047228207572428525014023214216708692912353995973071395168163116916141893969759412691256390242912538216007305767972601436146829934237475997137164003895650908327895553897677079883607185757249782172087519327068563758590658015648065092742845337528342109392648774460965345980622540694502157992666496347801561650655730493448424570441570204964461771167795619340307293352158460584904447575139115253894597063147588072453712672816047664396866081449422226652117027821051862272826512534068878958607786721180179625478666152674479556798131052737522400323822637170281566342743960944477762420351091131307225930512020516159497812490283402460765262105437795946157589692452580730637261414855834232383085046692849222347623554369394014049915684733392972426096667331969359224623215552539875689607835530160087119232237213274675286472476682198426510139345402481030155726698428606299116497960513504605114474907697996646673362140358227896099390688023294214747003881396341590719986139551023086696364971901809661678892225439229844508597397851453280948687794385304497210090466747195215650697714906324319077174271708554808246563316664059241951413316404263235831826578899781375218052996902485751661905632204904873953747291842409552757224650791641682240170361456225743165030191851456725129912437311659171516931575784858236499370012363079478029328313346373670021447042312862684241802299811112986159523597258621646524870215381899985762190492223770541567637744920021035228041438474463747151883435739758689757564195288165525610318134196783385378890029062862204491606494081304766303850995260777707291030974832935330325437952335425312200461914797567539931008348958166288480991341985859577870087596320943453544039620334479131364891696148468928894987684599007468903259611514567403769250114817236866665683745877139118907508461129549091750058448930008942827137306944575273348413862042831509801575658983764189515346641372389430936701096129535253444561216033625667926456291975441362515403396782661241721831862678016287455844402868892282721707271673087563296658884838492730978048291522764205267516828171620410260634637141584733908299840214737969521902917925805896882397728493198943255834306915538086626390417488014950991796259456859116377514858396973882493042865139115092241874212401078820175102583727177446044957370559979530788425480476022054947764749815741951796398303630192131426121436615266424526369640648924515181751907884714778537747873432312502622712896576495835978224061150855253890708741188839149828325179787599802896874582530120103659944493006418474466316545164024782628662375317228525589672534325631421005895705609921863541856726944485003269832175440842957582528060464219063182323835577581377778327237421581216259229085796169427401625883556170856208161361853867424572786541186460456199864326049793800569079746233317832649757841499784789711205420727082519078667047959085981544827644448994274731585088570154147869084963868489110549826281816374828915686050052254903837833376080598101318428650684842012244798259199630644922761139794372256881019557062661534327877912059321140302983852707193479292348128484284225623517108896149290013726220508145372742463263792861270188171890958449743788318251371849649491749078134578052486720062024085756011155959402872025569944569253518246477194763361333247104480379893469020274833653264708791744235099765722559715666375516795554820772167484887687052177005463469059960134543945317758168451394657835358342888747044790620986723404389073570135980189195882858902149535668893430421591872973161744444108844174113242792351311527895469833972350388264587489141736726381107621369479809090382712834800126062173600369345115188254239371855816439704066684164391439313258743435338099228480833733890583037823784338489996092491730598728358091589933756812418409450442257689958474743382013206650243222066727791180980632530872064116467447887638356868398538472274938395183205162245680841281286007702680249839940423384057466326377041009190263223755827387554116800381658417903926287975259438181112442008941737316861062206539140101168892650777993625059448299170579414194285528801040704944285272492129676346737538135359760723572994613507356711686629598912395563906533058143505608281404157557630212537434864876374182083263992898535560708644677294570620925266246589304642169529428901220651324179209157869351135010707419277238296155554159341957964433966461215921746049414947912763957464267361709241739860047291445851785344889626058829554320813130412951778660805320995791496150088571069753885559908445053857006859418636429754783588442875630471035050554461482440103810330138832110975520641568259096349455171251722488671134258571264219920796383148863840305118436029987276549466000957466975212816929655291358179856901822835371644864597444645262315666451564367805147252079094253706051275400483787637914251785048605125211895857958428849807315237247404500563240160847508521454539240923393962172239954424478895252941812517469921147512831324099832140797869032533862302167437637693041529048094288041202176862771068333180233387384707816261617494100114870934516869980949632518685907104841543182304468287489640332134552124115869786537543821329827296446330541523556799518009980875211026422117836281757512109926478926979584941178033986880845630644367506457051119574277393827794681038235425768378102007131134534325015663172391207646013728605399193370961003903961833985460745619377456895369738180708762092657697925175975917538493880203101766239009307177648231600250342192242087754883711795977305174895524186237252289434050707358716528531612721837503214759312081293833713234629302982887631719542278239858149964639240202420048262785472317961077496881167582603471050689508482531236227910964516660669332431974424654673393433820481475620997674281433848730330541635604886396120044412651534682271324725223489406914417495951779762795688846293191202169336039546536135406246055181767532774072350764126815832965767655277364022090228748276979224409342959588865969292794052380570852171722745642005932952622280049734393880953494459259695752845479009580125159125419936524881733276179978424084408339242374128179211663334994152486942857951046036658318249821483887487704994978578948047676025517367656823441843231003287319264103594495298584233075160240957545321329258661559363414816200035761293814333116686775932008368200181502047238225475465991823303495895575959014323548898254495136757807810419351275229420487046354784106510301659044024947459557145708202922413364761478371583562167559182280350529546916571161036937287402149846076922454749595745970915422047347096185085303931753120860668824952336657178788803462548904956406827596267562415213312282401761821960313998672371550589369902898043520936361559276511254662831534080276824094790375722145089143110756778872045376636868545114692403981857650433251635435234897847466943748304276851930059787122049710007460233829724252037723598851215059648672330595789267641770673323594378559351183931315410333924668155808523904808776217478048170452127209073976636749398096578434082899648196597082659556554397227158378813085700793566007093707492827087667327817631593183412166506325433882397700078659812680450927122884298540592189478147530115966387758013162585244947514963967726597296729813576480809451844222676098095495980923791460163685192908557561290306205694434905958706322200210890292379196152558704066755975863148345512554562457019230183223383612838932270459787613001080841856286248749205999161717302555521297356444895267466213719882625280347214384687907129228052235425880610912414319128683720805722020897389249647333702134556133671056692520792143602877780938311971414603604798501000384670110308023374728148377865291472180988609987962880075836598444348487752454601983810661577759256578967911623436130685684845271645609576752086087254269468790956975908672842448885512389123184992434977524017887393207041503998226230507450908127092421674973771339621698450811397842283564397862991542037863054293133810697894505506467970414313473274761444508631544365103498684685717012517872074151782664527581616015664371742547062835981211095607924258170046759843416373371812943657654786873261272019616455180646676756575460732661828908639279696068931257165190379108199090729587104177049857008620495261745707073756450082587801856622069768401968239289763733998227524239619074023003074670666492840940457933606346363936323324058088673651675478364694816527288836884784617341080349078735633674993803899447630769827457771223870645694546625328744052836820046694270406067013375717069492636239243649953827009818928928100338905946481310664070365005287432487261396498783722857101324686153949179641831915641614463790085596252688356733636803910664620314701809611981994444959816264092343976585783950202631951224518291988813814033807483347801411154625279551783156611832066081722300376093764974687341685915538633081373965084869177791378006238333118197572787093774300059533449123274574649154419991287192400834228576382781375085069964754321919775454932645095198938359161766237562974343220021411504734446861673941144614826784479740822867969839493347387595705799261949277841297640787100919905256267176025132537797835169590064727766314501791435631995212303927350773261715084642525246795803007661114574126939055567200231301931554480763431001478505614247022257377027466167408121732652099087694889103841358367398188777216168816870828692747174984626538389071533127241395938568380901372735267715370713507890267087266345642268872619939195112269963940011374562563296297932281190896543161443712991073668270721050338967927915408538227171307505530455816118356060596551039986911146555193284007142347645470390366390270515076989307928787174430385840754658543267136961911450231702280300934992565529803564485318071458803263918663416129011739599137600081640030474715700575732065816648614659734261460890350068807250031468614468074536379881969284988333387221130349124272870685915871241005783826415947427431876256497502964585743836233312680006405548730567044822752821497248842759685409187157834517524784867277428161212532554291637073772751531940942926586214696677843809624168380406673256838041511170946450638136062138639137746891669955706991517462511016226917432607236548655128909067964057880599813571265728965879603741052980587010931058310660408072644737308138435364256251080871509234195421183289769241547932778585176361448187259868683535896793816340257319085437135367283714609364114914929471999948420236324067382635937673182401598838915210243858548582057262624898113610430483481671608146409281798240021707836795091846879877532801124947278492985966328196172129071383560634022577654428597906464624548464922999729066657489295710487367722773118225552950406064884493947646152808111473293473872306230615237367268100435818662198253719913596138640672368110345133456801529494088817122545383399402393550213887666186851027418618304168938072390304119989281919920846575819537217258099998991954696473892530073636970077130354363221120673693526867591574386286061149381872912855397052300508164716116645321945362666375579576450126592388944426483589977436198731369089555629811440048799770715971136766151502867697565059116985669069760941131318327500688473757582743290064961783186388306263822288929355017548322989725061068152770179294297036872025657862401904224882312260275024828071704385386880199062846846142742702648142881117826102852349498491568755230719213591925064572673005554751255209057052999780536402233436043450151768089190647910262044602514562457767127691186753844916578052083048910199008241468855180548674949484015395174767348843710923068798971851268614049862159918287627892470321096854063508177533410019875245628521447589041806875429046531474141233719980551973052306627326242492386983363953874495031968682741747725393077728954757124431899548908652163086171122423513981462495047771917494650962169850332309692797251804335494512341916205202213537396393392385298206412278704418476889472986795731208807530461858371551058846906166546084334992517132813889277962412377836007937163099012923632246908793059722072962345922746703084205985991849640056198174440292284698707469283106999147571772780537910346952549188165254489977789730219245883616312569958747843487507804884135470572121331836254533841700653268411375474331727118765701557293503651370232086801121021909070366161619248111871963512837906819596708973782472514969064987932218782762967219650061359668785115389033893420428889211049325933524963200945127378082195088870060711690275442978972070182824769545140414452161565401603988413054638519048704013131629406886851093984319689528876880217360144944449276359962704795971495467400278951810112221981127492556792698208546848240351844901968889126711141418479053566819705954826567507153127485307598805298752529570777674530465902861233764475039284128020493229483296051929518092992530307342176692987288695993536235445488427615703239639717283665092754394721243635480186942483299738965264894283987294483086743896738645969139775240312789364221760317060329757089809609165408949736003754271647482928850039386008802118541049270743111289592720544150748141975357830512916079364693114420226337632228632845347055721827540490243222359598463068742217990857574564172275974817560144533788854795473669417139369664882984467339768921188256121485409632461301057978273934550803645906750963750990453218498570224428463274902717532115390974950321661505317554638464242317321671600734720514296160764970546801553035257991606055655342555739728553330176222816062267817244232427829679172926080653032467789612549141011386550840408461333430114026736858965900730203666002795336549481378662805468153482596946095433220414905147858125221747382638981750685144900136131335705014505199007344761147861392939789230364015954855665220815438694791196624988918914350337589850253427980154039660591273317943958324616141827521595006213080597311915657422546464415853963007567243410599645613985516400785564261216937076890817703980189158315123933394024923453778458537838059784687650233529390403171988671457802044331010459138292396900114982236378116218865506235237311677142618926611234404134072180412117019053989506789239328644107443938933478847964459601896966800403610686769813284558805127955038651547501373358156626015758590287134067653834553655436259680072686462753245104018090846844305326049584077965517888495017394758613978349079036044815717524429844180982240291766210455275851099594146486657542365693928883843956991563861043833225542730673652439364262895414478168095292753772388492763599989371854652213486864124136503643940050699864746912467751219480765700417041016520939635462364799341557110255503411944139561211299835740358940479479787759749177971537898967230631094200406899492277205168111147357590218965489850082354270966010682670463466212239855359174881114467174184047201445074626353496020502960597416875909615410656001927585160135003750616417339404220692413284530504370447846978015697369210053296155484481994097557802962507349446700485284471720848488200046990978043636366553198375916889764228039377112889399226584144123406970254752671440437954523578298887004622594221382857936803025007815268494961111320533105131937295758434012331524699167460192348212899216112490800299555335521036590979224586224450275283702356419244462049640767587375505136090170263435782599696989821601682045298539306020939197903858936588275727509478590933381606182243113518773497291337621926774488094045679132277659089112795742240431950072752082151846585025194178881802575963290388313911048664828780033135535509536895773562469233832818573248284179166507941180758580760550986602630040837476524223159541166654302658961433232553037694870683845172694859189285500041606535324923910256163578919206057180448018874134597718696401303741160368594442071748246030599359019205055828837084868433868086617255996770878748659279845792150171625503344363332262909642554375341350224392335139297293425465342871020030271350119062428558407275370164778283688340744271854734895937144675895861235548843274866301841039649431699835845688235176348657839053160236664391776995436234190489680126738597408794242258071291491443545618569732532584946520946428606467254253732148102533719448102270183560328226116522997049218447787277435553336719941473946928612771006350403243745083975237641821908301351115648443733565724821176649217708998790665584823292582612080075303834663079278473712042117366886302611969211878809473026679610454327782889593306332708088839141139830633415262244844942717764848172921336727108241715926589446638208322535503614346323717124319580139815399898716400147907110649106583489826590715196970487363388098003577280044366253572680692012368460568515782177778342617126081667985308300756225465766426745867417863749550827232528218788003535046992252003964001506905107699286849357986118613405588266637175310871094820773135937391185406163826390229179267248722350531555542491675283813908443326146759149081059386153299919134159375287085994527893701530327321072815551368609389592017093060614475910825417758629204891815722104593072189290741086220261443698882995481918812234596402627065679892165649303102667986674201493792307517419100832529961024141916068434519595549151880595573286909973548660164936913906018373561645367804088697372008054293977993329250862530781619883838469566545402626592118789565972466961972315243678103050658758306148391228217399015674423090745588669068251599636983910075182578536302091313688785462013173127279218324001700879666290676584267919868483715097552022103458606476627836896771762424287557777038504864575489168256255011490680622149070942980973133690323980942666754104494780154460247925934639243293789536233537228363220249793271581293968671439169035741505190903647347681651283617607808776383357947232445338261317769010436011319794514645441954620525327837600279969221038889606097036044126686311722998002081499982299927053466104462299761860607843926500136405867385638186756990181811195351005676100608074806916385374076514532509876677992996600005404010489402980716974886030046070033666385503769906883425204904012555208279553212512559819932981312200758961712304214121118409096757303814354471669059618944066390977224311801387746013344353873842866051185850103571008539280309493213824712986459320189663491384969016728109484881099320233061290978858507911525539374892850146065963206443950346122206513388514983584012836588410291740416203695739668239053817487425643047731639797698441399095883612026905453950634865911220665984534219086558814031697065662841823512303530455430379242631311005513168314615323416624967440844944523791995566183288233097737163565292386377512486122858521580337924282935001525163729074940010826843134966564055507450884276677242703576185814494012804585591484723622515435387552478859986896804947766781320680897920904151774379043320183383998913757429304471374038754564139046684194465539222061398832029419323114368940621224066143417726735392240429283078523808970444300289816207256335603896000477620504000936155392181069704752037782768116598203784894588965791999102087348269958768318047355033614816951946775706085601454259171472194082785414426827017937525493810772313999949226896665303872366255288072209243844027450026232679366123773616570053903240989082177047005237491400229656500845099590282208062702602013943611907073739565870903497223041031226194757682977836232702926537627946850003782996989690779082972634115529548592317682807738359988859070816903913601218110583004339429714731738904582559687572606917461688887192636902702118539587720556260225400966443593193200104795774763715510820798098041890151550914850252741408172292207666141970017488359949508283690574329098072786723921682921352134295064596682728009823006163852772652422383967157036460752489990073083598415362155774784459716300590517708628662469585421525722313288975255110730990851656744489256932421708551279881871130717382274320408405739693230032932509853951144876061854824638796629158279950456237811301208384217029152075891480136372144487451196661289132727171422289841254729536654091755481011869511032172973132044265859328319197348321156621777897410006676681829975657551268499290660512288499055451167813994433779242546961274687874526268689317163093036961034419714832147437885142513051801207700230126936181615975678288383269604672451600949242975429847003256827606142047553412122196210085067639219614102633305745025858213180135384114289736019577163748558656987300423001354684719440334386383924241831812028509042646343220819660939315638151351709960181379656564312411550820407015594562578362986857326459810850631792919689714980542057468475089339658350881336690728045345793572152642361081188289581068563000718521390512445132222864292430910497354839027741870597835577196330873796007100288955452954046721039467423093342245270012711786467646466000791026778741879740042787559411038983692373017969050063184959102734199166806039524547135336255340472866695373176582838904320140421168077712244162624230300408934769470004017500514046882300697277337258853025466591267814191014044526719188745329030501151523557234901389162017435927493441696366143134094493992318273621616114248883191249611602951022434877052130012926236297545741165933231689999385173695374601648960282154843130934558314290948511162568864252992227641338434743832196498850767105587574739306096631574821907152433695285229603941880519372145209571921770308578445756602848398732946991443388831471673542488999606168141149827697045086195027054278888013453201176945993576362138394976490285336343697101116308301204161529315801165690553163335277875291421641661343144687248160842715616414595478034258362465419603726774984557268194992018170543368398842538387136518821538122945066339533028271739613186994692247741900422393421004561709633553647525722845758489565643768398374763697790349778690991810540316189660669889822290766484493921946649248128110129925129957085416609454886665816842892459534822229576040595717341008242452614723140235424371157399709040347389170602711409916802280837112990661662844015605386287573525270232821689209087311021851733939943959388686750025172990320580042121867165291558421101711673713172533654774970955052551478093656345872065169234681260388581535184425810525424596400173397347512970510148623081002525949239890651777367414561554241119762532628676679248936570370104450789709332911060433712787673179040948815646608651061576305271418452373011235213936984042755744212715967617592194187481973518655610356243698561121196375447381430144257304921151351838632880018545299357167559606802726165513565528003027103113309162463170804906297175359886215803365241355589536966194831676170836787543437116986866411408402779777549277099586616553290008490017324437952527775505533825082809128950440897162875079757080233656873332688106646446177711036948345102173824582679451259089562133279144347627724817537642995291669182214736474377690372756648288807621069451238388499551108518910730340377312453611255889665909517861468800528798020706671898466588210733864176886985643514618774540922348000616024695363365118141531087770909135372385986198942078157360819661762462748400910173113616527438206106755522736246569369755792038137759879892590449295707222104187218888497468339319587438827864000139766312987414266250609090551248905594837870840570716679418421915512191208510124343935421139784223813278347114314472964381585662811769068415304442302099665572201648033971654079213540691839084026085448934290978424022378868023932932020271215650557517328346298089722128033247286561642039622794857742335111437832981346331187739194698313508991291519474400381918718085088734105821779237128947931536922560027506824646912141011818093746979665388981332137930836021668765495106263903513463885130144057519124053040532779550427908858559555531330494130217791569783930957930452764969219217812338695830735740631468818805856587815135662989216112457611835911818080972610503009573431158402472548438220559819651072304622742811031471573963381616245793487263180941815159977419778188241556125583872261599663643136100555927196956633341929782534896264728586898705373442512740153779409879220997549080574682743809102870637344917258592889096532292036275338207737360408135423406613315006508475871659363081220534386547635112300617333172623814618142760247554888742128882640749451933085872229142386122059811048618307730784544708317965309873512103372575895210722351724970332169901954990620448314178607960983572860263044827394495522657373014038909901733984509206880330574478629310854903051017507055875751564740034971843600133938276652646075679237718055355793156664553104218356725995941064442230679504021007920099402376802869568815317741806431508882567379382389136534647449167369661207036935081366597823864108789162183218844926615941097482873633135919560644642509965914965538980476874257698729566182557898928455515414749616186668790716117903593659671294902419280601847538603050612147819180540206424674150661244787828753850196605729832330509276156197956668807102861786394182938067084181523508875516288930152545086494325149566299472317291965898422966547048804510042360213414210902350672008595050163903107538565564407528281886096228787660025582348755627850303906087966569957202930323084923806961995421542017111235546653314404238172509974078994421829426211763303978635760617117325549942101357033550465677742033178345403625900319363964242327337495415651019037425723799410280027522729842716480694397740414309444698404547906007080486694503273610591932186881946308041770275420114523956841167560898291663032861259132357951035332195247714952464411128555740384891772127323963206428984539407741515284605020791012310944994087427615995993375064378744467451018487293294328943743253070102044889546809851700755414583050410882410993407865797431694584555126191702751055513425668216194994297034495406176065328988402850580873466181346232773760830279459927346581920495731775906840925097118938474775872035085028500268303928682331561007310163350440055494997419145638126037759246953211775504139752847743246657364727228292928156781654759227503156069940985419185162905940967780899398343989732213173870054971823593357379024724023800712385689195827849252437269004713913144280181640895023769441366774883969423377555780778688939928300795538154302048673489217976553278929638195476125069076396810783345566278324992565337901371379534366694183568180642869623550226510648136940242723248536000579345365124255478907206332543983362900798790157071618543953698234936149560837675565177397340692971919005238572587940020373857339076508218728840415509476382896207141233106724356060559034131068544361143931383472622500041659685121984193950524379875605083670175685997270531511109629686790168149937317654635347806024264508248307896474367565515631465350382621044777246829082287204776860969453229341126074041201527493281647060463014790796929930573209039336943444390007738564189467106431445757550213871518804428086525699696266560514368927372916641663023169133992684495868783896967253388467756451197977352746295667304872769367601098541549660901031967958837210449809119866200955419986756671535871185283755999853192779497573555240462437010150975161227685389595938434126901537169309974808284973182947042931439018450236326395039333640589547687111717542189331112854338322018088364706439947202695137540949751988342723120418690667636655763058037837451975762336203005049558591453024012208440507571170662974171312639548271380834537352662694905398462124763799924619444492243053137334098926841787605007012836811294221499785445411121959692350084089159160053159945360153095500656293593247628427003856234032825911323972134305921927279791591602332316592612432156681235101170095889290882585057149772403568936320870195379918773736159318692352225465885197992169570817234191764472029494665405683793824388143573197355233105944810967332884001165865244623685087709177440693840248723544715470589782848636755547535491816347617855173590733689112950382149939726287064824776027970927556054632089655924218427845107066239556077326677689619256165286538676423328149694575792952179828911197786318615257502800318519254490522837859766238117822267551797717670694007706290901974346585702845583423538456421410578761405481725047824897818638851410659502051414412907994830562087060642805728142118821161750557995287085000133231422833478432163214739186662700056804979127242950837171512544064101333371065196260640304649736352395751987561445893847496726224783442629628611498019165198677801662451236770988389102762013919555120324040665783704745368103141801385751502685755314068019037880403539242986839274330451320461962675141826641315286205783901648728523174659305994627136991957046165823353598506069370457966201149122503572096915598741285010592719160611688767221554245994979629240486487646477118122073480556668647750833444207997015397843178638722920281143002633399225665373217886417298555977289150084487538118170791794231522652284593985761324419418359885184419020301668743859445300455633481692149680125700184435840372668687543298811506285510418948516841997884131097334638577880652641476071867841288073602101660102960713081613424206672998450372853024890017886043789773690531468893732699452787651224254208548001791660740427501176413523407522065684849917309508036949770980215833850417219502531984688849003178247505356660539991691173925014567001377277330436927657061282992695173120404347875220190482983460642334776255395759514597011627242299756207692554121216875639148435331238891108697090938235612556256982257085112469534505062045719492498175449868631976905091060888018538678654906557105039344999764919451145136545495633990081326945004873611192291876452705231735461873941585317507130519646874089053205538624862254112260129477249844713656696707784508909584926558408475259721747395426130029260411279478598539098239349829255239741075190407920824694084222576275592837364170282833905868803562429461672175418290349775408460791375799041273637153825595163165703146086385431691283654024280814779631714200700389391008296234197042959699789670505599072684507106689598832155569769430908051660318832258821073406654039689358410302535901277029879244485754481248109090524539581038282367281656864803745268169152357347450011742291230033629463456072399400514176449069060996691024231538989551332585236677934871647302350782913765167574525637850994602964353129470254718592992964411574570180507403199628201996354657662181677882243160949266351408604873084079685143635162174749097257978787799619349542559687975030864773477321661110154131531018633567160968373863742614954485372104690493696962275567748702170563506406054244371966130055013749203568884650443408560016776021464441240960720335144241866424629430145101695506054286066678994908088007986808197400553449646080155124900903543936357930599813348088422274110324841078143675808812042815882321698374324186711851335477155086599657608193080955321920164560179668274877824504041511645930204135334481495642733531457746091869974400719831870165851379910388803103721029743093250881340143179045938922393152013016167215385307952281945383982323472480382007669306702778533155874670272996361071754002973992256017876397588753596477789003776600258318828191017365084878475334511623490178393238859413960994847841155271223492790974112627420936542588552342694221701523589719061589079228036449274373380332360927720275899363701712881334412265480580590823910380778029601245280386461835237680775520633754645063799794830572189032455003835537364543193178996274438791639959011628478163360317040287470040803817025401099511438199326145822494187112463615113662305770195901252031471511246988306466260919758837587887236615944114879896713970231726868149950942900298468401495482652192782631880044131905414289784994249727884507582930451325739226527509155961025178739220935192644695964869611986888316051704068610340461201725289246663459902539522757534780094633519331601930571832751334839345308873308056375772747031654936695624466766944907909038090219474257189963187640986549150985238310633235317785285738342209193818890301409182881720904598627125150743331225922370005807454899675380029513848860322987794230557518722567852070928886813258573784373556183719753557702856786595608649279982445176570980704943394482515131714187679498545895469521677229603739381643817245436476363923263299278046514622956553951556858670237380883694763754152899938262213439547273819159721796934163493655600168936759952039987734283700005998472863570409403640564280893616032292415002501717465259381233430318789964551563140714093908436221324820293562807836118054422677317406620352110099174441901388758940187552960788095828211906535542825542434165139705104300531930797783712069415608907126563155493832148965619649957444049485616696931327079681226284222069270612605544378767087860941898932704239811084716337353608738381944931895176674865590223083573639496406466486481530793914382519377846171683552362313367497730445664536125548833811618156315782197605153470068239071273347714559935827170658630403008542694353155345584991052236612072781526926556566592507537458318884986189667290522869081501784134785333534804585535178533329322000251286733397306941255590681380401082805524360545926857821868009091554766594848563038000849360764647531988788935769680682295771702380665929893226068689220385527348834606835676123173860235080137671676535955525999153974107279175103660844765624314165625836604593366381404090751688574291358967996567496864892174499810781931809367266223539605641323921341393052800999634290210910033295970876393778749191189046697381356028961943355382885565620114446727124119662286574442026248615496291105145854940542584175978817928916640675257787800021144540637950702308212613245796056030509428878479177980687115584829999261666380766473279790192257672343748915204154817451690914847686902319032324013642097956032148171567927594267457206481433620837871453674968238432261396644638601380453356540637727953193570086272336479785587206012533319244408546854390619569279495757491495764612397348027996769516713075292232169061289494488878388820056668469301377447799183730059509148061547238197862893970925352398436350922620841553657489264500705869052071296311178025757714481348088150518160768771090966761852781038909417018270293522273133201043800167572493602698830476916706409226441191086069967757734746114418302541109305163783422863460054249981275807778962013761639688933599032130755075027363417923542144054338390939559209753982436758205636603096231051704683823063902823814499372247672614842604315209526286660425495738657528056351493113987723819515438672109094843254446214497112970518672106067471806216330867276971172269228985640314749191252277410351427399806252294918655408719651645366557522073165593180814352928599193151069310182608862736574160424512585758430052731861079064794815682481227795408944713696085692031234202311508705935615041872067765534046158801078171690858242988067054580263535314850293380416123694720651349697006359115776663794687205527442298492009388328124712035808885000268596191291665244851535795146798144714265814537635303598891377098793526004588405188933112337549872297070708724920100779708811148505933920611704359402612941297535657932748310615370314699925580017912271058167445574311820735860943866043950822403662766816368833663040826252619268062421701284561973796596528729517431224400383683643367850551312600517284737926880644427497322069401318764773932140981142666322702000808527219796749692868883854259619050841397138674779222935128667564443532522731801767713247430177428471204637779344739831952267348227016386358707948325156764071950929308061311636057540750332598813718034554694172636544895881775118797615565141774573599144534743728083734336975901942754921547867879392997137769944901323820605528118651317094639728472388642751003860624155670062581054432203091753177307192432687105437381728725629246275432877321433388748988010068934538566151964595746625830594415077566792421634591169917645763840710682516475565047147540139930522653924132915879922839453423157719282865640906574152931956336794241512587935376928617184155645435180476085088976463175062207176603787590520851715562320568951382742036992554011029681455561795344014625338015781773193874219633174005776988579662301058006053229605144609916707148943465855215296452609645457502308521580144094239213163305336909233475067256127206215363079886585125330869264460850678600719986226619256558854131317389974534212361777347692459130376597988563707321864887544994919155795694782352825453340425122371003618302161334185387292802083728077519843613055858626043320696623186997437997583158353028663637191450792408740564382806117626679416144595658078832961184787467077057914983528393808302305873720125924758022242882856853517555472370497879467730346528456409699214406169986805532766203748743897831209359203933057395700737464103303032297180026514528778280002731647851033888611487527454038434680089926559531945590976861192022115996560578295544690579143362306166358928344302567872189970517366869983737597052547007093542928210623204688240873879276831710372243264167647324559879076699326165163477502848953845440858792291287533614201774886062751488232597212669100344057675830926892750136598192321051685628690392480314067694104003284154879927218693075339194763385252757856692132977390704408334308153587101319177937593717541767591075531718384418397155877336756053130652721800502391151880895239454365084773945902212351044114722762052057880192530660885466475955565018148745083205539199754241446802384248484167479170857826482154809905269302594623304766813151476991718646359738955225323324644763884147137023896022316291849507188286396512404552452698002425762856671588674995141607335383702657648318860508335899624853548626404032126490446850438839708105510008625299198728824109909143493664753581860389452399597974438409708056411278093859789076877587358634918442154790442126626395167331030258230195535359678915643994881173272986312400387260974846868484040157331187220490955301808070396829642605447501480790799976218303079400349095706705621639877390801958446496974088092404515720660881749482592020013342265595505739894674820945781417493021343387480761600411852456471683618601146815999308289470248591394145684741364583099245381732432208653064943472011540365363110520654248623057209956110487375627130571777567826556069055816192621122411242137928416091614495852100073209214848240777346815664186859960393326362270325692163103888013327770781772403452232890595966152005337915836031229597908135726463036210136300844412969563102451539616252254520733785348240114425982341425641336401007268027966790333421290233215569318138026291347360837306276384612877848110323634385149039893693488702174088075792546584971432908680310547464741698306240953591913675577046373399920558886492384278347702496290128725121202346565549893139141907273302447019862807224449795067996517725829691624959122592304670289279989590536452230213786038647026611479604548676240760509251636246678611299341098509625621370786659631818905921185872691636564136607730705813017015109074678078965591771688659217385627360791764701581818166688140037073365684026195347501245094776801735575157899161069574061958389278314885359083762811122839689238498480956099068605099315434830781074338808569746876564375318647928880819029520317113734828550495869689784857716636290175199392237420123976644795661848944688826792457949511134052276890240029500089394276693608443178153570112351891046157625110386160017794456153537331794445893187929950217287127144596767274096634586885977285777029699842880505599526154744620488774807076408631984712074319004098726176828134215251266567813109690952134594228102252733375165209517274399813580503322327185537206941236857901588183043971787514169381264944197938402457099134877686486550945046727710762597750138964500127903101160443304918143147341651798306036713811130751491676073875552388960835449827903659645799325065263284201630731762743011397780870840848810791754552051967972632258651320714528953999474875028234312159155280300780210086854373053501243285423887428226132028374712309400841587109393135799472957520725284014146674505572929936247960451031374698694493551087416899083035726413356064610696787027916364717083897007791122708940763213461494490128768772601203443164536623192524356552372786253067451879675540438611395339527644744371684282548425861733718719112837281239761321700644261163677589189028179640661612239875192694056241262130270140191522814902097458253562054359803888795493229943365297280567891980817554335726325205329115330699348456434227518494713286098886813099658655291022400961659351604874456395201929952147812235069995719246274587968240668405005992064417603402790999593019947127130389109386597500141427703567512603942457531102614732316839554434355828867498696039721853412643763166664097018941570070185956491703106168304793826638909530161885583610505383351618251908412720542121049778428562884370743306051202959868019454618528032993850677384818986971201423561922866123980436877682306634031924883430278280587757271433526421949800051069998965059458583197223878068876454162316375024193981958297862889438338316265990299503015214166391012710953570827715193994151855049835425457088912691523491672331109241037188315642572839787952986203161288071703330789124749434013368407779104176888045971185273948604646965650422090904436576444031264364044646788645343852230733085919668418315649280842991125942171432287914179578882999472362851607369999620913419983509733060999644999376589476980654225280395220573748107694966735429698839461783232502897060940120903638875664034380369488487589893640301371025104224129138868153254724015772547539204030435059627896305427419995338173759680860717578304707069442356998068857786615821745614225495298345846480872878791655941896501991671876633778555332947609240299107539976816744020664046807046750171482329090380636692672726761848048252742121464849563184325708541618940896282952985768136904078149007134385211494093222580380580681313818196383129052538134648107737673647417705990324804153823159046995141294729638363626564976395553130718983135210678543395076327973695366107833932700795822357440907167104339647496015175827638863336566463073575292007920416352160544190465041394786448201485759822271324894548531994514895821102673642471510561469441428341438398391747283358022352588357800487912201433398528767320337128175212754489297925602583673343156962773612166962523355631319283572962251833690789460511198437932653878620993309172569745387228863522147836911594514002727519559458933807193991618473504101437470911415392982441059774176001599818102117874065177991229697931872927005178117949309830261885689922409552471066636352085366069085668826286642762119077529757080263315022127096751571990138740880773294328179205801871602035271636864195154472377629180478991386942136359538016811228092947896269350593283644440369276830038814706925003842683470624596033405233604138106744070691874923476499897849831292829623735388213423312803199308086869607186065678150649559317941413229271880043099516630756662692071014013626352444233886780664502886194974980513704014157048876027594091562782503767523579391895483391093183018776379693295611571864327397944715737995725755376776368593869375301804068767690312910913349726661180740799667183576260217111464961738629034717288587132307850993812466095593103083540999661586262266480352919832552644677884073070568455640657114464257126380853365800127593893562926999766804440142717810854943038667405139812337285035503525942946716452498248173579316327823201750623114330307226078760927901768946841122522781750380400616619319942108898128939676957226708342680510174334579353654982813601040454207963228585373910301366846618375637318638056587191342396854029370429904871039877656577388195179470486335783849893662478007968624958852780745958752177816617193821660362901984361741225472260310563076896549676672122558669211352115704427200605278928755964159796913549129040008456798693129162827657381419008307419945722066256244739155129251817666117260049690664265725300716364043889227663375783117523025471203496156046586820382970898568721755606654430991581686189520264274417240170704659949609624565527364410107270988727951288981432986280615027300425989039983992535329167270820738435658357393446520831550668313185354317184221550303280207998546538351216402240675107580010716718832071031454053219753196554520860511013534640428383499298626763808608870062124681063953948724081728249136777125610545921645201704995550790381286891896560118720732192783946281548207851444701703892758437390681723699799547672647942990389442817960262464600716537417119456749978435090350103242055379095421927392351042950836699321631395658349835702162345379228428064691287484816480024589603274878397305485662617929052269989542710985541316765000314958337628552019916815900747692194549666429966659175908633897980174176077583954694250905807830905519094570211785348149156187631346271859837107737390685606022861015144522031562316864125158854848037679220402784017932256363422201931762203230953169909261916603371260376018942756694044401577570246119742591997160155488236718159220599269528817504839670195208028490500533480628569408324103811096165064887803668378308475883843546242213902831955403299951435821372898076992212952189661960624324619318913974745158590387440576083333074036438476567233664034387354666919370572706153924723337238328343069918362866326960537042430313249931658534066375549089964093137913092823042031625419275677961251526133587228599182900227073634662103011155870874417864658231847818199937704201160048267256923738915352446044728170336577481755868912925656363469363364431639996380565748039957570385322981981136338325807316204543628771385363418503371377342557037117096205242382272386768685206213722744161784816704171426481193118864118688065434160744832633321748115066705240708037693603074032074244748081337689110203516300416599926902339779740006607983868134060741970276621451835513221416602252775886663652367639064959065101381185261928693144373938144524958906665344078794168054975722284609937237111596189739367653723619466366212094708155064534650630567298158700297805352016805192385223484237685825185981005310696331315505190801099026646851110197946210535548302734561820775867392397375258046215355105336698881009912533007642501413816830556965751836573055673000261726689628023691641981115928464421439138233096015502743904307789287075515602359623740879735894021746606192314950426873606699566940724567422333335665652351492627697560995367994625792885150192351433700072511683284080273660070910875260587520339376755987407228534494838507410180311380882551377914522811850532702569730592913302851388115450161468198544393661067483539977647281468913039892639598155928180010990105002159228325649385482960879135213360704322111210128606908225478691969911811606740846829189132573171190619976424006906842189300683273641092652381673511671344063717686446435840177987887432982712867310135706155399346200085942782300884705273348287678264027232216801939898626058488076652651333850178655719063299208451633868448710255118398683009094563423142556861716649198079988282215003411555524601130394142422894246336193957487076577720040238741419117661997351302184711414377470910213353759066240861835606883566285391624868977389253725822968537483475109595574614410097351089299791429146013443931655696336776071358922876872308644425933649953666813477840263152175436892493753580258988149846329823152539622510266692724574881572411319334257880449874882833949628475120192261033367565310709076912390805128005026842790034227854298502310458831784238088250767142508363487845768061652505911599260272098069611545942394183592984722315703786234653102417632184782049685181891734067952548621825619189459146983130476582205668518915784831602971586941925027595936363467460886483469202417651936013900448565966080722971053199946445978084094535504266592517549168924763198900677295580232885214872877297840105524664723319669094848737673024633362656870956015420912093424583494392363699331217695367394679161377839547558136509430365459171634546472312562078615859794326153591126715602983567042367306278166777868238348585180176983826586634367926659208080915231468834134555491487025121993304183656732556082218578411147803015394286037816248060185558423823643886204225882165190786398445099017638196458627049665669505396115932904357416915064002020607708478236641412930712102796356568267568934737013343480304705479474286929289628225702953671653859129337333402071606581988610751083912061800322904587016258145711059610418823811513395749262270974549694390569543578258169691618309386377478195528980790938889848028491754387187004598463215420283962786320299962797795850130394654276680121497078621680648718996340079199503035412463625757087743339935780508411384107076039184974415026522614649877925108331070522040677226026224950911195741504041394977253729644859771223016692202227790758857171926843120212541316172416821051449699878952786792964275883739951907883274368565876685843017234039347874310973522781162598460989807059036310560514613976502851764281450815130501437988532123886279180532517394004970079770435255433171805474967992277243748242090103571420578035836026682685856854281599674726830320523888635730976725701945101110397441818848376322267386855513119531207427655469034375041127296139552078685820453843444373080341810368870746664526755496002002811706327378208544457205418029796239973641692868894773907514194250451447171764554920490400476379023255464542973631542641745082580069088886879580448082123741127924351087308292757068787635940113726425602387147685862632163720409504045175083862932539734402155621613100170011147173783876117250085437032330508322509994967741209985853140652050158500001661167161219159706692962880119802662224362679671857215132802235043340393554123612381528661314580199605575812000333805682940045343868941844369261087275678939252284239647415462882418031407065883380215152957783851664229038766595993048563096686871151425883313580098400559314850198203589211489685918892783522544776379902703187872658370467579837733885861087419881542194229561584036596792527241926649653389290016268833968810998071928416984336356365151470258245337790131261209142668082201584649873890466698990532072094473206290585088255457145289404390127671513168981430041080534727432733620324764531860821666776832550458919326457263402758854327129252535500523142048351048168721028517124918963200207292688329887827783636143751520005480322881156170642485064999600395597051142011097415281851003243248788762649013464887002119587067652807844698333341883363762212572598819293913142345913024142945129154108121404786151492352896360580251502576557102939978881361775069916574622915217451914298984158031406197620056845581854507291848274388069930590203654483542969243022001380073439291209784424146895484125102696290396664167587722656886198566144348169750965757523946009443958769370835546075582952345361803846562968184040662238097473668047929334229468835444947004071105304853009935966965335090541746112584764919632590114796159094987316778015788749844522687653175706910001084612565604014343469138460992887796126502702310590143849098472941948277941418475655790017870464845590391653166446633933416976282889406205661871032189583643048509625675947566956244492584325172346255865353689566546539148445154363028313185626219915112922232381257609994665640472554404570827335714475538593879523153114840160590815659291816182622662665606375376534497529194083099047634525821275740928064602997700279347181026046267561510795784558515883183366771397724630664990101846273889163775336267255159377515627016080078817556016728339465102690875824174512176220167984174582646388264315436960375241907456400138369144545255889657250478125082407360284011805203787377590042098350731820718876153017536211723434243875284202377666551539812268771277553370764429103292665128054521912477272239786046968985749297171816523473236263677977944205455107097821818260080932328994423968989004649788783423435956634757315252035709363180316163001590825681017166861177526239217891435688855981088799379149620638134826332705217397532190779891909542393652248326892849553679370124187885803509922770292254186580423043184009404580921700207144249324632994945469273168611001834653289247890104529235169012180478305116519244673466131954955632769645786538172373235788392869974870117712651171817519575624067357868046914183726087316404807637384566827511825009079090582696931653976797711272926829897972404079004682157620841174503022198832007786647134926469031756285787134748473013115889965807668221840305028239622074113611813805580494504108286469076222454419127491292264819134437894232506768155621613716168535535974746037390025155858062837970330850564979885882351099106358473592816756834717434263811903025703331030842506370070239290544105574614673932918552321028224724964613491433010896237601355175687027039569812866282874926600891081249757944930186492734179867904920279134380171918714566591186502950738621910312363731103960083793030623777013144283344178123936398172865646082049020500736303749736073130040488508822735279558606534422318362993759969833291459360938926748611103232527608800407288057711117481579492500379790826794323486818095592101471865516925639299289715667425280543255717591829147659933928733635486705523346702244319867068567821015243985577333154863109067646652494127270188866579062262380569450414957664365725156783289449733585171852493073950131854235039452622805433350607643871027707664440954080917552371214533261875284311244648653034572195918228125349744029563156619695065950151780302934455709481482328319615425707679046530277024895189038798605859612162502038655304652426445306273234214030262404459459520786807338653158750178726528441808708003282325301329396285408331245053625078726780517952853978951814510956369985761984813796722652248747242587592547542277792263713835870372682419120693421494146017733773535155539158202752118683533147830483032468409612390879911646027323500529485345487729378647158035974039549780237035889518701875769476150778195991691106785526196947191752125508069940176193774684727803602045238976974687021803042037104920181085354269188540314734884341366180787223829695330577746869749338712791897208924284147693761634641340878593428795175609918711446164820735633164510373951737193331445037364438622441260796379103719720231739955724742299651471493619060213338849375698837377715757604537567608537109902583960064671708602536284388421484808542031106716190518159758920145860013284826872211347577613941092275661965360703140911055840014769359050792332553246014072715174549901602496316648234890271324870596723024484798129494026130112167610755678806489277541649824863243429003861538859399542069709054095925180120394476207093742567318249303852349294879617487530671924841374525251877949551014090098616844151251295533071219963625304497430724478448055000634465765364337918258393432349058200506399687984943179280741190644611507278234405751006041277431988562397949335133593516442927452774727601461739552314945805743283969092055552412761645282268461944086451664776419420211583445487455492333426494729900958142143026509196238198731049653054369576579800472985559653697864874162042513136229705566690348326120640692300330303804641333208279967197425247893685727375192291929737986247904438394955946938177171849345355390844213789872765523262453970343761453751386883000161060403457573277080702328304389643777563926069882916775000154932800120255775325644124542358082098888410309958085882751601405131138381558166008210891818627590331714978150690120552308210025172051156945526866200133230627493904596613386992115115369582337692527185289053339319618202355286455332160437500726314270212355670631785569849587835117035890438513310820010591124083054451727478781916093468322022134881472169510660121693625035707710916915105679717803577144947528609285105534890971600062228774189442614050364070214321292771483450277187507166070258241251621910078280613469161099908878178276577744092566556541440383725912830351970037618338536932090241353776299856790148987033814450344428270959842192833226370349758700627846983579883543512588082491580115381223280959415130483697546423586871240582835265946122363112974627946591254121729761752953065860492408807569780855798984210130183127436184503999034603622100966222885234362428365751093244646912583295731275792064086836083460845330588439788175864636407597979444810516080722994109753271084525748705912584464473896093271716980841374290120061363876759530718417353711153194482240459647840857935136603326511048935288544585478295685351584509845054516072594099563806810181691649349308684861011048747425149371711319445278562994886815452351053505174999062676702241998482377200473657242909224274852683966043734859840602109803866613609750593759355718727917889239195350231997296239753186613076579993292210466267465932477415702005879955234020124853026258498435291571355398371333646770909561363316386829244544680907792573220130417212814204967326895352336198861728512805140199436476339301313374333285641059903639996252836034190254992230862753902386234212215213234926927298899489948430714261434258491487068211932557349387649961287600080271526718667329624301387352823279299310563396373363194265309713609072765829467504337837368315197744305962132758912493532730009964160961260599705993797990626390699216075783310678398152358027422459254599275622756091956647537669701623395669646675180777121659902666988663529865245392131848638407101294498362179422085766847365296591801777903373920544371908336868994707335971905527911111526079827533679095662161892227387674280713423302342951054361204223051615537362724521578036859051205682981074880321960591102511084044237878119138966717954880861112382993849091141254001696693345365332554140917644868306488832639061900149986549380770960582599887855166299949624799123889006328058714136901757263773001640646350593915507954891524005049289143806220363879986852235777287987849305398130688306381176415278791607660453581986423902166961060634683038758850822930776591093930107905856572701264062999029262381041193981508954225400009486126337756734200928590123999239251132507575442795399321971300597972969971513161790814515419447430135571008964567446810574098640864247892962241040434791924818493715333733515061865505876594546978205183343092535583290159804177063434511171397490008961354308089489356807001710530407378898773098851378994786068161418523873389883897418323994489818921274874280602732078848595355520284539503835677271092439446088445961682887361601242412696837877821241440453417625513539744867435332463023286425928100763130404761425181809781748911352889277255594390927623243713411217721007099363622889047280006549212500084345567648934336228355737041873524891136196779806952300613356416861167078236388916890464568807923573909354344152757572116448388735268769053130165951359976402290533528278386828543962777956475113303896227966163835037284711772362705107637476558129465832610814487003270116025140266741745632304954945354502606939925196958199805150196282341420421298399265313133646091967140711293357766915396635499393213226154971688256972026764553210943335051897856132571919731573875572472151981908615729796621023853374784412904733128074958651963761057760409596891077503974336978029042685990813526033735978905010004693262080144478282522482561197604925401799602738852066578100407498463778862891749518140551512113151211950896861479019306286590838276126094085565949405446850634020584686991368582202197296794375558376792415178832004792697579621790378908763615398296641568366191040345892185458875825337440255063464342483049890060699101175884143519173754947107959253400004181908229565636414746610460227836277234127593119984435941816310797924399270562777894046641221858199684452118420861125703118626830703013183731271972691776668993263209754071690698167005356603824498748419699139719093358886855122568517880618693470570576835475467994553423089929736938227794163880431379686512637687480067659403055677238136303632406561281425046104032932694003003908940862459362609109554608475166097353886508538414209522643326564881921806691206182476853522923082511794973520172651110625080448302306458607140783619480117643202472458317225995845070620602338068651847807791741126522480743773149882758042711471840911294951566193067298891463918195712186681034201602010399308939388891223812784410603779655549095730973906614003366082761675948805169547898431784487904521625003506686234904578102102456806061704321099997556445412071063487768015557839165214648968715285993606444435562285623863847761155977785283965643982343457564098003644709774633031231999969254917567286111650669058093269462414432588784046871740562591337007890692138791334398975917585651727838477454835357309154027229040302772687857841724292294291277851298906773950042821271423154888291498799585742814183632719103222963154873232397399935343555219667991743653485100769128588119559101023193748603012006630197681084204063006269729304622325801393862758151125832112660184993162910326083428326997367948396117281660251108642608537052551369437905911761513935168054075333341151806207813286247595273143369329877851266615718643692249550452486399356665577865035360367112911981992935824554098560182106623831930590421334329862024229017514182030621358509523612686355751118369829396732443159310855045345570835782282496013044765415021430235656028488548155645489502183589510994817672786274159907941388144879270523584508436975580658270589181552324574113085015896230298494956608913047352431370866855361273526797860202504980812839511755835769102586976448250910958774528404954462068809796285273550126731329239301121965513809122886084881649727572678800957490110253034043903055196514994133966950634595757804470867930483566838044686506483787856728921065997111541688661447354070635091281431668800462343445522291246807184169676207498389822496401096086857386506796230231523394590889516024346732812416916803798563750652111877110450624604569929406096437286151424308558871523067679014092841859256394710913058821823210282912931910167810726942783168699115621922347068331478465577164930650520819343648729871181846635946005381619421005377510656658032571349637462057762743040256695790177314771309162826004837137109863251813762038334803286103043094756975234938327455908548463966408602522725687106404636586223971857133982705850543703410547722236850939517907651894532417829006571741894476039168793039899314609596306142271748881316192128706344679386755269466818531642873210321388250961915943705757272318878989597545314351563367347150091568059812218613530888723067301307988979456174596907324040825457382074954573316367774139418107871303652067605335358584140959564230137644660401432641858544247037541722742869053048368979848352646913242425003926478492168846948219919140477786302661769209834183444846936366905615314897885133901448493625557780591981219278297158295858100526009587204313591280600828391835654150045800003225773196838235989308791354133695490675723558546428222837893348744415848147035776945327491476689954926785747510373230513650731033940248658918780008357255353745915193027666531662415941119614944861962242743760042014785018630809730360536303384709973909817496017125698289793964949960455914285728948427209116606937330403812529717334952003226991805735311316220398490467864960380526205745996196506660677812980079035477640715676441537397995346218057682655658672635316075533879649732541621863705824278943664659804694599569061495137308049569974930911053547293620025098385632158720298146010899484597025992516498381796334394580451659058888870294622804591085205533561970365239833037352312220315340893894394683906922540298442631941035334851641157800317721605881315669905548145588996508115087137644872149921257187878545513888101926917926131024486906246810341772588261012451425878002944194597557904430676727460553055541406487164097879432098158752111877183469402914574272717302655753626157454442391400204301757395943242966044032273878432855014610106894730600221437339106797767861192978531879359796086754572423454624386468453035620336660256876958479270975028480944538582149715878892978189561906276659523051399685202634218869832843757314744840537102427059453608574560062447480405500102592577529770358163920511847905583388077061101544911305867572097150830346922454916064156431063086481861279822358443821001159228614798078655145986982908677516024511395812101773614370808265993965143457377082985340837199511112799813468033565697283881014469247828755953041128063619198396918462057595058000592936435482186038163757755308903514153633519491806984061088141579591666282904500071583014602894098577413787420848670252976573899684931281177616368830477803750207510316383106930562782774629071454268335082274100879313266569538235553869828706915469902755957143982435401451586425175407718636251863198995422701292602420468831112345156614581839391462377219252647724068596917550502680453316192733656163616583864874847901072364206548265779062125156526649763221999821773298112983881762320992065465504097567024935186448509261278013648270113897442938039138925655448104781009777822470896070582451099393041989043860923354892779837492149174074596268011922670729844783757935522583596124387861673349306289753982640612428075743961189457756159942448913073609659705487684654895982397087743416944750312817273162265825571901957402413434593984352593696803104073599671413804647578369127792003836309315750883083188610849923741792967565960361590477530878957267820854369018006252866418247224534514579430616499594068364053756908595659790810689790294576818592560025680834478216345381296236375999735676353401201780324580115346956786898749994192709510659061449884892596087081039391303473291069415519756208462226972013574599987338242710605306863340993500780597464012776430930876173196749898470250333238814063259698226540283634811128549153619871945586357030759228513934067442682495576601197499454160433386349342448355481137736193152865312239014736829133694977776831440842034060982604039342566961912226113221205833059059290992164466416144271028377264598273448588366687155368523353564680186820241485629165356509972580206942916654968732176261445042117903746649730797949815171258246748716946253391546107727104972803393849449801459020332874908875121734384087126737827524925998994622158867449235406194379415972088068814720357068437296761169083583946050668072752041664203104543862868563930660505909551276767248994417075504815585535593707355834473755247226851578208143494450901531648395381687819642137214536949112479932241267910089390619935054804802083992578197647232602730878127375724410584634833221904076453261715495281909361919281413158663996759312859229385632333599590978886400395452714904151272302023957862271500964188829128490265141162471843475259685104153268561952577524032382089694861597560920038773729015334350061135881154965382778627423041830802400666291937604264355718618867169716712021594324112446989514633830102574147139607923586637707876700005670666888990157772011618576720584653363230072194984777282237619093852193633763476194882676137269688571503587663652242326788110140952536501640608087939182602995422298396564624811083968991983230023830441141849654076629565104010031850521143728917403905494654188007561388193589997706348702703627464414085005749853358820892247860193780890545355699850480567694498937773295192156858084791010388957178087523607623721967785895905026427586478375407162924761180934991345385428403859571859592412845795624570350387317777942350563468185829968328053898920758747713094462509341324019184827286377197847832157120696943015491960933349078664674942467351783658952067561365581601966673528573305794281898645001096771745882229736945358740531226931532702319527847668230813409480541447404447443346782009873699341456658762332257476583651564910718806416092210171076652012742937189297057953126067184488371889025236742607351884844455752233289942532910500932558334341438481787644106867275061966734241228146103846392944400841280263723481183565408992163552389009759860418845138990661383023782996970208789618271442185315389400196461983584960725239296584416906286831269825282319047385067535773401032324796459752315477068219223400259708413606548422484248015593797385998247045470737115593676786064443705585988986346867295243157091536509396050906682295755565993132608557722921329239752894518170901988274175102774945257723192210463065873478376540673909117899551934576438747431888926433185996229392669022972034366848577246137374664612105919340269100478923408061976101490472478117386540711992861511480439212262749559730449684777954948848055706224246153648845347216881110838919629744442665338172046591447110019564068739882426238665358963541430238585195169297539835053936717317416767761936679564706441749966410624378918224984383285885642914347917693231263701823672288644102622432796170466462560135511533064243926594211685432528754864259178310573405821759215609968088413711027336804914181865451257652835763554043718837337118871554132321958711260746167434987445598785579771112067344038383900635298642636611183992162063101044630640426894688550187376877214153524915084499564854274518821488371725736280796380604453443046222489162218543326061143351808388366676247462413553942578192169594242553735698874900165808505353701520721442809832491152674072538103474140899519878950550646631388875776911123193451736805286237247225111943283678946381636446014346973964232938331413671343888968289032747979469889672502015835685595602240177829867693703269413781417079390443074544621822812624422195614309733118815300800531736258483829709145877242255415087967667239766829911203658555332394522354921517888040054960499831255699545530467716713783754760618662794579368120969885582291698921972316122630389840394772576682840003590745567730117509005659595304094419746591738097393417868726583801443868466786578354429235730386535958376131914334260559448675983569602603486454963684638500276602001558779147318286004090937349219670341840502913761835094619337213198523606860832575563044305344540028854415197544333101262405591246360653233653623886650198574225288566205874532014639856558548311511223378410135725273710059081999966317380214837945346897589420852432397502565495282228440627925725957910297649153217430127092312584247378664660470862000486998316200771260250711518927582796504469887919396322770841102682233193404635424370586326148155303016182857394797303679826167682776670388385382705863829444654510836908162161539826168341328134639829264503928910329800528068259589008155018298575105286049743087462006044345112058563458346879720402007373555250717970568544381178601207772604731214143439483863661859997701430896622813772642677501002778077225088885514803622717022115227038905759385349263276362970571311751630587941728638768355125678678764027737430118520700831105183894056873125145053832805671736071086313756933370455460388460883856385466119929668376097239161493824672016000645387679929340905467934023254041171049090604420229344942295895236552741049014954581514829418133741210228945767273599142575536437155303043929418060398604960637372961558557562892860556910323558392983789564664978088982325501647063996323464589271786258588950215187296154100223998102762266520406781315565057442308059629341548438687147279133258339533886805307143078306547285368403365099701261020046973515581761840223749638299054483946583368738576209345147986190684183751542296600051690970286719947781731702733645000292614323485872369677890699701739206872860781638904387459710132397216157641810589727202754928636758693136480737373435721965974633477146709205170810625326043379483431584946305833799574987935513640506056621867905381530301638216463313236196003651711937129739242364964460233323493030882955098440888301286275750806508427442320902683541447787459409540410452652028849119359637527873921318783103701774113832472136010651172233574342730805468770202927854316242595181906863876475039082133690585185487615165163023587275944959629810316750834064347007751917514660685738358520754435124555482917385760506366139626347505454342088047614825106759021087469512753184358433251587817437405921138599091655103431646137779899120710905164206673643560908948073812602582636858356094093658277766805509614057138499473363228539010411176312874219080267406642809377934579843510202703619339904762831690679662518482419758594260072397648785343332816430239662599230491100211507378764597668352461602196941513298407420388904524383560393693342131250190398862781776493629167976488551924869486015660363822582609110339759775534438011992718039297800940969761466862190522340344272670263143280249972432355551816460867819964214580615302381648619030545472380617559214730498747770114683678738462263322530265971498802498872321199478196080398138075512173123326327497837791897384753004723489577818733987785414326352199586999109497134033154330509851714095177433340848328260570138385206542505225660761099867363632441091204830520786200584239834859209523788865385066958062923278364634201400157648869376672435037814245146094073875114343534784856139573886207290376739881571967804117705885327841098357494703689444683257867073205349521362096043335763193068665797141525039215402990711514772914937676442339786119079290644237390465271521748932927988678699789729144497792800324737571215964065336820958585526724465058033436149133306528623398158764280192964616889463937066784164725581196893870731838583921080863730864301977530497203412795193682024778591067984396913512010649629424185172070389759598531076829207281713326496964496950208394213491811665587188188715658376317057472757419397501231086927971610995960585206298501579200283247747977279036350784167470520560598840740433016602679319853122529151414152873376310602603041152977238622687440703112982670691145710616766638149483150489156262660879394203220440490853046263868970652243192649431863657999923972175500548407629183202591483187678718526396033872501914676203710791449565308035950770297544808955396889730309074028372010193678923286764185645570587120699318436555244297707619708180173177996124531321706181084549810534696149088585047547501050099805174297007300693939831074908034902735900240248712617676546617501233183501733135654067661808136197149310627705538018914373970040741934790218734627635274601154908415181196499310268238613225733833273864539284038063274764918542101234189974288171964408373211920040774880397797693923037447480664576306961082468050329345340160899936959526185451265487606371706956544297746245232758210046861537609799269126673578978885767818078975143106293033856801307330944092820576354178749567202037169994881967932867686628803186706233057132207618495623683265953342394640431322719918602201521765521136002156105200497027827296337418616597413033461619555438235660996309436911782165819212472863098159285677812946589599173736375153109432633923488981120900922262194294974548286013565251827626284986730652567888253040691012110026976474301513677540232016821372653183691984520839833431248669883664362105317769636387648851310208216079281517791605421618234743055659263421745660023330026520440063216135989204637032640007996396406307502684580144865427899306756568161936622914409513760459414241940208832717853115877623174931181489495124008192671720935153282393255311248215619313162740481580360638197986867837946075884892260605806494771125349010731505310489516074528803532919690109074920774972768187872430897158393482252157484446454184406978042029317975523403367791331609020511123961762336922770693440667782452513026122586555225654923878311393586080558385654583082455421569024985951683192320214254232460857258597489176553023054843783058858056955074749718394955591345548216934966522848244047231961151240690182098448573577968981993432191498034570466451390913946929457027016626377440660905724236428356477788021270226144483244733923258393241888197597126268596655602413456709394536445243196589936876074866482706522503321147019336704457785708028599677526557454813995306986205723195030662911700920300190634063087679783611930902254125669035476788084189773627699048359243746264879726773314460326262036968373818327390589846763934894775865141383808147628620213555602740674199807884314615588075362278375108535842696834954835582718273505918365710049895045033310485489540664859672495968165657984950172591479962791245374607238762933889593171127396745824630509794823559555300699853043611306025018155523809526114224529412941416196671099395241162781680860694849583258343824793205862835140942392100090855168885986636394744580669449428553088250384140852038100614909453570228548470834557120989790083309828542719308980997023476655330563748974084444618620742888837377328563377245441964958912035703667881051317567687213855959365762835983654847072935179489347883205296908866067663696979103632396728333050234094409246611247367241875814764486422933544224158708574100523352142461893509919645060036371433366937880865645535380407665267810325558346703923081696342832879836742333364504965754495642300990915728351277429239089213858324868436404704921674376916447720882191772572375645356358477885524653276206338356774700605752816692751305350500395995349006571756881153627214215734689715567446836184812930264558318005172984921898749565858287836603537327607423618976138571864355542001922660294483840271061780744633657570231991695453314261010466501948117529921281392436704929940671200086993149897384392655184343708728851071878713006845695392539583552157654788754643239359849179945713381985952630488456107981371012212435520341437636532518096062548562472854657582997380974911392477691593479509769075207024419876184010030415248235223317965894363229981285689922170298805230067507610433696147974415338497760316172634390265003786348377571309835402298167725191642691924172005395817697060532607831011615852528502582670469829933696762222953326887618614596522885516349059511696955875012022823327004956674285516082403659936653622159226541581694955745706735184375194695908531800312899603018337832785807234814554908599204516893233330369536747804703246170680350955306337235515378594886529770578050661346319513598977205266568438885611804028544389646160416320905088971831433354050719923946353489361014987416568852117342356285426050714055853829698453033884067279521577686899859467017300712067737586757365528744292682947126674214914530868095776670284744882387271562382065762965806743880446002781681937368959926150832928150388869815047715167335644603100594118179296482505069759277747336173644935822082116872871126676470672303348448242255974207286554043415940078453071068309364572597526494166496409153842855559398867605604495648978867811107171804587288693790349450973701880391887252787743538684709495297032564704017001768649244309936959559735672757504784485550823765103558029146474092621939348790546422766804182923643138228925042904241810549218690330239013746245817849035651711475575000224667091752531425722921617744038356703564663327864993743883166561072987010764326215774021028838207626084527572246737032734242482656191634495646406482789594478813925204006050823550056000005614711594176351123945770719953146441393527978709222979412912788997621241236676993712549616938212761367005832776178546063889603581616474534052045025378200591652936808366406268170158538852632969062686493365954891307798762326599458396830970691783769934398979935185724371762266268314462011620403140375030697410889292208660511565989924913345790403826439298942497783875000435710741831460067216967846828784627171468555114207338795451477805210067087881729499199776041475844387163738008579786351336856956980574456071077065109699161203777043495794001227700058727793305568843829009395033653258371533395923527234633491811390982997871268385962209840361007097688891019239576936123604722783111676199160788150443835906618662028033358156832555657772458006667708207337070626166058764457558185097910314654332679957610808138796011215441069168798778466049345861279847630396464813180810411120467696824821547815406801777594351635782982059029951350815564256397252620812857144681348637942871771357215705745826150987803350147572289008530893063161870225145759458707776348694860428846470946387160370343815287093505449444134599592812931567114761838946749579433070057516081000453572197424092132992316000612632618830451570964906009566251681677796543872070664327036724265705552837531132717252099961783716233453663247090311989159435610170196188971988748653666808361295097208394545119835876725398923849200968261704347781186507289730055904831939317073744998114245443441465345117802624885102508651759324763799868378928781338949588156143807161164972831839958984851701988709437138677022346061141688694823393591626698662345739941150662283519928085960452331000467008336780977501780285539956654549374848182262359347662253651031661099136228725835642806084400529522881226765305654334532322851534852690154335326123487586947579468546250051426782693621647413834255089863334508469457899768992204438209405175100514700507442175964368438023378942497695689500762723140054865526125541391325506179900325992070574506276959179730843175132042191550090475589908978304236704845849025197830118294526741101437099419750160763831836317165995980755972405785013358985682194425498991925138644019992045855863965711460593471984129561209034035734758925747946813162104620597926873271293692901402204163547165571993602678745038524876200913011275274278822660829600548574334461551268442851855687561092200495203077524645410856158496643647982286544426432878665929535879722309396729570605513309201712188082399450493234416162027675568438478575081738707878978917164270992146553631380679374191655981308070399232353297687900829798258196123796142830551407091302109202582066825314168368984584180188647837672732799613434079289972840130188598367717906103742010481670685356638318886905997610679310922102972343789576986370886913605271652218841892975623401836969805026677291902229370164862989590030470670595249710295567376146293662807156524223054932166944492458647994812579628573277813288669368174956830799108321541761836689320398640135286571833296029286572416331367264347171167245465471379407865216930248813639741251508843152333447202258255231857308375157236930233208642575178924959698068509789145504164446704361112362979618952454106006907472627513818554637406586205044833476770980103191648563063389367451192289000252217157156154317260204981894698564430639054546721041266323865773640300623903710587406616193348910594211761987655257307741605731667147594653483485150271806297968669922545622332973218633023960827352168268957325133238188854540907399524822205022908392881145445129313002323586456599308644079510164691807086779203762126035546708617891473029825022355616714055529025910478641924250998488107012153079040270361576256532348226835514810263584827303029630374069157635807313971068810141715748230947102242980456088762010950796528922300199578989295244963772236573898685277834412406298893933538755205449111092564266468615940691288292900568154032764983026929946357868549339611884212927768566083288090999003204168312469665633209905483205196282980645853242995866033549862133139993160542842959801773779579213070228755456788430840242403819552606883582740290335790324252432489211914925589225756540749518317097889119938750441638290024475832036194608528037186901994860778709917406320691256588084443509160835337913691352861963812934256450736808065126909472248658422958335351268470865860685205182836643130357689272657233134602121864467560548864044068266192825396300789431460788522948676201167888378079066053005436946914305134600421466882678492325339699015366359544563624341329723374860526160802703262687051679821375096955707017109004564228820150842574853251764364908611976241918424045461019553421060383397777483842111516328399169489758793258821365768184583457771778691883814127861943531374707542125956450456443011224331761659286696094334281898092438193171886877868171095818930005656105557345118318733301291265577839037641806057748188768864146908833219693078205814043166552828824212033232047375257965799044287252980495762211564497866171015846121992114742983255148000795726586521419795232470192781686373321221292875699336086274660984893346431757329376928358793481062909965238549543439063140592803295382137972085314731421520975906335536502801806859809030012763972880664970100443639003539779278221626210595817609150275704754953804721818262081296758791174312032861499574425555876113076656604069731102494692946155485925534256149337313475313467277308857869810293264310951790963332428981599987423711735690261148123125300221352726891728882144008309412737531516639565897960796400226543725108642678264975276763559538455023390489184736888144070572686192819121914207759821983673113507067544115833921828740894513069963353005979223489015534365014134471651434901256901398469892076805070005818516425512106481252521720186061694801726083351607802468410512515017362326471828230524549671640098089310538402859865530567847432151548039583008231303794186472082157948471463613538766017408972054603699390616925829719026762143494597097095969457639163746370014443011847219832687221706808293704381858430242386026606622171724176176125983508595541474333219631912914724333753728766379669718333990781287381806581339356126803211312412960330953284185475279873027688561268317625158569721538926773788963887778954645567128122414134894698835208832295160228918621655940194491537918180257926124091167678476591057738602137858552001163414726620998608169208080192324979470329295258067323374647562708098957380118912518487234630370974004441951380465816499852900779026819898917308627723811134669213486168324694742120254984706981027874603971205538954244426716935771478827362716392811742635719062276508562102465833516167364232848706925932352705795052468057999495599291737364847287437895052311966295265988584167709090972280108544459311953952434293021512796361565473941947283112172332821484456508397517803305819376890872204328562419723974151355372990354371096308258826315134583222708784196801915207914284582989866868823970055376854337211100033887494449325635208825942973001939278368600746885186952215917921819373500660846841922677367205991557428430435377493894172303348943682073329041377390324195743312980310927475184620869032909476341135803257806995500378974814696604870441923153197187465895588358650121706084725302682382118827386484922521308480312966735514954184814520112010510779052556422837086545210213592846971876005001113789603184460129831852946096967023767434885471410891852611350598696894117771056069925669241335244840466043239864652329363912266104049768615534868735967675655761230188801397797318666190610814992297013991735450896922115341449278765382330211656939540305753443579130429033327996119348036673013971367993375271456683280391769054545371037068478451249452357842942628251759627767926975298649559607378529762063727724763913281147429749474976811015600009558191425634733409402586613662825767894884710856716946593887821313432066316816930249413234046904275069812159441965880161013566123084951977641168846006873761651289754405030993232171114315797385761964754680816019967661103485010535214528135940025936801609810626367883673840322126836010025807231403246085204301559049514252372469728797388656288233596972937643692082298171886773506916553058132352567037138617071378810740709855356347737940626128641041099929694834756986305846696083904104041743573605888311739726891121382789209767672356207026259139110272556546631646225357218739600209147157080101232577253637999426093243791169560822087812174234876029786227409935190056939258906939065919119239321243661079540252943440291508156059282168798895850270800626492909672817870768411106784053602999901991986696489219643039600123103343401369269283399085000032034378081081482245876776371791234515007393627320003931677804892678933327642907302807975956397764894599275096403821972066872962644308773237917011404597922278888661463498679173133178378401994995936406598739040970733876127485701575204453485045253227878739448880942668164426554195875910181543072196974953403086656304953461056045381046323393042318334236150291865247130548931698301742412484895345024984868510372960395764665110322618305448038400662928550706078404840653887457581617303002976638578453408035568823330704588383082414874355471918168774766332397432360247746012846648145581522485741239301358308921616180961477452819485049953361651276984187695471215444472894827033052060645852187996248046775930157109214587222971454066452784791952911167119774852808316612351259310148062053852493514536239440716689493954369375160046334019437307632414140760252270768513832135862567455133492869275000850185171103622414926200008406567289290775137593598038965700193922471520674059762802434745834870885513415883157902947199904720191892694580691890021593517522744482446686312377906082114403537956838906824907314915020676267263062271657900297472108132979343942325308714004128497172227990873221159327423136965706641735352989749336202004266508390719454772572531745436714664728567289818605114166923364762281230367639775783026098750711902820975201589122114145867259119348750133408260655621973553889622540201768071172573984481677008066180639405218365054216437885389417897180073148025429633963111812544318232990959419815194430965627361952978063621538579538339512588649418661376539822821539742639765816150206707745047090356246963553266022911381544863322410953190967233569430934363108509293876728599915113341997708434463362025566126147241451708186872057670001337870252718927505652809533705656456439771133912883571508100487419628698257035242749627205309537617435117753383806037371416478813603195750702768991387930458558892428016547584859588819934250392788021783447115527119362180227209671103557044602052825851693729595998959703499902701406321616823598144707226198429394373416476924581052765234292807487182966029003493195050874308083034695108194351341972111178327275292155297284138501765441922088555841173007856782360431059559725585928250850732627877381398664209169145428123595161216324234649432459218209449272471348913010539532064521699498761032534252466338549980616396130132949352573251663548717789072937140728161333869101923973848689408419298048177938821361164387718474799320948114641790577059967052901857984289718646320693758756273159061051729127574477793215213762974179308769900461294533999133837878859894891006970089892573528369115485900775030148448425864308121007536949989595855062970242884685664059856658991597584025829743683532287796028106579190413583407621392765983276584069997535066033046341760642499405729547958368291244287346177095281139387563819716664463327897281503426171384278729804977459144000245978731176534275444532909562887912249594879432913440377831271902895229635234536205787659293446164250884165349517209481167988946476409668297007128705172947176375008376325097653054428033544401972105437625872756205254088162214145102197083532742166648239244861585449092728751731662608227295799968391880697964979140229281677389100020840291676542110291071028335961976585187304624852788194849940798276882435844535789443444928073309438043841754711664212891763251901055115259902353703356277978267413265617642614143070405587140875062147735638599673077235042465261209999043270626246326083018321205865838252008284728205525796969664704533419190827175086899811621988957939496913421066420433862761785979205852882518314725862371499247776463599672460961546572548769930363106439453127678571040406033042459790710997487281884154020655838733904666566592375536819641380512270783315371150739997430304637356295814955178045271749327410074635404915762052033200192015922891996522911176899230654265432846501400541285037189559729356071682710016156344210916269853565083533678358382284317174667210991905870486909987371650292544486972798604843317185428610796928609777062098854222399626629978711352783488718155763378358231714403233666478927638978342763384472478063849554405345944797244607387860847741775603723470098603624489877672220539100021673606528180866713835911346234329120510213278409762346595524278664496959030772228635784048269259993546260095707597087581550575079681531145939127604357595230406178428420637494320634909128837058000412033388919994016143567088331412720755830261667289975781027699524068829309059577184967066415759523296217669092561417818824645863002653455072788107708253215887612461738179590064890685202020104507347242498961600146723583164314295781958478931496665315370797530020901971742575899923614760176656189565911336703970464495998740922197700945914913994458235783580297585317491371751202038964290873467708798704377858387350525201641951495582071864497884183258144009559205901943750971250855942403915755923321804590146331134104254369951532052888069256232082638621593490322332565429592106959037216339252418452831155492918958858935640073628508664675317064025723873441773235075272350765701956699663840557473312720946488125363433470391663779923787599752735653443912530140561428761760407713721269737442247581768731294532610327598597219674149228692131755822197306646078930321577272422403806316208688803386304076276616812945124149593200628683040245351739537722082791177604804992234797162219474846682796293091025883677559780454884288283495541255948316604873608688178085351036611079461759335895735744315497008476658107717937627838631284164507688632656205608166606733374438669330533225574464143399568369101893445386568644815676917175714403945132969457113822815376409419761444948519853363116178210764827066573495231215521877906951929255969128872328230130384190772286051735290777386221699252873940369077433764540346383388627769928057307346881631564332520972944346786895250983364887153140759186932392417962326095422584507759668220598788842758543069336810628793528318321048402458524097468537537012509932576065434683686604663950124014940678812315993217419355715459299898602033181600881759159437857356869218709078935267421221727017361457721039167022913707538879525600331042750546807948186993945818648672246070152272211708903008518571236750886657909233752399333894280676428284302889317989172644798948214155911998347370971269253165404576077780987987088856677532794798145585461543214114131462336351796755687906482656888344948976566052715803824236674864758815656826093315071692996910901977215197662797586298076175977671880319022236343667880604404998714966513066770710646234019465690744041862533188522703490581815022202638127157469400726635684570521708892543496638577452076380454256562083015134251258990228904312278224884365746435045234975522527128393024044144627311206652912899092167073458204920534614023861261807556802221430846540279417731233325625278906714378990022201534759086230821630721813542733126874105470497275104201386324256383815796971344632137514464313853599035027772136039957406029042463995486081519439400579670648110180138976137816341377631611542011770336226989091705748161204743829506751323913733888926197835518232736344396619808251228439585002173566177381053814419602352319998423036050261296987448946486629406966352492627076365208085256577600302073748763581619930675548961173393416370464687916749109603310458760782326176417719833488588449198790156930323413825060551890099287843363528863498176220075484372606567112526087591823808972737234058693641350276292016383679329344537926812703725290639556961379995816195063811646059989383562433832297361192142064246211815594792653924285038279288391454660300474952460179296665236317565295626381001456539039030733365168715141974026235130482496925016417872913268998002267236130844912756259688351169626407503813896260517093272475136510060400444520127306029544587717145072160733720888277558348347381175280957928305853101603227412132270894505544102726031136121204021808957607275790769299447234214833012724177576309209849766404228238677357082836049888263362074720820823809987928789444824828182691220874954126771619657311384985597824344245025051166332143753315370630655089879984385034310467595570724250312134619083710239793371413845188175299954764383718321286331112252862443302474553517812940443300922605199568514854810426976215108890466212124312665267479850305470321583128364281372186630253191575614994389198614738184722910797452626264728879391407496010016590018099903075399801934353247250522033225279210395174151960541036187874227852646479449603686101252159753446842175803021062560148635536114409489052978930982171127162609415067650628449629672070366481600172928561828250000516918472268949732535956536831213180090943520672341573304169626215903211764966805569575950592898233237934299097809308544574242684011070050042706070604371115323778236009038501018535007497513143857818981814414052791835006269250836401670852642297046331837840199254848857879920054885780733967019424243701919370381365225188102613909006595177829922031800404947590157709626378000488562656650071231957417696552373492464057303114512010684586685067692022604472866600704883330996115320903413515272601279211469841411602436870895513920130387326882072731822886022831321872706980759518447001393530482397094885401634243098491467704508220544935545824187613094542191115498261055487287358650270263155740283912329683704956388859240020909265416212008267321471726057874526824798617180627673022834668828300514672790177335474563235404682148782458993540133726443170448467269271305165728738711842232479094847125505354911183990024638321923194768425114616992108242118768649080800789376262532383021721313664133881062091558829930296394225472778409120981830986805889324866829351443001028856021941762382441360957996948754574113338297567370416220158033720877758619250446157795850566883390937735403291028444918721165780482243155500644700716260192847670575343139915646580136973398941374821891978302692169334729120460915426191454405006446769650922554171044969486960001522119216262822562056004597701805550655295439381650080650534260041475346019467111719691465685139486983620087283411405510967752916524127309879980672796703655355727992847859153923273112096176953388711907623135040993206584959433965743235426605226434381845119011941496557418196074820925993460356174067834692953277097079564869291337424628200176065410792244298155855314022549963146445088802300933398611246277385371731607584500344756956903134739374643699161830922074537572933642540391939346002303200601972220650443526031877327518038168117935099667496728910117708124193811176606757673267021067872633781261456242865274936204292105286461916730643621971637333064559692027119197897809273439276872033078335869802787122975301709732899088279906248057451199676596330038879796321532276176120350948163398922192275690114600629284452876779188084103946991987738038631580456988175286242313495219237413389959773012726226696222457631070716582129299769107477725874180320283171483784377793115436227933024361090400752367888635271775743767653199591585056886880378328503148430886126186554002353654672279929722595023676682361330964417065319538614585025910134641332379111703906771365880871268523384400008186315302406392430026818837989452961134492785317097950741452068753845012776989076316128617037673645773924389650162529232185601725844788035664052726332763150206299414865879634936045423737992203441359313896285738729548067022991332942750240818340186737000229915407367892221418710182547120842512292131967752771703791074336523561011062077777217029840722923241004384838811363019610640732868578177361704931692558429657853545163390699132495827823012230503482875804517614097485664944895221812080299379669013005758414364018718732795042722220133235560820055499038249810089178608958460773856079835765456652564261361379568581481294140574119651711527194047968271615334858614189738565621113459365656435664148276615094615578999790510637364718087107665727606893361497257093767201949613714552265561548772712448692185910819231589564158289798886035267419998101429355360662025447752076202564536631046215333110956924020456470946934848943831216589961812021615370210880930178950515538871608925525393336035401151165564444739549580494219205232111964563363766124490766352818167165027401017079053123009797987344579657513127420673863667412854621911540087468935594687118580740075693798364331465201535493260092207421083503626626384675596892499344622102554058012017736023436747147537095639882728267261481787224321026332949062839563646883481828106614207978821316115191426123931383905936283817709767595534585344916136341328250091741092781290197866446915697096333906766816986945002962012703608174143787130497928850720029898819609230671841122370482695094210214347845844317636922707854130895198345805648023450686224218574596349724365075962710750372673582436081191193263887707335617260708780467512725924841528787740933806342040269210914275167690601028133182109989558387170114507000819880704877709181635303713736763833374557832974757423377820757738572097518043174985071316072707980349545802842014085752286621300132155787219445281813938863403028798345037358008711634250257776239767801332146733013301925440354421744013170285622588557224671872861202412819598086755332753808239742178288666447366787760003471025023365585588855642103750386120198820040940039234746870874465142544570883564356976462699546177465537330600377735471097338544269049621956498804517552720197728101979297391276879180908607463703530873768289680526151003230173901402600726001091099869998108356084254870348706191446344475084647940998119977840233154599564902523150201465519642580824454661670189227631787945050427750999639217068789867575602500270923261946065324837302491352839080278117069480644750449815635704738631343701736936564000427840744856629486572406870228513644213703369674385632242770014452464134219376472919792773420143760373448496027029579591591563091187887957342727192788130685295203570959519789309276255086484392547357738461394634161005346031538281374723981834324026744683934051134899820770951273648791721130574822677089420553987858759539059939108537261853295230907595638086249007246130051468369537704503591643143501195557467947818702823252658927780208750115824151911194948406766950623386372171026979418802205238720437131056409180362379423088593654393502463480295404480743317355424844684133163081711475926390937392084580893922726005497384363593263783686200061536766202248127484160899668219314413322902063199462034955790346706822228662452354861222846065917098742306301795798080699427699811954353972387391459270823114297253961519086113088195346386900405441431770912020385524429255471355424398181964882029399074454929518929556915779513888199852356398389404976382910292752057050554650257512121943140824272725171663977004987994651889695021915499349009082261440374413351490463618045306895526930138586039451646450088111448352456409024396570476682478547674086934525687245875214147609715117522839667137445919570432475191109352245494729232791606235740258300303958951616779924360987151547487311772100514288337559002149567805929479745733389853028863406734699447566284050913552520664247071273321609057121916533547798475529368399597022484652761346877323751899380907504258705510705024652219989902696114218410114513092907617801561850163674143070538841911657173998106401372058833924600880996871104471062438280324770031553285987328899835080700959179839372355872373912578577768596885632419764715908595186292768550722610523103233634452229397025484176604901021229905612755882650362270883335305315071744689121526751794875410195892526425932208735239518234683287615600131563162885221615787876502932448577836945960779585624895799045732065737414348772171308203792477540596457678675793746262754934771873581652506575220815444621741013085332732504329915342754895831821781414343381917637133309378093671672250014654283340164303623071217723891884148439164683146702147696037575094636179375852269970980409946180056249291814312672695667893223490282529899080389522472933708161784465528107515277590522449727289035416746288438677883894862828725864631184163615386507844222595797756556973407335833151340049268132706258018141393621755374351832612377970159271032689576950079171395756237495095546145470890432540147648426859788107207371661121781800452413962203157304167570367735625689339446227655456836804436904586261733716993492715201842239771203109603002018870213109062426464044325220066383993775016546547903462390035816043431490765838710955213572541130926242012542689434338979407360145944460390723495550413163844330189098014438649101538457492566254115919767062259334720071801156130873974117992542952364294516683199821049843163384703662883767346044499181410307915445961747144412542104314832475544834351472319238240210267246188008741681718586073685411833845785914558951133513921354683662687414566732595945599277549121754918874999881573378608795598314890980408869129359189711694600284626105969985674414152040820446649515655484039234459481238025943178773429071836246779071516343357762830967021284214000858424398864604092249661530493770688708240895539923895362226221917597308713926806431022199944665986114688871298785542466962748772258928896167355122605121505931126999157072079009631883298359278499402773856014636751079709489791871758522506070261556577332284446263235851180898706105923422816461325658943999550863833754196751238794092147512074079685574037874768431722768905742476977522956567066736275940593242785957995717925163971500479203253753497245173388775359599916571273263101101841769136076412710268421826699821347312591944904322325995812264871106009563906674065558476387726310652732106401918762683803471205559070480690036778348209674218730069773068638839124671558670073604830575056763443896899599855625924916673380264332196728944124148011433353641437481183624772760057021246203114488804408648101781354405064476577681797857259978087113460122969745318143611717151572869572814683754957171769458904925984264986068914448544187541733142924436551759381144698734959410847005965941325954833525689174168069287040171895361122179264694336677040910494274544033234150547652253744603470361454524420660688092179354231002347946246867170054682675385565096560271252570060481514948581452513610076044155073315175053966093385390394994133572603329015529676016211675274458137604052722063083180757113517878369771762102649575298936595003175280795790642956610241483341206754006877256287615073056087971850113486999909851848227660728625563338266334703112372390911328945960523974217586280115834471052400004203520071336163540343033119266072331346062282798655025688551866756992564067195356829330167373500255745221244395832073543345522557271444268344521079847470226308115976980628889672088900645045216475162352234273458453575550945078744723733570890974375790211138773337475571160447274913022607041978825329058636486168183128098983831581315417834303895342643288017642990612279900575310031424631532737267462653641717315247910073046776534741301481980734477965854359058876455874572152746349582342844924050425317252255736406557594266141823105414689516012558366395809499972777412659233874144675547040502948697531837509319225968113145774381832736820451145190415563580662508378034057981330493429371819715305480867809759576410276749047304492469322821520922962304833737782286908136061294158099014699396288634309917143446638951795698965704089639515075223057895389834115863442587850195831379043971603872831477276864131105825165783689316566496163653448063717698378651283433487621436310196521129521674566365247318360113483573486405938348781273162709011880700837242928756675746925966413986654559250678557467783310531965637396751919411604236611617840088312107904446565329174845680740056908408438199984633329770613027733792353521803862965561483778508022757879806725423754363723276239405350557169698093675340676551836714537461643456080493864344963181711895274215112425478927691870893289461361881045790453647734404616405162072592091369400086161723093786726995737596074370661857169740778873864137434090421526817160074588530596442995085657057796968719979976744463080540596372016413068103154818731099861263133019103437198598582047437932508906196620202260672460399330810333306953178397215705336619998229061441755658554830696366404961807853492567749059920607153691880373792915624369753461181677696070586993322769635452918883033899376290966740485869646495993075896351850884636394378674245527127431672870263616764093491618949505526669853883240871228323566406122184130717365416198420852616874758479955832487035626433556425087508803626417383837876733575308215865208589297500460266094375750265385285400796353691752564916718146107056016312440524128325238147968542037898323523688651477678472919030603125391115507968779905877973111109557296809273375027802360043239839347107788191524866494431355410126723910204982792598395673372191808798184236056076227618760940536355369197273482518783910437000477168929062639361509743576422250134817198180076625403461229399936645359900482794786996578231294406659907223565908710294815421568636383930583749672301310464761460498789441527683205014326599076329537250492478144076928604954816629635661705707011919547061543675750020360479487985325774912130258575163875142937285962788629892681331860273591249901586921157803567286987295971488620178808648431456471385691920447463932691658319345418275923520308992872510208856937998729008171019269967047221631848839673871790786202020631295405621791325832331416555800267131759308552307465205780259377978759977796014072688433368281421324367065948940095884977357108406877242866493361313868770428973652128475164208085273583279039191850223598597786556288906253642432154909184831327997445230449494376364680506654293400910424166690287939095034980776821070384863536287257635994017602239404238215856195682762263969527377905259755669037246679478947179255131855580055712952027536285029263607580131465602472150926312950125369497840773247196330420526904039044237443014167461174129606228663891838659958070342859718916569647737429125130978100156563716416841228466895251558353068871820755596201199763257211228745778446699736544788916503662751158895869467212647345026726292369774270793257340944457745012475506827471945710941007802748789022546230069369551812346227646286563212249660124254329084082213724085896004466799769431992028053140521781842974462915915295910917321652317376401883718959760122896935328716721224307932097245613008030356801083489915384818397566380745916785052636673892890563821463911343879149294013006179976192994123588873839315189661921712732453035208337754396479299087345199300582303246324207903942624838488583983515182605575220944142674422770615761218842102523017192904334253285470815574877927804179032262120817489360289247615539726721499823854644464357216296216604418148697402267233542188983932903009384019913978765411359803519348367702385149012585192369236570001072732007049385509162984774808838168729820384209697970385667948906370765247574004765837079538375959650957533684275276249317299377268065657629501856855988795129688176941643440553215913158116136560124444744796235218708928623074467343549427462300800585913780524233708664973402113995213485507593329150832329963251716347676852527461322123428259505391966233486026982262028712270182277377907866556127919768375031404428566645747123674890057086707466761380721619883983358634319382286858407808555344061501256197920122372066450319976116580920544774767615881142810424823374164116826632234373283925417358664119879953066054258279093796683931390775659546196275603329186471595529628839760270301068454734002967750535496325057061264917107657163442711388446177346754217389150375999211773778395370773625135376394252458911508632660658305585239309162564515989129288016791923155371871222922303881203435243159001239043166798249869063916762009169533591802542948789204241917743140653001482337585377111237127899092019414335052310580639546438339492008752576097733894071548750936596973284275283523634976631185634430750588892595331408694399330871046872922304195907034025535583433167651457461895772949664184611876062276549402781579166734998971952751590450834479688973188454472676217805802111062147334816423124751057710015569459005815176059708210572578738139456231178528780966243735521883054305703242394006802466446147424748923304684707479259954091901039775277030413663989281159828399061890467100768642245021373696556782613460358899068206914134841917490284489478951433912522630190123580479927164301504521658358945438008919184784656665909370266405732716034878455819945713210960208495896501057156517894087896128482223654464662744323164924821089875444899937062423459020246327316760295298407509569045666566722060091965479875781326829149223085329799668273373153063576487271903630214470857925002042384562342433872932337153646644800124966220252711964028874790451554031524124848531962527784733483811186459717951134645687398887948388998182692841230670552711443491408673462162479139833124488783858257555228644299784400646843668648397566298995062275124016444773447407091523612182296761880140337777387260384687772641112361209184314505269633978623866065593464245389180931147298607779556934059620382055209312515024444117051133866161524479214680701778281209069958976378577425580150520726983648433957036344658703180073279321463039021770535245977064362433022576564802980752942791104707974475299218101271519447774482568599843977938227759075281690321690680007581721456189132529697337291269100168196483661329523751816924809273645120009689126234562321517952430240439763300788910973166369069992593059023190470693941539665479190492046170788937903379337321361587646690152569223028407213183271280242120435782967413998033190938816347912753978755968792632690526703251237653191038099070299223775045414100135666494670796594825401462475942995685195602491974457738752765886644352488472101211300717525936815918876353510615962936524887141046871591535513590999383470275499291770427636253996258341345861648522262530873219657530618615003965711977050860434449893657747272676944880628258826695908546301815428639394108031995045287073685127336728329935089403510232290899693389643394805328285040166462902839415042828065700560109699293854055845630081489260455254596207635007677094519018579412358600346568097407963999563091185355737132033417845576225860461574069313460858347259144850778027773197043852913133312093639481472659061956261147672541464225727494918860629204815994175829884515832325864906331444798914488337773112918976605085713946955804533285554037624720129004237065760050058470365920244522769091008828810230254518390095958319480772002925137212905247257208390924402815974635434930744124139404187651438294193605738866785476124352419394286106862077007299144522749542332041350057706601855802036557143017926651756294510676495368282317193483508451849427392333954894093416470517003615110694151975933244815723714450588582731343900794080029338116258777145396484952885494929616678926381736177372195055810293748300356119492848282504788739042640797518694979130646395653600195908321403523813344109494201154738522147341140982755013669791788886904542746078722267870342701061542168207446175145573375338488651180814396131858688832325974746071520500590748778302859164657620617492848370686167308713289448272202096817759763533778965479957530388782824056936305710886032091504260488901949312680305884060558275915381089868062786527226027666524849900935358025212438846605549791375286450964562777606974010107818091899256526118223425099301989676654779807016443121267928566270970919664255635619875390683604235723601472594488605821343871123082404350232989450279514900600450726520052969618634575193280901047896178344496305312589522280292240937160112629822797795146318704301262084563682375352055182065132927304261646214724997333539620711362183897962345701676448656101003752288529814437840294158444941168856081891916742790946535213631810881344251216704008888640790805665451385878454377685631764973252867084979786447420506139010958177208257964452571124234563665064251166094472938871505534903164080820220228354400326959611946076006574336846001955508796155519276428849163228059384235619036692252455364749975667556748599712064955368330752418528814034299430280657029080486700076339830780659943414112931251461778267250708930384669763944135711740358432662583956945571348125465651451456623060356519009627474571060217494282503454917501188589135051018677417116803048418634075466306238940473808137789639659482206227094335871832128408880523725325190941646150651949434001063045758769247685353867305317636230730065125265190994243904327659026831335551246639078114366468974748177627339230381371379130064015711223778636517990166476999940995607116348819627228229327269991597692987877725237627661178656369548164834860082490307727029326276180391274266323450072761359481675143200305373126400237475808353598049414736909874977392539377589026520889099983119034015884393768985641983110356176178046088815684011907188708032538616341131526648367685810663819748404387448235638113457563351746430026712481153156937704412688578643345979600805768316221941705848053707094286146338308403265795319797265096334069379135666840825325181304058223867535931094446407885537340320405074004518423315204311025721539174128678752843963589797716838153419651482662483327974041947806409784230725882002419442498228691302119830787541129334330028467935865777409291961523216017911432662558871563004431102960128492475090016337317120365716363874113331763726270933595101282090414921843284042893389927397175272608475799508148865869779951613207253437191607985683674954084864961594220503621833095145490615251203188941835982456312652840128031558876146416271816529065251221100252146017653945365003242516826216408564147460532069330891205424913537378219856802471760323178893906297541371777329392675857873355357867826999736030675981966731785478970229118870073184153871361690642278185425165722909736909634025608243815643235644952976922773739070921975489074041294037534282761342926851386642746831504991416566856644483935029539290530907747063758511332263483226673791431981586310613807209713652216216198349489619598452088776276033372856146983173403636207338092391036874846959823867338218933925201882562648278493672719588401713992461822953669776869786666946799165546342048988962265746537514784097284307042952574197343093507884453155039298282377555673611836264173631910481067795270607261001927681633474099028925716075601385308888755640953076148437208564408879084993766963921283103657879488631357378400300715725689230579511665955264544185158374887636209153806297985660075477116890796724737942646394372035514654586829086719065479815397413807413756420847567702605891241473474051560604267156130827150491262171564208382098675143164786349687713573595813484943824338279582155490347258712332915725796558538707822207832885677276850563458050916137489883345203218871197849742053484991484219099562920541931330746104948246979595249659335552837010713609431685065195363329611771378337151235625154082844498457284778504679567725047322160131707204439284050780170385785660470715719386403598251927407944630694215008299085222027200622919081464902395798341183210351590408814126057286995485522337257843919584955316702741880776912283973531870314858923784617858704536708898034833678397616782131551826560084547094344554422160592025502560364985898687150797253255070735454921954304577781764628740786161292061377721347189487561752284100829641757491889334403361254481144289967032564109457950042791720062238609968802019959578537769464359579203950745051372213088546662596336692315057462837110110917373503914908575370881509174808665398761966921345348390189918292194314084533796965190761701355791762975288146473536392273672848782981096197608642289142856986289905645271251001429051397505603465905446522254026189318289002978782206059270987009070023214285706356574457598122197496661707961707903374670549709025073871746331763850828051834302868596128542969380199158652924364911317950297196435075604811920012795894942174182478514798384926379329356314988688671456132129845010561820359049507271775552045534091106033809758723998314855346141972486363566514050293643002445484474274479212536340648786786779233658504501839798305017913514530859850859441908838531802844529328959331286889783584946731846513394403342058528428107508353080610548898595176842423217734803295586253183680949274260831098986159621285960720778666201147557448811725994315820912983887406404787459502066621752192892985415998870708712167177483351560777900986741307122793609082356793477300538908337919170768963119182382912425087754605884559939394709280063310755899917129977186772891156009865653932317468988435026717569459605217168593025281244851604037456241901869539982161926745772775033131132112303443783117157733497949891261147357851498177282411210597030433498922645926597617952333581308894627493363671120272894039155608080552741044243793931849373522878817001084885314108594295970611153889103659494245027227369099644917950166488874599074427972992921345278847597209822338617416569931355868775185690022402996274021096212647516642607840246185528507803165862946706539745844282674986558570136822736392341164019405023647197130904183520745544273058827789345958679238636891641272912547743054142504183010350688014516100748816000609698166449331500914544864774453507041858424673539362212866784238602733011986122350878988389545480946353842270814444337163194699616469829743892269638190809510019495567371502523150245997906375720875133477980294169411717988275534330169894961113668618733600577320539003991067681980786688662878376655422146909560032483426980938914810338614701703791256508946603584048966226819487944238699664529281781914929646985259076738184630248084553318134706353039546646589535145847422310757449297476530349867078533312817377286899116652926076849582701629220906230852207241707247108561199784614386786813904551322467387158316291030333344216366613866671540347538152466844354015549471293842300775829792229146922104207563781552768601562332422099637031653581475782731770101537216139321943876449093971960655386948779104989268502169819605190155877351433227214626609939937298843533110286975002235271018612085597804509480191922055301122460614977296173294085205964912944074742752038641447228811715729774790291737040699928240538731366705408542282850505468459706445577320180593564904264650856273734336763098663460920941160665903360662961867962260902678226921542607195242799064112073862707945651257364018434284278443036590367322624345683878216334307123993948007507560826912405083460445127237170617970003423223949566412568470894448187141671808436415659919981708678047651042401298238223315483673922321670400317360751711022766766333473869443397918114850807808666683508739314576606802102198215182502836184974448801568955847468146915816923466757226041202355572004931568614273379514721190618702104445535782330940630420815533763882287395274467137516435987683317282179242835915104405350517851914455326558267501824360112797372416460084798879185006886406506538153107580094911948005374515648861075226180774026935026382980072633596589285024575023387803466022371032976157865225821130123060628499650990346449483955789922536679812361896722436886782434327232827531279285547536693896344358466622476993259256026471131592068827466346927832971738232931316409575611719630945372759243602149125964455642234128902392126964449419075871677115727598644221265496373126899980037177950109062382108176333568218546637355985937935829758171567099044332515735771832654293354267246180830138345349791011984440610008449081987238348224076865702748767346689902640910092916102514715377921213890840486264139018077185817715336023043901960639193128850454708095799476423851132111493134819539992238195832123259158337927238118091358057052012097544826041494844046034770761298192463590302926977097626844265243405786882276843810849692659727740185729462527443148986841201491547349954373479245755912831342712164999641276851002191911583804671511294975065450485474589235737840272058934528507364376700454593003593983884712026647017119350384792847679031400828299419790592529438874637366640483853912620632130354093881201262870115035311590655025507657896294729869250955073595545051569720833147345941739696537568707875954043412404040213995210955028054468035863512734045220257372947538814704927994546517695319238601497484123246380130542724751477394019853062539774864990801863645859243065004377684924635696775466867214613294040974660047481427787421169572743560066781847908165904517787111672076282424829530734241937050969825618045185351259090221506237158208305728709322511620929452398727750159381543067742749432653460195447837195681469304230134336394326639128151795433386513241343028415415519598691797184419755399094226823132034214482992736654490993127365924771943806473485088878734641540714958978105458667552330889875197237624591705622929725534188665028335047506579976045836883027492461352320077783914204910207977765794269137280694463312801646939947604905214202091778977467535373965938615294047036657550813565538355723309672022133646311227904757253668622924311233231771917985515699937795560704827595980348385902955855090344305423434713182817279979090005534956325164221329931586717846053865679489175553425050141003286227904613158186067686148688376271410527796094103746445280009962909211743840104342377244271887977152286939754657970556474144370771058566076917193692535710457477299775748423694829684454745346886626354804078118361465502652203120539377050073008841913892626764404164487537789989720659397918802843156101195505583269774550164862008281994014773549750880480676743907198461776514862119447733972368420092719277870492732970278607038899672822596815524136522415049646241062548955147250524164949566826330030709915116428852891728658562214734855655266495239498061945484653136465936316009596466215789208487018574260763911292502136933774471447495688315880837054176247466402397912301090365828395321586625546683971494968562171589872198616237208450042433833170964148427382775791454206730718804282568918795868720337730253715812647610485080937754321563508938561330642047491771995856434970896809850910338339600498970865672223020527768578997813816910227996362206321456650651922923981504684783933313665844321115782655416384773073987223230302615716415684351154442562903155284647392343813499136789964817940480515774713220193518307291876883253184759000086192012015220049574354430491034726746643215647271971010954673244108255140273196392392761632005000646786248416966687978708134299566865440045898931621756070846250496222962996232903065693628305065666407102148810921468216893435964311603212546279822717104843446405574541192999135520962188295989188662873904936919456075498823443117593796217630645193428493900764191523186583728481320179664930071766344864098604009916737159671683290913315895919843109568977804962756519971070884016990674812758197573466040492417834732791443957543077495503430610143311376131687462521449528094915413414062877422753392833688521083970219860734305848920957440986831674778020701005916354406190103326955618786415156251088663523700806232805667979166848826388871847045023354643274213495329568636661171350828855271742440089047771665280175393970242811134467378559677793136592736189933149835163842505091298170529749941642673994609267285435150548231830880832601686520134605221860804576169299736329945255191044519810228638552415930355712355347645719368834605647673830215375264657815161806491003512243149812912314816084178955410654415734314756016473019370610810029173100869329117668103392548992578291711316141781169832932460588112133737952312589504333640844087136157276361267420503174463715311975727410670090669272184269963838738958201286840890474766090689706074342182709361982395454903049269611859414387738006816313821972694798221423265307164452515712376264749259259030915755178131149417045619300073845711124367778592258036270365060688297894845933447656830717865864652098096628392363148685508702420744896688656904700196464488140894327808913873793860354656930996333063314061852834672385783570293807744884715651090773020329232263770914435303567016422057459512719336670866918826587627923867069897204577223417466337370010258480682568783366858483862561108718357330675392957451896436301283931430764957804694673094711488099243933806916552358095488849639481494186244569454662618875768830915207417719799192467335802994637148615044052313845902848720799584052106329040565437156335473576580888967778008493000904399831741734449092679067624292031378642290728023234219677282208113455013384191436146916627664358688260538764381339355105267825169009146589253294192595965334364008786240670853415156352651435909688235583575777063676681179999686955030184766886160772456286947987474090072358271895946672488387181354046907552003783883623953028551166282329119763938171779166188005831707022027078015936219184437094807679986253968615912438151593128209718426509330096830079076940930870205993923651597318708333769264415709401688092321418916751949090824302757622563359625608233751362447258794501488285053116328029116310015150345870022165583230197593714137120361325149011509046589948147333374710994737654541940843041045705137697735645737359490969302933821074409094039011143284392441850466693693197269490791388301237856525174477881806174619538724456219898335842806772779956338465244371243216210763612151957788178629416225808757777750629423983845685323731553084994655825921683443146134506659033938220022271963057805840555419547245925551712576468500557342218964204475885060528110239703877460149009204224617612362209011603292510691741236916027604714295131958207651831885673177708956499782375654397790578226220123135787942370417362048420691706913955052470770461633511956068103783559106075651959780703207109968686325963659260221957345354720706296783017067590659900226796070783171986937646660993100007298680418979189018382711382911659245151994675927504367327127821996306084056480300412464793755615880210987200779003249181811271198212267311281993922922081959790946860564188064219904072148339404302603033232487464593132339841514182291033991467767033916845635100786970046471628692180454896112372361932739875227715171258763017235367593916032116136868181739389390566385278612196587655827785691642839123553781026803118383174559342257257475305708549738314921389328241675154254696684196047069964894836854446029656406366442360871325893763311080806803866406889304671801658596330123514873909919744946700161661787673306001977029915209553198654205179392508098691819539204459861720202150279684545393117279086066451965887432083009934669586155325219796116681792309643808188659770653049359591868736940595592296814947196272779674386227121673456564443361128865709565994507238117164254458858211054279777167375385707211881533442538403117302461141005400388511834415904977386650211013906434005146862744388332204790138441065432987684379267700541607349179490359369787660883139985297658511138844810743395206353562384490201439395369854634673071359994637274931018458878157165977697270852780712723337600950653509382594379845104376230702435120443753903424369493050412952538070803630491524183477053855506922086433805785267804758686050639223330405883086914846560035997301760915962669233749340519222770948248501880207121184905472375337693284005949515249513229939725671166965237517706827677298356923922377658948033235947932382038455907544325991956359428045287633636306184912319704178753018323841669227510698619484682661579747444103310502265594902638664035891557839425451516010825185860005080166461177899638130672312030752599984512354801435433305207056071924985004921864184452697277755396364315767710371516723610817685514490503015333528829438155392395371447975968975279213508642799805136343094352151795393378822467575257510042128362062910568179253978815352670824113002248466128966250332188790598188718469078221774946273795204774144701352560433178058546365076777416160808282211845114777794509123050928407094003291692027469800159878022988542129626353915902711878324105165338992865791319275714462863089788971176460185968999539923352559240524453961320696916046767063696180203634038721797830601678340109167483349584482945493750506990769855416446909935743087918631466590863914497629835047918470502691661633459390474992184967004596456615117449627518125220160840480642131861955349975393549613076572913946848748938456314369421265927890906088026022674696706457956099814236256432085661729484643683965306125853795711793661528933041733588379055380277976723622854747217960275164652605384513848391749669293424549775942925512222880116055667070021053998083531038215316930593843619843490541878335015181421206683675840428615990007585996908794050951361735503503637035509117886071307684703189563082042859520527375530070122503180530527025863802673425273599514187782990961377854875126904811041763006454152380518347355587958486567019255383851942947066779899017277053094286389405940909600796948773804742385447010386035134460110165234288794886877821671394423739818112815489293531193381627657697793398872432930994444588381927711100754431298058736498890870106527769524884559752774461562896703497291378002000213543224728309913975342569521919050836662199437849275065810854615085961315413023486879220668605018650676905858281583648667896821212596849558311716098810354046444223214106605331523429255161464798380507888058344700228759610004796154482165958660961118461967468727275506762492289157739790411811025877359124883755188161056382428980001035804199003446058255514951135925229972700179064941367656942897704130843541562092529817249212793351210449442486324553216497388522839341009557894907572271216679914326440721137176167808711677654118645242804280876401749282021245679009774678671076534094812983601867528261210152104823254705913548115715883477189813897256601214378409332401797067904993123107134168307346963970991089327474634318559603575547492894008517195055878773413512056871990194924327483871157567995597879870737060098361228476867226561762227267894881152703996598804309180147859990079039624347163839242057029928219169580436952198949266469190677928818385786124316517781544274672685375172334230383294919065754048483868112208586252413962144981600721679456590278027701669176126585457971641368894567486126172807188667046737764312430114867836660412049406955882222663593906261167009369088971029607637103887405152956228967145733986720823449373628420208607668312100731188463130498051563653903833694485048895662201225287670184374194484749908001696515591920324897634915504540217081890535080030915666615364694546054178711990402934378500465245558066711343905260699815809999586374026934326808357903074077989287097345666822575573031898953155949718974494494523033172457868773729632163885376187217138665795789172353742038047782142226883968414068741996920863556375767501230953230543207148483375309093421382977693661217004998378646598323298828034578865224155663494658691042991844646764395285807240614541243648701130700940997959388146611640247779315865039417796734039236249699826046776495776050688085840583461021670930416973790947594871489204461474664042744749160861043899819591542912673334118317328543280114330087808356887797618007368074284664965736314516543546996650596675466104578358714197684072605768576395711286969350801643048971580751457606910958222527098385341845048087555777162751399249274317339260942790153478053941864093508353173944704332704910792451822192012554604214116381974259091825411669815343611388506780597474128754620308819335635658633618870194805348859527727195042777905869370655186635281774936173665040982844011977181050589895814736529382080501642563952189476366401073522847592439788494268607027764546984953346534392703723981464007083096618937587471146810034121410215833540644527095609481286463054770453540724621742841508416943769613717969365180819202219273545650558871277288116500126559797707606505905422201629080199444017281290179865375132326988451512027064726935056627835925399281942153709809889901580106267997782760225786585974870878941885754177097935476696490817891475747105513621946465559399372308849263255095029648810591598784072273075237515812273676353739476828731617764115275089126463286223481940010903353879472409523270085556264195836243241765574358729391743552590631068036993078566131388040902423851454744435802692008349866493668818209406781479029129674959744147794476401838865921845183483731138602897970242606519781369345964579762227290903685640875551043395409795500068248518445830023027728611640701196452196859096599171587067464522060282080922721294377573712970301658372662877760711562907837082380474857828420036903658866823589363000134473824597622095140656439939825137457102720569940529688257830589409677158538638582655665381702121798508516169121667679907784683284225268191228667409892168917026509375598021756299564220169486984963058644481548135673442620336032570873336282241077242404453753732236375086838519631465183722619346405122352409630414786747942476965265901718632817349312993502969082712716893135708867548451130221257012866583990073316458545783143218240618498350310894989720371383654397313954871639470667689629676652637595461926509349640017709488693990765840883634306760468204191538518051993000169746743452747739325683265829643589479514701848236447650141748400789766129715309659788846375529798984767792198030555832863531209708025509445884532660896414287887121495948721216280373397177906131886701551707975599773283986315392231956802579054297554717499728790594732752996739685972015700854159478350291027252779488512391059758103566832452300805101799015039458828249378984305971131934054123222797625465884593418555294681705266398386902234931771755218625623075362236095066430125002715120368612866959270923749954493696716100230915824869778162836596851784033558893182930881842803403443385320737440409393765792184366831192527308253969143487917929704915642874885737333347071325672969509224883926487735914753463074518718266156708456062762718608038032821220115631326113374129745964526792915239032989517255949303735795319548396586049274631262261907992047873661822935717898346285461171273191739743035511890509798766017037528639094071607970209063282818422196326736798471507036434264243652077691770774248028846078018919986816838197438236979250042893069913805402303575311823866222415331981918325849937371884601804646623376652629211560743317691104393637946922525017808402385861678127794902822056738538512136845684268166252138525278625023202533674584156928046386485406402165531908305905519116732416972325771035036875595406308178328494690425558203307747093832333036628637249887890108721408812213422978262825197243108169808646157300988901700994667772716830366168516761707494521293845765523787741717723288264959470781342088362644503619208157544490334765719711360676885944039585392141381032944434029449793865286228893463027715915352371743051724113945942586864782279676288026917401297122002664915604172715619095668526554298144044936121716578487366577667851830388075390506035810040530014787766176145538889219234316417673640294431564795637107771128186408589938926746774057527771680710919044764061426827818312201276372116011285130496806821090708121094825594428437093758999688722424399667874936638870690922959767215226562210413825956070356745595705321279788114358706836242107858201193366001018012221893850470883140951703574674719509403114843285917149659685325502621152522144384101104120580745506786376590203917163959845266630409787714663389637222840011475064291481030227088739708334769953144611671366887624208800695865131791362623556217563323633039904299335631071437483616223705494569801223162978007691534839968416774100806367173170065638661949498263834003087458009302253991108493515761709050019721354138472467409111794319836207646946842295921190584959785990189080948604899006740746976093143141105883868670750934798810199632565461361335567262425790082602677299587759761621128132991798403040799505920773164577128500634570684833345362522874858346296072943481999772893583829422315153138354290569262061020638777076789606739912604333596435322778009322623296676910389968465020802127191959735205229686556583968779877272947218002764084761941652343787270543099770654216672545285737104470410543962849081199390662255033614084971807159735055369980326695124635789392230225129041959107391002424800147529349892838861869779376573782523152951760995294573993973446459651899443492949755687024848251831123599716875056611010303093150353469399251080937656298723296389639362118639351707209427190715871106274695642444357404894480720554328347285504108172825217190439178322850818771966546974413372020696256946871215113889268410954541228812647223760611328692072927497037194173207139253938708468266779956928040500926726583669393241232007436188799236265428981168826882674448222644447413284397513302467023516285168034522502380702506811279447963936332047004042411406990167943235628458337725646673091707715737391790293826068990060593528599574766984003840548292437839620115432693474692046582628543191500843878106659825092017266361010204286553281569650107910827648882978492365036480298067158975497251539422242192124474517080043769111077007143776185233393730857344042790502611547937491043313851228635891307986808610049210079371974626392185249944778580750111428123066189439222718648588775841933057517803604640825579971079276984727949581613914496212143771985018507535134145322505576669641181535140142688064572430996031256263999613847116307403853824475854656933020168133558318106605379527023707417648302354016147550303004017232376477901147024491138819014791599200854680600617904421837421632554537445249118615552513541951694938025733051327728515314680514434230654868101442869056815029002974775322386813159633128106469882774153671304144705882321109279209403901497835750271987991593770059287446581568236102197535546363473373876814269890061163698956333197288865748713937790688766780075873705728223343138524935922814633527441973107858681503753080824986835456630519377128375312198684694308584765081728244935891794256128347842372223546481332354391219411097469334669911938442282457345277109870022400177638012063693343199116100853853193887757110888999515152966054770458875942621097200522254019158669920968012418582051850521742185737959039858980968785312047767936394101814989567834749571535167749026765073750563366824337717827785456366549837717140994642182034064746568335164729887650017323180082645514104833842884288575161007060170569966574082606334506914735153918362926258369765508068735161326133034437215707097989563984864148235208949907095888514642897254910272276613741111664651870870475819079012268961797950032960706426688514557254793576709406168619546312870955317163678929970367592855237900874638473602851967028751628628926940243990698130295351526305653663833561610073681458137240161613092339788196017861689595980797653171503946790277505323288772246922297879420365208004963657359242287522333506068802617288037199405682951114782993961160290444577113635323085445870772434089428001660387536145012929339743420133350609860405180842473832264903995953444346660333674949183397442466165583981457456140013804976151051902928109179329911778960513709705924021701643779008624709861456506900903043058612584789661332223241119506728418649670350811795471733540093970556856687315395325332713863534956831146365353589593925389070493167375455749141069883395488667314916568487678436734565989859661707682905668663589891325930739465378049758482929971315354131786453872137967438317586607574135041320341448913338146525010013554813588372457932581171293221715729520393645074798949633521943461043887635524620374285218304974109336104910292219687371367621885868755634386529458931385873828212860263835753636244698442580012292323920123982228630081870709960613655274362449349273380717365500148367309912880055821166312315477178022010949780854340429589861870418512399017354058722485537544354325766192430592733626676835065002342850874375691156961245509486753510712670255827786091532391494963155570491244736114099627635976059716155359453396441887499390265988553119441604016394696814450431568920342659013543290114365798265873249058212871147802674556690623576887559453260255718617613471771856931884726087867788401089793137611039135182192835113527319309688846864987762123439199541202884002295434060999793013481311470900271015497173855654801128253897028549748416157339224448764833731111939527260921641591587695207487771814820088960703826608819210022345981766966944460464015702278281110354533496305411698679911404847601600109714569538454496986091407002630648966088317524170387100313049682909916301277907808550161043153284846532921260484031092256912947168870577346389069129782639966787354970135552144342531335771260810579367747343970955374217505058219799885377209753180481281659904621086328955189654309203790062047325183034556201083325945651104874340955769854411619358286138665655995348255540236064704017769256401017553822400382266054450713496516070156825156027426328722733793269128567611227944122193539791132415679979708389959308810361985519083767874720792125053253673160501702045189472093187442739068881298368364841439261297504799358070924758925519265480532647720393452483380469083867679524832844103826979610908294078926233058210896984810359426272795276756488545082212800031234881783445124380937177175517498692295432013910478365176509128532741301327472699689923488235318534125864068081831504722189779504672843251029814541561563619141137356632857187946433740093716982786196094165128064095206774560257244316943919728499572578029244501313600001506082001165394619798262313658343176318163908734107314946733226562382399026693684883520551293244625255016679330811394259399816887261116653407570115770048791878723370691463953432808829877313946412801594030606432444620423116161918006175373506730108327445320274665265682945330905978404016396895824154922716512128247565652501518219989460098193634140790605004857296080456863354103760190805652478685737047085396381810164805708309170231569280412994360669985494050175178703982903175734992632695808977391800224774574634555887554519922257000198321669287906509180584993777599404490024973070202642634961727269970481937316555674307688360153304111664029956802029488264709013890933062714098464065426463860650002721580260764238461226911445083105512978876877128036612498502075166476913304243694354332210004230452789108024191527584038076061615874774040873339940339439198167111298069564751375162935237337179111963705885075111937164505486253613469263424347881787937907581921035646552717634515945861167774961665217653902317648201596797498280497863053777723494569607337078534686320696704119965391453127832369623221733785268899578112432736558061351428054251943821521044131397581466569227916857654397602457330910930532859960981815462635711684819800116796535603368622816672515566542698812713078096868463969488454690579607199554141682607462422001021352996464742756024902206241468561131724583009526390553120679417508517143867630398580405815151048468096691427295857171659267553580556699136990580420360402720432316272271151547690519829589300835451685939010559902546607015485594902268858819068332767843834746835821045771386522558453923782002993949856472873419093182817469000144895800939380358215757763501746802884346451204796029868081634202151683240318238990876858382111607308942037720783386784831323028793951692289290411254503880172924170116114913029371050314642661193438371489107988497361987771211731741749434513167463256054144281752559833684005628590626229370897946037925613576601819881659159771888024409416915333855779415559162466461287598210450214149692211077952188110245138615683644569032852348198554057478374222380068431257867951781443347082666391586129402838648205423791075031481764344949225339588520470245877600398973544741848209072144704505596603866311406892524224052447648650112191497500242907068638934631453233200090321273536856506961221157929271009457110396076733121258304162115704688048946715858551167347803790742973234055171751212941672478216105140041080939918272556026988149054852164798606947196156467942919104299876701613163246750863926755833497231124609136088935469504573416537847296259165765850518966904719676113429844210505960645664598824108259907568588425495614573547631088176509483495727570784149459345283605527329691820728704280899462386645927523331207611637263133441478825989380213751639032371148180901516184302729151786434354636307501257843229251751598105137135725601848593486907765226366160819697228060675718503633488118792604153440662407425842464086412991352427855166297375174751728639935734633781596551232534768473910310695414113792747184804030446437352669801804621850785723260154099062261346994690172562374680171603532910916587889075885633807360324000802952997512794181469534241261757481478765982930825259136894753655984871379413332589826780695454941830037226547118297826547097009018356540421654094158509130695616269251577395394853527614173073712474410450774289146961456754896029080851503546277915357376454470825557852669118259543883135202419886439816542958210898200026290727750704601837827294479553952025334434435671568357600664645782324488374277598664996434765009715330658315974477054560286089543761067578073621619608621964960455346615415338283129540866802230285618608707588759045704194825044724540444976624932024439941127512281568770626589560311534139841240517239340967502874677742962078295621676073017195090259991093666005846532340593772619793993108331382396182823018047488430354805749452465421493339521838495765021248973216139523073651290810047749305514933661254030858412309382654604584247174974150612809432366334264894511698036150774727611814881632594714661416537856773056989350063914061713303966808688748670728743044792441031118698429614916795077395558902592658547626369480065455494017482119143987544755549754953260506439172291788718109627200470901933826370132721993554961086907790082278196923184921382759127741479341960870774002561142335112818969615143682764759894665353194042761855324440559956687899067416477419773514930629337078076140195218521999609351886153256775536177415341410312667117125291544459975254050157695798699924996044018086128992943597785270386859158492262401908241909032385140642482144937789911571609661291948517477701151797678960973435070257337943843400346740569813629715809797277260357680687224921184824756981006654075019485549746342078834071375351773389582656569351689229592236799205323398973437705104996723808253662612427619942033320235144258235253939522363445182028506610629436366353244136856804943516391155797323996866275594868269095013527537197712383262670066740795937822812568192033459592919018998451575742330074227735057272284994487441739358955962867621352626717156458389018996530846137904116209949377467596693712710819575219540052224498671697254672603535707950120007806649958905303853009924316438131099623940159342521377364784970804029700426514792300923044769869160471502464982110354189307612829840996047682715460381826203639521047523237343629253174949001396224376032187424228471335246301165336440602389111694737179354771460873539982447021219110989937677675880574019402925570283509173148486062742742819372603388590038239109720702699969342675953984003878169411118402303568380760618797304778623194571047276454129397904803554046418242992416416596717106909649451686659071928407269654994454746676600854723272168155022873997319573724020448332331363840896167653226161371255672968823450559846336784189259984909948738541171886920273841134462052941429850565760040102244812515124286293671965454025052125021825250766109767701018386495043923237466193766682803016220475327249035951401720681332627606936930574420236626174958319491644721192581266700432973583883550983429991135173081031911833685931046035270206352272294838901060131227045581019869799629663141417007033483820280197350210455937527021966220721038025473421064499225465494638017675846707765719936765782695226555827101878392921625078269009425314466824382153995952899807982150934146538534677189438135017727385782542793327755765663732550777870715443817330722524865864499832877569972518102754215810432244832036056614194670701030546232155448356225836216724697302711681413539649396144483670609203866280803673620042213681843381353480354505555073823378777430306855227729588132766112671031204643661485788972852857508182343018605053640516669922558512590484832777648683249373801520719711554177004326223631676895544584162495798636011773254782754165036409236726784018948980429941873184761460124079139734807389117407570454408590908123766060474602933683408104297746145278766444623035181726250484976604744743966735937245473531432275077274311431637153795712896914913477195018884803887240033432482978561383659592956651398844665713998114264373276459132330677939259027862182918260414230448467858408358933299855886270140101345771547831791490650881805200087613068439102996387110528907058753211495788578434406597357421067946316995607939668756818821050492016390486246676415340811313293789019685609405323247386786549466840308640393964966152285810506036587162289634722970790839612470168321041192279111428218626572045077023208988299545233795839225433080884945681368187910039483866500061467973193658879941783330352203697357225354474855785487925907340279341801640280572843495541090183367118262323546399606037049225120308449527185731965798239140657057766167841876880384463711991975867323475935059064403681669354752922573513163293499831874181470560933021416301825400098420637344631683866497918901810077820337911995532332909233476526251405236452740160685441225127555370000943490490361866475043732142316541873079921949791214207994353310428392607709915443499158486455912635173107132534126575340145665110284341178050874539867607404177314069888646054799728986667363865751766020498111342571506192620907309705346164119747715195643358547641800862294080815232208720727454142736237593172869955733246613697794595157480196369978198606713084335003088462751508830480910827193337188046973806917811012936384913388064179818578558815467162558340340190651906110459262416772287875215739864465814158245759349623855060293144724570046735976448648888589652686859250243446159776292997701435633568031577603575447141073604416915807913530711003106192951132409955448320861254633473333416094103012382536247877156811427573309932112816671673469074564854058775968988490153978354367757589655847971926095631260030718926075812723299738068583848086450136100086587400184550345925862107137844417224298458660829480267938976925454029343850437635485470386948215603662788940978428959671939786819605993290780873416658134091510729956484488908691120513598632537055139355013353472803691098714841952355489635271190918056689393504438069193937673399155898621834456262250398452877433942274795709628741417830578445223433688644391042234270157099255980094636774340989066457289999123647782623275367776735115646417239127160597635452427981750688108922772345277338365302296408048210489389219478102633167267506963082160345376850694947024598728093682465740395484076753802417599049247480125538206797241482014482832053708182868820278324621133009553324504487171902326431500477418063789761176712510842017627843400593436501518095136636792956088255048460159583754104103004891437007722423423310122051587198151876554595783890495930067380391625412601241706023304182272623301730323103411311788183218344318324853863645879470704109954602465748052702165662294335040067713522888669452508994731794798832301261424415752176626530368163930870491603521185574408033642507731575369120464058108501019354582674369462182194079424372634055229390648706629630358810066731297082862458640848369225337981359365341578267419062656554430650787723764139321468720921719654536987222165460866955545584496771811953519533991132459694971975700393143878382145754826411876957800463177239431854527720963831156122990795427023361815465137553214226385289469964194256630454765234419803350134427127756019297707105650369740182023643055593476018218581797595976386238575273621356585698501965626818510965297505045700653684596017112687070217696428990801215869395443848716440880716760826985502044187555678684545939756007623837336966609619821299310774194859820453215138061690321506136904502646339412457359176253549076481632815087291682314010180856188237619639556791780165113910022352892461095054167643029164574887871560805984456298887537860909210616673447659320998545246417247301097465253292218483349603905415628574414509704754551238707212185908937784402513343101937780886441092809000037626711757636327802244436511622137271838925313129577614789771656170684241735982383956944764574198698353135248890987097103658253251401742981231848108555163732155021176375305181849794947901799134738626939989224093419298312727567799854227877962676396283924000468762113434612316224870719283837741528699180856890960868555191771125092454544404012183665585925636832011931294064462315500465002347740194486343342926663355423661194300979038263481687903584943760076576981816783250548004815968383785974883915228084487706344402949211626111767727292924571647511288890573631348161168048378881645103734532465897351594008391249779680230622535675791768726699634631143793071761814715439778222847511875750229636360875222684357318838119647156259505875919815347061768649320561185088487615820066112036023797708374699579776621457592673757580829487342500464879697883631921226719155621478072679109702205117158626206015575170400685395350045142360759786231579102766524134634416382861986826905722945597098973855551561597843755601583035974167731397874677606444635213184851184563090718080243753281985941511925925495608441600410201297031550866793438513541604223466156979831867108251767003138986352865384895810057779930914006584999963314933116313524154847467757448962329332889787603809184052115618252066675992260177885563071263520209530627819185924276339816598454558302566229222604806675457479844704201382407690889197712460117967973979955542249785859203675671548509080005054759632967933063344396136013405485721952935564611185739258511934906533214275975098794932344335969847127990300007110348818935651380445631874669376645600708512222808699242432729499779875904320838364240778765953484649397760857701967469536438314094878573441582515265501814068337544338181867935486430777841043399767183133935494306912639039473394638165134592831213248657467129820707915831387114418283025444974964975235608997719321006136370811781276466136328604521934375860485074709870712190501466918145447698932495958987926522141244588624821946347913587184405027199655511525097395947866212433251088703579085888597293916683137652376084050142521645002428497228608108519129291755247592147301959858297847814436334030077770481923050778738655235547403005629812009966318831122089875254192188582985000565442626470353050990377350273121118228477097578204196112018336121879546574869260277812159228727949964892291502573658904557104595367663744746787830319617028824171828406718266605687795102870795134714690010140289340151021603393025386967933283573669021330924565732710561237787826864989239947796704745799547557738287456670584098215475824612890195301368461106836588633245827716396725982794251825071915467466835859440476619333391549056321217199446197394352293154043659315441556454571791553031003665325767040006186657280089135820933605075195791449471035341408463855178512739445090837685219053960249675245303620594694467081429310466702736404799992705815034790323749504538952869318840093506496697263257611632131835254358614535888360491208851434645388890971257375731728208814365104036150967772055054498326787832531659689739041785513675119305611624411017290392609549557229984160742025790363345925474985837201370771448877523574468259175008159847003477729844644179594471899892828033610510682255656670604702460573725411583959017019887725676316365524823799653855904063334559187471518500535034542745648944910771124134034172061400043736278266980684979044511925417009920290758567950885798836256731809962718093327903934206972879246779109423659492797926261862008979526186079826532815294916106798016115197090948352292411054470004694551715425151742602407972243289380056878990886096801294626701765015930817584752256086227958473381267455708766273687210071027769862010035119764897806910003805287199407092361937256728310075796549888732270243634139290920916925066788129656520537705148733805224284755690067350447822370461223173354479523674395380309272342820611649797497113619347459405004874290096883015594091390179055192085619745454122760605703375886917544031416259189362533143759143177944953271562643518965550375907753678340811958278711373186723405155470371858956176362445352729123953731219958530867460014136860402451775305125735592127275504533951334809010991564559746268415389496640367019577438364834087839895912540074751275752415658391089988657883973010902345353682603081400400554695006777521712075972063663269093157686186558780415889769890798408763686402542303670429937829325023726961601769122692081534409532138462849661393709351706734874144628217387126052805120235117383039911639940070964216461902837085431537357294904024935928120085614745780691822440025301051748413570403378890716595017073633564727690460694259968467222097094434974090696794748135256991012453365643481618694543816677895127255603458049086180293897839208467271189884066181087752994897697969718551910798919824603830168938776585511411395882209536789578032315698785268310541918457936001191127670019447563009693211416798512943588332284095049802586640104845283695448532761742407970147447663987379270576002573645468559831198678843931482802222516447374367645637897735092809221464300125194553398335668418182638373422933252050646101158999091033320204269629290687413260555077871624305320514807186651980776371181932084763633545723417438502024372889073504881720301337061807527825247259083588561361579978739156626633605828803895000219250138044325681663461845429207375309136682237377700384023412615395309843532491730184048240612911699585450035129287051799120436696870530586286565082582162738381237771439285604883876424211686056762513195819815854066138987008100188613896041019278829332932464295586371693167183689795740707187378861388782192055209073835053336673343212397819827538111758172989393782220490200466546052396087236536989722414271234794287806073409370884067609951321539766862762585669162780215130410723390971678780183880614095654153494955454986650290248444340377883678475315248508027004544140739456509403392199200195263547376290765062743441029290358399623261692308344278229072667612718142658108539712859270754546806610937703489532180106944130919888869207471407312953613585504733602672334267170143483589327332227517314966317802276858799353069091586327125913197625260001395246573824096340722994500380087364588257035167332927488331586405437558089717460661273021997034651297723910114448573592511511665158760251622756289451448146816692169207497428480834790862638627874002532095781391022514296866622147973538909842040917271406872783655224657197421876200995058286760824280196094868750302801324522657553348933795750752465786294144627716342634592221782093359013460431770715520977226057341522764605880120211564780966431648050126534028963891340671512590921605667761321817468659606915720310674738433666822678327423539427597032410671221545198813381192772110212826887053050066511517386164704102998336529586943281733749484369354504619973521586858412593683303775075493513906259893360101432232007558194208495299675146055370818408013087763403638366008610643761189584268942987870926472434111023815704020038742241458950932744662412544385449772612284184695169897984085967832884892258643834036770138013234891620865291446297357442192496468596315058447821168998384637294501511774818924307156006704776714347713413424462610098226133115022456500415836201264917955840692391935615350947436743952841258940065616465769409259403816768283119053014381538534635736507461026971808413175552054272317373604686123672039011616021107421173933965560535815369904599419875584465614799076795640556724805933859294187598871347744923587491993740135322980651022764148311745832443838717768185182285157677826370907640878228790037399096944470318581846145361360056651405393210059545385956870684570898227006481283188480550985056053237422245104233509858049910210270329866933337803857290028763803927380482697265428267877457275614308499441403106806591709600651584664098962969406972448711043417245961999048491118268522878009126705023829866648204138102904844216319502694325312964127774243762918196286243970714236009032366541956786007606141050283732921503182597082674471299623095511817948193126087573794865911169041590749410375276246360317608972939632143306338937561317052307889801711115330445946884580892300910835097906408931064062988898590966293833495872691196793370799936757561291826602004834262027945654953230525011827896968750166396250954310594990684444759271794055930420696868398475038448738770046925033333548650992438581043494280239042706483273394583986693093172172645804261955385369169997538472046709091984567195567978675392497557366061187509310045365956621878918089656063103258568204492628092361559712750800256758763752136642811596008811991049189746972508001320137460667310703841174094447796701609472234987374801371033820545266324486829111234980546324422965339111553083317710970044850379766896249897004559339773897280925951699895932466003624595896025568477797322081763323886615340931920963600295463799060188954832747331400446874155737024353673503998504746651706749222457807970234884709477880540441947089286806167746454838100731009739520243542421193465602839398785762476153633203028403350186414672129902692106610732410673004257419963629308006337242268740506131217287686029730075478946641120279244134738539460738158129868380129412859755616176583985869806472583294885335067195883194212497466456559120928235469314266227633578124820322542028076535737608924086338697081258914823430741292612331940742891259399809084420317582659382099758984818891460742097216342173989682222549499535625573724534955622272636668569021873772903572800285355147770676778108383908801042871949056775768427190992393436906259820319137141337943244795458256855461079450762632142225916525053607850035968260072814477034838959785712235042553092017331456090273817266528600209866508975577739895903424122485491926800090178673037317438324020648535836516935166892412294617131950281819729175933998120183125725405586298213863813838167261457518689176355624854409369733304331053184595433289697482887709611160055490947099001889210423349730752848221734179883792710693529148903401707903741986378084126354160620507596629104622399480790740400454465901667153138188453235349381837092666201263583810008903564451292469326420751995875640407947937326642122595022947643975515146750100242375633438737923464388915125362071288553691781605676343083109561933349048809345832982492828493225395615981896698610874744504183282307703718835554750897333900125725117105287080691706019689437109291542568996166917558499751762466200530229763468763004616047394680803800153655246736057759747360882447326190977508671527846881109730631230631787383586826757271938331325715317232524730409670306974441006869920616350812883417137833451031902768512087103247880858512057053691399548853082643420327965760581088779732038755024738098813453501944548214216666579014132719519936225964619215313152203192134294002069726390902327867174692838325970654363652477774253342949556177198478480575356547064067981276297673778209506552398203445628499786320514695583265370062139727338985613799302175052876304990166644297342733057828649196127215301871123365780510277772564657584783734249810582361853089320388990516817182054977726128803994976332447291039564488711994845271508728994657269111511861534213132911998260159395969170759602611799905942667922225638461567259914201266248091999036207929819365210325313497015413332320410396989924614938954827144342836625351498015900891697122496431571316526187460684052208026322429880553519253918121284168812959777172564250212741756614045165517849075797183236358870765547712963829136056593388722012864609913399553420361739267213736233724753136116675537509898491982701898169906709244906516560118659195161960612445964779539580650868861245342371935736940344546682842567280939663570327245569086239923268206152656590156330013662379117086307527845738075284316549288539825117443748335458717981229889375626211704318062218718888922388072648160476882247107083905814576449491854831394269732999140628455052298072213314261345734685703525692411387864527918753378974117181126895887988625430446131272277842635304521523267383997779990513028865623997358793588853634410212828134981072384137945459671903797256379109049864383453157289052476849821886219745482294776058920953852907036784788361593159170101760754693633081302453742135437083840795219037081306317654457491162522496957890710222361338928830737742043328341443141701670472383522027594105413397020657952782906367023857521718820636688321238868107296412087235181607260640679449358476845486963974308239788602846745372022603212986934705218056136686760010595450494093836227922259403325651041026117802190607160559965509213035040210167981906485637617814863473459160371507055241335100832399459504667812045179066080724475609929524305101153965733796636969811114810583026809121401355606705754495668328373289637573691759686722967550256638102053729829911149653746776687232564975617131980899256562575428746501083219791057692870108151038319071587599938817669050627477528681522376365514949175887872959746969964585772568774006017989416921258626139430413567493608456821747983642827196177166280811825244745109534509531870118967650298299710606357974928918869870517784792627925252683833025143772198131051748299606171315283854666720537752169920867842630421516454897737936699735596645863702092155219876300345199603336819913425820999979546463248556089601311646269937954242799920174633773473601378501767064525432329379173331570653134719495229804978661124769877640569836145045840592754022191699586118144750350458058656399929656113265858822921021476148334223743244287065507118692620183461908660841005250849123007576938673511298053446784346090150355503517819205034371733732363903532404018846245150838105139493594320884425540147469717281251192864513628708056850463532582393267434068814417006743308802516421271324962638467684814242652542485275353485225609758395236156018600777910727933698037625018175722837480866680830309376103098959249497727516141316854672186113292943959841518999071896553050445490148285007558749156803693843968558981968462026314221728482078380106721083950004768815074737045863760684746908522571976270061133818831648526808087783943960498423198194756198927100850793027052330240177581134895495075713472248719423139448239739070259989468330552162365697163583548382076971700950579619865102691404070931282011830737212776352353050743715524267565929793500167055171664436434695837547481880995432386555475563945108502118995505727116615936812929546193392559250053076491534492859157454090171437287685007478205047105104331155640146033245096679721145685570016038786379769740716672959841330032986698116858531587107311581998403452860516403100960125427329774559121809644058720675022608505672641448886692387497066249895957920958130907480720156319570621211588473521493059394626314053215810518237355806669232332701011754167615870537160676314581563860785795865909497543201006497339409434996026720780063419017158518115241797096271597225768766159645144872594071660213003952020665005134985153137377662656541348907238936815052334952838084262381464746693111771702603559742493519153239809053980887375379967012014138885301227833259243978680004778585637699334972286064781838838629741292377835586782292277283905406094870535121372590572909604520880292982872037741114550677153318565479045131947060834154573951705304218163210514336066616501976072712794843983280580044903589675138472831815302712806693755560142393915716472263206664598255037301785679075756972599785044191971430462101267199006527211544559045391691848800316326689095395626200035509029893598911348655673478381262817981811617574049256933049385574883845102620571222396102966596968649333546070932517083412140567179856558123125788293104098718884217538468757041262267683003603214382189381027240610237184386852904305109968180134418246516175253130238669990020142594235395518839018034820028956687059153002235617186489963337102073547949593621330746009838121114973367047371169328336222596050608284962605954693427398016865326786845636836191952037152188270207690855543085567536994096182077056533864043815135756732247702111697323626081100602790311089149974903174119999549505107554482015677652548355208114625304684199450971412744768103447410535789319199377266704598728456497796549433843209071528158578065251450872083387487332157334793523065327797180381625293572934766618228118333875238880438457377576816815935675859852239368037069228185422198737686099109030627419770771321928010908251926875318729895133029183768180392610830222518456866601910807833949843468953365150272706368292469830867888592262363742450749396436219111579362332139072679164913130601902580117788025352259861595582253492434712673963204972571584913931565951864196742520008437491756624119630448356910989491861248292422861750674405555466405524253605700413088641564593337345709034056141724770372666185898184500140840209338425952413854048185549563581757071124949750532069200635735240774638205099479322307656077049531611823166842239435626700858398294188120907005453369399451440258576983872699707540235085404777264059377133583755005809156664004052030380114493752412633535354239604091437282343209068775018431980429928047658409452605790890029892994139505954213096857255403078843606269590247581375121824770485936856875472856216518053932367317255233515115272617002224583773146762445820812399984497523583464846121095415047374662262341211720484822800362469466304253151454318583424884819648294885942125837248937204549966722480785619260928918642892431110402274059285000356542197540392158993640365835219686580284865904795807738451299796587829831958558981910300124753263726405904901032325092187263453788014736014342548535998120026682974889598863232137274869830226884229428085682242434977000851711010108605026888831652581323328527175429519064708318438923265296267930509141456087305692930403184824383101789257651326143775889105694174228602720874894275789584168223168897704745176653535431232507052040946899043720600345575078480226786376478392311306676129539131555180859736439093897402302198538521576419078716863990806523655052285023047254181346345857289409283959700889476306497697259377440708367651501679110448420998498733740675581797757505558701494601399527507613024390896522031297694266640575928963728492029845494644749427048204206356403164086214048537759328079418810421648244887459745695643515335455259619705783584581522571832534899311420349153265591280852316736704053089687450220934109287473205369610911099599944219287204931619199764363254047326360382926897979548153198746311886278344429239349356618252216975429561037873738534687278774112046906207862330223663362831796585827634978646059255296192491153783898172362167824178335039935508316366452192368308418921330229334481299927649262252049521191564241700993720212388518264727829932120458204049176938856516659210939217916899164426574187111070877676944870317550937083711938563260349524490989942299590250667274478455784598544517357921810509801440931029217097269638522203293971004719404439640111588366284550973566174975760639200677147301670557281853089735727820571829362157822713317369589510781953362807829859880762599813232485640169703153360695254570271962190929895287898833174613282088197388915345802037972138487949703337655935645648020692248651086657604514037250796774677073038933127713562432845571035152278840625734365787654158161599704886909694650752411802799684193636586464767829875985213769143147421330995516404180753494363452342889048050015230373738763168366195920948636342434588590392991202063961581135845760086105016288077645755426933857173853979987592059719627647785812231923195397253621821674426884769368879424190095550216960680512757497418014071930984559142378466790561449755373252513838504464884251708311636752808874117576812820143147577428429673917131995980023719250097037639569406874250967151734622130770333840909140712844882875751613927066270671840029269200678558936243744884921767467322883948777843956689094985058177457061047068145408735195427776520174033306105997408996226035716661072452205825163023528604697451446725030739528891137036918670130644135865640188938449119651767745641105847112646666180347449393666107349098869637351709829423248516659288173486509460043215269828928517026235106431938815125043195822661395063455274947410338934171621073612568427136647212422941119760461302623242252072254304701382461080045851700333240206039630620015004138026983902980354737373251158481198540232697555632561252438673703274237534805288356434161384829201199005296458385319290769261938602949473977601882159452557176635770855800237683911877345764945891448679244759826235155605535173313656232467655121572066107951315005461627561270974613082456877719550528977332984305755965628394759668757505242206798177254486848386692881941930701265221275377158848460829266484720919794474189468644330401909246962863803531316400416174495128634672494811405314232764125161497842596057271862708408822221755988510438773577143962784536580318501496176234493925180938866812967600609131172717726703768692784844072845699315265852445573048091746223687131092103719227760419794783323360733398029425158124480862401288730601440359633413148669323101974961045954449316607214215529036390586885707206938692272005801978887249944413966647531692217879871757828362119133393357262083888695258015133009196270988288978410870922219011531825447322284523681227353397490489305663148813248370301424070717392076487068283639811191417574222664674914243746851661135164827433156683043957370578891366337417360814851764283455656158332620746730234047432032769838457716052160563123850895360502746604318626113723386111516968592096610369979264193135798215147394686134584801446933714384224313960355045602136775777418422106672858369024505681153185967817438518664543934134888628464521140178375493002065069205970559096052463813791559471327086786162923245024154212667572842633540335118300868520070308048953583610333758914766025006373458499167341699304779261324519205549856604682112745516467987466167600595579426226386476185155618175950791107899778924288750909113991582028173849376588283057343568455712878873523403979903809735716665620022387246731981647302524443662779392764845878935117749839531192806607174451235624186369694488969992317842723817318575099011426861189105214010185829220858435907450449462386216333856380127595871677561888015655175125274077679089520406276646635281023257510577581580919934273751892667779311628993114673242599021379002006091999682716555608071620852229283095537542493506062605981668543224362393068878546733379660764022566542136276262122146921799915445206061221090970040059878600613166905020077982444170738615071684982244272649369143251277934068045639441835470989070147138577257156136076935683690244520594873473641939473981274484674734388663048535644664061206654571212919509573520488164991118305349951718668538751349381170507756139203992475415690824283287235409847766086861240449323773805522781719360726393004942502078233711443953483689119456846147982361362130284290131903064409589069638614656131985617155879731743357639633234142357923469902787832264324090096875733470378521191748358453174395751987493896180859209609563548119304780888145957836616405014449434885105600102294541618847991066851703258723803423132839277346245511835476950526521074787951993931288684456994746765502567473391740264027199061983335131758229606029900972420069119757335802524915810601610512099255337859070242151146252248619713882648680803043616644525425784180291240140551071570297784092877626562605604342575933094457848868610108634316043388069798529623078735736154328198419922012937174128852379947390055202090999346749105734960944479658320054553720383719111708966423952959669078872075311319196320887688537496066700593919148975951461034569103357622381031533881416986359932220041857243319236144805608038174406476848134409181351650761517522155019890814540194402951715160549981139575617475967351325955273432345095043562062999094563776916295326890968502222837447476844906135699339716209073111511129485883972568723317460787291666217221174028295983689393071475169898560764200844378998806506033002597087732405818307711459938265038255608750853345459310012976499386818494494458235888340179074769445751177861877628158055661452504794868534707326358915470517773984545534060905662076743905927402137410197420007016822062549572333120647831145020481373629952233308913240022074978954243715497684484119718072067678944431943069998938338969674180081136171118471246698110073698693622108452875019280374565725994059698219258830140272823285574851371673172033976833109678980904536716109034894518248128850461725242841447543763477394466043897268508615278260380734197038656461692475555615950644626650187826304556675266309268426238346244180340648537864669245740951631807706703439904326572638583580388681382682053165673352120488036969526054772415530904920216377499045572327517412643778740783584659067587872840963012170232127587839342480133688490987460855814544910641325703070015258016400864552627629750098797306674406958425272342372903020576393634953255945300157940341014559501123912463607921281422725585254280797639905089412125929627235431267097950785474371887457056335956877894778342802138419251347232990759556908641195582638894723675350629863683565352309471674634048234672033179892079000657486075554607006340570621846777602392097537441313761041768703007842519718774239044230384296690702557965234769128944789108906455030381893045384730527051400896946224373875241628092068878491128892762970912379478492582859800526804778879658393919567269322249149706891521071998560056406220311743122386138356281676325860436134052392996374191811165129922628479550453206332173365796938051849027689570099057459026460980540293854653014105180752932406455649974032760464161312963672479509887463631326746898603780940196684878421331982402536913541564729027765012696864023152139350995427089530819626361446929777411298741147704317245483673341104764052929319652791633052403440409275553008808119802026181105573533677980646372761517837053613652071919554582833915802314790001327308422262688301343939751932626917427717101571044866506406544724402160721994408655818434711835924352208331282934229882868974199867602014717590075043594916187701456000545317638958665817442179860171652660807281562022596552087517629966516791291023256897520521953450312455306337833507199577674351265555864469687823850586094456294989948293954364095361814765448084676551698432102920698510990139297886405174774464049419465058033255481970093881607116325918883954512928685403729042377202208636106639136637501780115901350412489316316356568295452197301557543121794510846374421589469548094840064105615339662134057453533787556774619041558706631292415602156905723575763466725585319765334258577395039273073291360909528479423019254196263357081741863939904651235151577713301915191114795504757868908484456929726766771342400807354913174367991334001150116135815953565090042998482488778510930596128758494794844955144382434552159841575893652011299866744025723222575650174727343407757369694806910378298997890044426379298769807336078959197503748260640530644198290569189533554999396432135157778200190916877172573292277035601261881941575469024528387596164049922307429913196396138166658077516555699911737323980977415172338483124578685533489431274020584503096978629490135702763014492312261711709494256118054032469391587083340440824146630292413368934561380412361105055331858552067267326247272756929220653358724480213321921284856576679312483819341064272903325841062038441701722229358468406072083181875300397335596148408641973667109601003927005989793010343077189305552505763567289297423223843278134293070295654112755576182644155188819342286245990402183489669099459353518446556479693821867072462196907378964117523809852664335187641716168286335802208871993679078191418080979910071141474820297995456613139860535524079081434009305168369962923021120415853211050132088361875975999867100340051386938459283571635770606432335374493816871815134710566178308963651492717243389006250058913935104453136412442368263553483009670467255037312127107677165496472040716730674935906739014710177799077688390620187396937052860728270947926042351085134881156450823068650676961278444174056122687904631316278643770670366498504802982764171147298777154465922850356218865444992422114535571615452045861343853080234731454579367570592523177269700271106460201777277170368608770985610905402115943707141490317061153046445546610389065065193688901714755362817309905674632922898796506562768901841011335758006478837555107645549563536639834269063197479911394313891858971431153056375679689403220082552726130649218516315727011549765896744287121559385863834339488619858356799407076697489857723847788652653265648294078559055160698944480034267959971248586672752432140385030413845738958166070420683954959620191851150454685640576892873083041631134141612794010927137630924664157350415662162365587744551475702229894535736112485290074434004734569985066094148475792959534006236470469523467560229767569714021519041925273428881071295056708064386697506129911016170513377260385584303158602051530305004767386732256872527980622815827438463338796123098650739705302173049122402760674755029993137827468170502230018339049285520782850731120343731122509078883801476597033827624299788121551860054371773119715251642497436374769611306034174551112137542430256773914907416507074764073873848956575564547643480364078197608841087559589727061883158953131131693035963739524357232743934018733662466907061224222689604540375554463131148517710706736599539894427731876462004431825464948354757837232687180523634791927318211843030144897837180136022240649079270915374142396282690884872916126874710377741183244097262756353042512976154844560627958607124714957643145834072310590624633995921419777597634761749742831022995415777240276221769937907544307275071777794682434863939554831267270771254427496722080294846592101545429125964474135224650817632527459110646629950951045944643903210435249703013684735192142527868774551765682140813040123118085724721626740851816527658057767301726921145761398946210569983253575263866516594996332546067354805832332607941726232637838964999853427347623599578578874374103466309615996033702848827756364618628015930689196389917429510072400316641464121662105779419457876745745759579721598564208906369702901589314127544949636336479867678736654710402154150989644055225942940880117560908071179804671499859178354574064646974300699514101265249110641254260938310183653895839808969826233277496793928673746180113026226470475187993984667963509505924121516325576110571107531902351409542266514639161251706771715625229140915366892790215285209573673427839374403050152843639826159925085871597306791671384526209291432051371102118833968081818219300911151042057007258539462013569467739681845662430235945564738553271283913947791157720861610904430638985854189589545594502084848993400698290779618091720980828607772672509589368099090920609875939164432845896558975411359764841909383617116210243371022195982748851209268848377158973089706411683501925416964326840186312174331977157809760890595559526214203794998111709317160672793851303391234903544403094586515876980086364333790690127671707066494145831919301574686718959418384442736394857698596416056593234826674777523046051851001311348778549580934888095566631672935174187570551775287494607730322211089975645023991329765723136315123561297121434000077518032975201218408752802111484585544294878166396000369750380052996433135807692499754059704959157833947428924429883866941279953071623318664681203505671582369657204280012334066872599302215636762374486121393358105765296079773413994354017875031499455696366560482480561287545469176069736174674394492528729395554307131639482725246055371263732012521848100641363777062005668826647541255167624753820471971587950208671072201164385058137929214588404090324911466307742942099329344033901159307607184523095797083150979337279234918489312164548449981464866567379061295485970125803572431008337770318304150394520115610247426163801714103176378503127548411453984960203918258159979153366021564817346193318005285006733170107140149784410890284398292530948061439240025940542332352687953893151525852857897673880009882560234664416189506378578086612852812582919836434335075647752239874621464672131033215532117257776270291928886334163254147401896543579641541215953537718700370870281418108762523916963521556936381663933603839691763543440655473548220787402579186975034431715861743627580631128224469186759551720045088714677168314645181655024014041896456950852103595019805229254278240920770021861064448344113345227250800602357659355239361992897310237669190169508967769595825566274733624698714021078103032530356376501657860092109235881162497132947629060765066710709377434486461106744827744175474675971986398054961461663863973577651061948547558960067949950568799029912232443154512681662402578575344375567651372611965443221758202812479920835203610626902073930579921310431302880154620908458865023689565364375579510527397007035253094276553790074830412179504016192411584900153693411332560850792228952716670263490363666827409594927818919421453534087295947218170906340756994126618305363775986776804668045336729308025584858677406352041395706337900885106935822360573714376528194190954321085485826814483727928691094430904898933739596587683680520578819255198822766292600466394739037570618270410124258171879707535927328990405850528919562921586478482782142828317741196248235102210305528360511845412664615134952965209623699686393607848656301711069491955067800686456236734721903573834798449365200047117565510245981702744569564192003907441644527428269703706415312334709172945881834002148182062310066000224957920563174010194756113945490452080269562241366217375668180348365304090119060147821025458577326607165781093791787879537326427682474541755801494179433210852155115084948720243192497625555848332336976848603319770844157104330440311351183394400758543499378996272460112266321932272634253367409690616709982573122611377690636785733833866849917410112347842199099912508970253300170835489852049569700610741346197440732706603923788333778122602430108535953819509410907194654782744723789116960507494100991080138261340974835421367924378876991245548625010972772758077274828739476764860363923070629326837177345974694774455404106535319295712343689012719539933670099004556500712614501280500907921629895347819901213305451353808996737890900282818114788725839461412201754296470982319548037657915295473129885105713988679461422359366030632704038382581809389334286036989115062475435224936018381453168231512833897719903753494324342560818374386152583480542385542463333956508554889245587680242571059523890891908795863150070685310485337175324162551668825126516135297012176862217645101770924865190280848258482766678456034064721813725839238607980664045399710279782873196477784720987828974996199185025867663369319152571605853414650394851415406688707921342575698403708450379238330886815727976915209912850089328873365662086316075442335750975052843147333372766171510125676745389126786387306514681058479565628993326395855914081269815441547267105132207210744856539714701295774969702638463377838864828385667996093104632389314332770459735440513222604951250246503384378105229593226190002997869162677450010992265414107136428773326091025985036927173447391815291080320129698690104391854686994710418232212958809377110190244710252749489326737213000356200842535700031014743215353477551351209862021500921346308590567231701697995709502343732727699508925100757113958816960218410962664230248677495901051199043989922211311952710285668905253057762978825409633013375223172823063791929154058404963068450626843931295898374219144796371160654867095686683857282042051705758953799666854819038863805419100344733911600477589474325655427240230095854481892068992902650144806243544208387864009624974501773736289155224397111682578624259212666483957087566031309411998128764902252685016204777552176387892133416070258911166503014715819819166407213558806929724391055654279350698993078289313300049872619226563988697981982992105582964504654317570636432480160690981823804935360586774233237306723132265514535326662816207585807152895560304392280752000645447201422017138593365770544533464235390298194571528344132956313696495861669884957411895541619202697031480840481983566579785952160901081486238862831420892878972504161549908950038709648653321061338097488642821003108318532795186779053004559904293963809098442654756035904485109243997756935068457805511052832753243179426562778936905920850302387603263942690776512677287656463023687727806498295887336700825601729065586064419579541550325616999718620220887355870749154523460504014221523902837628236772608555560370406552872988430373712333216345652393277983522403615565242086448260499599242475197496607127894977994295854479636361548122272248270575849746759203892949577058727873643937526823885495696535703196668524457453386490074175452507647613734754352458186283461575268371978401672951975057017922204331861594049150371237952636369322080583767579381327989996761105302366283340967837149994938539253093603577307201220053788879461644453501039987760180556049950175883272295507683236003594711547809526784925837815613132881393050180876084990629976431556196517856945855459110320503508090630676496390977613955583429752511989432227744466168798104587849449192201628955197755761189371965698610530228948112323663678870895820121284981660826534045993625700136030836863400860264074236306923584502233297644075352430848062262465676244971111195078693414860082772531165733429525934935348200211501979960965138198391572749884046279273930897528731008304671817333266298651596976459911121602578089135181076945765758547794517360364912951054567496797481968902848056839493159246018177415836548926132890095157662416620790414598961492948455903197560677969859793999758777049983516812870350867634841365582660920290215923028591339596345089241828054088024929867663252866006433414589322035844649580392315599460779160104984154812772102133151352180120386202002227761513965222126247993974304876857652727909132078863865751457436787565377513536246218702754982989869068473991836225878736135737196063525216306240147682911906854614218755114168430838639083011277205472925182190266012726816424310040291315412202331396127540316807661064055227337595950546309410751077767795310698854245715251453798902050978637036516119844646187261983581293181722558411978868459033191210579857262553190335615361576434015612158446095207247215852620128548706753039521851382858852720909052246900698412432481911994048877591772304588761337663521549901580795904360198349846880870620483173180126553906591843927133380218591709370167566295902564570935761955500508977517076291733894591128769440434306330628204170078126634462243791484606380221432669469571904125303806598075313187040682988246936481667410940652568654351970736522569605260661982861374933105767469725081165591947490269702348051178748592992717587166940306723454218499745604468571493290547394600763375875171648271895280446683826779248001302861489308415863592091435380444011656961643029458314312436670786887981469750574125867067358126241948819562993909228563914909550467938899769263920642761147126962246481938267677870133414412830385239472653485499798710626733409106295411128581338700520316660838008260727958767640866245691907114515165863807756657658316574713975895202068628763210158314452708328403807201521500023515990161444668285993602242724050902952613170820011334102121457046731352037789409185900529413692745263721386417399859793728766972703105307378940105231664504477749547957494557478816405556398590462406440568665259315478465226076558963077253069396322958407932661803309527960868308988184189842747812138928958484127874626791738874286982720406640447722728597703749189306844618533707368110227774709542430259974676911589460644510958153575194861073295400207607078482912083559647708080483801539533813406776890535464057840221716979203208513593318982959382306209133756635494782723678727371872584851725681297296073481176390640530413599594787825998817684441106338391885041066189044608070367012013160878351905935006986590979773876683581885971025500527821687229042689343578563752345831186436882921281500423161479600526311026533121417634262815934669932174192480207433735969399288330609126656888196441643171472179006415867812540475080567990015989100966889614466239249853468352618832370015287060087764708237812493728136323773304524951075112855264033065503739692678020805202883768382312660686883921805591216012059804133493927251813623445393234526660611400634334835447878968934644089096364879358861768570614406118736921964628735785113314107092380321284897335476751078054203915087889282038256288272654029839746419187515293552468850501844215957161045805253545473282476230503094858064377321884696745662445246932990588096485640182572719363584067149324268679409345816221803047775807127604009843203958990412901797341671249310017603754499408865812574336170886129509669139444181192337081507941132816394084582189731392930913095040954655373585286851468641009644333336567307213380461703246290250965006370858578062032677282682165262474891716673703491011334456926042291391026401185847721605502461580620890136763366966950779149377097256577614433326011864910475146386588963624762959475330589690761561737864866330509820171657038253494520685572430280395105195681417434350268882923534794394160897475905255476958848580073750375557299543030906524494118677351759759425517740106859043488294414445376792061809818823704370798692214482188423631671698920682623616976042575448889747317097641833105142054689392862714275178759415258435548706254615997511096539508710229507125074101939470710139868707881271154396845490915335711093376276635870230600614226520531461141015510528793657804417635605134628514966455149152277766154902447001778669816240786244497455617564858619239416585582419449699382486966931827711841798550589392653170892779242693695981411041712890174758166682280122395889576210010722788632168012634429136335406610304145488503206600471813727565506466088635915191021424813056230631477330542725279627785695144938270722728882522232007604107953249482499145915696335494593592153542777489659694356221106507290303014846600280009747091106754398160719910938578433985770231241011294166440242342039169813744671169462166963595284720140312126773699299772611184700997719210536784732258057618642721388839706476141678537901345365235538092899057934059249479391507313227048712460545449097188947473050687859411975542888494055672227634516319331831297518393601723453182898855889531868848018926448609187389958091676310674308544633826456803290428478060721069386072736754285926814156105393296262112819992040638472415069843114806656538779423053527391459206731560351605640362533172939691334073486957677081453665724577547705007530247931697693284381474846558916915843301080305876471216132732812471021555406231898457512263102703123501422429598517796981480877612781531621676569442570215407551411880475466412094938509844331120755997016829126059849910433394402901514440555555777392901162778868294575401205711100019587303433080967755241999476098351064705539820905159846986977667767018062565528664586733953083383646327245144539600453798369224397253896155505723848952348828695891818327146168035619972736132219026457416437839591002651834049118453334816382970633541692547031616437933405676843960682729579800970512784080072069790326784902966753623566630895207140680063145552411913037850888575066387917417713442609801656504743847409358647427274045436630870452584468159004668748771557010346651906486722124799207644123242892830191246714411710037172956737686993809286674741805310482583715162458599943439494511968880800379601193460746963504450934248777764543315370150235068102185543306121077925105273633507075872695024913975093601089581136404574091447436409811512104306295042770175604058906677677583831924999360991676867682115443974202212430382080684445819543137561759760829460634366253117001382816707155204726984284195821935512780135538187988923729085728250973102550779134479796648210725967011535943981038420587253623693507036013070154685083450160763791996832644746826630780351001981932303044492178954360944523378063032035447713423044558661652907189536459398547156712157439628302301762964629973810640765515672488366489550064461751714296672813306438652803967708970221068951947818476045111590195764945906431415249378408134240117392237919970954690019805157578065011729134622160501242900796257958852969772730649972318064344514488771869217219428382351016507156410276902427891903179770864029497280158801304734534487348182142245631061599770626211423023016767199050521854645606018384304580178129538776750364870021411147915045728200424312748282510441617997955066500869336031652354480727005269164924620437617985476259656944031194897886702271020728843935466051630010136230971528575655246044028644748246479904091153033250223058035335877631796352325002323873544036282064268989899579711202661808695801532437459505866363805615446670088332966704278150349767248978602078061992560727325125822268497886520059094046011060095408698774385654638763875265484199915274142737376592440781510762890623510820570891519320411227665015032299042616333334364161585883482196398302637071323831814835119140936168514380348230208645848278028845203889063023800564050849850409764147926443450850446786327224173488636611316482387259987722554593456765296162055839353444955423503283861329864499906401387179165395691065541313609023717969000596918436613690743728401071384637413243750664140676535839710286519305557872908711663519820501507279885677482862735018194799768476272548440628059055969978753941025949418763689667552426014922783724866069457525985475736130832094343924600642353691853254256031910524757859560196062624786727231114714111570835818287452756707907872158341813295285216420761396034636707710686840386502612047747936116404706276416822066232629731303605574864853744464246770711546754911327869863320719046448961425055382397353098647878211899246756307344620117210773737006809119629836944101798377074617463534691805335590559305904602347788925582187808725171098810891717805859526592860860171339459519269181133588125984736537061633563921021679322940888846577708012992970024923689835949108625922838771038792054216372000580509780916742544026606930418575174930978547506821751241980708073962069211490584496964283547949846357057374104162510836591987368305839039200202662506112996418120137023371270098469336019803996425264529111804216868853643457897527972115430496832289511728388901347619158103688735261170942305723535626221414383629897063511745668882483335675681834167282172144766796014952051674194045795435477492369477859311589385089038649302148386817046668879796868681178507159754118483804415486377785614164753878430099924993748448678781917099858557753071316392427912677853470957472602158370122974260085133760986528240377263898458885180316542614940095342475273450575609158735561079352700340809940619886207016515566242694767102538975950582914550658199979010676649502942118381162778364927015568057703881079844204520478440859008523608849975435448020094542481851334578210421537041061153809955463100992035993404505192949036420442244394730762415407390629740916845880595283355437141738490319208582048298628002730383747685923032761774194530834057804812258008287708474655975449582565009626993820643925552609916720920119797110478316335235402604063828219552759846923946958810913759971003362130166470833611200329297601833002934543150861763294262161720069201316634867336726694814940896443992165479483699596556451190115712956536546629850133995940517899599839541282180453808665753289750035020074559711275778775521573247306675782409075503526296787248430043604208157307386860571137893117960237076292933196366948784114474431876594853835802001768403353184096323331570629804019073025831784504475555134696474708733108276958914524716879141419776760826563256237104089273225449916850417452254921856797245940572393753480288561831470958805412067062319620100476354234646791724873861421638245346979391083235315794474746162391549209722563455257773876915762179632102614993381788371939258909553676469296228808917476003897916200667137902202851096899044993254216001748789385823483490959570706690281149092755473491771486435291140095709336363348579322036237170152745749899210211028289077887413929968154909782123462876782630010705105958396999499785611057529496848085833544820131594570903045659721290861631239422946741315523307659175958039417709978530302905743413701135971191601149787062963512423885484324668798814522778585837890632875433545254962182001333180497158508263129589692792369631131735175128205931801892631152270994364159707085345379752900862469744590336760532113155256634370599130317634270353679722961328341405265908612556738620217354638744984490641366116784422439376115937298707096474373028442831863458854799219295947959996290197930687373932959580486000643536221162849439097260199376743886380434763255210561821470266275357132838122380838071084868568927111990149723619149326521421647803915391018629964961026393421094974305910819595274739603845396807520620860008916165171477385365579160770757737358316442416483120315551350805223902506012417149309714488356205276900982476499012623916551301599411723357441256916427407821526763346600979986389563150394370869550587486451079305585965145684656058697292230778316998560671046658530731174603615060072444721684642698322551113191988555316286641718540530251776034193138068035917603744602303312663915236312400324516513687322715530547226857036056805596202263215332158423006408030038078639334541337729095450588941275557606604746913807984245964536742485347045419958287647750983452145271303184508470304305669611053642408590753356298696108126910967378608007760023465985573153025119548978775784475333949315380072502632325078644612158370936711348154081625914625720427477536095569924295078743825530378421560764059531566542477277473518566343615003530853902542117075720546354683115002667963555232366858160229496005489076291215106685218369452950232133583704914519851769702935982012800726219012848748634734652665449289661438758699942130568645734143883096039618492123858194596665668869147507087541350794795291899174406340560240045593493605299842805245929913667687283847098302337025946414951818714281094676029144732474461727969192033771797132311279930146226943521003367020920921727414154572753813471061636838937461604588384301985549117291665765733620997898091565590718188835372171238015683413848379680209179801225091945945684456574398890769854921063615316320712971534629318715975663613891186666748434468169707868491718899665657212977764566965070430711705914672902106592588450547011003228727640177145470326546103260940592890863376064825250191753526056882783072497131618837828582370956642309223163319285369527054270628896832902382085183887799849319578330953892944839532827537605541754708460259316808854049931329643555963222690708944284890357285210580400809111372502635207586783537086734605209306280053123152572709868654690980053152771768875988569674490713083016090187682054840069802650000669368878068223370369964769168639599956318557755557887849632805503530814308169161201004772304992178637831218245725152751669973327740067540619846545990798904487246909307557187610261345064323325668089272730742937878271694465364797183581467430278407500747242726685747420783346125316687073190573336706975278355383627476154927125181861045106500855547272271982447980842087976152450006954354338913220045074648974723260959120160052449366360819276928104405606214037500644088418473757228670238721829345103728442572419533860255833072831641353033261063705007949422754445782609909829670822954921863134757147402711752979994505487186031421845193608969032140915258202673300242861644656955225678533336469700012911230029456431004604384040334123733708253833150913402278246987546370616043316212381041694433341109594095036466087287510451121343915935884243746641545594686249906186746176385853030623172349116319534459773263302961202416475899691064363263979799498208428709650625420001696188033948826958305162472203003344730674307817139099508143238070481480796471935170334395621367145427119670096830254791760997336448568539987908929331183360102202010585091043979476920236260941593240629005632263574487513353011557158451195549216659252978381024780418770736269191470123471640161095072173931168675249856277334548214818847453547257126338908051660653869010533646014859335963506394806845613116834450945724877069593184484522653489298676847361217164170413298941496150644152550892927500918228395400364892273388742872889039091988409038159073735600908206215208388004000213304368637624122132859125340451177544017804205981567361148883951790946566254898944052274251298766721383941584948893197200404219875990252175448567338747454872485051437070630939895215923384646860474995943716923551115311155866384433800010805000905812900657373291029290413645254030877040769757278285864799007029890346901940254127142351752053917870889205116763393600999808899729201790142952980809576823279951641265282714144042408632979729997807874966436856212066961809090121358808699521943642658275498747347969361184671078449684251182642574176183018616487787104495359698471654036069295022053505247036717907905129587510931114051610502439249232786186980216287229674300791626641469034541593032272835658105436385547370048663907999598306095362001469891746853628622787112716150684229700884278908438965661547857948815733716511025270845397766194109844364593947928930931835167656810395444621536808034004169472660262882291757779436647814722323225229819754598229304741703433399139959152823644625043954536521931303237837482262795907298655219393948576610640691575533956797862475599515124390501644486128462726549508344672404118121574734890541330403881549586458067085801488390429588772351548972192940500224248058921301710790564044010824517123241314683451763710056683252352769665166188741281289354478847472335148884498515410787638942083689837152092285790787180539795378641202787411137619557534962143684394865036819904639623243175054252857886556113599285904785824825637405477842010920379537132611484053936905739852202913296693044117228258731129022466525275029071019119217590099392730341915288280821627690462496225911658361354366570365001151529665747158791707393927832000402103959576267337101662328381907006844166275849265699618746345909675064745754899935314207786413910947190520475729359292547262513281755701514065117797418690934681804766390717178506601193233636925304309412843661584749068454195756503890359774864403270218542649187076763993450893250285407097157493409841271283423511104261498755685522971484295789737343183607515291702958120702675007531865854116809276081803712544775969208285865962675632589227974689707534546686939093727656991495912187587049732732574759298406597684983158482587325868198469798926387918827955210996193944603688054558082983835358194437437557783317531375943311599803016561599646842206758756786457259120813113069951226119707945975519235166042455416690930287053936435074791490664821679992024849996619083256006367592970547664178435676509557175498733917638771485946307462732821289279650819446559557786555935355271130602256601843959336976652714282381938712370818195235031963073224929170698304574782541190563108668251460632018388284061664276513774645025762280155485568452245038846157503242819750596956993747087463462575683278164805484456011005237305678013577337176712512051905553538085747288285097422508334539956660486676757029012987209738295143054560986199158534005442009375567330488964085498511891867957599962238627389247570515347825194779557790092212514415050123063350441584925608231514713001106499476101993320701815540432056516751947517094923967133973886299532495218444966284128689116378895956098106239083194722213631365170076621193132049422801696127006852556171690356556514640376620380347915126686361694328258638943454457479391493743127283049630776616512822538465218478012455273022633154289399371162514862956159472443030754137521351172156733167645761928478700940508402526718625246639952986432046364416679363511760876188062052197830800070748001011274024740545115310158782284463792320267667372579462141566757902522804133060922220710065938094801239641578526938811435129304129545668055858847823770460836571581463427455964210826584236825289496784672166187135188383576434894445475244076561353836270996673271032110012855113002748192795058954842457247248807958975428687261987622084369088404004294579295624240114576662960944927189939827555618907718088687206886092988099546608633045372807770230208749213167725481103840593855045386315001481456951172350457825510031136375642697716631109116721288010166169363638804256079683742363947516695746328265250667473643867603451409188009048703672627882876150593930066135340536707096234689323322623152727351038363615135721356268111284598755682185043696898297451818808254228126514468150247856574820199548412431752386848024210436652131344133191622888682664646242088066329293440807748687223133152498960804264889724616307548030956668442994633676587148716044529354743273294129285027331250194549614311920979564654226159765302936866727590512687792444747229661137715129639020442264323192880137831750536287539798993752952244390366230538056496826958680167143060930372465579575439340049058146512164962406074033953652305046286573177454333677106362811955342318644030209957006462215236522097303032304721704961067315967959511393471034131961858561356237387552111084572386266517448946833069255551624870408289958071171944895604140784917265363921874739505395492909725916070597303755840438792240561646407193600244126117134897904253463092761922012273539142580667963490381138383385739210627977601826346889574968689791095532647960007655695969157657975068485067798163510405153022326126714639794866191902774857244887597771631857609820126744767605328557782932448144005526610377092357874926571812319226099190548037868903209071392798055068290913069250291613800327844372345495191223048022634679327806089789742677251027575071094457587948057113459687476457561057506364343770358632744320896674929396108505709294651179579150314218666414880328845793874018073452332346715129118975263338881212491221263712828930667539698678824521729518059966901083284000388926501887372297396137430566716382520701271640017137023539205916452205663957484863248982792853984289944037574698727819692920563504036855909122936102966502749085437015945475378131981590696481671101422234837217365753804206645304068870543920720752593903109265926624634032665298305811019115634453258036376440351255442676344913603269588815840519734258124595418025539198018961094607963977622473588715714866852396001492703616690859225737351469968143631816535916259059164992169072032485153676553350015890766232601432354679435138193140254794234903469069627569609114719223649898295463560002137432990308133331454975830043617573785050649522381242638524045102837268933298913772991481803051401946720335646684265898032286970325601896391291147925741230117254327350771683608680359323343464633865723598339027099065420738626411007304298066825624240638673243559407668656635667566507564683060432090995275510165465059838258244873044278878681683920234418178042988580806397955419963614801922695153743550902124963666750935022599850837056720425604656833067728865657646428779300635795137763658040983885401190031604130807588897038589627577022498660811479055669047456089375201452080578620029872744682540131000498403089371282383125980762407156066974661222970798503130853792243579669557681920657736144179509375893732847656393967268720087907046924530868386721942257165247247305282718155078423984075791138109401041931330083167327908337702401672327853778022198666461365326210159581708185021068799561806087897527711001406385681101991816416887090996106118443180288413099774420317807734318120776513819788125829624327526206943616062683467192341209447032860462358176189660380322674155333676413354013730593103350182183228336629211537869720129263075598299520856308172227029096650568732517694534342429454670692443822952056926040139281641395070464016272448450580107240883850820059038607530133829732428115185778159003466684836373124712985464538153139469149556291904638469285514983256863174004739162820355290010800695280437463508726281631887601486621619226504739778952984677427327357990010677465699289558938674017591943464777599393927500148770131601382307054466280941556923323639420251889249792466117907608596759887582338365143465429170449671997068006425413822874856214659569576579615145465549949475377200390414431755979763118887839462026008363601227701699206227310772984841808988469717741194912249073164888489172167453165869586609412299181276423936002844986310504628541678892548770427552281500964184032461276045591003671596681980257370635315056523386058329902713051084137891906927843699085400297238319790738989702633137484492468739669070088210938137012378061927609267195262423493308517371636863656888242898720649627603161114019157362961807241429609233288795143206485250668372144865495421877362129868676986187186206198661697264336755826060401794703791468730072452552772537885971637233023839914051042107744355904481093951803928515740930481927098240064961418233680361508242197252988181109814092268946218723899164216047263293346747611817555827140486634196995394238855743281111236743937081804790166219597057702924566635608401336651481611125820757457882188523902077700241896101306743000652938680350517084668979273269200490393513486738627598082804872546906670109690943585352459407097950291120054725449375858411118827202686236890429414624432917778960450400173951670844897542657778100984158405222745777877555671358184631288639738536104511653710634344907329876779702305944803341905033068948246409929114130474557033921561972070166785388249916941278000961364545336316007463356471013572994244679738562488783799188444879947155318304488875789726620608910071520532292630745246732806707553070558096763530780399286069791561287304544633217538793234111896650405716240605768187589382655151123962827495712098097548792795117928115211861414665481331339759465198870880765129993558112298616206625829095268827642112444481832059118031056864396695749978001095892751476319419613055783245512345166768200036410236688892396646238724727926431358504304668257296265230365999821627753732353332131231748600682699612959397763500936887267326979705533519414637205441939112797011695831378605474680568003194239073062556630202737125535148937767548047372744726473662043127379264189811449441434329894032809660600724889028922080461075569915563678761643285875945086122671305417242788196527933785579310339578703194461287724852675817954523140822831872148736458345076401459946548650537857671040351284422202724962695702634218735650837173730193952952219758403158312226177574729343464259469727317137653616508421780656146416918330762854240976807285414527286126032172447778995662230992567064064499317437481949222996439423884165512937291491052910813062300409402976963218400096512987770364066735904012783472691631792427489589815554909399769879796981814231328978171332961829555957067290382037274643204311490865033730475570456206789272919245494553851866317649152827052492658876508780879547569468454648890599748647404083806641778558883181782536609510699247026331976987729039907870000809312911465426205667073734873933914908291983041438492865652269552421310652642520693541808953208531072751287745538886615159721429254313688391306504100792659736434395922517140916973533918234031140606954604743610633313214667931513829764229880136318779522859904318531865621927091631545701336102413316635681752770892560525950654187367169935593125384639276962156933122878004648497381092860321225958022381133374644444765501449481536918370263028003240055545525593230863407422197761360208757434569577489599405491041747250868630435847828060883476789772579682812879197618898328432526361410181364445283325002276103806828301663756670656477911707144462528768125009640446803953760767766241471447273791945781931529859031125520465332903542349771670782339276367523841296491951415376680752455740796020508795527649162267566319561721197399055915440396008991493432538278019394328662692771375041285571082781987335159919997799776269779312649079798321844185687666335492532587994570705186149583746380742025922982919374388521895370021828317648013840233300013098515580266891600971471338584575308920934587405382828545865325842977944529221554124239144582748313257356733517604844128003391278562940709129869701553631109435503137496873183335525402712946566729004694145533551235442740221459712903536796768051246057354454530667678683677303729855774284675381123797702244431324811986228163033275010288083950415321822367910292971753348736612968925594401498254793402717512380072471230558302971498681638164838003960509992996972634323911043290912781499555541803859961563674612150545204398386402099336020722904462183187563950216728773905018563268487017573599667128054000971725835614508079900568537574427393692074645857221063927330257392520404426719231336277099819457526377591560101455823656571289360904348290561529998992891306214686775517911290486302026473536721329099548281322272223929988862856912287136846108283504577996847393312918077182781106321538005567497334784684956056261534046788660028836903334153252032808109510830222746226832611137914211255672927741054229405164660123327033670373819099731272316339158711395379612661336088088299901618850731504907630840826984348424119736062120054031253246323812029382033152295506605856224571732540338208943861443274303224035145900753062162717898125714680085169197702373815605447598703980915492801164043555301497539923588601711933491345737540399314637360674723597541834394123805327948765824200553547882953377393625634705444169540094198365661430310448865207840549788806945853950431548604723516568377757857864358940798782140771402747205285373093176002521234785562073183118123741355283940843685266914754096707207523369858920850310896771976626001349517207961637456763630896842524854185260519382421787963544858248416990570651712573168996847385367104196109184856042111767930721054954283320477532678468419964479616299233652333231337882861108337135616058858090753895136024324592191559962935514772928829467290971162143739660510798882873687028892165666264410709053080655115927699971423140152948312699990074652851729730630566347121926989721617308676687776716827216050844400901499671182764845782272356093683279332545044259546914602132505710106966202747961849235710831327851584583119296827564983750244296967917307303323758639917834915995183691727764163370707825306983991695038368991950232475312520233687318406777272519981711705432545190804962108646463485829539267886803602131173279789348632230274835156030327165550790915701784899472765436670564436794563631750929451677470136277913850200669904164174996433774348353451652074297746597127180008157163019670738108488317543099021770610072936972386251058856215661985463946936905710589716283330002680970861176519463758664264009678162697105081454442204634826063745239336596601623125897684886266690786884970281811301025294555215251219359874772534113511791496469501056528332960029259362225586468970482719926278476892810983422877733032911460295608776234033586438424066481718514602046187327319035333949502601688361095127621304240330375003280249808281499770208450554020425600186793537022903202172582410887402006463269122889279770876699239564664813214749302809131241283047681930736000690322720474061732361094057795786706520163702249812334973239372723096869469260929662863326747813330704760006758712592679885696600340301745562318299518287234744651470063655209048350737914651110963842582407547808665029217217230968513130018050963015392141429908644249127792532704656842705435373133206740500313777465978030597151392744650755666597215839000790320914959065842186456657755365003501145044633274065380374076488920195681500646534667316552138362635716455286497631748833039487804108263131316300443652587887818141234379795543957941471342332713852737155631869405150613934038792057331020798409486943066851449874273405217195412662238238395049574192046757541952303591147254797342545602085935121847866501150378054822916068429179454051135702595602274819057769032483468057626848866883786283246054900232866488514862318146223369366974994637057796600078884405554384542284089750101200767259568941478097265499408704960636138447169284466450959806906323905859046705360690869441157485222456453926345255028539672905401860509307766786137955023230530382491643218286605792451421009504684934719568818015556546586455261985228999272073101523795857979278643407184204236155327610120224818612284911455592605915886677411243117377548366807584898752294544530282132902430971851526730916609025600148575069917238933038094322143627735264601867280286051084004886987748636192488822099145496287951837378216472237942640675408569515293441871053045714906756050436395343825736956516566605679702042573026694280197330062372892665029152632205588072505649459223270764037997047265384120729756182587066703782660827423105433832692268435101192145120683911526364155200154901648515953214874683454120708062998983115705566690481386598247445494664235190111769698335028573531804509975676286642345707253012707882811905316175089239625610971634458370218651580485382681869400083750512543495796609108737238417585663776875099145344423042421753778752897402765594373364302390951527550854805728609241716332834821127347825511348183516071444952793201584757587954631929492762761930820990976197524931371994773990835789632159000862748170202707087783630773812449248054435032424358116334004585144220233430257782767478247474781350107719316650848156222791087966435569307485302326755389854957104328820420826304347322886763934293329886406915569946459946153244333704487607495378642675460912622188345223687280309741546957564448571902964293078800931114512198136970088697632717369542241700672139494889259297210066351905499103175031921745831555965973214806488793177789706873290260516291209215384095906444785371900525488866748698114325369937677541033375814060784205003158706545446243215705681676057297979724443982549760527912540307166876427202502378452511645599277116417012463996467369320197247658409068639612955263309328858800442281746018667036399994089625909344423454297136606047606493389076653980731275624620398832547003863557959429130398445407208291066927501959823139921291174686943225925052365960423556595246308484161750666273357849765964904995371318615226254530376522614363080036927896221888163810180266838840002452886929940243479296076185894282664545646642708692290692523532837888733054773823758989374538953362988726365558859209456815319838249984903627848511117658641681861637265149955302582846271098588365729234204428146384941200988636659562415880402598885051449194561360679910959734597424918757684786470622059504623652913895998614597947043108844081755043724626977721992936971571176209741667549299153261474679626327311568763638700880175180859594787546873233606096445721813540642327599563579361852872829127584708436546794333546699438242388425279553551097953562152616887063356745769526922148381059353846300941023196741621137905552789804683245258281666354983772957564376001272517308410156859860859660416148050750779226605126214154450422994770962554542760376379939822581925567003022706156185922883747125191362505405650597344623099187842321503298111375405676682792696583511966497954647572435944979263684305128416947308765052387812639015826484774058089787289925075536325930607957219170945048814480477499776597893946447988199247156871062264311158644066443490613355655732933409721951185850264879663831051913220124715679252384571321783651796607754087720770519142762565504561470581771053859893177172259745556479786880956899153019935972020307736079441512845887240334537196484344748386699334673329020474052369382088236041007378794775932436670182623210854151215677443830693757400843849370845381848816260415177880395182944553164867420895322994492488470667339761654338370820922856727419435498039129424829708853094831792722511163864099889847398936394978376765508741264432548651698463762266018837310378028750759159651791470509644307720456441011830816811876698047933091940116355680936054043554359852263905715765806098102723968571666728335481627662745794720184654626792987932325870646737443048680622292787547533257090287505414499653218188963323623586368276596023443109622342410958454987366701101642780090092939473636561354202634816890187253339972730430046313869149226303510538836993293376678154129434237614277003139442689040538678195553376276927638793696789202285284625998686492254835351684695800660162493408481205348343561161399719564072709339174420998268147725435188018172478839846460619880131760032152636968255986991938067043350915308606860032476384733078807365382096577798673067545738820459565203080885294080749581932783858699125329327502780046768341285738218951736106515017351192683765051943499050976383234362646258041340496713859828962532872162142641271933556879851388274968795491594998162943391231074388788752497494402565988448798216467112285861818629259635027101797825676780470002810539298718818708483332062651270887644625669194959488996225559448854646455972285250638856302969944373023637021977264877167592941218416878479841691747795357613436122174785216473564141634013541520066804057767349886564392789391663235011426730828415550066682656424099174241424840621334635193170405249400616837489807204636021747877950652267407864829587276569538339432354938942772319006076267799971936855607701606438532570757908157258934772550103767414178206697471082223891265197874338717115986923468125983023685309584580336912621265351409583001832940342219445434632865542246063951383879466200730529871427301317705619335994659309234227980602273769166376628936706752765570878613405165588683122695211145126046545132747735331734242596067668468437914072939957366396457039431270891586226022350800125156166566215204817015012404002218356693310729524355006115752257201237426612253763010666525209639583371545259505112293752460687947794158966879425795801932394849543953593935875546977397519900734931842081073504116732073306171434325383008129334850443920912020795763917490470330812179544272249877026032666070041253252175764034374482024748629280170568034242130283826750148576128162544753486325469824260638352309483169216673098242453051724085025005018163673152340018841387531406882584996827624715750424250934583000418229929064748171139463605838985696630019879329638598522116407281805081227623900006181216053628145283932754271574126742847010791152464175619582406970620542576303112473241103387577687123768272316885878022842832037621013911875372545393358991059215822265140127126433853751418392943310480317003985985353650067303734869527059332362731199523061042409164036924246187347802727231443336200215997967204719845512698085111564198824825279856523695594994068222271152471503781951073075460080571363017816501773377369777219076733861361241422353738676370976493348123496930172721098374091774130838918104989687870872715221081354843161417476761754611534472365417773945245119509310211621310002416882436424315911213386055138202908240863880260218820122199512769965572423325751676134810760041169733115694916432435556706555578772602996277443357887804950371781021288018967648160504763541267828400319746998779568331630928484417067099972495979416816078688404710497912316585638402545171004590723583790662186388411230304882118390822227901794029296825863737146113962165798094191452041622042011816003379932295518561420625353382534031769928217576619021223128477596417072130334716366283207074411900460749238414978302439076477720506904152663678468063906377697436573367396811282116395255630202426547770871288596531995078044098436490294125684012077716022813904355082531674755869810294887408130113498334917367422271650051689676209454400785060480332251822682707171042066733934420094674098373654930769724015439081411332494045580163414215118578328759168582434867727380342324202653146954984307537212693819327335632258143546349252710553911934640548424079910975452971064212642610246748086096195647374020423916905896776298926850211800699187028159645659921376462745902680678344430782033502003551051716022809689247789968921007566103286908455348586003549153154605348514718328143732012427293906676314185341079669502081460275979394119753451873443905689610962989332324056622124327051746381939164913349874091786014946761458372475563224499857230332173621072602446623208150690933347225039781994373637101373406848785467759050479662001704669469441840574181320660554017129742935190364121913883148505894721966756762485543922767347391527396486622662789193762696230097951456020245281400545513002340787605191956551992531340731875446668325090167854534385103385410741713334624394881337113458560499095402415115566106452263420095402032567413809298398664398338742000791615242842753246308396791969410551045683367163553514661546206610008824814448236207523454292575608504433479938514435400432433530692398276668549061389978651832710868443386351680979218225590105171913156453918959110424643212100252738223416250008375919604320751117410371689935373278050779613883437499260637462006007802505293220264581260985186000553900603847719532981863157066410533519250421227573680346041135035763651086997919621509615908745967468894314275190047632759632528110483559748573433161708336475009662770068027982998411742963899180440091702606304577270871792139324830561052633396536379570336143078460694775194866707986053814208816157511865919040176539274669861356592287251565951447175558967889847268390851507105177416905199070476031629150168681815673795500180818958675546356636830421311424765416189825621753758764305737533847324730091977031087463343334849713978740273759304243639467493097205464241438826167729579428427109497441132023542679588362859368385961229006768643980675176755698335000839080364272266215217995600998240345099749672042117149187718251630771785675564475163143257923880400664148542710648636542546542536830361734435276143811103139844465602318937250036429835342569980271957336540509044584184761368932079223282842699294378234803801039331960955698260024963894251475656137821844109722296016143822708884461003224903950216199618126434027402368675604268191499370791512167134183572263604519068782538374004732057277018418801441068213209925378822750600341496384455638496975458102736357511961251088551736757305312031429557924394120290313346637055920097609798006437652871500226848036684551663366786150944848171492502985751590940838180556139951586168144310692627111412791890513088253487213553044089273944939788817540971990893442115330679289215217337558750863241821333705188811799088914309061844783674177344084007129396705347829434219844134619164654072320108396531226625993322815840881592541681176096095174774427164855732304139867220427670452913663680652359474408748676721996119944656654998141560193903554206364049490009368558868192468634302067939536696987313358997928222551096746778263636458628483185083191737664138003387768540087112861271104542799662532227318364898719196750821775795067666455114291442809691009695599512599150515807392969075961464528456080212377557163984233209646762290341710878140988436396324542932915526974587175159503980186142479463591179119703828997370774259600779980759044678962542118513469642265272638561466840910090304404888084729641238279867885724440632751901631254583580224820463294114364845766223693941130768833599733254889891236876232555547915719746544730171674716851303109739529473045192087031392096693970459756834893422316361540460729202078133790506219263331801041146312072231633878642784563795662376867528571197360138661862032861308409791341559623748987013119542677374262437451177451930626384190653017232982728821091547118919074512856837275500249115792966051740553853073975225967973313420698466012662827543552903224137141013794987145213259216807497924349189523718404696349265893368114215341099114862058368290345970282762203336872280441340008515219893351492964974115952334197800441255513520748475357464423216076957743064176257102613151978489401477586183402501429168039238586870053502456361944907776370647527811366030152452199931243114592456387039852016195666436095045867699376570510773896991636138557590554010224151300888347332635167131204813928492734377657560029096828687468627552154428946475487086807039869851255481992556749923410299115846095542744496478572014753321516565056074240793280087994374101545565109805472216277748121442920256516391715447452564458653391478326030448131292845100547242776975664374077928780419170414621842926478177152476522628032589244857222320333320911395051998021414446713115807975586633930262824927818034120095793771336870602262106240949699657968131575462568278688528500054941570947534881695168646921853766528838585758868869059897043811593770611785196046161932581451993751743659959824649127303577637536833280446715259043914372080158234167694267485181772371289799464180859498607204238377633756761858527333169984457312012174761909743634673004012765063809654841606345761764957047707442236725909878770327038547095115294682998212305774673788039772473807267413071776071264697375027488990186934024452604470531229031257616679934954009815973525126014722938607384919428666858587635999429912936677650887636422693585640907244484008822954397293950605775447498476676555992417257407745519226479425661803916581938999571984828125639552251878213046911912718144602965821152295219429339440467361645146571779527971044730182668242440943125023990593392386776349411169209272240251871857338619397249820196413591043116154451144479479747588535449970175585569590736012001419291335361149213947969544194692533749367137816962244845001038042780036297528567581527502125709651243317904407810761153640081790154473500076996792083792415556321309242415989078775048513453232815277475504074124278060994084907274423203346163645737385153857032957820904807301985234630156259478413740640057648717879733460942343884270639625409348471188252497305281216824553508238994236077959079910895187993335492811839773946331976372492883687344277691447110379434994883646181582552955497457073417979092767688951549784234866780239156438223476633680297634858653069906011618498206285278266862326668511660057535498262986825266438648367774690590215792752734938593234162052756167375173534548982624327606557359348071683865843543942164997170590809648279565405263191224989132757894660534784593429566216634418511587360700918313799822551682005227791619838500072583506574165184880918934976790227021923227781852298201184985223022317103549832686294227042268129058507739225701757143952466744251296318830764183906588162147001608496798294104106944513511041917168840123610585024446423559798358358351960697158861147553101487538780447341506836491803582015821323221461691542652685887109076531027888312332694746513573054747664807394087971857080484859042154071097589084989320890650516531883622136192015783431528169113496042331705280611892432700630588348511998650319958635586551523204045430664749227188714691563955225735502967101021453154502660028998644768404982425199939457867088862311872925081224608088223050203618584781464229497325470991550252599542722961471572294621839158263558069484733414159876863574281190899352536605367302460715532590610634915485718682333794879243711407554895519537386500158684485376011296301249663047367664714238625386270223955207874770686314119054186343643922876323938544991869456498088039032697228745125035557177767895905433099913733188607891476510484328471393114060102909491768954022781040743502702597600933804622737436552982894595680176290360884468858345394457373336576038205025641649390360288457238954016632461716216978538367169447181455800478623225987012858978763179633440825032072672973868993512834469534269496011454688121384528687822983686870894921952374708219563960474471877399288467300668493417618795914089009603869353424165239375226103368780385671243161396662444229569765522745666855795949815955727296759299242636376187237452739663726671593833713651082364757971111478053575357093949630838979970198762879314896539157850617308019548094664431212200419202667996562423710984524612131158937312314636657758571477089241333934262390102982687273269814324236394762070863181075291072541521622414795402266119101524835342974813330959323147330878036431774585987513202370503405020475357111709354013369508433121368808838923944063491620890505191580701382125803765770346845087408786526251405534955376992262475680806601166507678495361043016746855072279106810557699992994670296188377680187884652141797907683415404049211269220166553086873059087140926051541126148298469619822157362914381152670064902316972783343858115403479912810934842898707433143863639009909144647034590887775534884147966774763548117987206448836914516445092943053165754074047416948698102164189296687750699388616733364036671389466550228740873615809330644942898397141219889672928274982892344219087843110419416149892141773908849128499687136481589369288693343454028229142501821389027897225795945912978076422249941894014670816494046037043974249952696850630209086338260707244988238613557438429533596478430479911688003619866192786203942647386099532162346386813587282585046851759489951922663030119227195753045414998206644278405716484468231600923645686885776106932611019021921020959467636765318916243112981996914149333471478986453246017232124473510349385161654192803704094093816101314882266022884149778152793744213557334985678860970931042153421091079095479706079416801925509030779261383578350506058567839329538122599992266549999535321283258484810392580803765786270087500016973067437934506372048793551931656372294165812381500470372795191055360972506823111514796790497847837128965091770233104680635186138851145995117621708764281369238676308430813151679054331658451958287002025516947325332439655124598741998359537219601900129011321735463808851275381757029403418025881488048615109076236086669104469454172241808759768359579458848861822464968291900344181115629812166603567159881094444891234062063240378122710980201897879854157190107856486723269091372075533342012929543872773470570089412208002028967505726142070396010207576999514185336394042461228499626789223492281360139368888937571482180641518352346448491730833338978311934905646685508395236360388446599769864885781912992222931348449643909601788288246847775180046644851808066395753956945722105159388192433735838021572827704001622560451385174552661246774281441732038170950446156100361327606787737485149954800949861214417946403956905949475417621375893724673564054551782186891741238858128693138147697228887772451474904181732342524060769456182584264600537463948340983249939873714920411434919033451602158648599065573295085694622228916743006680820738754178606273849237350625580793970373508721428110937959159604070705502657159505760255219300222694964263053705886006706908291666389031165554262573498655950870490243584291276868914283829869766826497063025940627510182431111858416955035764520880536399001920128291786732643700086685161934697363919140467474643766292710030381373796575832906457945202320352701876987144435544487780617378193727390570041041355999072091417878330236198819619403624069926977572064016791257132845776378713014943864797187305211458980913284826636442424015657060267771854771937157660197734913696051188396533300935744406415808631188347586660058061650419247756427063883198272086450623933213789844249594479916558154304818981127645931936376010647357891989483348683413723059060713844634805554882131361056562891811442336817356497800388708212894145723146894491556206351472076594579663894022957391213684006758829213762910000395555882601753588820691431325095026674321238892993210518582829546746925099295893292756145451574057994538161775377815296588621880312406165663845117822404221757831018890506035703054068026696229327455869797759688861176526956803602286717962468403187177597735840439468793398767085981093980187090215433313086154901973147572307821380711450916920627492519346637282957960730407425369038837406143771149016471941788829209015975188094361389888914269132795277812292201574396383312770697885338483635169378014446715571274353891924917678667821611688125563212237418054552085869330062335159062619860146680917913305142694577237199491719386175720840354850752008651086515340973391500352005788761725565861240771695731419530860284881418538306871931649918801246640119976098390087308801740204809552233081847507835428757174276414853347647959481348567823624030002610837467734269361289471681297976131527320238128158438907683803536511995083224700117290980926108247523399933170785542780467043801572369889686554451840276695243941304831786076284681742686936293575576486474987073855050295680806232831897797629408378841079099504042161129503820848431694563692817599333593286603616969923383001401206283584164459504602728536869345967190026939489243609172071870122855452697381138701807487939840173885137041321054623032398937389947719900832022564896769182556055348234026134246004543208397698824916429466355961447542225589047697332100933611428288751029682939243749254828721826879180997437824329744860456035442250763063165665775207319228895008454968536172381360001109745011104390658848606462567017800143492037649917233433371292488507967456019948106911150954115229041249880545136963762860490211968033434960335184045403176481551215637542152322302157440312658548894146649064796905436494366087309847106634994772593749814362890920194864261168336561363823826368495924608150381653879701272449005070118805219706356439552144561509229888727164096686323332998079326961090071163765338154168932434776855289151446914917633652363259418572859190018372237212073432569867684328917600119433205723522033877970941695867980151161295558281780237173929132987657058594169649197470197648597858101371442707831430517352888209449035264897485467408364145820722846807264999924122996040660419874608459578037451722625781823641125052944408670764466399512780864508141933623032742036012790583367619729171986965717861503862522532903042136767861022694756565706421783008255988153304386873254708242114650814971233187234380898887267920974438178391031517614771983329189479156357978739330520873445761549502836115566418328579114049708809450899252319227335993588125492264796277113153102286215689226273380051376035368792908925291683470719501087268834696624722360025019763400038127694522962146941143817230083670284089081720709512112000791887243309977041120171057100796220080685195644804866445298593812709452818886537638933125983229598039997724599791598275320985645828377006179812635826910044380953119817891497294767157193041193815420316668319588385684480609801955142580969672855920253829887658941563386898949495160267578562890387377021514343377476443755111007172280855026166806108085994142988594127577974839968486825417971235543126794707669972787214163841449925823657196460147154449887324416837558800165303907087640385065163353375927036328214761260489231647834592207436632796183871322149380761284713743404509408340048658283715795315792409885139948977758686783068729043734420257514399383095499825899620494739244621515387845095562379907079594160874895274605659194799576908237929873031235314784944995295405927986965392814933365594711239346535939414410072091068288893708484120769132749924783293944103938586882563906272881173343171559014671719938584454967457547489813594451741374642748250092819384703523246293885344443423361829546017237766598109733862896728444731158430354532526634198569726743609849065503906454146414373939372423508929055334451967011796583086741071629049359273071013312561323106497134937238277276593023782708365100232695263541605886060419754600874950683803548619347383729930366544728401897403309271569181498699173457917631241900161740481382639092033489862123493616749165819095492539760508254343945845760197230906886027753245091233501129030686317981383229479298138700700375056830359873226825776697607393386658960351975341887861777666821869552817182664793965259321777213209796995982156295648001934438371035396719615949370718000307327117163989149530544609529773326861035993797451320243520014860786113097716569103329128379489834070941352004851328065071437119620254577609427402370447636373014453644138504240073140633239125192105153163507092333911730955776017108750491699950123593519267143891496517318717951185135196095432002769126527824011604598114659455382027247849258584613390758818350664698692309156808664632640497419389322126585483090770734570122380013771850774661566086638623726257164672493703320373949838210557746196557536481840730544050020347512440217877901305500381563960601577650600134864928561601174894666747648946555527841508882725006115444762817151405714192132183836006507891311927575227038242930402844509445606089479653124553168702076736208875630034637866345472140730598200031523278677885488691966840601038547714206456402907857477220176387729176723845566434897724333552448359473696707041294945658916607766565746033700352583038115779913008393621062865275752711399909285223833927679698540452274010284546294283596577680459284404386596570722047642320475397202686058067967996838923766439879759252514762388366486084201231557404447054936739170376441157053724359276287101885674495024885894262972002415768093008995721327087406166420000785064101544369649407498229344768567056586624946694617412907877710489538991110156634860342339894840775762252142297663373850239080249361318769508362135611286204205640136012767927513471409669485368666549330461792704953193526626530644314860793329255598025453079118684879459773359396538125527752991577421948918116717316355376678920459433514350275413458759117669574796627919038321328659061765121713935797352656373947210381973132366200896715681348373728882435603324887598918634078837851303345118312824456471490168084544548787010703573605641291084244927932549843614324195415128174623932396699781867211832966713434670882410962842034570266255682037739968640593587874013542482707417751071090574105146953869466535738525211277214640547801115173260261894630912460745396970327816549371389248399365454267707634427671929209979023495466205224892317248431243961397032194811912534082685628206941443889403757083287649581916093564343331590143259938096592960010531594196411585688589781591750168610278992591467260664176516127703445426586964455791758233700850179029935192407721913032250194845698194728472928745385140861813222614334996009603199896364732910281047461211734911909982997297934265188450571884516303805210927202244400419982929722342828550540038073375700748520579261743390789841105974619819005696673263582907793008928982970281304654824682150980802646583122468613538249481890692882548584973159566975365968434056196980856809264867544284136693663113556303519054545928151625492867359355622500292108378971412688812006305448514841624986440905057294532962115369559793027354257270852733643763739045191282041834013628656152340366537064186246604906116878910981758899417453743523836576244935543808345599547532457819427468168131980941036243090305577782297536259749975308146498280499391809520036062655769050354369294003309583488385514870738148035260644018306553543316091814367660812627763922576640974666288254646460615174469164234350010305520029468304631836997193430243037165827465430090682776254957493897130429840270604577551364073289464039281630729980017945366253411588733567896744545528669841724511336878952841725822188736045340926051550607170905034592015138570345003689150021314866799435174321094216872939750006366642553116475842793059206104719251612397516202139103788590935782080715267835760976221490440718053095297990742173044878584806519827640200854207690967833450159035854109401179133061877955249502727215088561990816723584526452143900587843503852491686430443745160956571721347377421573170328931250402088361370619824405082685421136977033544429149559866147889207591368867274438181676118762686133750487251704993963728808512071681734985477354608978819356058960575052779457607803324485058814641432637400622926941937432312883600239660523187181002454811355297224433219961199277415604015537961709392601209111291850159880643019387683519359930761032376493515984292209062121098515432864296549917691051616833413032792357980894796212535777724463219994614462102438433835372458860121767888923709488103959699861476230142252975872871377876141660556846578766867280432769240368255580028336339885013458148273675788168698090798374627672337851397309985815794851761702274432989003968543653049825566289821800198686282995588306198722615635462769474262319347052789349907804488061455671598033427174946305452912648262711714635827691770102240676890413728667609623875715776935707165776984410709043756255040473083556112860226720034135999662154556596521503332789449093203234055048803512325500444728960849619349312002889381739572125546003508045137964680427315411000302231509553102482577024020900901683697390266012642416000744406683177785807251592297734359751857465774610100108211935398310988923809389626089145800598842442747404538694196436154636678911549284629734376439029432638800915856306122092691014816686393162371048911568572494762218419532192761068986571870109799470733490542112716697730871319605603242768742156533589431648819159820547587870117709064745941948619424225494130617158163397739304590379417524170810562577703425543024367683177588711780970281751877765753605149388164656554995805004200493763753232592728709204845606278378205658290603346149375752405991599748434104455035286199856726292347938243532564598841469413305056383188485030280731843970217274484882932125256764006784897496807137597864889443798219021995196987430334994903416116765837552673893816814000737317701444567207526833984665745609073742418846982160885518984872731286821577504180710262710203555616182699944222163850520782830857538894038296606791248891320702491373916598952431404731479410145546838058447158641080507555736953559529641822833397514297371940800801397946973044992626163936772904450039682756621689834590859810294614910823917163370205959584959929500858271082503087729176790654784490762805580441158296025813745556081396942953307351073702472423669209704453578094251318796498634787384847333387967007793264757444963952385064273328367824361776853293041873782046601205488097996798491711504883041143954693040630385097404366099742770715918291253733076249469800367442652188019420816342067481857491028870178544828138285588052623066123408510036023332864922503800102453717175195918049212401599530363207980149226366382682310418617892922057717106135499840415414830093331586801472498204946138685540854367230835742416360901406516698579329711153198323681088183137941928352680224511751981336001452410400127581359723854256829835977763961021281230198319840440282726566340217843207130172786237446330731440775889789472214196914278853731528329597652102775367204011070348560589662470850211383823832523597916699060387357312651910246672263204821287722701924767472450796895680114897705489035107500764499418775144917614070889986200912860484942547899466319995420109263487805135422623679277733481343157303164071693377478755560713089786256588715081225855160661873161247334890660785893390740255257138859863763167709975139871012546249811725472204174335689016299194703237216622937110292659002486091963834414404180756216886680982487868521655487232998962005980265528795691973191990676926132117760372989409363662260001991548014006369502793411410567288519700681724358500968439081386386767032282331893122316472356574305850108779133538215221372685871654250178777552906506108440334782322343706431406289791906499287393021679204624265335234949095817661989437802650056267039682733479025002339467629926140501082794051561823197317182149951385465644110747973220154387039893074226723414611437198208609973305737112540517206437857481376748379296442859565486763639951322143634616718790093401730770410383591799409656978533981616804528886122772860233262056823340904027747462124007506309581790623645727166983992501653215072727222026193027800095431619049324790232989903476402424189148119115995711608540505361792433347415957540864371205451506670369216536714358116218876118683630417486238519239764555858697634903638655168682826283167922202663084410915679668173103113847383176076167371637164962801455946418089297189162599751214075963310864889093179017993820868326453263882475981609037086385780564854643464235407698554424461034246971008937072824383613537583297157081874377015996065875655270261507818079374090693392492365080009617605473763909569441769305262627089692376826750229001831794631027376020750186053347366975054850933638988028199585155587356853949158473319079790848285500581729901421414035160712115906544187157741809135271368785334173460880035268650047810130909273345474449452972998548890001286144190847772695722633947627808148973681242826909575610370420686986639649391513742556365262331182614701279054022083527439956368004955706337473526864597914607693478794412892788590887293169767562445466942800640874067444583959458992296221799955426900569605480184420085179100677162770658196570736697846788722355701259422925651456392802988216409602556796689289889325394412277653974305252038043578809002459759284457958998101482940466215739503729600250387707619510876463932313587036486791930198237794979851453050722944893209200059351917448256613682044904250997160933351187734006438415618590366612716341877058295054528990148115890191559404199253132198646188482572136425806887523661501174821509747412434090708844600545331717270577057238382442127089978594158768024788702746424273243544559156072584820722723249867559013755705220326643008301737377087576284776676954142485514216454379920882494131199944706183785748806565477431754022947024874130466085514010080045017231778888163893347373469825705609947905916358288730507451899881057674299320449649682342946219485629376568171549285904735217167770375909968764014364330068103333012156165015551001839573935763458281730766021161115018941278682940362743420783288503163544080921665409129329024760544139101840789815308597204226923929169467749664977471198591282726870138755218256167912586849366438379265910043190701657513025756885276036939416155579859539694201554819677129351043135005790421968703458995242539410421289888523996677854468976499972394702121151873164583170423062288836264469848241730761258869341218828542425997515190810098115594414509957832757195359863353760899575495163839088378295161146631106290669140501639330942870530854203925803933815271731874715637058707359661373258057797482621383627759177841267584441516524107417240100153043132843550262455647000265003227503164543981067442268941549221203125508692799679789840821268089916371597964623652752501306571037268712110926596692060497682719882640854722062952018312123012393185079495955815796959184126487341300025134593976695793754288412330316377016745619087368466847556664680110559481516569547373962599735021180910050437534844075028450602571127793649593126804336261108902613524016978797347922783735370106879377024690555716501135658963338575414392763418297916088409004439639158780836724267634545109072075467273682531337303822761748884482955872762147276755073510843027700070541815200474256367355785979257949104873704300549842507400818114148733842161589577715052741696296309455405238456174139939939787282660262572208746742697068638560690001979458508852160065634096741041364674901374662890486480425803223259574807968744021378676976131033406569253201375305251280162136917672911345770350425935264813840821624708635714145117091837707425459860223000741226881398652990653092525946057904606977235220988647419757058296655566816139460491380254096430620035912934537373715274795472867643048587589554874467820041341783295766460991713066153577046992160097832403317452994004519606245535223250547981725657957885702408829621824097991360765185250495688087076316984016720497369028662367518114974532229318988092019983854665548768347209540919975855343209793903695978621352226255995914399331489793807401996427289845508343947524391479245825161111417228855502270644606381363411496800097367922310455816132921612913455011297370641645001502457037267201476843638023180955757631152707262945331725554157638468393462870720293892889977185447622281479667454498942786397263931395958576923871590817264583099856299617222547657999338960918784436281220925878187655354807441624626580713253794287660668330656356173693386877528564039159912679205446552872489050689542165302757688968672281868243562778068206550409749151934774222158351830956314057491467293758900317727188519993248749341107477524809732092946660419347769868652798902985660268062169813042970486647887285451326527705787287841562367775038599831150214616301751162489682021816233982493336949407132723667605283892758613177641932243074104996818912734968335691796409955200978360505619613783375948067269907548856510372055743835042745284712169843596514014754829457732989905619312160998263759106672118367183018855708467460225332636359517407783935188976791273164432561585645290730728058708579903245240313555827982330807622822744152953169678051213251619841329485520537623597372013536475824707488933369554486527851935327400898696524295398381218378067036604923122270871587016237958532229996653594968292835407732361437429541904698341613186055473604587692331345552845851419519366338458920364128316917471272323925710990570600194123622940378987061377726535174987149014770650427840132038466229384919027668530873993984385328021629638178461937742110765894770938254764763592053594995932195000608827690284596388581130823798384534327454606898987115425768594666680442665100840640144355317659299789630138771091348270877480647930892423117723074006788514727671492348257760471836898006378135780198529233964697116036418720796048278059521346792306058648518031867176662883958832209255565375011323423011547740443960452474082760837107367290435069390464753301574967725625674144642754869452387358400781519430067740518317985188410306687001541043060042940086527343895815537822891375138759235243167255754485548563343173145707822221181849837209320302811628459798662040892081644246674868839612091175389970573354949333344145415185915834629571733562756243259704700498632687110625132461446247804901799613548489845544993230902742832985191038483197457731573434806572637652144154927752078197710394897957762158878431619311123349345443051909785933935676348246099337814928365140526461823289597202856943704500527462770051975115579913345449316105333515716026275599724904205753647448567864239287591538279052934104202799004021896036658804069760220216762289212698873513833813207826636548455369966123207329804612459778509395942785102621649746948142348318714714945204595768980274451867550922979904307541387601302975828008433461984125722424098587001333985550821628110137793568377458408448461436269979311005492645834185019092340649916295382355124627669780970267679839996719340880016162137981690433834948348436894615385404838733036685322017380228886398629104713717867463353399487604762183899499165383280187563877065168748180527787775174948686234094933110311481276742901103433004431658592648689321842537232614506152277732841963934547410712403945485233864792694715608846071363895010710396185724759550591118709109375622685313892731328989675199573052829529131391489843962984075741742202489032644185854571550562589007530638159131415100719094423805745526873916096385372673508100527308944615767858436510462205233369365866784391392782750234585522522936921198935105009032298260257359277401131420206628241691615142068697218870429737351125722755125600846251420564553851233237988542883630140277965970807502818709004946730263944272248679821309607700805370043372803929951597393060030400647085954854043716576899574776261735397325310793860570260060153816172786128299867960851169592218674246200910455117660002896027325112842373680078983121393014899376901231799409920484724460965058448716336883592875272102486394438848695272830283258251018676587151499798423415794098450543341344356683502769447882119208148339069771586796437039555533894758836509270717278401623738465638547309289910821578074885772742525750841945715898592223563793137096784832363777182970382118565434015193079558028250892738578906311377417304630756403685659973103756243384412568716740326468923635911387344943372336018763468324469982728063828497614171790505699220730734226726285002134873881133149049213229159458741570774576909910178409344667883429679331181251953805838381167481075206361387975004041532107681723798970764401596027039962298361749762165203476111043453564422383564090205537471561960413352663702803857663725322348154167115677713725975474610768194202911967719084980152052258711467968711905015924367140242829182680832705443983891766957964469523791687543604092278481954022660261638468835847506920416353300716488977169855658453243266748104332686356269758085018862014166577682330953279207237032673372716311112666130756482163938588802719939468001125985076040998816447824809214112527391689270745761377385507124561714798526894399552446698876250108065187400207875772122371277529205674790758925647227463206032281954801608448583410827056307233699270231854496280933378765360380833029596928423328045956614029753792390474862006161485608601150336084639584565163282360319308980832994936327643448366830525782321982167203965257097026296425067891942545265372780847629402765107781888106548787076412907902092587059773066411119091172448038326503297512638074881407999154150278305781789152025623990429452177996485768864863250624462999144410819233760548559237024180251909899911031091700675134139989788769869816290705037361787114518980065665194665685750103356212547036917070808224224187550594699273132645511727635471138205471307084390409907657931979821387659321431477218427307812437132069161493732155175980517319483664460122120800102398680529699723166934477414424538047347830063191281877662216484616980273648621109509628754342177054682274596083659772933859094945411586282852816197469557279207318750437520874302416066177991292566175822074892920123644514731699225312482391088850034282820779179118314150473903089528000406189121976660961161445432108864378675180976974749071082555122954264714900384218742420078856197097621083418083609324473251596178173366555980454788231961246398503654981108672930180628159501713340040417267432772116134893938743513086161360250859949458595279547685701015231082615471666024760373470449005442654210851622972151909322197632314656872846197887593586116312616294670444965531034146115100967542733623140857489218431885538460443702751145931102263911152103083868246731992993009435321190492484911812095141693178061885846127640293575048977067296555114901520950841241871593973433675688209036287420738649905097624684887381952137847607950687351880976124330601474232208474974948058137954294057481031688837166796190090675996967317499785740683085982383495839173767101409257539791939516204938549925748850798680618566059656127946077124015647082574265208288681140313088595156921303649133544455953118335320466226463981602066755241458209147359779626546775870968567965025635874988847616413277630327192530243158380481429330298587166408634070588514126497628466593588120661153967104900384236096560058813924074822244671380484529004556538461957305247848618159624445917374733144098501238672003824831711320894873816885842363640056557851418688939416159044712219249750375130856235019000559118204814367858725173942043486302492953239248616237945742431046822240687839702979940567387780373042147648942675618542773542728723620106881028938003945761131562171449485398888967744239754140591079657959416071942174209210715474940697865249158279555059770672925493366700987746852536574175462535834502256922617959693203640244078156048401042459014028416734131603507015456505655795346126680620136037000883320369362926878843251767653364863024234597723953548940443608483071121113290500465702363295319345288865794061539564548426161280889422009199420050246298592363392828881686768482283469728149225672878780843877507021413476646067668482585714935355725520076298842221108015502436491116908263259578157669311764473029938875333815700863285926832541471363929400087709300155264491561609097660708739899047828977465699512302386462136125904154264585893011073050477511696575005552414862800597755617385664395924559060378220286380982120644033677819384394797738333929146215010430855073317831056198807389113431584358520826693419099162926730270507608416060905501293348293762544584590020681599020241376214883707782876905754906848352234365755556567931566069622080598154441336919229231168139165844414943228737480800056367043895062492661430087443298234990113828447229193656911506615534110751159947440070739071569838133817208072061772360197225082031352087165443026998622796816475429169546067135840164443661359489647648515203060509813748582143250051195382080672420377745832726151371931620107106056987625058312967957462909210724045845753604968039446577251407212661217396333099332368123220409626121974000187296321899903673618269197953388879035434508730127117489404404318455420583578673168435253401440183820860132793409937490388711531859482535732116678520451288366282327777528042265379741681546513439257950392784225553308589646432278313637781584915311899958852069296933915601755424016777030004389184448071556196127778652896838620758958694450523628493887196262320718177805466234129373895705873273787971557536369113899803707186890835115362211469663220139295828942671380835645111002546390239005562659490267263166132181221807539773368417290765302960557209817855778391443861633164069483070300357239980975448991219647192036744569777413455148284919118865967527624695034265305845765695820348631218696209080256210460973067935427005692897709666864942584444948297438187667905432934160905647047568581371884272547919129818010589429020192525095063883675650547482621740517201101030362853979080130508143251466814246080801454319892305315962090175288270953780287129843385433633535738512409987595241125534216309226291581158216679349199104835744456331048619344430659098260854616421416942042223549505506085343755443665456638670041243885541299655407182079402321629151869009678882979284056858797918236323420169612163129780219986235229730818712113714100752679014286049292985473026798109046548019012234789355106704218688548003851910957139771764499798217765424193802997244964716881562625108870638825192118155681000823832550716640520657142723579358700412253930220340988904559343453959881278684705735226302755579341431085464207595751179086974253626463275292302869243592357582134531172770669259242058339243688743167632975722736828301534447035591711149563044680145079433856104374155716050024346848168037735822508439115876745677444963661197485186671340729000545734231751769895781269369363150257123889050675558784263131065564327374627445063491124074399636181848974373214114429790355755273972031406347334735087209072289421845182397731773399366707359371424270518299489998881127203275366503953355808076571701866931744382900959901879331246751125848413914777086768977637970224113037556603543913131502114046966847983570991498831335256836261420019570558495752486096821165689699244022180369256769944726749492275569202371747882940101537787135921793973155367326352314384490913990377520939835578040906003688908726298934378484235017767422300936382932687510159067477707985065531343279479645036733319618237628949358359046796721362048359619031656815778487295734387875962693243414531749226643376925928109038920800875532545229213329078916952040115745143431065056445526532330752578619778503191473928380511441641551318748100966681809620890212276333668413403280831001557253054397959913466425825878140815421231981379366756243943291115959575766630230091329819064751791476256659255191648561737232502967534447085121054294927207625528198276152017304413357121833794094715453737720882874929288331966627185512155317915826593742875505461121611779485205154974367189680812085856670060279025997952309566598650530146601890708963607087896356438418234700162183000607168229655460469387929569134524690614416445059425461497224308974878623939418675810133400131366332120779256123536556370958831821117683755424046113007989031035193601125677091127027721220980785290698533342174114500159887967406085921503887945482242454938421737201262033488219442653218758858655438070232476102923491968401979249652362333082348555402095785497686488707402983141913974124047239869139273678328158056072799171404229399195512022534481461102812404472075226313910182276390465297388059793871806798446458475990362119901252853761884327144811164715050594943021687133294074273374404168522815829744405478595649143643478058211152844596572294839718374678901659847394348242634870901892959216545938141689068318361564107743473056975028143802655642864164600572772160224759320025005717816244513857503971361139125520756167681947313139777574128412781863436097913734493692290365474543620216265471793541281653439628946363563829009712591480122124037285485582364576316589612959858013016694117011818357279618402487677975958336096210686395703246532436412405817014077072474070471483855377291046354648348793611356152383696081655213883268749191771878596726432491469473674773885657791637053769894753133236851645047396753906965459285094694970455230960722920182766248088517747232883376783806167823489944179910332351346976021252109291902615429716741114708300905541961852081282524262668924780224283801751324415836940569870444317202303034986941339266357047018992145639207275667575075349541409220189924266150049515551096331127265137979764952590924503860031343061234567688726249304519361510888503077858262603764213428053392776448001941617073217374263318887368501972116286121226695418619168081509817084968921342333206489719524230979021173781847089764988076756870137869930808847749756405255736349359684402410895418155426266467573615321383110594591539937442041441763603543609296069990495820449033940342845231837084887556506765671004686092862488679988708343727110040177223754454576183672713675484696529351174824451205357035861867980747227145617199296060467036619966181860781354846283249189835905290248437079508941001025677615379896623510438731416471816526370785472008585585991145578003088408280114260999225585375218168378695396217034712932431115536883907825320255507155818092710191151309482905853922349211271437440771667484818981866990678903698117439744770196326280658163652505535719102392042232460396924054250524730882988735266600853907500569653385982088810271907382051824797065192439257270414470459954782581618324762013844414623730565563763779001425015991149843626247662621631654304301626358632802571529494910119336469183309845121746265212931269843220713674079228040090095359350274868070897005713004326555485966991340293859406209943067536844524049894838879178554907887907319275245395596439399139878232166790573067334339457426578523573511837496653201609147210681756323916452815556501299890027216178248902567933489964665388222970288334642521657439043276516714498175909673361363199471662313408895635918784165790886720773142148932763776992781870332532672459366139789406290088888069696509303105869831956034417051676625925181859460444636675220431465253885014655205248542421769807288389577347210236631615979983190255904556399444380102810323459885927743033484082242646550047068351217429528075706088063751338239173035164741091309113579042692597879601903158083760759455802123172014262263545074749535025654675681555710713649695629654871462571863445856965038292958932595695311540351794486061015640311768334261241721448052996706027529556934158198360301753183765952751810510038398277660874766269248781539048962387370610282540799543749948241690362982927365737871822417631423260522789101685279226853508865982137413689461143731149214065313123789619875517437172122896618426899197533630477541315818271031325653252428851910710308746718385812024170924635738629084605444309421325860002187014674380812176261257856381154696584614892629397643677702509993734392851676348449883255836685558339358132158322100930440344089999384900119415131393139436451497599407288497412199096266290785530858131818168722426540319295767779603446368281939529262739999934558267019719378157399182571320117614276162235433887276488535508784595702883300605073301110128589383242174514414622414648989851300624397870215997033646139776182383086242947740847386084536777049974170716531125690470615841555076631382114900503212189369579864769051346911874995287935480476404185581117025592645646018524710922429172448569902531319685551221722790874250602923412822565919548218800296668076477430422310809894361850221126098859673126777887869925749529434691922280940469694627813224636728429490955507307744461800700183678649242753834306786386695337122616363969687331055398336784255845338375054007695745359882396803476538580983173192640909967861252611918909444822069269370818130230935575889284340877423174788124835885064679717252384478977484434044812017955552698412417190478720435745237996667798401531870564022012303606577698644378425398091840610871252615962966636618493825964649977190200385943160281836266716027067862038582054248612045202928971681257746302380948090998497103411851780405475592406095267557296364561995987907135463935175992764142775544513870105702979704366789964576481615970877763285526896032025215074546358713062850375503226383719581617489115798706557874936470948939284434078582780293670873334704245193021761317056000280364530231489403268983616130485113305252075340457820905653022599496927891920081990628197754366025566968515164479392440750112116832917357631281766254575778100947623475608806980458380156191632008782092860997599414732396354007395602675331018851213772236669822488147640074520179759165860285747440084993481430492505789510522174222943284845572144914047048543143277960645576955188739541711891670750276933053788396361350888571079438677246259744324635331988637169896976971856689864453644135541808043021353659713195384562765603359780017826313580469895902304879171705835050661929074928827041777896919494357214839550910290332317942660930882962457367188959106046872365549596665870812704662948193140378696166583813550449180559446317061920053642596585688903516730302503852909156759198158274530830491551573646637415576106166751249250147263277275770661709643555989269714329091126506021946568249617327178172485110379047581509806701142731738363312223576404991663889499104841159939936524688300415756542868254936737856885741640376212532573162823368587582338098344497999579749554546079385614150884868179270291264440218681422129127597238851053192638572785830290850018802675996611026021920834229876359525451233873967173475713541021651109407710241777154802917840135539362473477037114487565856900713554766035830056526221872376206191632366472108871015323984501543559721691751492182517663663592108315146019026293223219424970485243067589935806401718449053980174297292827380532309704662370693847547122649736431181039300542309387069058708581507309862061644042818432689844657000316066128018307254655679708726813635871243248207311193360578559510123096493553178932888655415311191868887591312904635335382532248793811029507481313554350969114408602048044908882095972498556481898444796356987316707825724361771814642010191973788721103810514810906176424503555569390928109524414954244652182850963927793662714057052179001136554596341857544192181849099364368190365140556959574478508244127528920806568082070243073430971092792387186979683745526598535810991407818157208645136466858742944466346662202671456628135415337650977947393179369449072967609830461584012606512492152787694059241265735632192991841389626932366169308904572238057069905345764920465605089970358063178973322994783663771955238371260849670644630505657346795595949299009327736058679578574603014094528205087537539344038605971529377664972415390423387234549838874757826802767352038051895931301548192486442262331187758784968915183417858382282395720474572500737237034775294406708216435344779202449080979846671713934472639305860802384227630056993392470029519978791252112870669798024415540634590937706902483190377274510428213834368459140049483948872474546213371188217823530459452850186589862125485020196622220676117441464272917937451285700645751807253061688299061999373633859844599812792440313005644107798053081924414800890278008462070952527824334587913776569635107634065341301389787133599346488975736173756800845043250048266029165611717057307045896724400960404861053605995672249955665703203260906532975557601987925823035376724132856057728679860732513334618126222388884922864789131008132150537659470959360827539779975537178801946593128231145323312612868411798982971537604187757565954414863492486978953836600285939219717256551958258075109819722129569932076989476465062624894773527098113376915812449441985710896823094277759041706248743186167680269039374277616285603602583067369756106377199412193479400801724326863281794150493218910738464809711513061632191669196670601939262127329696325009664266880330714879263102205060966313318122204593375780975764730301258644215196223266171736516276620887004208212511340025943188821432071686924216437240707807964949609764868915702855394039446912854816824401632044084706123552829287612423863022276211779852089275079494492057278320935773360940761222894913124802728540705811529791109491624732472606489413494019471037869905846181344175900981811145219370583619193272630041117366489472213519242520571903865617904300014400338651542864526461700582280376978407284129957980932458376050748899679239444763421910975408028950817641198132390410508765717905701548146502026872048939016706074771828941522176926997444168068498679034848469050349360628205227756111307593104946241592202465515859258265368539822808390394004430378990693942160144264088353777571481207827740355779199969246543776448020633551265648961405005164034300774777406790325443071281022422511083366902925308562597689466226501831054988097151838778472651868688898990983965158510867021382336824521824728162533985808405266911440732496064245922359924022811965360021139268974577533037857328813287550316427107920831474795375414683399427624695687503563328585904653189602762803861102990914755986636077799686970410314704472711415573588761237438986837485465531571836129424469884632307497478726080661118242689510948026428819848262668783290852727887998833421262404197129757990826687779103220286072067814342699847105276323507011513143542997549467929523416146777843307839676705484513333020603919085481209047144231129755486614787658718266665185154714382956045839249847064974454281142421576341479400824689615349993316389732403464455179203692387795329060134842034633400030637458910289884414129754688580133189650761695167723050216989130770865340975447423156931688720743889404400089152928284956866563975164397402716859606802053647861194105329471713190161421435667219040967519740021070384394302529338554721547595027096560428101509416609698403556249342316580626435359511779522541717984251620195716067697043174398210455806659220230634302626922415582036135226250674220907015005676445080403950788201717539194055642292759864482509317333662493062125572369145719249354204241560473398798146403974017713854283909792303509762897613388184910580424789256372254307592070337357284991962362466476334719995893325371154184569658120511765004053571401475340262431212157739576213486847939355335748627273370976772189394811224284559221582441010152490082208658405932708440604693085759268737008079525667927570006973932121925205746589840554985897830141476872310907321805750181346837537743569458294053821564766858861553730539477672685119036185041132569802913037910676190195338872877985552689836822348314937592634602645409573904015816371717792347095309152004982472336941364814772006656819213913650149465660145421435633227926233329231102198903408124837634618431948635388125290604022827433504779819828969746819329540990823651813045345256700271704476733314578637593279298153961714343703881288343480800493007801358261169882190595818875042003106660201576544900625279351560024638165570635842380013832740023386635633527859118127627818687943288936618469212323752135582064759376599890921584213463821747513482959300201223084475229425192680275297033021376724167023187704913986653436787307317071129974408259911808840512590326333479631750704825478782264915117996225712730416180822066969219394729336696208808335105270931774247232423869804603551629931009404088227305879033153220449897613308317056307611071037570560349615189622840339125004895796568012369297054667615437956366041357335579856820619044220253963853404174939994229213165777838390001609711721746515780228789216847724805314592834698372224698522709052489778667947586293309757834816017006048124906503909033994399840118198535100754503848917400325211319213986612379359811300626486509970179824783365410491874657943388498760954998454506124048170434768290237981903205006868240171534689910406541204164674024931928537281628679904345325765796942647963726330458158175559130740123609542575947221012842425680004533669543415887510081038145150216251017790232171839906815138034432050082015540943113344193595313463287544835020398562624601778599063258394414549856180173005821894216272156289740986414068488412583225884521437140522314330983625963472589376565676776069047685334096321635374247724147891258690321820487776007289290383497421645314358267278295476012936204759762558489310232577425182440242382457026206842619107820524678746301624238720383453695137911636181741754070481254934676983803785086502695379059908007786134784700089534118095903571446707179900857701389267124440860472537238976267742860873937960770894811755222469271443238786957075275627415531937760963250518978984994060791650153530524700637599973764416097241868202605355178872297305846707406284795605580619800179297995441250997798708397411421673632392906272360869456602219230650496314596430280976242127923428934535387375477754957321403572192629810984546000878262520234646280657609289621788890066161724117789762061674415660834794910619845109515424047236353446327774741867289751984785493274938440401748374471478384227221714053936201557517900615192493955110159277503832103898788012670361777491642390818520297913418493967999100023530477565963522551312889156758731211540513179007566949359962121326314515485866940746008447379420353672048401323867821374898870784273209637889801701798712775964043966590304007561930218260405156631129316603510885009645897252188613834383687557656001876245838010897120790987733299585977411499414575595655939219682688158599654636676352510065892014715242887195960235982829108084621829382783608056456978004633965677866110429576806454015399785796273394900849376349104776151756712092333034637517840037356517290626343759742709615533989446831118818654798826371105547254597121292401648409899873186907258231348002655210227185926914407204920500862819416621926835447492491772597955399648234170382901234583453114481707390827185975157044285935545865980464183946148970533225088213733220652597717493668343566409302177800191819666194087372550069679248992810934224441388949621366770013222648182514960765328539888101988205976870137249685927035454625786065075374644854662250810086812035824319817624483570257382900445260911809984744925167286355650357982546594824949501561912338345397023759599835114125958652686183242263528371277310066676422150033214456030012113177364429325440933957778192812141126481298776532593113909997422961489356038214426530484857997872949067646822933738342445907341466688617177232705173420708338051350770452148820122537331983513283361519548123772592934117483576562954612269487472367768724110258607210465515480743483952589731225463934477794715363463895940358934862636703141273775236256830181362291499812629516794880556890980192578596011366820164439677893596235012144206984548244316303672404130762874743612506933530991567895111395635201641056982241492591905399656365255326778493710353137682664036814032290878931572034304834761165410850962363770989492047752313075998514969151592404536889749141884283609413884334543271578199981753223362259419522304889511080310739173861336309795688205166562816168145148937089212210146569959349573615293934047775440352020071046130476546619496361174326482400093242998661212911163765510165544648655502331052388846798129166094076235400881603127904486283925709522038672829227615740307651220408360569861996542912878398575489568849266112635566407069736551688898189188573834775529546489968347018936545244649426930931646081527814732549577805586144628542678616418377708174380629665825521590787846601333986498235029744559639774726176131111494955950208348977575337508843831620708031784760608781205513371943705615925259880724659089206817541059591071911835674178086844890548175149706622879895597955544518335930273380029420337091239933899560166743485204656446926703681820680457521869000412428255473573904590012524759825210560056233200588994289469764111000010539179023460336821512466891359148983704342777590984212168500517390591409191314125922015966126724289312562829884703266073064921786223982312603621949511409139735579904758880186413832684243377910522995837963736691664783990518062440441876414151000484602573749490384899735528024160067803437038234982817320825581321861078945508209910089866583269756084705718506181722400550490405359208049363494211684641053472229713776652789922931749609611607916663288657983247770368088388710825922492378676603325244526235348455341067638748670215165601491021152144970459225283839477447794905020655153866272472063172551912916104102209139324713971312789213506238615430311961266562725239599848569723233900950949351884999114122518843406252672378141466113769376391649489372697438723307978198892140472841859633869172977834105708916938832829756094299490739526559599396417212990921925441563151061931727589388317200020242052977052444415108293689170283105444159331526615434696953914263208676299708369777967755718436068843203506032785565388051445696436519228579688067255833786225609132917288228589950535398359651618471409630244953412534735907067433907608516920157082813432900446962304420405462339433176001318845734371492356258420601161032224646506319356834033050587923487025479294491692432130250261859027050069376132573099344361187511128187159274997794913737528534211789056439216172322327033170147346045070038012676624779625808710156663035724723023486243021085816118773578458694916323975949298740517144485618700593384668435776199625687864569445822876111905631397192001681051960906917089941931471657153542561502533846775550427627849485406975522848686250271995511748289336827770633119513498510589078552542452487892338763489192336707591210817424232307707705741720144083103760884593799323594788839623836661256634338611776337310563306531006674744745898348821137226301707101486326659168653842333913925752915010346115010901869211316635464775691412789892654066420534065823349189453822743055722235488865899506438974812866866779981365764792925939138153066784936514527402687083284854958810934501147838239172983737649064003492359860270034557951408864237037352828999257340046646517113975660149268127029743961174564294506570453823888935697998581440470912840469931905633849319412663536411794799867947837074068079826030973115420823293393987633565445762247945493343247943998459621880859652983398103787370311589782222888006872982886178691200535748820065060785586706751568657738535004887711626830587487106312899452439591083464086528735703543925836915253542331638571472258047094294478805068558174491811009953374261447242707821027688708661402642743581294984684846449571615282934703920460579585998354157000784498492428714483197480291711374615207801232892503604414462846841791234589417511722509136492192573078108906835774800940696407194888215939452564071584245393105493073554829140038327988691033402062161522888362312275851532928722935812684184258571635144046635496809633601708307511095972856615574747194668350366107469942905505583303096272982602269482280898650054243268798440602143308446186307560147156155646885449671324509327888087579897441794295683239190102326552431557924461403634035175811755647957252829070156504118630683230504983860859657647003896615123019556063648197881363507810240587028044101284081288566500473081842021459113224080265791797028677511984286484206791049986931327030005429438513537494174472594168001439619165342993323140757768300339919363768065666944553570654406062638970429799078819210535611344664307666383237877746199276799023573771356372307781800776251652162170135384773989434599385614972954359647733281350581158127314437542064854796484804039430155376805819352680225770338062440305180048141425929373480218110327158252514376601396089342312842813204710927618440464882916190414230004050289582675254457385580114201800684737474936745911549362305882108020551253898944166970676611001162918543165976972791388128647896798839766439685678148617182108617619672954528890388612548115405720884331950208945734571714504784687782071843249805055524418166996040127979650943997935957314415938582073048092665693787535913438964576266958794635058238260068799655058613404883186826106430138941161034182828874507281655962112650471759938735926419914782964280682851277327268217768434683017957280189299061441901784686747203880285352112913885004049619801030137325809321425371742593852397021215360814132961348753325941187241895742916588211771158311279456679802144399563084687806961387890017989040311052141151981717901092449381585676912500704990388920800742563898887130676149989041842500686075664489855951713319513300723999920015541809131183269584816474812753138505859227697269562075754751072644615047409527134376736518415509580892350474025926722590852970322424615289807242010922956761542935663972843947224281288027245272164913014101160795924233551993180441032631499084905143135549909495599178374501009410011868420946484093263358688574289212172350729140459599832853906072094922023335110875192367509991864125588528606187841647183264319057289821272185423943669753408811432241946916069566637262914025600435327656970524890963302682677176529961947746968479842645870084726325821539852508229917464165758325018804595258820421834909385381286433099847481300895331936358285256248725739225723231123199763325873062768229615006707816426603750271879524058476079655496072592174032823185681265478763850408327028952033827083423391832987335013675711181332179929799716909701015474695389263916609568985586266658292036678978068410499481260788989528282936267459774389918711257175237268951792248659653613393228327272410389572122071598072183185516565821187936417056549989892877832117369596960311181562721572895702942323353288654577227042470232739011994368997657739346762886875505810066565519015555906323478613316940244311576628620084267115204496904965695343054487329835980693884521384204034924014492671673592319211941642796189406977723530235811417862690780263442857404453235526256044524209556492602282688727930439326896115162784813050200231429523929123637149778872596824173145873430521913214494931503193433250989783931529235749390720836317873365653380939811290753083285875730243904020084378897584492234790503535134010810912946935058135052996589465375228791430693531287220918546083959181927852159951490526249165476296555755774273434450857477385441311657533966126915539848817480751137226773465943350593094443359671966182926896243523588343728467927014274064924305373091886688837970272481081531718877003602908257735990849066345279701026865378121609263534402433159148481550898501069894701298173972463946972133898199883929246948801904795268044720468254864755350587406018324375416415131338125238358899581727667922000817017562539850248889494708289941031162037362143418364226891531492885930386849790093599268229025349557362545597595712524036989102436713794137736288409958224236095013614235685303021079261185887669387713230905308518828321533090086174281579160709819600731207069328988069663781957896657284930532839102984508202391016955428106210065011770530243134826009411460755307119833521966523151229953023710229178259189687945120121792688022447044951636053670361890985921113697481745931589122471814378345112767568693787506568402159256701006649201303856471607679545999232160323716905818667781031438859920712467456833613127293194754805784046961856071650146108474046872862161637996136857162458359753267926124407385300577375932934358546318632824392877964053860572831659907517592358757983403830396765152327654537001137529394017091398221874748160463510789400524255965086141359300631309430872436882952614263116253105938361632292448936592478644669451964600129589322535546143889776771703486108693668319501548062055453325984704113822331395247339498631693926128046333314190500888475018211271015244879984735355034791998116811291337178896654651205771901941373018548849907240005926197160645160103796354558527710387350266892018778748089063594070057950284938378794655718852966946360461733892510385197578379280074467375911682301889454581011322741264260744731359198464351176704647905772808604071753754298253358991211373582972419748477000733155860103817479500491450482349266136993100399340627581542952226530234937729398678395086383596617650572725423350165845294493537994131962151995541126379739116093081344907352262424733821203934994890877536087057984858501613983695623312321591669900338495441097575337868734013072522889187222962212263664874370561141126793762385415831906632126087743179939205856307550189119446745147332619018954907428257861769532809158036223522955788083273265924379433484994651652732276484941962743954545835822288455674301595636505930384019528832093890807459834257356935346100974545605462156983519986086042811619620593261053063916796157994334662002390565711149129565912615016234331696652283708131970768418893865074222042831686065786202059658216092295749197003707779889827355228831394873565572820276706277675232338614427312765759070250373285951897040908125878857253388355662570455090387474559392504773711444742841899995532496493584290786145075980898782148401558091295722111170611241618659620642747068570520611711527589007553794868457647096257498952663669331201111887901384834505106822097731200534421525653244324292343006416932289828444226354096864935393401697541888994094041211644493548850164024987491756756783902166279967733629565413397427801203069482076769996250176470539956229481349398286835356955819001469418451878463397494443849910394536033130427748753994914744702271202426537478784510549940198860311413158108689216225530411377974813011631436959338718768642841026195212939509262671172374918897918322344454861613702585731020496941958985687526452628836253412660660320208273514617518633757932043196816175419628756349276958040773181649591357950490195576776514995273277872850437601469279802783306938217657610919791054188320448466541466943041209624920007572635016870850434223705845462492508235552113058793058021747401035229959949169862555475511110469055389382059139125536164746835497507627912984984749820719057247513009804517649832983945539702956665475569012526606250773446369501051008033277217495268812036928535527343351252836298220820879364860691029116283037792665346715100199982010402124419572029438814966747557272096397790017234383848835365558111094962975766026614227346019853972032113825583458597698304021117419724805932805777453922544106860170913647421777552218768494349410756290553631738420791129209164067828151620516892872607096397784505127733315353458393651706311462506779132897901820006074632402652098806191467660388261072858870694111283761764501265780456452667065635769461130349559687510174977551743355119597762039786468012583992989912749600567052788998878896819969776244466880766683427379648841514954085919329213339707819313802514820348841341701152706050599438302683019987297003211144167013131628167181220191324834601629633637378964943772709323873211522986614361138534647118472628018569452693063707699685524919310748176864640546631171608187564082943381565390692977912059089866690718722903702560508185460589293668705075491427941114861702658418607029198222794174690937012307155916331484515968720296754339002948839661484828800218067170708801883759376142708962630224427693625214678703141220662062831045740298349890861654841532691412107562296444771218253994233605318981496620245716354927611733615269387197856123757915046899212965905116807458450461332289544863889741060623545359238302702197353329786157006426431513987295505300037101502843640846705441533745850958866117212105538527210016248698036325590170588603665457451013228715069102655764798118820331424852209379900507947175165542723918653599210165262170143608918375783947864119121453330256052323146362532042975678668800078805200072992119543422554974500723750809438104940529621829249279809154317958396768081321663640249357651993148212947020244406840496045645467350708553699163760819254956151613562892731410131104547091840829706603625987765123142462985213324921407944127431663512399365742267177790349454034196263264758751621469959776396437182015757639913405248204085325240522837041806246022352906378895419235888326457983176040343029805987826159589098297102855415725024649217541528939226890292068860973217091629430585610655838222972814899831380814481877351856344612596952584043874116036993783180215520838585613198039483877299758383602659521588525174682292346455770118683850771567947249295113048967325881781826906463249490504838965678441754310702845564965216062774546510254483294687283508622739418868627555794600780520714588044826819891228510391560165658607181706961751025368972486512791026936089913924577278039038695332422200299260331139733738677849849421693995771720688370230952825378059347300034955981265285677723641230602756121647625058983389243495042816410934367028455038674560298030041847132487053121419955813296884532517717898134026458558203758445662091684707861594161558474890080187654605219867345431834789264159125839012472802531188705289691193377259949583967290334887317397598163694738357094900502765291531381313835875233194009704247698456109623123275443519404695007724702270726500617510232723898488876075305260495442784122609414911452245336623908754190149680549969215612223728443097678618643633666244088099276555380745023358742613993562296102006297266479897560767454740846856729412179170723541695173250771913085993889269324346848502454186945098382033239262093986490300197705994516192482256151892165765008787851552099499658595246018249307990380158837194853495750256542684007966912007269469785648973526058028760639123415187782797338896221624924868971855940127653710195830977964414426114860302432819803700670938478925717692966284052871018244989867672844292776543133135680843077157361409837587630999627632057003368029753421472187005359315002221378836030645374731448031008291661171865351388430372461781242763448689296390197248554475499057712709636762464461179810304777269113290198738567020929828655886778937183292994334795982639895923420064850612177454756987743216612707971378576426448631790750415471643323894832116815464719513055679347148694514182039852321365011240268701582934823626470144448968273612608547927593393696786379769417451025061663914232810099271676376869713915426352777860496083221034589439239664585495434263047654870907335757993940213681260711302222118262900560337413113846783147887391227377991886350144711266684101480485456742090781344775404108563019926521935111770937354276612154773722963132304708692024965105519741343004379257849748965733088421235070728497557208903127775161309671124559275496947825155603826952175667223727123298922325019437945037872096287202566029171458031702994579466883400819049317943950214077185302278754081541490000920998285431949889750299465048156712870455259462071996631678328463246466422044864942482072101356055735978015652557232111430570752621881532083502279199427901260949968513380601557242703636833529514894800861113399820622651366052244845351029198529741485168382454574181801766683770851637356139332517132436570498735421911335653640227771937460122103049822155522164017718105987272214178760397436054363029202314771143337955310144106989159195177733250784302913352105206084355681054463485453550026020293425499613243684640590057954591104014898865985365193942639418344442729782904980571073242799407333362436463771458222031402778819198975084361427467709055180332127977688835728060453645298492645458943212372609871046096430133339010860578680919352194823888578274051646346092796171625287754564755522749812659269501203168775599423775820332435660383770763448367150051913802618001038367592644702970305047726754926573565601077679238747035516564510721843633225076930364631242094494835900157830127409178557466552989281157487400915468812336848200179607687567822306694953540662234133576244709059120349433936277385731221855738012694249062965042873408736647082273641963724398057376949061869219390740508527363721710150819382423219559508808936918281201518156187812233578050085260726845559626143706824508568619124756227310883411188906755405084834505789319195721329189908107750552181827108720483546905843306900538013612059860863104169735942153387277736926055295912869954937529996913133823828892993106077867430913639352439095616462582076393909637883436324221401585382183633586002508183314859629243428889306058341931160114253489868942766709744965386912461209899347859245776701345765602159216805951515744185774094385522489017142667716198683032213086957197338812767715262356610207470052144751381958940657654800714453464791636356541963202191222071440229014697319160414454516396771667054383352800994530851838434739562120341353768246318590204311229554579598340120688537491014512468954722847092127261811079588862780375967717419243012021645316134004433591092983158566294005320137594695927052393620491101925983455536791135856957178009022300192709437249943165022565407406687458417972845626756587324950145328339778958838541955855492438893997955352496530418154796983979705957104687561827374290215746312841137002768806614350326371604901692762730786569965148902145576385158168330229707876028119265870876787859953469781345098697102271609771275863233123785533533724261188117384742369372034665833984262346080977596852551937026114220802626237654830037904060671913301957381785962783496251371765572615745459368175764212384087212082193795613327138868917609673515566346184059873488059756968012986293322362807094381563774280111211584789469528821237916114617559664049719842668014678069209266633764605422033089908335459741927500946658921123714044297551065493645779200489559306885121561724674784268636722881915794385674952572515725213899518003781016513631545124400383151051250812788802493944457221429045577093555232831726837414894167856307031036707561804968102253452198111524341335708102548816768899425257368641443466353618566293039369103462725341254897161385707266122069773524218621370300232261364495502714618349894372039841888912166530068432485223706973494753608819731376718124703658486275223982331424041249253761027594039767146967573691480092723766172432228910117047993911336347794324497945017529467272788466384917915716109967217988512194378131520612570792062356953034434812266600133445540468627267011982429112259067256280487649557731686014111138976581907607059920616635848174377874660270264787194080622428524381962190022383466899518675648108882238233941911602509106110785333178029873168934422443445522699137665246356272056524198023316841766690052021668472297994374018236617374829573513399800801073081646124082397804455683769320674671740073897719568070465228235672502255802321552327228865072298939745808602069735746738389828548053790578881476697776956237977499692493869262145252642037255735479578671032474732149683688639479801477919038429185555668205220766908616851398889229919079535780128389699733417535817117223732047160624917082455841263105928502603103540905209631002930567340036678503182966048160060043198247502444102048255553516187801538314410440305374313090759221170876345182643572578569460852256012213267462611485251709570517100982398497659269592154818564143902832810326146427939096527693978349190019273190696138487502519569389173916413992098434774253400843929889686943449330506372870632728167388621448626697663392344681145028220596343405780001044273851865750439020040001428218207305249105995297850980325325843550897820840934788604899926779507500992672224378545361212823424274880701863504021047011498578242083650532104538894513701061273659745447888439942334967297282376718586448773352941219544704519046096076135728533643373231137833198039762481550027807663359240907994298844455755825627739381907162446511358505132326950216608723384638121886447142320503063791917214411767225822541443090773552141523465012472740370943974597269467091463364263387602568527444977894579547446517003127708757285993141272507771974303513860983378371128944334397828097368161748535734193465923391333304374579333456460668749885260760161030344330343433034355310290078129251332974635036502732002355627786846934957300728883849898124533852006669609269396141957678824233029608276580683039054571374762608372205280840554919925381384242475145056419265825047543600377780199606169830119553440428391061965049858307378440023638754861165661867713421711812225307424765306961394543134754669221238861877183178839653259658598346361422769342635689138251807312405726594164994955675184801571023486551026453104693175524411071922444118569223592491241418203367903121118447863642260883438495663647144536787594064561659032818095496550035891000947731997094246294151902373723769689909721381867796730134033818379373214347413476503083332516974992084756841007230815155767012156268353161472668538148004321969863410006454530377265482415849540735975941206585797217212636963444777469668149739501650594632495236686399654036017097714454406011813584172806292472345084036360553254568483743573652852264600877644862416451797677031645796058582882570450608011598438748224620361813973994547386291999241775969579004318844738604952007087462984603674611213993514027319001494751171147608266402226934553944104905249184476384607265465209224206046650756382912282345007802682458461842695068881984635999747221715061774658337503828406007022158927659712408659595750763226575834256798611180222087512973336886398087478903365188626387456663306363684819024939381969735578739678812534475742583261774920264073525350378955870368736666696212806086896000950337418671283386858146051883068098394806565215962962673522151499784027126234737234889957367120022480498113304702742070847781918406964571925420866958948120708088550041601143179250260374112236540717817093435201680677664391112138450251686070139544517474568661828161448501140643492793572551350403753154084765804432999414637448595253011375349170437634033317203298213980528714075785260268645057205799952622603700004137799219882306464692239394354112069954091041854694494136928928338307711807003880116425512801996847429626016170158041820816011564981035012997427711810599682877107281092980210194926986033770503441464648186842376125552690341254614785936428963484638900894287289549490786125162360598644917265122514591009142593261095151279452788721065921792450293026638064527847349933587949297625808270709729646027515477067806661631065031835159419992538804229578888424931512084969384248388645275337427951148733967571920143102391104131903227093497235235047329047099529032421210283454885388760389221048380052750545871768934319384028326683392538323149048801454823346075792234776081736930353968534831393481638139398217543724286239784003186532449013936360215146511748899628915989025963260995354652305846960390518245667980557112459968282157586409383877648316309698083558480954201591935091295138102253468143286328509925666661108670899713807542951087392202990360941334651007514627297133881423491237615190109388379861195890307264935362863464385662381300906458097114499046355726124464708004942230153650668415167369960530143511659943469194591926273653800912760504424747525472106117840975500951031653482941252109443844029371439170910110979194113067301642278270291141114003943493610043966613856869394290101873788064563475572353786495298710901996418994714741731689162452575368006458698176095317439667731720351483428840897087846167995227485761062151917010584779036204350148760694310200641538728159847244534907324462108644975675562428356560750538914454438732392142685304309521794301437654239944032633103367860036198504016398414299773857522089935585467541706079966109675219738761101387456285304124515303720943352026803916134923419513672738852819804895664825567322708890624807416526784967694417981497527849601772913877029916207495504747988146856390781930390536503048670193439838162905158332811208986035553185750109652576048996150936315205731297558506376294383046573866939729513898767707556801140139603389131555275233733484818901507348635031678682566683830442935897293825899747315695031487649535829378461640062124101769467986841481868036681938674961685640989567486805448180172609450243825024688595054441280554211423220383195884266553192290747887763626591853323349340513572563310866287108150728218970265011560056719268298477662955956864490493281512904163724660735290071534796061264644810571911880798730509832586880792206069293329687270710226824197363025984916953112312061775254943568238088238718175454856181258949988526065884258800362611530155565897693938373517816360896072259248137136665419401305703449676802598568396192794431374249289576880575870100201542710668240290742489135665510353496625549124458136171775140503602764144639014358781690466640770122906173628445330225255551922755787457609323859077412938116001830357295937573913168671488391052559700611245586490729881739570830159262637298863355202665500424361869914752393039956641931896732650313278143043755051104460286434741973498594275382048584528793141155951032742480352964012830389951495320953650966185549306561115290699806761223457960218704325203513140956222354152980446502224544154819418368674834059141758835696089072746159430982407293190091598675052914805000510026589684392249747182443564263592184536742966763710616947949655223270564508304593147138590302987398013315567172221343081173393646887640699885037366942915921974760694046402264318496006827878833693794495617233821920823475367781136067222758780795644350294157214026661854432645993127770895805286254200325266584483235600773233678715816547719747051932865315249510098916631881529176868877238572020744568057707157864963529574267744839876610462274105483760970597082624282406457014641879851491408884822773923275575435021095781962759353660844976501723514929856095266983192932976869726179587972586657563011353088222479135092297652205267422968581936088119697138285837033667997376549880188468050926359312246958178843031065786818044420391774840539487795384955731107240288692165987958049398955039342276053310086647890952955387040853687918393017990891637720602705919293191449679126819680526954554608735449524555369462921472443984152627460335895786735479323045993068159512279938272978919406619213577333215468896144783067032565694223072428177470967743396120022037195684114021229887687933655854756342779280194070372747856977272649990683629977079414150974374815731869313434991687952853572568638141926060451159561927211952804721790841443912632916349183535452013010451449867938561998459126886919292124557781427840430563489668269222261467526514247449909210035235461153407648485601292216756143591665478115873344661193598325758041906971256687051235878336077447880500265440128732295583870535981018052946790880290608208849724596079397061380482038028040242047529229860478490910414599702606241361436041197313886875630186433406584013496701250943653048444326992148101289790224078294499455701505832854543819721724804683493653275498569471869422453075145677079880497301393689650794205617088426590780372825137098382157866546855103404928054921928565265534946368629526187422638737371834278763455752923391909957355663840932761367899743680929660129806618605389564939811296672837005292509489786323784579835494726698761627085053906275251280892714119951775704911556642420289744875679921476742554944385974188898740065745167303503914386098674874100542880851147330756349883805703226375356681153339512142440600391277676708944671568055237450803403624996263711420330240639849085790843259740430972295784381833674970455619291501589748390050504389863173120068243759079386071254208796635208826544162841406151169691403183054148983882428577527073082405136667512155528976363645789113641818099741681118884077746883047614996116689751805293659013046846319437101121681316505624922518465627230895145236535063147099954541657964386589946163516500907052951036404652748285606682610291381977394442997312296155731869720155497842772807095260980636239943157889442380204996119309697237123877502578038249813070283405047035042363693191040077222396726530624663717847200755551125953469015759313002579423068809783531315688028203755583846670057872019798030095015983012448914270512924094947463396437753110398791757635445407793794154903046813820393225199824808740772476460518945500854780648180371933099534676501178542970996873955940808653741021096737985957412624881155835678242521391348305339167465387841128536315221931705165841851040553660917084767832357054840187293859912718900102711992498195538709234440905000937792024446327393975135704395210465634604789159609614717415007681664729874738220478003033342247591281571943079494557052655540839172571110455611631875370587653662484479937229187274645552889715612549101787621316368118520411159207548657066688479858220415196413365544702024784443138762986809078334876539424339482144990573217322835108935858190430162306617658947652118916113568984623031741016501667317755962583091597816938803092748278293791914513705560854144052005191290377350518232773370255643955570627575443398382174120260489022983709936982273957773758834379874526457513156062228361858487981107506492063306001626052009897737801962586170484238443851656528994927780244426192610275909840006770403948911919345060981599454353994375634468454200274484880035101447698344974492468481043539251411814065866387568868792386817124585875691639328008527329382516374608070958508944283779110094585496431710172979868876555934725516643774311929135637043590506668494206789545078367358672050811317283805921320239140896278560617377293376335589355676110645748467043731619363653148992024389473786716856255856440579598992460591553597393966464702076652077844689771542965798444920134633456987459096553142472048309890418566954906866649317856039965372643711880107861976765524291371785833495228432954243359742737567405198201345129059547411297942328652623521845116266958717650446832999801075327039008150331247471030192420940963236609382062901551363591105060029483451685287233849092735200563698865265975063356474304119363422248944235975979394315270492775788701354439849582941064795263465530373642851265783466190893729519911155519602323022168077240057651150461926807777696456553467824329308871482163450004424432713203595477547099561232831091065262508688778688993115020554927768800035592253607646219337506015635214125691519483010800980308405612508189630221000463099028084760550164976836508183640586590309259910463807749467220274016221462568557671116344491748643388113945327205435843972376981620381552916926765048878116000724086741241420008189275393156807829780533167854604020262535438544752423379004811745727838546023775456583382595867544661576051944985168614904016402197860964942761660383847892855466787396853645425269774374486687846178903683164368744412265332499894302927384905436153654266412685019995236087806420942021582021635841179004632565767621332001842297901458972381430441461819918005432119158887075130380108093914180587081672970964438449835178942519584796132124369166422785369557243862302983493777488175226210370354913334745027355523102528827979872484499783249915985097015132694193539987885110288713460258095704270875927922292594857734492051361011984339797780593931046749244847394596308382022525839602874376972438557811581428514966471564843345407393040415387736364628511725128003527601893585107431194333680730279566485874114924794708942147249303380424260046138772060602944816201142538876921547719238538355452590194978936607050079847387872236458284671835232975476522434561723644497155702916666624913210137517898257371427959978937910340335855085250880504486044890882691208784854317729755256669438426253444055525204568268282914765280559764197280594691758626449234975573866466089150762270272083473064725838214393237202690667301335621446478911616855237025603045943711838920103743371625988070816085996973002253482590396306251414647465379191931310451389384229070286847766437740705911889379321830861952569074960375081627283795523955546120255769430582582662405317290794079856545398426633892913127553533981736297866221970765232153781875008466900527874989470440120796665603264445822333123002630169795741657424400270119951664988637533721174007216502704115808832608989749217507013792978445592380074600576163869094400559565124710674887021864461085613889170430688504321187434565349124112003598617795580057205459986147922113765075224862487383983748713405163669250366785121302944773842912175654936096525447133851104753064477148151798084068903542047692889436129208091545824100957142314209208159070380991860301935633514855420373965474553970539705814601180240141022520505715629287468709808371168896637953422333558937691422628381366073323378209853984507390925255843106347306637123148521860209103328037480502136888591836718361722277060199349513497392695401263142960855729820517069409899470813751045319028247886962863774762177398937052857664884103602851409054523039853761016891103374194940373918081338062112755066534651739749852956186646798436344306830579175821875522200653549800750072065486801792530665665216361158939212127517253213320319705916942224076972646541970678825044746367635953400933067218252359318457861941478907435027764638352581002162292088190210520167015250759921239045474907642416406188418769671024544867475687025170943752682545811702208511226923338077916103129011736036257896936663356447497335334375852513523738833183131394628637690719732170401161398770428519965238018453966714383569642167477685397335002122734153616439638871477567464771499587316278812852857154037354389059409927742879926232942025333267184566625545785756032838045298173402320281144416937559613913044233075845084056036709231489239650827962041111997346674494798535388098326380374622539369785007409713985219039518227319954189782265339064711742075475417431524182817525174035213041455201210687084617325644750423658116952282200361814583219720670770982442633868769739257657991188354520923704303584426753514953597146418094762274679935781302407849354432305091038434438039486654798123273523781722022306274773890671889335197516561939383654164871678997935252981664724196698527545612226299053241169043591991853162341088308567447279064910702767335899179123700585987544322724437376951334379668881056519187141407120560623046262283691650565115971197865791651851847616800474786947585225008518388903451115867813422284200553408710058817664466942367499565945936973289310925590144661531415304024571014540248196681613884251358297751094484336944417732078761086957522449997539369227541423735700413030813468885118642219247569914735768918015311830436196032577905926860329057041463134271103379925146466767468549379879692522921729546281654398486849934847014545639607413529454636458801331944018917508737907553802622329178807316271314867427665775364550717717044170895014901345110883605921617269938976860684600973185600249673294087150976221664513373119138835456836673651359254849107500674809383498221330455621312297070241358474763098202295528666207362492353828845964403887860420585353857878462068322144059056288538973197998802638549399312332375553444142458416875858197203574494908402724134123234578754304447136392970176255362306240981836364667362519922777276149453488300956899162421289379815890912515031460276736346548621933572365927487754918576953905669396669982814806471438263263958347254417917689263483330802141721323312811047086614349217749771701490956099748658021942141262015853120196729015036331142331670145330144158709399192108872948345758747091233893728482923112823494275502764184319447309970118681710135204055126343477302769513515883138608743065233420237178387647764725478699013142945932105283834529413156416448956494416114227270077662859573892246389455388319673709819145116962771737096438218634085039643865247889676026278094260153135531778383554090010165340865297140157690347934261466804440899816686426648449636344747876688790636150644984221961600051063258757755320351116889773998720085541825546273160674862013450199413872039553954947977595617094000045069521976741788882731190345714755224423533567999233538143468625947596221303765019779951025004525284538094574624571027401391826330816616673161288350793675299730725482289570861889502216660744089921672182338013547702256030489364010679566543742945425957036803157088613966892359661831548074177608733058828122463559744418886580771266579933521423653213433531737227063353243579786046350956057748733064248498982863211495097010446821522599972742904254851154852955538717190312765489956716114795992815264185908692489844912521366853535487577797465585288214669824616735020063592529109861992574160820222592184314883318121462545883241837587573747205758504013586781316344316413181212169618353567165694938680551825458881892683126881536662905501844143431397165488341085569826732663357412738895329117527225458492884842701187631622609540373494444528368972518805627432236130995206757372371055530925682421966278740171237811897664665872453656698464920261625896789541675553533911642720695323421275595687008858905233636786987788715701824184839481103316722033079893727144786239402370228784383517512009758792713960855081426437803106687754208793374771336131448805784915988084246716258380449557576098660580601090632818019304023504675196633002753502196433283348589961852240389595953848121151898274310069741943211076623019025129463271678450821505373872135665950767708054569719125858344994104990491678634208014353227099813506780106647296273342039467559533974123919856489551248296604945917198487104692692712190267663704618863057280011986553767041853134995051790645744874718834220067113631355673262765590763532035248132398674511891177355614884431586121615188870454485051704533354387570527457747325850089740126453316819107080796572627277407920880326123610184379764410949879873226250237456237447235443805703762617925919410485735695456691982552710008776787328579570182858715316198435645673134818148404479570800298007520682421414543461206030138061820279092973021331002483451354292847559024847490593781314527802873209697483390637348282711740384720324528612965705878934427267452180729964975133687791815126951218421130801197225671350529352825953837029841583352031174903930232227214470926438903276156925437074103309012517268757378767135226446444310747400315384362187738559613055437341106967609422240787928278380138977744967619001564833386365886783047897090622562260187542013059464623780749023033954809033079612372264840492396859602361927660643265862259327478407885269733082900480336393232509270075841644586472879344903956508626937967782320774889103333043652132996221166103581166543091915350326458555583177859068616745401959569657695864451124056152634842644225748952269783984968392966238297245345183538919601849523265539299224305251585376711175950825925602201898641214538183058431442148895265570100628466149481018339000871808976677529717767536653065745783525717722055727281147239579683058756050570869990092771643009949136389063024637478750467237083143754333816912061855433027961156228189059019868865580433438325016817474623956015695936340631020534434023707226007018517610001941602024219149400887220060875686642594681121182199539736877192276963826150299281305305686570946146289841134188338738741461385898398496285357198874065722384225763819402691012727263600858236088721551300183739310488880359148574880020994705860381910106094503758456091201276145562250631595687901736938217487639340165420116460795944620095241532401931600953234256660945671652737451953523150809562758817868118051455009780291538504966986812935197760879914184159550508315491335265927037571262898427709858722378650596679283392994428760379947771733896885164627715288553616598290072104803067725123448115319738316834080637384196983392618409719718184617906036225269792975255896927460835728728362821695646915721996587482428836408593815089089799024521504613287018890881371739028602670433860236227098629856513392908094670029678055905466127675674006812095716402647396076552559666867978541817833945197743566472185191761602687423733882584051446544430386562482515044574870918319148349061696039458230390367279842827953179895849341377416608857305919198196757218345583158699451286588149696091462679778956391126493006675386181657334040588610006283129879763749954848092710486348788173525368287351717970950102260003830159204720180353325766767438199413724152568451030066095463615576121680440771328789138599611404679959165159418289297221122024188024521504711883642398171050481374586518487877762749574659003623340767725943489486447380778074520833328566388192273899933860045264360063027893157387812520615451785509903939543652239034410500669784705407362459193871297843327227357531230442138828969356848513991401411287414418061567864381466478779162718893732780309119419357671899304516223750929767605051398214285479909569239189654772578690281806717613040443990900063032573510900098820353756821151347198406763168661669965611949435517971872280170236304069212415946349738461455112039981393793867551298711039936919209971408055256634239224774777549499112377918912735786644062628932303842611470151223390541528484896957180851597310759057047571496757180547582758102686813091643313091232289247370810295440693368136573205701619184138418263045800275418829244775238854294888392017030167700391618784875387542881990852604907878956345963159207694462031578386172600266462799070668953040907903497446969445484696406295350842933939001661070050455294442425419925442135356242522752643096315110547419035150774560395175501499003600981531691040557979310423759670790921326753965537500762495220227245605126898082837911021615773200211530903531575272751026077539917502223700849851835242877521438686597174082308604337377142155703297587415907559134581080088433184873880641497879667504221592101803461787974584768039538218333399665777043674972653687664980773563766997379778104864483164593236417516849724957597387254662978436049874811027176489511157084627114321523327841107040554918914655834402260489375281687540801104339044802123969790266572433946176852344040129828440405112870301416472227886832522961706113788308078052453028403468487007131831966119925752228090305007361113482456320561727404817138175788537727531607555483240627168916324665831781248868496415708051099550237969534327599394739199536748772914886313987645328532003308050862389519066727545492998084334090739628687140627913143630446854238184064285064501238017881433843180417623765979696227402108415166053213972890351930325485588062606079973590578087643182739146120285607725861198561388789449433935525254048675188851309856733072145825058327627029770575637285021862080325014692590157470204256709104887488841179471397811979531271079274499317047057564769868512959644646661678863788512576265985023219646341746586288005918973471701462222287831582336327877735526454665723444905009597222582700790949643065741252576741170973536986877324979229079689327450569990043331199854969550344979235384775413654055785542314948250297468178935380888523807782190896274705603450299144486502999436827068835831766572694511123826899076744068839550015497625845468169242073167439963560994726689895547015821751932659455236175431330789786469162009840827965911586801546151864428979890715895971267253528321709280292163072101927267627601486889585591635493725222109724158908057025724008693504833300300211323341772841705637190567141193180035473574037747554183713280097748800102445805564107569702112847535807009178031848100419243558271226749922358724169920680375489560810735124941270742459749039511447416486357155606345158194335878259831816745142600005590124760808188691728065674214123857365972909092154016506808294412568218477281454934435027998705236971741445296833358177432501220801563749008630006856622559056887249656091120859362565161388229921857790107533652239045500126155536339878055598341110524170564101002137911949744354766954427766312213151832093362454507704923741783008012095029935278471852637857581882419369320980986535894368946733273753021526643776543940962908556100513402461378026503767480468415197402061492520925073955593415539136136590220200926357707183210555204981423647870380230950252794189609037458631148219410812622580744142756921873883145986847086541889049396445254416450423926716046449875782460442534654710169419252014029170397967077462148112594829120419272226876136410729307320674302809890173103241374205673161164672626538149070727071118111472672227223365634990147767526559556115082580606795699977944140172631004330434928712755054898526009005213151569400647535194056392024904461051142724477562210751707063102336574571718392008337073620776802943890269278754317959892558837504035833202464180173903166210601398906376737770697382677352225116972294179349086225413607405809288302586146529390485335721198725346920343994091347676831087502473277506496092045123337124367076560506153424010950941442522196259031474707999048132193857720793050185657580490357700708862453301558879308773228209762732559910807253115125532665171309045316546881898370540811765842197478012135472477103994630857719429009275334113217166756831682760626943241224246782744785985544731981646704557026212613169521610513846232036809469651635516716802391289576900284495979418125960518218348483343203458207721759723905850192720891528781789156275128698890325312728043861941471215610036090127246010192164544114298069475879423300006553772508811506057554180761633058518453982765380290512673024433700127588151945042588014883652738242381964030015924759244410511013191952728158650144672307032443802284381827753875382172372006962045968669928603993126211506108774205976442164077972603906247325715401017282249158322056801005089244904498293988326427323474146315138940417003390234850883240078308052185032431866496822067166392199281672490550345555935076453083475640659307377811265057478058266612161502934071962962116495302440454400115081747164383544006325775125576258054226244741463262332259078953920955475556756747475377626511143406179100405310021081630957055592797984882793917907666167012470389013983344789144200890269725964970044815715952371558445612618383623360108973896002639557848466919183388196590175393322008299053202972280797689526959521307199963931444955098700377087635254537663465462565995887657142490960715914448017851919139697640194294763010188555464462403110075151412875912355745039591247817709396190311298954064496054858323062635476358113303143894963725189578248712820829258924504558088844108479715789996249421758510115600671236178788960582882653653128032700724175199005552994385280319004925018494063563763773437304284998265609191735527976568612134072287333265403303818770188936952165169344404237913222352170895363824647421392062322392436760136315167291984172582277598831780135186827348657500316358399243336994879639793301462312095096709443268818559613069924585395026927888312387295984691785763997749734632474186376830938150602089569927405451400374425251457029753408557640006350795164677566163096943628182057284225959284847587206592030824018219584211409196783792205211758013766917728114807178314428499295911561855426662340654750140056390101488003797377651537448110792423725721541872707053207023819583104462577307517558853042008248888264351679057060644205994511664270699013030775368603181087362096672359432260993764692759374566489625627508213290760662598054058055238738522983972969945617913262896351555345644821329359039120946559194677936614480677981866345150867060229031394874114634877655338079854558848365807920250601840673866986889831849679777487725892229150544108387323138963877726449571351535302643061099013115582821613217757699333327294706065874740633295308933801633280631217208126413249868613398566377641605671437675610312815009758184255905647402296876133227712263042967180790610254403637010117945752129324641867209228134145293162594427521472706260558178588154973706607333523788876785773097653364217816800702451604660291468802652430955951555166162766425542123217071394993853061799210470260882244817875409690883567380723021722494655034651677821305601444500912110740149207461111982143130131134233932016481631755912703186727359598689353745335353888935582425164533397063194339314745489599310302897782006242305490435795349260394126417180131769253846832430320839886537631346000227276062247807007172347334832215472162011116383794445003204210241939561490776758294234428831446716078330987379764762912030664442597572511033494267229485887928184570936665754858783870544103339595081175598734565204636631940278867235828536914046455601292413056720039083837632931323465836648485173290573089080461737267229701403198726689815590779265831993874307294793571291971124959841774769708474166300566661880950418728951509089558974338173753475651448148852112884974388175253710476548594989005197823452489738233239917379271808058060682382373186877186498335142853973125544614687032507221325228030858332996941255025641553640186398057212484724259158597490996538458907724214001051835641857854259964111420656011993599885310849425179499806294268722953291615551555994637993923031474580139684923607858590973609092790246168176502599279114074440272584684558168521925075580358512117167439789607836848769286212892038897730403518705878368690180465571600905819399257023148238872259258628289999343240020405294386202443732927854685650173576209622153463346713355639577834232079431464541511578395137226365656219802912113390674810562910003377181112154218548931234972043219809490033783365809830329041081729196388312507874761893887445060862081915844931090761194536334406881718850040654420082885786252730148740988733473013709822064267017477927011097452862109713272528542625765966943396603749514415431733833647966917151585971547577045712201792277325983616118401037049556390852650312202954882743676916836388057750610428724143559108545689470892121318703398937292195500506272209335881510246715205606668733037376108868884073333788565542404613027001639341925896773352539258823505761130675366249890570125326491161024606383745999758844234491481130002124212990984706559363315609549378906752090030605927709004499922223812562669900196873781719674300190628613907139032438515929981189940835976429245526224855607667154321156660264752575547577851834937445442556145290873290132249411388560113445295683854708091802511125639201077573070016927995151658486423304033621823823783825077254502292354599678553492346097688755921526029515173767646603089915706319148051531568362336054237493377254571278482609181932947641310407814632503028246162487252482624501578473713224288013520901459950314658320506695037913220414580225471631064751498829154119155740223249384017650225936346350349223342649519975015546308147046832513892617758611268074413559231847515824536794108813963341673181896771366256689477208815373305155011745264305889597837983536389162199758149807250019655213495671629711842468565506986595837814844194359145558141752051139286957472876329850232693097201824827234759237803423925452837053239443106180395293692082535684790265624381124788729795477287919482502525927733846960126332040933029044634480503147821538445654443460010527877638886462964143349034457061810215843019258497790736293483000765233126969995510423146281132551231233774117091153588823575349747618243249308240775586336653862735407108606790703428591618902968073903429060172808972649061551022797236769723452656285501359776504185692312231874782056536241360818371726989200419437048668326533721813568722582624040100446779620711233767067976441317831510463566769874638462786423672197280192633654752058545753831563104772520893722744469883196414426755065801839402524136241869307862359104311875501357066797541860830286724279097763498331182268611994143908752792129113996778286250013836414037559882330028605846992129631245298414832336668840586413668037849464047555990799567830719570970854556970620538413660145627151635906597473251824789190234652295552169562666094008287948111307720578425308193161421624064841667170859925051186084061693391473949470728713528232723407388240664629255806769710116619819966748897236603994654649873713523107739731201346036774696820683951111620691528655287982732037791208971946471706497100431194480277014556628582994639765294987085319484978278147521632469962705406823894600275316275639719293037732017240325226063836997141413315614667235133232064190400781571848221947018900719171481643422966609337237983541250515628646505572556969865551654328219453646745651332530466190156454117902247215609779239407876488172927950844921244691049563778385869535005277932458924559464710044218899053523403038667637962581860836861810716457845007796267403162498941793773534532256119266068482161151736889645415322675646418887606368516653093517076566351674270095272676541951416020035461620413257313236945230611414719413970005666350476184585855195721174719730521514668527742953128738914910469393146250661130997686426581061925612484328372510261203144751838891737291053242238275281426292108105723902524164786547990007365297043518402019411841333172476503014526417709001600115785433341417522968023386940471472261503187511854339712135141552770759607738206400716223880825073819555547129017814517256619082643775329978132927746080676030082476729360714575287131927969450390956278257626514054419750572349215955088766166174391586150347560351909129887145146448899432485912695630585455272296021551214788087210438236280672699272278538853335000888955123379248530051833879215142639311429068432464128305340193020579639558591225486167046531004845800285261530524628537881564158201070264294041535897663350910311383301998554164291638866778056592341484850867819877693217586252292797246636118228253246851825485218912328052481201355328643356733924358410922440294378026711161618044694104970505278079692346677130192742677314417773882392301394958006777623317522138103855349214277379448139153104829845603668803589202290578657929597676098358466229704861358129531892557523382475551419138232862986946134291470128126064078448147330051422660869757113018950844855792611542733021353895979546498960299387974107587532369871440951322679548904078112572997522082784467742432500795546185108196126593670676608151612197538860636370793520930660929311304652134923512018638848016242253091373249137288469744535881363519936054750938479621841822069054965992651084362392279454395040783643993445499603258149723937112475942417716858955846988016741635191011123932598195872918488740561960093537272429835810404456788134877609470141825002240138530833643087734708442193253997739559300369415429865390504002238753717791334893694032536427575711693178014198037054424703472232853024289261906966384005864069071437588233717683410289299104630989142679967128587426186691854120397781038197540147299053997333502992749385830356239681787636549513711858741824826531593801542538878603265510413977890365969593738165484477511619631696732701108317810181205350351848025787716771211325183172438768797341054357131014025348408226559297246977781320523856375032532827479274809610243300794427894294265947219310668063359452682228047528872842171858879722733005324068156449862583918410361807834228533003762249170449237001511505038921786945315288005080425779525884066774073703851309473985420743816142531371286016830065895609308326429340115112761769148256230166056298876033892116091425730442193512394090284634694340502413411382387971401646691239555914446041239119348199787270640794255218586711085226119297147590098106642141324214299945461770518423986840448611137372031668185097766032263479994195688949910317052129947164996444078298520850593277531132085635406303467586331677415988649704855723995768316155347748831069808721197679478477286162675154550217835061518681416227620144143674426972846230040864781610355612013407267257226774278274474625162646923442165341294074737249561160820491946630686427819166327372008623481347851642363526253463259923531387988401972597651968927133655185533080254374770801473813857141606133295769046785624378397397370943192820337467299114840543310718169410864627306011518169445087285293876928337427119539107078145503159251498144600240685970513063223755520915382865472609841467602627547603356794995859536778876628639953565873085627719149030508153891440606350397933066506996928498358161724256756519689034100494988636516439054988036612603852088754574885431389785414660675535355198246708285959308277501046292105306884486851672070519413436676420545328135194332061844219079791350612355736859210530258806413111077253371434480073705200915443771707949144167977248134811478514046791401067616651724677160860108313537877586228626878601103742495261552500711534618310917683993644545282810695283861356461551561701996331684260026835984398250645615124811917476610176384156547143198882832165770929193695121745441713036378299720057525783551064549573335395376152452653483916631088790445356010946000183115680729546559376900068945664585225170779756361238823460142083735879541578697261062075046331801273602179501543856011292682333547832926223661201217003268257528990783748147048753127173618490304142085902604165629174552846323200217799753823209606930886745422684138353106627055450812450877123023315811422364503880943234458563563258574789949383473171743918634843431810791685543053943084572658296425131360173875712182370367440172194872535367953840462789757547040455174906474805879125354746538642331008916992188416826847469913870503192144336289175364368801705940225804251203367139911252145506075040801543404284600787750515543457782182357999650629322592890734674712314692488035921381601950692362194923594919778291660256211898738652345518392736262404080714789601469806969011051677203325017435021675282798215901161183665815325953563308400756507511296233259501138608806082446505249143908811070518490071146102735631340121608533720579860192659772309391844287978997015349022273672337530496761450373599567754536601028421116123587567648200329009854391713357443623130800815816174181746640620016397118285297716731512019390506403767154408328896422415599916737003666062737577005779266445791020462343787838910389163674392854756628962418223028948040935044910368404503707866286338583165245966761741832751541973502159655954804294796851504146509050731517028482521976191610906291362034558727011350180385348682539614855803597981998199818584306410455709940612306996770248358599966547632888928322683498535000406507873870785667290824531265335207884176323777916701248665805665009624116984030473363013606485918021949366719677563819314297396578702106243341548525543651678890561478526520393636150566250532131079608303181859956875546940866099488599548276856091827751293476065964801737892811844810131250601738139766375639840898270394686944971117259392350000640505811495457636242403044871054048568345856351013973825103858115861102364999378290460605700993280894009377805232299980371855411863984811086564422642702293318905341436418655029088041860597366222458995152921105550060494264006468859658334647495214798572959347618592459085292887195677189638851884780530028113090887370989247322898046692643930650111711739123680717910105314963578311207051295144340423605206465558465276273993887631055824138724916095661482386368517481880975119384151369440172945771854767338269856812498664655980740596188169516081374190367812428853103184243653506618402258405264020380839238781661319863689486530565543945285487776643594176156202049208399685090889520505778253676875430675326595880337905956976285700034201886669507747240260306576457000136071202672219550262569175880938065963724850358402689693555593020163276733041139005713212549614316796941352404298606586150753426905172633063019971681491348412244579256405913924351488380650576756895697868889152204679614476999473020791452871150582140972912256566924719426458287421704457454039943212249344965383471204759902789463685589384260553901661857960757485987425837860127786663540064136659021627447833526241673817083234872969038034593481841457681175223508458911685957483894583067047309395643652771133661561645845516246268378724220311869757169896160749976861754367149223468458202361938629070107631872395268886462018406219130571020007114510968373903619483614467537853825558773012817767166369436059346472202557807014280811679998171874509562142101457795997772875097515386341504727491517049559852601141598899140340834587169006880744104493666985962617390829065857119165021375287775404247471703250369995356078533522549900921490176134638682721510579877601690338549988716150455563003399813622412451266990373372594114187983034668767104373922775757532213118165000467310216161786512255937994625348139933855922047614377460978737393856592831177574731807282924049133251472766630453383290524064081159871531333526659987537760361693988567101149214752117745815839848784732099986531780807935542198674215123334996480434589018651580423495400471523862982323241397106577784019317130357121228594525296340937206092667189443331690640526314347404545842124783486745498778267017446175161273320632391529996451773375737760798805151019997459062327252337995190165375805665395170297964282981566521993472609456333404225628243368031405352721112380666761269732448200038609137938042245447252824168410738154806769947047682408453209395041849479661471737303518417469630676763571122612577059355044591392304106852401179956755537457907515114227683203198482988342026218924812451425586211156561065829408388072458904323923478646651818910599970240984058944238589542866816756575354747371769962049625138967337500817381368491750960987952215133176689474797828286911813479945679488014869860072417577137382591691319439927683535236254671478050879545753715580356713689789915603768203114979851763818610748606202680067751526870011840923712790125478845055914398355755063245264347677626835204773465467534733283313165475138056702337854380060170260468919993768068930930926395555294400161952794793469953707662544823846226426124434657330485372997118810896627176943590993592480728851857095772613979403876957146870889882900116371568006493081881130189566273990852886241581487579906559184998565364477689952141613256002016225039673964773255100002754420002243250230537894701015762911025760989911893012515021485085271936767262620093649337102844947335132900830706805797281969134095234217629747391169341214810645538138336448846957309025134036739248530731399156655175697660865450759731658740625213130942228985047443370967507151328634921878874027164086361116329158256359081814469283801089119656457810370046276532485173308384237441672334503734493056202941072548632347564803146592314756406765656285549120834875920340238441287184347628895435537873636470096254224552274203001838259992816538177003569091987142753048447088189346991978870926317938265921239127921735190321964211625176399928825822579192994860674754500231140552803697993698498852747213049168469618700933040029296335309518855911007216862017980182636544629173236618844070910541386799031445970970933805227500401918618663653538051721296617398394413191559846862527648224401145562808768905259601728374993649291059426963034843823798509422263276839755020879611418911887939584643787894175218679426158723297298712173465127785607697482825330237054833159881311455107826544567005096153546279296340317130792940841882407875555276653493926007193325152964798652988719859535458881695315538320873531847133196266790901958717851964445086233670817423012536058999418258960612724539962212364168412355949948971780824526206370841552415925445038134252497688251366412550754371110020361607042883121172448282937710851810123609766001235942782977228554852398320223669689445635990251241334573304426249330403717768300139719442306172134405830448251503955341212158861410782317024017015076237366259338294536587676454748568451345285706375913592385732398571132603989941343397065098077503285022833239036654688881382781425881412422716310609007271045761597880945316142733588633028543804637530060318474739547877258725232100966205082358733055711538881424238492335401416535452108313795741405140896616302840515025776785340779032008068299793620689850956961941265472358095541874636161899286892077071229872084511645002950690261395456799007856761164321761362671609354808345579502549813293764707142746134800864867048904511103278434167931512558738411946734159930469693832770495386786736223367758651775269812743441020177258317100242687989226435219867633062342230625011913870825176266194494152530523919327576804783505018125350849319582700861429223637464026828558854073251635925856128302784900750924220439338198972892717731864858154667520998004835082667770516286430248196614770045075124384523217330300271516736441813851531158398876380906241000213214587160215230163896547460831285479982019084380263715033265232775664083262174104206361728023736369799502794899843894897522497693803986035391413681991424048338918049682082007461503094651252322969083814433241956650621884169322696780302626433084664188503424775370674579616127521246214929949092349802401418086399119975936955957557074779345440758295227087954122526439815854107804173830536891312022318004867561292484142648032541083519392332933165123100610110629963750453857802830061480029175382800933086402069623679629510244982653132803540713792820433626471013988720427364854641402959732271341536772795622614323075830100628689808706565591098630482803291904335160409750114089158133359909168109109975739496645424141687665024516569631350329270401745039451905990379015567365889802494591019102117032832155867796467144040325936469919385554038252657045513179979178400473426625386782955340217941324130415034599065669158738534365662010870048036765713782098469031446462210661714508853137336391518280284064518231588094207893135508989586445505208642920967179440842401204054596847029248000509584799854769514394146007750170334622302805563542203372624543615220469053572006919678432122046892876040478628122243509950700171693084152978785544597908895567816698016125076329398781252786886040965113247663688484794636125945068479075234344595707121333182093847878670728782419612293560571336179931790695861705521028752001757730187179945317249771553900027314635065358650828931661318652732311377130939393789885390345821846672969269900789007322642201166748094799139097472943554243284823606013324389361145808925974349651107251669453156587183809237823987014938879343445083874053342343869399573363720069242513489198809685836241844053130090282901378563308874812782527473377174201431612062940977281558752180680895320904323777996425072492822420632624996527429945510278582719562245602352676086683191682159229237687872000853823784375199560336272472164493987215335093960916792052294251899147010707579601989009349754497856106836572401740302591864673249960766165916209680782288463605498557730349084123274791951074658794235010443433963640878660728581398890926325831958845061647067952057361939374103069553616107091138723328864614102983205662692954027616812083410811080357142936444806418771696775371349363137530197972626829711783833911090334926690403432723261179817296205891511698623930499116429289944380254394304152458279173474969179789865978415909190295797357902847026854436223766821496789122893474402448751707127440433589218967907494014131780129464194239635161025917229113584410563459979532704521199900680902959174939557421048581234887105091211232992658641288239329538517168367406819460473014319914376690023650488448487008326900118760926995520020684526493663334029377164336442286379652665450206000208142589094124032507406364218681449081890825648743844661133980329630194613630805532805926902923538123363166498494138478495946853445677397563886975483758690975701428661771389146726184694339578606838665447204879816754885787891684946841924600074003801232259665695695070297622820238886798827408506259712481178796088880507465763128851726485606976453264322219843610070084128798018263673202674449195192616782214094990762053426062091286494264616675437613320486199087359861594304465115004907799095448393915967543436936210215197135838720696565489250434448915299040346610113148358177401660619923802356397429278596869476983965604671924282492357929810299138235219313495057470426371873371140257519067666864834856928192264878272871941721440912713351969825292168932579605657203303354829009989368023717693616523309199575691903690993741121509895073447963208931949055673222674420078664762216576966467371700194844218715101934722179149295641019706980814254282248948674818795076380822908981270182053439587570925515367182343627495472621214556585648735018539153522237366611763048695164684706759320494072805938284335024513687684261744254493892936377975321035357773389181520324668509720576352808675503408187350839547086578165000289835027880462365272167815162794248656470328257431877466731001648662110766485758181130501803596334178088904380358857417884094262803185149144852018852945278527430341381038947293434650170950133467324031162376171830912388398540464236594247298383313706920679079502523513116834545593847598762326288877963923027257431485076373543164762642786525249607808668772985449165698281905495906111706191071228695447301987516968052911139543483541996355025176961243509509682635796325285003332267996042187103663504816425059336798102907746139524474564336403153158701808363252627357024581382186327230653064370908488655916466842354162068439710539351981602117960537742297663717014658262282222323003944827861287975602815763758135269757723748084594512826061254202812194378502290252201508089902905095484443875245389662783438206894645655421174831630831690404235752053212629745650526957668222952159501606256082839870503203359066732852924600228157017353360814508636326523582801652528059556736673273133687898542256599243706696001472254281546339622832133222002937928221413065406393689199016844015031044566777495527428226065920639044006420858385845980454562990980410579481620472552202695082224072120372709414052536435570785624766159593390989028179780886035018928984648668267244306640043584218218243986473659259171196501400162743232422269717417897925768481243592271396377075661810601134819689210429286570646156462864893181171882529549880605778335948836114492315351975836337940683928547448179968374855563543114639665644242874683522122954823607250985303842328543605050980914278901573901204063353456847059647461551821672441020383501330991640013311236565057159737759781440758573150566554564912638741127095202966307821535770698277588441731746549971655956249638359486032194031159161010014714959410823143011723512259400376962673062060929647765801428219799435860937782035700295126634500413981059191157341397810614780963794706535940475631165148112217921814888069303515939971406363396230024936429457497562893602760824456516316230869081875750505780588478296354198334191344837757665137855737280162946725224570229271696232123031441023306299921009225243264676108892994588257314368954046193172778562858706342986378832172241157504171394062063438066431053350907605876332745706917580574401956203201652014199926418882129613261928197328861932665238485623344247227768670557560751380317090778328417485756425064338670271744207449057062267471547524573832016828398077615860238462887290718252862223899133872645751460702694479984368206241515741896660055703744211156494092675451237238339363809674989462415411804636654316436111499728066700060945540801340640041554535909609771668121434697779037732250546604756659582837165341585983537134380383797980999699656375349523436432909579502820942962375846646937043548867316387710477272448629308828444566711204540059583007202022714057690421839608117812246436378824181989986565117557579843670781069386450871987652114568137337111205476006706507996702892631230910338075367849419648563203222120434650762427143778214250621957497026190991601881614194802440430785984682802129419301641519104839820710647762903149815834135897667882681961788809517151974465646629720579542268069888121291263111599669156047309328255866380731932469995438555647166265782251816662473713265528404832455632830551100629352796007296776801015877434281197395248175465339667176805121773236096077611037984734194733565639649163955185099480175400451923890272687435989434930661045893840584957872519423570695764613703131456139673416732997753052819136069346024400325813532867554155060150089759547568702525623634578009885693769333473399592077025839241015831986435021456895248035991846955868240505256720910575476663598501038842482497337202097683055152145483813369777522452537150052948950768177788941721023956940271812275448955010524384516305261028542190640220777879784774682831050849065963828560673774026365656505351224085460914051083218563975066954014197759902217252295780876402544295418256148642801140390124026631829265957701316358951521648218880793793022690311419016901721817699701257291684060478906604325969878031878768341394980562599068499012788637543759082631778149461247896152926945255079552383145994675553059151866107516458246144069976025745890554554797917761190792533647918904369315281851516286342392351786249572999093276834474342867688441343213113885351112431937095938925091253234575461716881578113699816550268971158368138456992536595672095149942616039385565028476212944599226000799728253629999130758792162179310812065853228228290871140275908417514269337655628003744510255945197848800242531260184737343061599023735038087692249600539118487140993702297493067319404423406646820674034534653203596734165282604000719269992556889536664021088420014286383994959740422027663538271233601722358974967791836053654362648935633099605175813851850354422419367733712345020747069554046908461578805428976185263597701697870770058581792635699459736196711413499659546639680061686812203013729274025780628670640243668484300640994848282519519534871618808461128598539907183565247110111422076039599638549446997090493177272008864729515206926311820691190373994470663501795562941453961996271646610069614076399035310661497929651828155551539424516721276755179335419322103564386755774122835146442863361422194130343054140925402417244808101250737691780677070948224645136142588968681368476529696747064648173815004375331917385002105867827394130633590079051131190929240952100873976173936884007781794612423618929790779229455385268733660843802719180369283573305564735748675078904634147384803562885893668512959037625268516205447430813523457383576944047379988435041260721666148497757493249690135828834138789336945735862763824530858604429347723163674775219790018070063319724226109642897672715435016019802614298628920230972581313047995275517581978296349489537763656047265212787757632656436788639808727003169772350512213344724899534816749882001325921713480892999083664361236673721245579022095362684139599520717112990699324929394797086603138675477315932485997710076319991096388499397271643538704805753920496048967788402742255891027498362561126305375510807275588602871469993607952788186123243925135989641025423096209891435616103163099191638599937010113649026768117987334663528137919962994407785078346541638763475590160653671591785404127314525329990514977145934138443732301237177297859014456508530707702988463281753316162075911112570822868382224702351231347711181917974690515259179216894187447444741168562379763047900003134847061654451644752241154292299595695605323761985975256223958667400744441155717870580333340201853942222707710978910786715717780753992134629260452932991431616299567987554631600119302248172830722457395573142079121239985095937337494365635939578527102145740999211715093799558348679878447185717850727428226104104908149075350123632914475444662347192294465529895293668091574602378062761149090790638260686770386030077428643716185814623635925072368985002434817752362140861015731537667573663419224836598262346876594049402569624560778623657777240310492490996274972431808412754337277869718142050231737256622572735184536504632153934369397839083018108172240204754996074620225341051917647431669450302103236800933126705936035043120340209320481649165521693792165642171180634448049247325216814755201440987948462013983418932250987505258556587078422969059650018565775722666564502262623361237061654759323893836460317808157078988476388998664500871026322334319966797085957724510882599943894181392047909958250924184820147903691190230984565753803002202753614309625208610859369273020512768677826395959285402559087893017584428221449483317353665017821047602623750873905617545151960517594061674532279188803800296495141786518717025124013629702960115347661469670608208564522902628891234830589023993594009478948655509038213545018737700249989013010902738916904716611921461504210634746798886332524591890207032491712595222392183618371473232586077838614609574504888694954191122685392584744180178733794914372868386857157174643256946410008039967461930039144526890854911057972043684171756250381134826956307495381506130934296956153004391617920219452166542012115550888689467611614275262965260762017042172010520969979444645698438283379636413694024495798100984219565092296378193780574079330659009478751421396232751829191985888873800381632002824749747521425865798398697414930379738677837477103514834670826123390103231003532788678702595588067246766131759320558679113954957929218623269492791568347438935710414715620861006247950149965571356068787056360378779357539985707192530393350272267398317676107239664287042325926434428178624946911583870263531651545480135031883116673830519521505142124391873759629267504488884480848401138661821910329128431106480557583852490270793701571852256273980416013388239072156827409539551227599958473929349124755655119290546861759330239678278110126573533389463214173655088015545253820613604842350171909090765748968729630386097257698488725525296909166871935956110230690380037499348128659865123611938806505109703263116563671899629643507409022038677862776576265993020042864637341806940095325454883975008965768280468868477197900901523448683584343980834300204255772728375774578406131386740299043579158379489159885727448693024659545492923703546475208491541033589663982650339797328625328304682292594684308850275762730245559738173448127808795997451422560484587353705695487368399302745282744277790527504637594009574784695082926807137327175492481356706323543817047339059542548667692903842146579531349379541234635156896249702436223393214785423371383547417273500047985643736313133899646343275914894938703801504705685863437349803256284146222759865686530145577200598504434727337334050226956729588788384797364768659755379732176543865448811226604279192646961763395297040096274630904962992457270818123531176434940563936773154563149757738937335522056086874575741615000963072754378086708734567530743000516271977942094279870245134945252912537710818908292095099428300038230992094142410966959429176945390145801552483328570868350453403050802349127282348030710231460128951509936705424458493674363727554993111000908679935764938927614859956276489948437968386771575780736578126246416147577927962597375169645888596630997976116130783362117242833706965964167556645156560327159820473490449509100711515907684828429013237367576883760018340661593577061948062759243612350813396497750426398107700225383024552765828059755508556634287696460618586611677423308290303863534728153559798122787358824796867320803423740495501234611491047997184981904864340452685657530620407009862520049391834802120738101029489599008699081891605551301980744821372184589605053749570731496982112418181876489474353438420363732743321561901609548876747979463202004701652518113462418905333934920656096693370501742629220197425299562046878153880989967766799533356260810659848930056890608895833602025882862199587985679399620676549534531096179288057027920072662730915186760413993485185231465251640721321997488597820039500351917314761070490797122925432979414848227102597306430553004552827399388659924544466840506779929245299827177161406329157786786993093092512770857298203694867732616538755863721737955650884133526034361732332119586125369617827924907112630566323278904946806864980922183379255597503639324942890612697229262108227858900994997243603653571123106841376940248303048748814396788129228433929396182664020800625309599970196207953562319357694051414444878004640760346158182944691999845975505610700836276318227363161862184864210111641130434881451106053164774987590840922883506887245153727655052064072314065935130493535478345385966593322347170319450818548513284865713362563166623424538868557199206113475817208874193265666384801925800054229117083926396595916136683501787409795858802544478104447835689750531641520764638305978933959887035247595978710604580897486116631386685937044720996327259643428446405579880594612410430050431030498403281445916723953482240309947255176816574227685525336707012985844908701770411352832799219974923549799644522605175315021570209809231414704431249562339844573297816083997673896588466454184627848563962721638067283346696068919488826070999124203832360245034315143904737551681152932933038861619370561820838463606009414365312973497723883229512802088979100555894193971439444221073840697642561476648059657126632555318540955375452565132375496774342348826712032837222553640762728066101506934256376827445897088682293003730381034596043197905787915501157461438100999461854679474093527125411399031851351852435506228665891410425764761854088020357030051111685067695994321676586829302741193236347540146719220519249356630937804526647909130998030995153231232108379748088659022549142358483555689339124621400967862568751585849248580213341393955692230415117904500377292264286472502819896475527976948673271477783317891358099137018219896742241995490274727203064600243838269274692390507050421716046086856470569699329693758421457905611920225305575013251358982184724433519219668158458690961407524242534124476748288494423885838448302397621544146698254101785136254051095762325035935372825108812437770292270310968485788153495733905687504359249247671898734284769399786922899647959935004207924610886716846433378576692638687919438315855077027915441416674221387487417676851571939834161366688932913938773139205096288473294394992868493484354466270996855994792422652448693739477421647062084852786734638754147333391266547676388726226877179386978867893500241417143926850841342969269055717669623220655861819006035253932008360804466406056558377544207480598886548497524841542496916220161497774531411816161090065722788935442777775865912663910923811658351154023234457315607219614109747769561353277778038252078781811231948712494327764272670040640401825531410735001746171671601592893611016126137704646982907427656114952083518282592954599482345550027524631985885041867249384797670718304622064175455319442291781775611103088659270077370552363075536946451055914430531106305522670512138426422546195809020981639835990105537246168606561331259003922570419663814788801747499139784346083080000853271322947965032944830137633305998198833981381650364542274089821254759438726505801824593055416645203099264648085273323677443975473781979365155203568903485855720785845374159701089976905140500084878038906679850920937901159232006954886516944667817592284977431441953523121176481835501735020426408884926163615327075773612816770422321218201012350374435835352515769371898300583405421762174074089665311874387275359886343663254210416380925705841279693253493711099734831990446207382286027618221443260545995546936231293472785164330830613541061615489826901475219753898048572853747503521102433076000650330873859290118817122560217056705681087475154345479004888219317937686223076823652609609414988807503974607970958720065916072353971200989028099107557679337245097845572001343167290743366854512526372896986538262611798104686289980222190386925182993535591286535406797248023589448879363210734904697512440780633427456734473932878361353470500931749296757807920072428243229394088627397868274346663682424859145684682249797636456993262316277654180692904332297606275692499689250640106302097220108535311669165542975881438624518037205833330456794620426346863687961269165122833544217939423687933658296603411117360674438616568135559056369959826166966959551991546374993822079682746804810999443481411707635704687214522267917430170549629656008578200572348950920568989094887461762916755940510332697458678564226059683666766121460084513533016656029395126032396463556010555824593223775634964372841568622745637448888145472120692827370750233672885020708407871723509318981051472665853529109375006213159920518733903774781798451073296242844307982037673150988381911867381513150422163144130646515918391532938961046980680275867378673933567996895589212976306810600848352283054987801556197544395406954192076305893462500742863970909517044144741682919019714504791311897707112158771951500526607534014305001119181858999804687669237288200271042754586388330408941580744487940026986310953892459650446130064888027867658928090291576177088846903001123527220040266294010091963180075644873950408871291698806912760619681645543608129415296137062353959078996134630062930820888609064607520641063503879337704105131690247188407248816645930680236351375411536598811695076853867470523268285492293182103535088107650167814841858260375972330836188899771890421390677034245654637053532700282224621872616203817443180695545725729962726664783694374288075576611497963196598655598070816969156334387046335828749301473414067167188838420300494187717050862589730634457775817412313441451678946213707179971098097753909048413785869883592208684554564882553786779834406297580069871846580501007090408928596950092688859013150770873098555475391891973729567197905814759871725539938203348597935026121301301420772767258699722261534460533382581302525080349031512314758406325382551068018926833610034673471856245072025621599537849339142086307676678976426347674321642409634327323214121458308460696783785122748845406533492106308278120162365118554876987440444653447183777798708252594485383263698178716601380668094567275770283871114228717582074595177938286111487787529780867871700536443232384179128236392682421182986428194505961423775716415550501013369304114625029024491147508801800484039389356916974339283765551367335731018697342984830118824828869429898966044051176135508644884201612253686560824778687191447651197457688381746812060270082169780808330838523994549369864330445130442769692466400561565540489599118550981576793786889291888458549489254600723946858695539017096027732689778609490308384830419652797788999507911058950351286032927512540342772047760160790392641630806978557990547074103491083673431912685829491089969138806402938326702634139478542707407961120056027220750623308613624816450209709368145369420643832701372316599665878914270258309985788642294670287290609156054820537760906093472465200626433866019937306172824895395598731540733299318221810579141265021033502471591771173376306424849963618172029452425697636054651266216812739694228437932551610933108255545143839940201759476756704855487929195557158581899809004926364774150837007244118358071011099929480968384850932568537747639351603405364119569811382783297104359314773837517936445724243791095039387113865451548858022710724068697426259487138641028287452993955773657990818720166505256611967794976782007986304248245944918916966614084868482516816810908017472577874919461795474372326799374642053462168159496190215123670416417893685779672220007378575852661202489547199341223161142565395176527449264144730834644616010453814602589879007122535365975240440441170873752116612248721931501935070373997796026054530375853546932246975879819875838336631082579383327035527106853017076091913100601589859308885486435944370576629590395262897412770171254816127176366599955036662416521341911283994154742767621418803436182042528851330320228800841429463605620583626713997122540491574557726222354014967577865723692701148452136484403072301836494876909533411993467945519913209274514825791398357767204765251106383568169068600726424828207599004044110701967356887546665861348500072150713251723367023922180835614273323202202197386731398519378383003224469193774424461771572968802757245022424632044765109455272287635285165095247650541272630551130480344765444454107790800867707984159345519275565589758762392206300961663217771708109588937137579212944570947537712624207836986221928018532570138648191188968398742458056559572935479447597006464131692643354088969942476105969926165496173940243865733276253124448957478942766790307931287443224739119001384059884777153365078546042684450716813525639832829706717303964220877121611658729767387147977719250963484182279480933216089406932459840529791491341889156235001556590544503413316899794228844377032771364392802626338488336072832098413538779048473791862397782780847314942217525327228276070073197683656826562774622908246856481306410359205096895036623561468017477250352068824995707623515431157747363745076517580414470167325091859278191890479358985356026134338596914070937119674404124494308956393112968584496111027177237283026884148247325065231236298293465579425613395777482669716860050934280396300159062480501091496812544086559045945480402283607966092054015428499780370921846454269252112275686456236068689073333072740070699181018817952142940147559613770841488565769469784650518911905982020317751802497066873313988704943592791347779516686288492432260721979762795540765556299744564685367051455500876392300816304100704639291606111234037072973303012569124164127565921526120842691996568614564987602988854158233608354493162251940806695486523332019766485012474314415443694073081958983817114377662370783110642338549794548705128189790304987651620488136891836937961959859284650312509561587812505087060875298664270319897050656780021137196813597533137837212699305703067721435782314137978441451759409052974656629143714472874574722736827042888579249697920152248318756328658006709051844623405100861673512529857941340555000576205069503437890796186883487530883652255407699883897992871766464057396066827831859017461163083260686585035858650588541224959759064032509635500434522507885406358343590999712710413949774344398701769847268687004781173994843090614008281780140994366057851971213315233731541587445157460993341795524988918331990743548440635970861032613297595314178169594583133386582969762512323352317512871361496372430178885837220560943991625529710735680797089988958566032499379882089923649223087673351132338662461508784487583536140856333498517868301159800467886733175635076577784726283365511849179961251773331544991700392089813177072050917802037554918086663049265197008104116914294628119918430327754964895424050791702236378501294302133022639214157440813985503284577070234820953729458742913941967933259939586954229804469860345258367251987060761872439448607542958479376794404584309615686464491289465072403626543066362375963295227766540092437021665973963624969658221432111102804084135667210798986101265362424341329859315802231305603775717935159057958733725612444313572036424056111030440528831872903472082313571852492927606163243916135375001469784581946896511782151628939391662116179906499080437748327918779414965955865569250587931362641358390111566867777578765741870751900430125504971024068588896327452767866650864025643987046919612919931464606601969762436547766389730609022266981931335738050553659467729553052940882773860474519542715184439849460207622148881911654641521735789794170234208193017532799411995085062609010132776053421120880632165806163305646994926262214182523790629016485034083459059095200717536983099244095540962688908521905922116573335262218069487345538969072060670812954953453259953172800208996471348650249919577581307186409953450596690863289188053606918783855265813149077268839219211182078182031856457968559752299403642306321037891273306527919214208941453790313710173581541909019943708461367063365186891432929072654161280169404049511343112531722149336267795687206137786473730965462880402009415426465257991373974446778075241682124288453201924501951424242208130007068433945436605135908860197259895155290255437109462323513727150804500143697138531874097243903281466952313695103505972099069812200151360458797517433871739688674726237722971339500401489141454973078704320295576044027682103413180623668613305965656177355593257365953005058390927960093313940175795357026459974112673548529122453722582509514361612960983114990863534918129101255927933072584280439100973312775227046170599369552537914660298762538093392177955494764399975386290060075633768338902486125478277291852254938885714207142268736126777951928293093701849447618359798472792008569805575029761551836470082621627765439057154841325454823881720328647015143267303484199382136116174633038833903893363047240659051029354913595332196627294654863179250817815864359897006904641146935966019562672472040148505765234931587969145721538037350359589592713773564365312203503157600467897418252189355646115278576841494892084351184981402291244708814479111063850225845121109725003068640416951878092289241301513386255512701641299255030127243563787940799005530367021172935620212456791189667068911541003616444226018030990543835690058091011990604701284174265671044421037118889543265660126263588006333486500639440113873536852604058263620872402197371144728924675081793746319701357503292793153316656655144762103617732355962221467541984421919081846322902866504664745106668577368831554839738727911062459500397621567252755695378952046153613194280880354407290954068330951307279857906610912293117702111844606749641416290204599170101786053438546974764040973284079827086362369217747507237679378530808249211542870723954881042131680114956351229724003646570916296840565566659370991702309296589860059759574249804164031488510598678360533749781389280408239401858544749085589256229286107757616251729676311160634265541053394113169787286250226210650641974009651662831619174215727643799310529925549577896423295555783315404435820263228503762846079856157346568982878252082980324603375919767342925367108676407186478604769955359043002522416748794499455631380402794384838715059532594003738876634477103633945280340370622467746078585581517236644140732578936876191595495413887247750572420778828272899716377516814820336520465711141367474661454264091295679147140974773248355283518340466887092480996083423945982313954901420938877766506913716841685906479438706457204698081792766565361854360502351014604960015823300577620546764342474129504584564850464323658763486568429421438313108698309418119307116888554956260742991284158626457377878297103808404067432694997933858256917003140592598736153319516685488989956905392756442883083313430798979065994614677530158378112198867569311594193398016639728745351700388136382393475005940131215139247562611725107909014279452953465764001258622666909984215083093539910400348756346746759331645303807814289737380285716869292443347278544483699011463499525478298772302198762338564175766334646737172305914954184528325097321190401332141744643069016828235335232367708870505188603990784988813503213883903568139227849391590529326330222096210249585875845483382545974166463867209908886913682136753377342199599685302858666385115976403633049815074968620753640610155978019127102007039102862635675650108059409699196795789565358753565023242297288541178787008874206780942729599816407608576061559314650047470780109007033770545034257848763832340337939327472550914648746175550334113373557588246449637744266066805620480954863401525143963498370119652503564443351340256560948142827139713164494354887775871224222848815586953327703419102287481205158974160959029895623645602093207871333788611561629364621904125480541837526598043307836298951366667827291873112681479680095997863897376528885286167132193679871245530848289856146189264565305433480713463564593916743730164285328614126818218416802220905977361193309971206453563671475275167511352976099051949964332941505980491085956640243385307388288960168080938684906810680376754690394736149547817201559244686186750120926616296551851102437848068811158349627363989352505121757324301514873226996168542553136493207759034774288282051674735924126363074404593940968943375822387550062026669102430416901576864126151858150220442423924307921397170310570055198649541489041118184912969169769955046400218632231709361321267782449322154804869441718376869489782592702557749464833252334795042353642275437931147593230035774067008213953456967522470646197585980872291112590897747790287785886082574420592437941813885362530655606022717809861329146134249296805606674210093889813061276157804431564533644487810968746519791933937759968527196586762858399292741070493408078958549112327999160576917004171479981054049260908488761265678353351529817039795436157574922747525909677078766770291174646663174255516047617154009059656664292463215686214003989730360377370471122821134719199349500995310643018224699194459451106721583580120967219037006183141847801154441113809360114687047980574231388629431382493209662496620687182650101497301105424397954061354727918229629555920909042927312971740577829722613841787012432031885069889131483463546380044301408565903755939240483473520096139900094571810488502217995427171555359636111441643155070494750136025160796947569929013757160262829114010731106360420605556714722617563462745077715021862806328638897065461777119165535799524012115448160510682381440150987887597174595651578485491769484497356141843028424544176113280759580482709674929403991677714868667420102182923062200238566724100197043223678434921350168804201531026235129297540317000660898066338533633953935059955675843041625400510440068083584139206369272573666773063176367485904264522031866940482092445490505250276485271023225490132038189961480728403154654971293602851884628447821814052026440806203775156626291239945324974736965037841150673101083984871100208302696709723356776506751826175580013604852591259195986754891320968365549350518577750070385239661002237486528672055846329432774773197184745627084300574149117164571791290491670814636539873216137940031942383583415374406384378195748394149072776351401259853113375484814490986218391351308653936035774333696547339352046571448455540688083039808015775987774757190494411708694709497361398805217968826025868223114255603039980654346856233150670977805138494032968143407506358195390326073332977627770027018554209639777845025422131862829280085905328740771941026855757860587865457957172786633102126707937619232886670749213586759364084248891809220216766643384947717150183751971829063302850741174247827061025165437447717113474475210905577809011386896108503494196377021841559484647516331200534216960892637275521309192126328201314498395176830625980339263217593207628932949839381673084014746408366982724896239431985439933242088304477120711954752986315715265887532043621631705216353906089239468462684982890994248832065334352513151646924925047965297926176030615437717558840432897485452962005148785560127656993321400366232623510425888820232145429655670132688549000239762290937793762145976279699795901856577530173514990129640815715236499449993900296975171345007095369641724213908414806290286594563210556782889605424591824248346898663806448036225401827303398962751105860610279535563864704638186333767920159064741361709543167377596064391739239128010795727700973252214750414271333452354151275152077149278765915303752758642594510389649602002837035687027301071218516384161546500595481938116837388864976370105767847655783861346100363297301767248540061421599118061296326984257536441229740252575319455702756378542271425679454582331073583012985548915980722088186449819430578743842301569571756851242822087920406051543264166593059526811920767796991700866909006596743232347764482057399020036589992214984822723929837689936117102929978890081624677959571993082801713017288997367864309476079583691546767518468327699161464272137190741411156187200753454036320517958281892802822190363700139524035519988073753591618991946580050242282714777687911808048696910361414655247287227422525475933827984224051031661144420195690058530111986181201445395760979843902963879986543349163368220386448326233961550937697522549574435724292569832156494419593400111682949693659434122653831909249863595567227774484053075602368406592991651073521174628521188657363855072814274948514833256147663571854477430519902866570909225884746859567116279980357058023200368849727613208079629590398131208800262593947737282586537486682418184560936054680604760383404613939117377563121858584376828145998527301117350464269555825826841470447056062018022619078450398711869214256316187624255044610477832848644900055358239861734615385284616074886222577161658218743962996206444774919497891778316589074451633868698767473486485284639227449052384445931402453681698000992540227103413741292503627479125709791521434347248562485831475120352909807506852549807059735152144059404484938828514398356092543615571741675693959178968524123040801271247159733233264647662841638425141791940482733071828296189731573769694230404615848854677934399191291846168796475029374992275792362866473549716573648055076528599509897515718208130884668151522157902373240902399417370287998083759366570339553704086966825011296389296859254485079596454430592683542374570657193406689523341531641492202158055656405164847744164224180109324842984773501929331977404940399058772274076932752552375783820512828769179282691211720751700151946802622395213761914732225723485290766638122619937083297090062657996762951602870134698020927307224164326779641002794824702420543982273994044414539811136551449103616210322325363201583222181781092709106262246128397100093791623773690393444941717460305855723108340942944262193325897042306106273657675899602956722336542655519985568801387371473122150729214785153883724434333635873501730270255300324627244588248938598549763758191266535553590710882050500990010702151980967794524825821628364742450947837338628580659100661909467018836769424183820001455825883377137841092219780532018996101391518264818006924738052696039096989617148326680963989333968941054309577912477282445069783091413915370056131119025071530607639218288549179785843403521014778433109574847263386325842939621212037604300022813332358550638282150206491086455137032697527668007606959145063022808637658286737564876314994963819080380188639126129246748032500172475600411788131250874258151755192883589170963131402798672890928772263200910426187997846467874988818537046158725004729510040548970599380468437205783987525743445970663658500145641597091368731483199667914431948261770491206549680362930361108508134871632635778649942051029921903479128031232509853836053025216089389214423378530466886729036499813369968643144677781804023704324970777510565153059313395578042857718941785127006945659097089262659857390335686766256432774714423697403293874411603885629700827030023562943813836934118248196657086516001042109992726595488468797841508168890292117047186619643374325409681245000783241401854473776509008936164679973605151740437847185008527601847569376805829579278784086305895823737466905219482493300124980171466793691365926952038747432690908004657108193958064681792515953325877510227100665635650344437980539824907154414835409436897715940026515690038955006618336666826761529415704427864480511094249551890281990753041267239752636893874065888527689878982134975144998893147096091821892073821501628376896845186633987850237319950997070134795350795565039924727976248016501344998152055428693948657763188917075933053011965031690292750462701299825904827150571002421614831486435931632748113340670634533398685808752454110429257313668642637965011259547670261939307265646829210779354103698248682589640964639501836397882382546965558129137420155864451176627073388471111798639086035268292176929063984019425052082515239267234064597111906439784812047706083609995615896958807510310754355874723444246865514860597050059178331172902440002523506484682484404996727773685027067925667770835698159725029979041383285832511344940944475973523966639879865476996709994069942608982800559413738552100049845802392439755965756015067801126999661080236970286188942288885510129424675569866564805539478988562392952405755361936189665985892087942174420183073902105759089678164042124731483446103729237382227194180189986229267850635036122175257526423287654284214705373203410348410012501058611386315279442104014531276712625432789979321348862316585025067697380353444690304461837963255988925378824447464279587368859863759173047797320997281820323013844651990409456143189418866527008830998286789265747706072601921108981889434441110363829988909538448256284342088848383708648711559142388777795270909707177724275784819465530114821455661341195753967160566847480350567977688393601817327115645959968388691980793824046263777420320949591644736184184932700165197445283778418234883093210670461399783577418744770035567695978627985793284199135159701819956948619938677928101959574797805637194374123355978827880951928614463611906975685875640505881187443835416727429015776973094671957926713442417290132079468009009448359795886699043121283933984420051094428059520038222698191294655054062230466616960515800716416182160599028069954055195143986527378867709389347604166183090366101946326199277690967941103513480196484583592788494406267977079556060243862731636551834423740629240385257796879223479357094065689061641473507051332257104498843831019936967049212821046715952231093292176091894172587850165490646380165045892033097921202914310978768640985797105324817454316720131621218856694091327964459976937371309613314033909572343991563745693996796275762279302832206254363968912411585161341729579393030747271526567503463636410570432462484756088965307345340461107261506823236468314279381483546835324373797945572352746779702184304218375221709140540464353224416599695791664138155078806990978132422381206063012318958471653223871398597424347044292617460515340724013906132840270226043712163729125857162373973639811762829042523032027911059672281033391126522717844048134327543516785648616378592772816473288583517300865419074486388112780192483883763576841309200548140370916095228514477026351496870933503142690344752084050655751898076623478088345390415975159814448937994158374934528823973917340526908353890553764432502690137499729496452314609813079037074150866774478950640694667711109680594572794906329018524104838887617221538637394277667511205692511122632219148130990360396882071101505889409429580823719280484181322271460053724648602108197928809028006985554180621795449508923859415380303010375173289535356448383666953032710710375113035655773315240927391283873622846716291792811301616410648220400546856229078458885944408849998113123562167977981774333047123961354728375602117002929669436872915577088075559077519657582030300344056235671462518185887737480136682085919470167802892076262922099434392927575200080408756069956786650507731370088725831851829440593217662060008796006793879087899194044947666501629270370849091665224708487160091123310233741382837410747344851555944666130910148868509147140823459369662708888980589365366952236701277222548316987593362508481104290473978211860376251388620131712080434875583454533949528670754420292265647536389774115685218849132528685236583479090408132127044780935271504826159626029348268092202057705209788624347427008719662506979094927125103173748609254765275044433113817754484465400146581017337953315748787150561174786784072837234796614106576056209166610992980278210420975409039890412967474836214790315894875861755213209082688565327669260129766892920288401003928756202403974504778420605804440249001361197221515731955529166418805031356622562868072234996011742695141127663539509317727609318482774980592444160409813321211740388412543500851593671887026840937908016567906443193634963727379222639127880623712749685549497565351732756904737497239203299743856756924488736014866706676319929736948472176190486289036015976422717638044098412457161400132127027985931086076639161651297999579105317292266307880368656174931974897871603783874514506257033146289662326155501106706243853852785125875188645518749690824237898966109607254158434435137340064553963828224299401708225349443254090894614095388022274130173512071636476925440228685056289224717793461739064563772272151967018445142228456978902470554478436055606743452801426401486785824220905597983000540582475887746041212938791901660421424671617713787736778449361850730659602387800919343617770992015146400807357616847088338639911687453250553704490145643742296556994971932036553267592016284580755311162250706882690980039772289305610295709213036180001045463572390558078700963606582090273490923491715391554486671629917047524281439835988915289887474880023912993539573001180037452316479373585294099463990303634479221849876338665594360691294620983729578907450238899734402787260508433480967396785723577543300754006965026073804432526470668438461301972358913075068656207997386073567857448189326918069452965221825128339520907035880380437058803817242053896563383715418773744246525058501362633311588157958256931222166831221652009342511565193763737786465379782247155535987243188127198505542430688458725767388375409332897669380801557754201379957957254017197080269380801904244617770538775701005745462184457860026249573422062330211205736274148923158362825058787355410129720578861485558297625692377927161717065074498208870334857677925090670401456942027252832554603407411369138800987981416194504906911605476392956917115443378208936038407949628944174103269410687243015789462983491276277411103203585568406151999972827468693072949943053398490231676610821165052126199428084268902243803308106367532151554985854130841204555847841195084643398202881667938787985490046979407599008931523445321628146847624321865709608580023871572841843430148285799309019332682073481893710319682624838284989173968999514896800004948358914583770119749460295429894551982180833089444914577254961425636829918768913404797810135507469693509114226152503560025352389867997822299255309996045567382373456068163416909809114347225690846455942479065478061484419306672903371878201617730508004341107865266453803167618674708625390877951022561409267079438197286394341118756641078183630370829064143600040961485097107419349169184324886921719667509792611707358345886327265129352402608496539253706401322385614965181817559897499323468797001648572959891505902760760201303869626408387159787669076347084394549555241195328191995040929589030136951536751456074451333506327576777788159080853564959225871041720270742519562877431392050262387189330461184600387732090258054826226785457123664267170218810365461759590898292082215511010554380834987560355539440909736819943741816157318816751835024341045396886854415015055825206167058351469188715252773963936950969747440974079873529137783517211960022436247427899626422745390323365980844085986601459269497988115193488773065993883841646044515816439722020688890839931095617234805843339290493147052242781174507862577777870695335499038235803584344498575120175075178519508436661548991070137120316493508791951893820810012324208152759193800102459364021592845917082597630974235922201398202965085510678115120236580316223651178319484306859683116511481066859612313968977966748102547510490494650736000679977299574625659713648071768232575455514459426482137014088774865237751456381444357781665895301812058310736028706951534804926645437384711994004782754186153177371133640043130244010980751758196840493197083230352574888742014456943638602551234144004986539366590078627218766466029127239754647372940606694731093802173763983741799020786292556476632666976477508007933180857048459029855746869302165560337041266294102851997268124138255211698924165487194422528863232625385499004451886967598744964188731719388714347110377865836177076724511417180321360567893580177783489819273305007686524351299155032275572871807541341186822729600699126002342324438582923413781100319602437657818926578896873573988837884362124280036008864689439022328432828457933000266575244318786228718293054317684587332793829758610449884927508224334890131704659995626374382992549738371877246775828246375247490217810702102572252440609914412529414109125495477975598185297825557504496060038508123459450837910994912538345565212150063938955092358268411917050510655670101981982356363656667056644407502796297909097792489645002732964979948621954323925984636005238963675390894894765988346606174819405686459630180432890757860452411594290473602026664974655316813092473103065921879143431557821087092639388774055668353769677137111377315541670492587777480509843053533443824434985105796469403275562358416525140263724799724112479059853139893231885715357007649600441825659673024194810220590585118562451639713025956226310381293137576327229699978990636271065827065856061073864414489810231787547078795052766462142607123249135264772098828263523559438284748605410307808170400774856668482523001935226040762132956833110249304019464766609361921351227443936473487158923371088385612362872085416731257222193973363629991593089909968166316118744851429430242544080750811286031748706758944090552535914691066233324887337414589568188562645259744253158892619221297621355680071523652017555985636385523138245273297413142136945545816437426531080937782352904197993384128098445793145416381526745735018691463938962745407310581592091226642745825805709336953668959544276829467231820276421376415239394121334288567723283846744284453606686971116659123312597964498427534661359520409033044309792836154313199639083151656826016603411418919619325341684229879127288972092014134790291768778210358213268140810860660493134118707384504562988871174079287175149074703465531899133205421485465355217728122568673470450396266081953912083975483560491680023910913549708276586222168920333519477415424308443417727304451905831870155797861773995365217233688825294372885964636523708435773714239570490934556246435786963599836012586627918303862896102713303080242307612357241353507067047152019793095723631244913322338070033311680363503574564671518762349928414111214628980728241229692744222734881276505210191177565717422718217573185594229521368095403284011153364309851543635436176500359825257865342966279162654025381196867120195924817154726308319983305829127519679933484596175779099769069072851937418461531491809409807936425862140319543970951142624790433086884320847650268851692610723094059110619207587132431269591172575698625592756730252362655752238222103124200847564940760271431625875820220158348279713046384196550328935591109962630212630605720665899718364473287829607829907452963944391884536351803530237632755716375433143093288740871695476597122943514391800216111721987910103816161256727465107834322521819900197136541766013935084436507928254041057873414847754071507168469624700703080612209501454271026305803356165815875038234883131014808016348727912710354129682336484390788395850981138364123266491772802735414907045226964306974292793591139389972750885406494923287086439205709523230489461655731834996391835557067328708356188439476319025391902558393867771904881512818305419860171782258714745174860071046397701674390558890912493885256915918310523429508767640033196527120305817283900013662774480637550477530354647552546859647049047768011755262407015139550051686868336770495121159023112232755909155603403692935434177070147602088770651868164003639506656136080496743513124498600959159541015299861292642915543093163151926812029940867779039985780824521718786222252523300415244426327778167659242602100206192251160537184378072302175513476616530474625413745614415803798263378606134906270374869571231398724511268309689121374268005235384044540698274618714093748631833245380220048817300735421623471690335153580674668260655704747069567870740061838345259989828317191855259429641957087785472333384875372981129372260914208732908575944030595285717522271253506800914533695497686246827802631063943494953720051329127449319981584782357965316830419061521848076000173550794336973460349334869385276184718378575824788739496109427134053191053865429473581240812134158217637229190798812019933533560274485120610644473218607019692499303783517110417635834932242956875845472610545466617564370413862606071984764723608987487057230714895782869214081796914727009787162653752856279452292936463451905250698855558569757725711084268692924542267702296979525266393267641221233521082089727359747750838970645425173576039621706756066348786373870600534350902890169557876731863917612225369840609925772481202331578407915263695328217454673855524277899799900667002203602472878501387104234067558786104907311382330460279628358533521946827965320434353046330225341351618704184192884104454603294440947941052169509582208742215335094518274004568496453254713597179155186877510826097114276006180941210979629377391267293144508249100294402594611605131408855342122099095959315436925199473926578915648619840453492058566146912260839637506222837368119978074168294326410444682828586635175198550525837680129780441914366102446801424851576830745646421770343297723741491253270966133829764610201808323694932516233283620566643939229445122764836303563951706452180437398617979649820635447283056259734636183944988749273723010009680726497388889037987817179805365672861626579884416369894867066817190982514683144666212114684162329413289299858647311342607823651700645180372853674932004832380833018137198259319800412096336493199882465808444196680540523493474558007744320394697972458170588304807694373264250685643868685967608942638184730451392974342597796802001497112124022152509618830050361065755390624564299495755379665533048337888142853666157615791692064006557011878176684904499187559276624053164003163421379548277178815707164818013159494690545292804923968267209465496985602379392368901886220223815503519913264990504948046324244597023292641605445119346931128616429862063572010471809125897157672123130597019662205803852094493729859400539474803579810161099671718793304831499730611439712060535372938535334436533869490516994824718253970630046824519890685309839045673126538047692203757066977548647111875480212152738482301688353444939094516900264022333284840315177283044449037858064530019940650143772487563775037250001046169206525734409777097437414881642044445128164384396543916923804499341458648585717330787881520452212734962097232331307302741078106133100175066559662149374429392029990933564530071135540888721499579722852673469578099601160390000997349353716751385745793514233261004431727810437946309660185946580730798528848997682617232199092173054751591314558124878119589730868494347718276425137368509663106670589074790746285150506552583025541189964754741207652752716168297922069100599268610082877822531285378047867808530678620149302854244424111895579957685175142623873111440613572950442813954399557417449736566971829166653153742280032167241862043725022436373497869444078266399687372946927356755415651920666593126275146349192157243370325539063427895183341062498000709635565063587697915494570230365573874584808673739775417141404697995535397018518044280979940815285158099703488300791111282954801415323976885914814342014974417236719382237153142190289896965650062549019839491676753491842367936872005572837475224027886348677409997163749420841354938521875627947891233299396235372845627327396736137092949456344932678406278457474830670003345726933622264354894830651803628641238660570937722498615537455899202977179222562822325359314845149335051384614249068538774868372577794264310681004995441718869808879160447944213086455146139067271893114085819507924188337720148990657541480194815977829748024254228623173303601338770362752160786695663325368649401918066603401241212995517752330319705264005425406426008652380528157575823508803629885322092855562335552029607840867511436992343109458730118693741340701428391452336736798140999858556201826709045513900910461937565257413068094909963204642418307880623157198255005318068834114192932111584184813417893155127447984758749578244873725277019198907956182014054912648337882641751301060778532990688237645116199190670200697566784418878273361131948809891404899300481495280786081490310058463962680219884265496128507090294514321959378087241107470147206225465810577649109055177929155864602020030123237689800402105413185809641883815546717363973429763681619468201188480101393331830762199068554230474772135167322621122224736461241153805998158077867060294300182149016579218865881476652785146775764620374097343628656844453611524072036112750932006116348438970618802606236668917759557141693337501941282667633169962659791465791603485113416550136378619026800072330206201618286148109254260855363083829143265247367315997611702341648046752430175114624481513132997534003137931406017234300816616735114441413070330993381554347354978828142144919254440302448463145878010675725148834202915463292171304591704293275992454169315056589111694216734241654338223276238183246623994515432989600980326307636037393030245357145718162073758607325466603731120104655210256038421561655547093017681013103076564429872419722899368223481975760425221093710757441312192165765915407047982727815110146565084915689884908442800074294633583036757719999851714460400425547103303765064031175374363845933155247181120096062395904983178764730833726140506656926039976087997312132493915313940709586472388761063912977554543266796992241280517760130763536446789933050698179282120229533683207584464252628837496910240441290861964395069799604180713579128717780651010891512810551786513809179584031172849711023240601464379001459699436426765324268260192438713730442177843771720087950696164317648941011584638303126036755395363925669529636674744553305718147771256675540413249545827733318908164916221936148235981441412528280542971315486285314560845142925799290530502596828797363214647152355186558655073041513912834347607403585548245094277578051184613335576667900776844145349227447041957469744648463867171010064409545185563023525287006239511097614064649856179442755790661003996680676035603505898336898469943154587264773780406711842387144521504470284761701268418466409387873668967570244017568492409249252809274751956387409252644014413101454997141647880310429329701180960167836327859734045316804244631397450186658081947985755485419865114453240635887271935080315604791602722513933767482824093274401044413151684661469955731245076846444480030806076937402365269165150486263268007168204707103725596827568679908504672468746786008858977727601025027840759974241234683838381524240840383714329100300363958823006980661435397700594492105880770515283912852974524736184513989600679100920904455883331903535492788575840556141736151422690432831972970462668032407622621849228027608840398759040952698264104006761571590397408008259016726667211938969942033659204201081615424456170041993673198870534246643207176830766523055909980865521333414738319613188871212201712705074418406176407801414701694683728665721956636935300587322021505245191348910213774315586107686156069482672840893473926989633637717523088867987324144319332728896064352921584957245016938004516040963723996185522368916038251401009220679134294607928621710947371899251073119888108456841213539031488693385788599572583799891422653472122768887890182717457934548716305446914153475147231541260495028835420027934198648150092834828172484203739014302293144740190621269320126957121119351183769363841663321426241581301663359848809179271217726403352831484664189131719550336421911130075331460001205389879654676390985679716515617890863555967575905030988515153491401487702261498196928434627229603614189173427801500150133177773261576381786269272344608003181605088833627535324937385448803028891037356995766128156192023139529590126503714716719455612818242499759263630693577594453575101195203738574407226948439500426894791509039787845755147182092184495129905796136828545704990376938541978001516764202470447945800686907395622872030208756154748180528002336832252755450883234956070116588014303912994366648719451362917647908173126098898070172764703556771535571700470011262319032581793546656988832685625394250161280944050601930226343607917792542656510842013070670647775706608415999032596309550692894586065662304377590890035613155648421907434238867443568522169060205861023381761981641496898849050730217524581184917437044494808006147302873666651634293005369061287639995853948009795869992619649956900663207082208924601668483401403893296924458047888739222485850006562499535230760028605570848108658543424082061338724943139930742864830390234498341237537197359446834208201629188385589703490526136590965880511266991876551836448309594834547652051785407863009240539784835880456778791037662112856061371990401416598166748368839857644590266482120829123080878215178031603144651870270577124108355572292641385085255734113901142992749473390687284666224821194306115492985482189768322918767731463558923024470077042950806424035926220575317072665941784498661016523607881358008095950703153860296355374288745545431160085803506883185144115010781453857499216520789944421580457110066322466289856357580548838446179284177646571287737389829347759830769242692353162998172436697659171468377932118644549972939942080279118975214205984438066557436322424624159796213571508092334955113693685885491805871096783250040854132055422458330346033496803784335736778928738011379318706840817269641584795573347181319112976436472036968782741352551346399298468509774150827356311134950501867048497849083583970228266236175609243191864103055569394658129084401810073298735945715050356755452090562660078907977961525437193237839776740754297688173300713794726271292592618115983805002814185504239912474960805943812014907754955349907405577376603797272095091130638408611413285825194250852804094519921608181108155875766751865726527884371178768309663227933015306887338627854195980408914261035335929797027937808090904223152149184878979949910231087744836567004610930623657858471698534814446109150948360166680982500961262981796591763375699448271190421421825674575143213970794197459778918561908916706415574497088849360487550270113004108184799657130720549566322519539059426041404249201611759560973056976152542091558330700331459467131103141091827086456109489000821498298498025800033125528479103114863317528185596114424966208662137804430035677033238300761727145297929411549840275427667501734204983900670823667342536184766959440514270966758012376620580703672043845931563171180702644529607656555659275120430711415741592298615205288814151683298209681962081237073613916063066870484352107006650509585556939295391242786454884136348873671188838857034778399171589331707494435200971995276406527526397021233369326735291626572409617447301894911509302034169110022904324802937295321786348356772641564605048532621430698955288955999242881526512433287340654572432388221330323404761229086253009548394487692394462539727572990549328652049898201161178814937652596936153169054948671518190872391000573986326168240329458716272931336338031631315910840356172531973356131081590423835436042954124896621774386928961424304024436068242945577664482556050475226292109286141568199146457682098253774758368667537961376966374723535196054010799991169263329267725716324421910507002904638936168249457690134661217116677712179311479072132140146297126958608757181284461483298595721963627638228981556032672206761728530979478789468186254612480008387119638678081589681539282368519549740233578849629715015112809957421640144073247431556339313367237088184229761776851669019468774613132368936256892520804937194202448760472789817220244896827696162618225651299322324816826750691901547398408770115215507380788990046696892813434794657792401684234245983998546729143457622832210740350013141401389172802523456848623249319406838158839236845721741307588810256683900608819048955791553752302779032983088058694767316090488109745599445876727243892200436245022822963754751984445036065386313937278598385042128337340484931550362754684789035122223011258827260865107808317569594122109848848154700252310630373801996240843406531761879358746463212742237176875742916273695487294143581309259164589988879000257577624126685758249723110155754665951264558822881284254061020269699760707110012853287772113098285039816065178358516217306961418972204869154177048491141648272949828244107335096081451438468564514436423502957608431997960887697858705984308086247730717517737700172283795288983244868358444919059778254130153190687074185298136155318500896030233251262735408964900433964832558067002200747839237108128281923875606901358282791903507212376473186622463971566261801749072919479230282351523355704535406881110326438660776214197518941127940915709696341233700782574096578282017044522112438717674635940017514511345035612163658284593540247302660249626775489956769892131286837879021031209596955613634812464670256870192787488858134206066914133103074981504269329880771508771310809188812419486034930463617202155991085660640705390946626062781569632686516032160827432367678014661855771021816720192069201533253923219803136916420188021997587604167829373153783192099196626782955585617383243203485687488132298377487950632297754593426913457410273537994786362329501176971265536303921470024279325484158505478427738115924478529740098337520896386152894984385129540367087445102984081060080946375419930680939940769049282379201534315386643797903559884960663078654477268982996927631542239386865663666286197208916617130744535370245099333630168230148778920406416390059793915104816538926720102902473712340116727449635713204983271926538651441183317698846931135982568664529560609619984599860020725701299715921315220142567715310641874414783921030704456453863025542503702376805006002461795719575483892356409953718696979340286619166643724072662774021398170095136364081609320734270321164154165971121241547654187713234527974398183917101465105055161568768636511274188208133548834336452706589799975761573946054466934879683407592029132315986804927266437481190050077360526221117009865772819286155783295437973675809317904355544616028722236207018498805589562403944781214887353339476676033240624289174937657991479163218225751451682752942240034843014317124850896072971570340571456356564059289446765068897971299701300237576633995678771457188490698652896757852181633494306860773558971047132204823483689457552597689215131099903771080325737767073183593127064485926230206626335699929589409014545924198859908553910002114089618480724828171791097756343957916228452274584526948099704301297238802566595308270305856264037303050207947016713352603644943963178200339276416371411738466753367236170366577558181345704147158920057455175223730430823086610872027268262515086035084422133342853281351425175278568106222921315215630134116670051038909453004565452286941585817399299489339649397815953853591716980573408779301372556887998248408073929343519706506238189920367475611991968432947319869456212678845610761345375483548842998813552670618500348120760947282000227552694555313172933287853338299450829742837796990297157835738668400283860956849063705653919851730884521508812489405571822028036027598738354231907803254183663469543340743111089296798061448369364886638331615189866433945768785061149044307016044196828627571524241824831272332893395380307695798789088888157395458487787527807261306329261287579351771544433597179863939951826078420336306200072891271275257976318844121299994746337420960702728424168841983379977267814876845897950414512485425530449548744105101931553590050348031663602009307779408904727778619069560226654274091717392749963172689482126591683534604675919433794958268488512172176532586113742936555044468360987214558518732967456888324891359582770351629609975746303318453036670162377602751602459581204107011976568598485250251713777063834119855691526818435989118169747719139605658306660758869214373613059421405710987569660883773799771530234601710092195083717990581696482985869037170726539305741526979729890667435336500502475460543797523802850296828385991167020524165622583229581886850699662238592520981921268035784356573273043819768046316016034835869242086614472735481166512981303545876618760343611733017868699407280537839047965733643188307796540217273073026867945126608703631273246672054086160369583773850392085131620122861802866723076701201397052933834291246609890263614402709498267325170283793624956928563971963135312222186286191730661881282636825235444709485767917287159381589338839078138428360053733255678737500403743316267572460707475307272282061579804669644132631676680016314737056254627445610176287560676083580601988473394721337852158322401279308989286123633442982617948962258204006036418795642117850846167403606694598097661560581892778960587338660067521804380082573746070435693594532810678109145317184826236709107947923644061138501707393747336421965611400918950065040927686866221028730940393610519343388828018243283909895484309282774482024363104445930225951229510845154957998355088076169915554993581042452386267376660857318348209466756249007295302034488608895685553847305895544950536320235361330953889566463570962361212784062096480077464876167802562790884318217292266758058749592283908365792881023351071587216664707607521367816635621200838027870146017751589660355165259323493301276668238825155716795018863789742028315751290542850754258806806089647951050527965740200091003812252423202725589776655873313336447816186732200301504023193389467378214480450760899335671117439285765845236058252134592976912448819238821455106460673868568044670925283433868460664299271550957198915620874714876837913941961540178453029831684636763727206408826417559890847213319761253760142050143912304988465600424523882297183373669957706408111764903769212322267427962697989035248356540145851437984176791318995666463405783539614921854310690947096411374546276218757379471020610367286460521546806193129401285823783334407236692169067505704747391704052997248213680135596744333815643747024134485512090819455578962751687296755465045444539073411488423386933980119695152963439954445833030209754437360825956706968238370894192987993827499168883178066037712846717052592241377853663405770145736856614778924133810852847083870022182564445822537033234257701423327251840809490214076013478642619471203404371215622006961277555890976597644746012165718086960525475557309329461930554431698335968274100622608441363867531352527185475792503462902977175945661966077925952059419996361582037765193049751651433180243219056803206595498934031937329490607580223518822847703647288471669939202367927326091309516519553822020180532502373812130045595231580241701531556907795248272042872137172653122165697778240109780172369845534251276252351463419277017143165295769899186961547385294747469563846266541120253207150420784972306441642506057144951554179037494198342045264319814620036445925622916484014715459072539997792866219353734919407826446367459417279833033617279266665043748740541961106406512391552283936275403429173855858511991106454634967888133464100018402255654892304729307553600029059814292168435580880517234912230013558596263990374223302905480423593396925261169209575635227138876899660265649871238338706638156021855579599141671334184504422579213302175774620720781900629400912985910727806474092081826555300027247245131411116664981250274386637885921385249966045988161198951067199256546652157065066844170201358210044821790404596639007562983389106278016327365708173859382044730547075928635182336460535619613632312419803491314175790357609044577795927126723081353274672514689480923003297601198623967826738330258857326142287516843810411821310271467284170666900864859206846782504100535121117448130314451721878035289782713142862408806658183024047991728056748292713011213446337814040258420271033609802910083576910544425456586620025296790121606927373774457387296707131302486927272378094458298790193072741180116963922544043903979589582126738273651216028898309724131807285506436374908940840994844790545194088805681508988166441597010468988213922938549954806033280528902596368624096824370190433487151284049954011867096568540209348978131222230226120037915806625504771474379628087536610157406929754933590457487264714052810939357308853105635553703802486729366312916596953531762530975123515042980409104976638235974173307936011184581195858334543763245210364032049407343811744755532076444780012393158442592746447463268069953584155624540842760757800063639443304738465469881935282427047947590180542264355678464198265877358845003670991031194868095838746365727349021199372777782023965225684916222741588958043951346718410224922482358136304463259660065759276317736264696385456203116832730110662046849430744704640790766760587854718942640025483929006800023209976284768160359850654444948759563686389394606746293183694790954485352076302022775123899596191692336678155106583467577659843398284242705427694661107533185829516452977074474182144417761884359195779281927524182352868083593136660376770778040244117853123881282158566859143903933487092372326441397135984147817789254392053857126541759341643796268676038323360153980340677435616197717885064647792947073101526735177002477619150640968074990527973471057317044692167455393248896860089679353921238829294696194903164177989782702932014321241035011270123601804362993911324228061402594498537265026581061716877144234866421108049032612519023626874194441468881751591991547704991018026629416628443296473335373339477719403774218855083821451227285690872793473359990937321747042761694758087243038065539511452082264487460918668315723770334391061077702146242456859284069903188916531392369034613756108943618448735540059734876109884848890131075875477829400134925624929130602434837112418336880488560719171429514161998946004699511277800662578077524354934406090906334944018573449395889765898109022306122526765593293147096872414951632110191560628636608912877873920744678369491431446135292157492062548629435800127160910436141097163554584537876345413437602538602285544074185063458389024018866442799614717504945042756111400147611086462837815921595757080089381344037408440155029374593850833215711229649500889710236458110836859932547619867897638963203305572681329313568573556284478798951112443461990724339612208664242234106132130530175681352035980657519675460960142943558234439544835071874651513217869808884216985787637366010208221601521403002482509065810383964895252130156947765097561016750684005316120454700080943764497796647397139727353609386064195289878179381314599708448537326579052207911953314267615727923604918687802887603798926270350960925835706527263587706858410662730779327961000647934629784547447871245448260122951752952133377144923721432475067543088177685983411147929389240569841155469127855739122361442882746819149433565761502690951083466955357581147701312043219996891770711311821462540902785041188565341389050310678068118444021683893232643744717013983401728146856619304477228588239508645278905358736657241361345702362337424002256711053930448057539782804589635416122381875739064952195447425170134959383538259741399640006342524757647951844855714003841716873217453441393410362453008480810616318164119588470989817076935020748578501187137677830292799656842626704673517529532752175400416271602308242457837402435392166379461567978801753841008124675850833149899267980278592469232078846474328766215516058482047696503607291026959785769987806325795974868765556956895612929854340430181924941540856081972420204640239728316269194005248512257133230293584485704979936713928104876083434187259973546963485687798136500091956482451783513495234371770734565717812006140021758422507684018016978502868358950910401442990744078114095904659302892763021307212369363143590798858914212772824896881134268208384140994295095636870634382513697159887877620922534127952260453880875828352408112255320595203646769184829762389559806258879275667612215350055824734120932296287377304580829770872415392912061519636236021351704130762308742038588778526034530847479777282828456723372497546121778019804941229329901937820336359103253280802152919695802702351441417302053854870855873057217333124909315868183584496508247048675785562242506953353444219368362578678040441869104354126222575586878502017128592012998484134640702582079103478830272450659836357110910283539316817894855889715154809002096737299503905839925667387108209156902616076385289343620313782551448250427109350297399030753413494299532366129434313645734419066085064063311197584466258078822054933801787728105506672649382038484669899602200735070322237872964330648763936545152873998421984027705757474284608169406135570632697464702831145895164857807286384941850271560207632030621247782800814603699996351654801213331959309952023830533819941117794271829296997066232299237684713694838535952459803038554352388293878348774568917161677719378106107799792042307178310891459684717823903729469872971341245704746568811963057546017596806594951157495373188330019422159316191632725471046147322153986531700182739199085912148862408969856117865705770354075683308363119905665599995801871802199638701456717877360313447220206161235025207981221949737901577583287543051993859904034665431541176353823019468262858641640285233258100599545560412889325888583241801888664332497620762279050928048511353928457046426324957993749341592685349907941009541239706733916386871054798335579743318436099061367765240080475275448950728000436965629728116496587896671531765259215281845911052936718923659401914779388616771993315248301902945354586143939324742597132798365187053771988306324776490538980220207598387491299857287191651617125012713801329704465854337280105738236377149509897387244699581611962383608697532251595508316709078975951100287728954696939553125656728268747348310030557399287437268051894331883310707608499717575808465410130181115736821496422092119870327335449864262721173615836872055977562570796096628247680640463487305523268874753238898439326596203418499692509053453202420315002929704004349543526405764146804677729301952052151011324866322991943280701807835013894216041578976812539989520490430161584757591099040023718340765330668473441776035286271080337369176335971903250715518770016286512541733408762366363198802253095599626372535747205697043114775059222661158379209882772297655563340978402450229042357828733109044739507188311924201077744024831761703060650600077783007034666178659022976469443310264428237057002554423829176194203480511115354287695462813902432231903219090631903594361486456194896779483366983351159671521399478480486402381764373857561242681963719750639902713313413614111531572344277762681160363101354750829677604352428334920728319459072587256702189523058714365649150469338199682469763806986239838476731820282097183817661332194819947928897526572023027170043492052646471154516579660555520073704576513149641923524956229685132093208624382528014988023969566316796979079563191518303581114680664795770829805950057878832147165991451571927063067662601729478227601300438169012025467470016520931105744892851703534573428395666102495139908285655890637997795776553179353936229977175137797538984938343744033836720834181173875777373186512303131041556708073182258123966849561895515486816357293450430011207680240984678439744107969228688319520071196001813643456446004980692102074557823352742183634907238190969391114816805062397733900309501500080234136219579896252660565058685796632434279457824703599368444110837630072520176454846114112319272790886302494105200601786247427431325600148188232195336164670021338269458312662623737533033382532200843849842042365836565418406175139835069570883965384440473693081475054041211615177292831203668415137040792403220401770465285251161003615226988758293196222692933761881579664030386903431268584637458469321686725768449899455326035664203104953343561688260087138277703164584123997547711126096674072569025826046017314348543615681537701156564562360579521833997064527206120984634464753954710184219760273382102186826571301924917092275156878519670870924584996468065920206614977370751057285284008520443488092007329939329094123774026530192002129941398386676907162161991306684645823210433541949592682158056430685883167720265667866928989246341052262760845826300151799686869413729397614269682306637075351590831428122414421560737360433324993129625589908249848271314833142610900665746785029939168974253520271198411757870008862268974929192800128078040215918148367241984431642214749522936985704313731206046277521668491236153758613792946559452224131385514460792332208217891499307724489576728378099699422480859906200162350713219766486470604717970435710408089492157227698068344210489836352140083975500211326644366457854943970684459156020727157869390594656280205185027139337275832399262581461377547326025633205476232609829484601825593387549092302114404442622349343054329878968474130214321565638838207000184818039189610281787547032707325247978409476473509843737128115394415442990608132058957031596974343057881204616081491853244546263151257560524010126659987605054222971405676392596718271018542501743364431341527296737418289202849133561618499778260232082304579697422426553442107523754424340487892002495334013506480015266167977719124082972617914616017421228369422747143057050849128982483351367439701057199688194553503928107576840636548716990524821265023141080921355702897000642945400565647513506424930467802661892536627566942678049910540369964787572652885430322443957654613383272831644722605523517013984595086137491382836841388201210438490559160208132036051769617791023709308348224571669444753441085868819031927089034828468705747342804680761190315321536610983689737841597482974566886747097463424234971516590210965730406278913041406940615705989330792230098494324377093062279370746347113509617980567992276303343366967707822616768239704713878069522486394611406080941911420094439648075077230031670263343963917099600457066562435999861772326373811850081521515066882502183930804072784042706383016817583859457302875066966042786576653526874111486125846124344800525721940992234515534933944033526864441645516958072626299309095812391411042998301837660648051355635858888483250753284186897542564080299187631421040097985454636591239225065201261748625161166927078208184977262157264192763068361526501709938188747361402676065906458452258913884012834643356801362806909755238858272713680822513090925673977927732145353365357015453428164448570520586729093346497932475179092054158647989333888602611601823888455480486795061238670021193137716283224322107578141523423423402645667841004013512985109731180040998531352097058854965836993488333418829012675310031640270519824340771760881630569077935620119564648854354074118820007902121370802828164426784164094775470712979973968393711315983764891653905239761021253842813443977144786089781045983864068441787554615391627855137227697962499459687961622969960244346833606635560350090619715956848535485109704178039875758585584260255865296685915551017458258965264576389520049363243266355216841808414433533847134380926866236015321152361382149257947560068711641174746844507895224921862112365499120258170070849155988143343976803596428949658516392782960322425706257915899150055855547332797608042979120452936496075319704642953869979715596692614156093682667038008669116241179553537848031217804635234676351711390571235818482247198045732202356822931558319429485032598345817368672435387470047810234856213812016008765552912488141075011631152637011570172767520676850529155642984058651803381089226198286626115776325742156528720590491556680378564270108748287340914305858917631584188804672987743983971996446196550077288451025128715490358945629014496919618224431633629075396405956905462482468467647238298584386287861402438697291281878083042314152798458168973420663362716558851516819850044177722007638479552692806757540403015006143866498132668945455112302807069965234370209441402295376383312718502898969944497181021600678096991791420950462194657942742518529502160719745259299845722895095298191187738793826683422612896692718514130587164165669585138691884915205292002764098941113669118616776284872361692184735963597680543684350297854491267985091263740808282117892632698004608978377356143097539531715391463298781340886528161227068174008356954236045120455896518064437626231079810242136626068404844243038735888036964989067657104412107359994923812516679627577224045336917483590694006750328095613699151757344811649942174460566341203051029836596740056954609085160621683942454940183915947235093741289010172981412495841355670113972815439198477968815166051729248142775718881085779662445571131260143401694036045858199676840589484131843105954813264307620145753732005246128091027323682528480169583023128678755792749574777449649359721206847768774292237667522831492081643633743275145456025189969168983686133349125139458249410844538901426372360218205774703136628800327643212581882397340404953912304293153788706776093614584360885389493882262563364315810024061937771842040159099606772534788349734359055144653492148205231812825468655358269102219013583417912456639374231995095926925960939382137994902192587022856801121042180749727207552234786167679241390148237996252111320586859698014042429406756668483210939607460895509763139358489186240762901471414385922211809224431971575140061137799061205898627633091714566287989330505085410520013941746801321458470211210698768355605060418169451839024432295733858697200263196436277288830578420397071285041482389602733241147513285297683102972869421637002102219252322893786585828450566609480464401108714949463296692277358427824955704154625429090550980479135520729158972125102245875376164034000359338931882912116310093308239872211994175610987183022836756848884166571100426327613749506326913658314719648207256893071169731487893547801691769811093051331889006243999454495602457126470782234074890128875092265404334443691530605886638428207735232383954242901017372430250326759520024836340864282828759832821965945510138733069117242582264068583205307658195713600891984759646895301813058008573694459164074082487052358722565860604887765871943537813824865970206671527135727859763132016505361788296959819673805383195079960539094758325180383568315290841449374367336963942745852104728916398065204410088151741682165425027118119460843080233424692752264690895046240989229314490063244345066856119856533909108098067048410567763310443642301416806034341812578376822165857785433616806679098200912805597815905124498672523761828410745978974564418894576055412227078658076072777280770281580038113368610771326699926649107637382343259547023055639921989033113202838159274281959039234986404861518080549132155848347134381229958168368980910583509213012981397195384192719804582554825120789935779922389232454227619764112708186792342202039200349445214476279593017258466660621634315021975489501982504292995951174367723827736964832766892678014989267382769846161393261437383836569978707991501313220642685091798492667545592824995853016942983577214284327369257825530288367211685533766522819659823611151807373411213693526830862640209969623800021943899134782157267108380802604361706682118748926411553870041083321749135789812894547722046299350100461976647910949769258524958748213907231967828459357170519896273433000618970765318996110608966952669667756864060130317817311983597817774323313614245136660616769516836621226828363699048865305457225444634898456937272541923620910430765649207841137785754081237876532048687079453253724592590733097291152546397880063682301549686610458427908742635677182410227418562972893419431893990712848569784021161821475014193711469595025238602404527347839971150744813651734562819028987179434133768531849300799884888975025718074580257039527343729897185517432064742491349141249707726889126068682920459764627324919132077858714152373859785204494628016270372300092474931947768806622359232236054609076107446545482282401951992664952000955682674779715462770712649866257742115881819096828723047802637497329264688984135647838669296685476593262807248050194531562834043094281346701209245833826286701599329496185031621841387357835373743245016961772755902238317400088172055654136031146729359589587824487854013513563058119314241685173859826874767798767845436483630656723321816394444916517210080892370568805983222750047729833834030663473420434471045993053110239904649706524587335220294862253572157453591221341235870149640121821124847093514749248759279884173804981249460716212668047948201647179715408355945482928910548957035000191826030943757703693255501507647131747975904561044956880476916783146787294263705520744775271569782414373986249325103752023790783604788261107976870507270690362934634380092929540323959643191025229155110879940078442825692214154455843065901519506991486019187022710878397619052707349815785796598028081026443116720426726328898003272216697051594127951771356382134916551035360657976085784691299284058916827966206801499292341048682852350938025746085917708262340046920857614072178379570336693527481049975121453917599423532095520061850406354183737578817647482441223986334041447581374529153222352882424095384921273897863594866418995270775572461028700454192491429388189577813621575922913863865174177324240299077160074333266502342319971132172371108566582665240414570383175954206936912545731504380278756986583611039100923827249803497113149975136675551440974145770832809954092410093311656722402327512246560900956035735144878723089913056753856821137102743968586799054123917595530847748054436705454984858529586852876541288384823384974881697024527059166664153169475658697918698495683992167523704993618780505181686277746221662773957669075149094735997588512491747632666311352271550702051752874476554654747594890105631046862279998451520104873598097912216757597282700119847310381819311641759266164570964586286487046917285531532689103588194385543813368895287821878780607200751815356293191465174166849585527225784641277578027658354785521514597012462390964741532814016444603769966097032439392207617392120297496970567092057513779700146552379767335461113415239222762470690923394541401980443517960268593665771001265981846581273337431391029904879596636456025726963808055793585668577022382809442983616765018783849827286089968535169805155191464220124731552649896845401799365856273304223713375080305975685620721423689747949302877363167760215852746524541158249440220622059073120984227604394483718530505595102031478654534497634637291320757891281376898951982602827645960093368346093172585252019323944012289356433529872291706226892414609381916488089315064698289416442330210729365662911148566747911358020009628023390559817125237782547847314078506864934352399280899299309082775067192829073122436128455671917578315408687243207800211780523141104268181387102828010817149467398544847788160533847501626074942478251530053770071644624984138939080527188509900634406909423549980505464712741832150272259320633612528887477867831299418305962056691803897987183891051931561607796670482557296043878869458531011245788700092776471431619027547659787114169113391872704316593643785786675127247346977081281597374372559201720724109743947805518577323176063783080711943643410254686902177470573874242003893463783231737888835534558872866899299441993056709725878689293049976172661736613046045059829290282109753152597685906366147970576599207933246376108766858199018370906503077525075575662583456836874745055680578837200249661136930505846095370471764520687712906315065677757934651653191719942164877329808265899407508979915855352345627247256397471119556233255190963455395109638833699684244312413228712578709579242851024579438438169967117600377647034807950204876987654849756000309339925836363351638782087338604771888605822385223582873939878885313676253247627297768444701774545586820441516548396651567575244208851821557842561114386177677311678005908871541477030452620064053520558907828073677284115136211857054525830694443395801519851310436966265169693427968828563405349871789111214991712205438516253508423227781436860087189377752546694693643072616405172098904825274654591801971786783183532031744933096803891988854511482856526532235899873805931825343999984864311571809823895466610535300119651197658548608370021541652477821867153400475904358230917898732618515485396413270509884336422893621591777142487687746547755832684961673717483748782439383646623290973769334891428795848040428497784900916278923092448665629843584845486264100720819467979200123164019482195621944313197474743404767992337182948473156869645878177655122952526655604319666444889024910760322061121763098078846221770598921797863550436098326382284424976538070397577322800279651156879379914299470093579428785569205130555448493659844583640689956205644914710050207292963276186610525417783524629864376045691938626573203518808879651513118321503836910319807781767525842425409813346285874990036474619850308944739999719252745801990614498273506764947416297727149734393844999673714884289359171388482867765370878718208993498550575922163207015513091839615853594739144431430964219955071906976123224485407274109273609015113608050964339793974844647765842746347740945644909159910074736798127845217540701615326574670779605791465235617311502064542928026682596322840086038957129644827748436514849727054474341274096020613835479821712575380673794520813737515636147938017928435693249708522195129394778180181486311914789719721392295613028072309419608952287012096345132847535686362316526837620734125913259668384595647169017437054722994293846435420629823964718316470652222174516246326216123129124253851924789158854439612508769596877581956309190138100181898463391506122361197366800603550425993579072704332650703710165905120335152244780266861744682882398964818276752981796375291461375509144439474311303797318993823916010348582229103819967018614676493300251040782546054703578531247052271491515596142503875875188653084939261493198134475015386718394412333038508979131469401580269637026070073372515609855034583119606382629799902335739112715057315449944526928969198945196779604769110334133293931458850730483103548801844111694716487697046566273125111511785207831452001247346311961434853356021955870801614868733400615721677127627283900020680377721974800770706835860858040022473646416361801432445933224216090098828227108692100942099721191803137436379766568888495130347513199814177421706689213189910564156835374356927287981844018783331346634498506811154778341126999165755899256294484666186809509327487768077748586697756960939931097234497067522555465775708501868080698840428022872485238086246258061147655169789354327161973342334409375860692832596615162839948029516597640869539753219196201732936607407301642821495114636754446667042833791494097105821926549925835950438224803442198258264083540986043783255585080352854688163045260287003931522332264970872781786761059029679406636020544712173713615181517283106851553789082411537018844569362338600084338519905433975959696263449675822792011603677713250337911818028033226410553989884278943296967956877383667401890322656841790383966449584498597963865515120085736279273105699014358878672983212525468748894937723257105852144471203193232256908290025933688800158573686138836116063372780811658444909346427122816340628149673389353991678493695729716058463392522961493869621221338933946552321653590001406890146637911852409004049102608783304388345790301773763373398439560920263241736219945955761715724263471249064934816277178488892052112707512754214269091749818784436039656854849905766123542965227809702877414015368163847963731029096718437026848534704410477036348578377143303484956453565075714140013807229323439549157543545256507963646010664717224903225333640031450588711412140548929399994814106710402759877069769173638547094670943328093622934674465064665932163066057730345921545184543342082567065519248484340907397856972212886523874920213306793671796327568262352892114456921553080960360721349066551361982938970787409714107654596269168785589595242309076603504863036617576577789703220818491759786961231049524162695633767188380401577341858310188620650831649981326139706883766692985300700638894423250773268470716850249927719337682503820596107093023668728649082273826581097242683718690930072964883539233285033677696502495986210195599636546433034953792980308307564004964961982243493391736331121461204908878279800890495080703621493504555162903054786283627635213736339822940261136334351328275657758859679726999248303973986911086776660080609717371872396830473658082494122015446484891800208198056399493934717057446433759201046884356960895651873270299438854078173000229262541951081108479286709938151944174629029071263729672527849974232076968174800358994186325006021677995526305115199305708394718470659985206608679280100905756401540242225457428655307423244058522082394890463229056892071049881667350384110608878947532017137714469699465944042942175316600299024595396540812512581520102944437311750547024634336949480687321773762484565825616050358655368155196635218761666948537843232890123269424533016884204561633239731187365103207780228969175424884753275333310183972629441796958356711483756832039091271268778438139042956988635522488794329592630417813283860813052284400464708650656325502620121273034921649622384121835152643278387200536643194077921493226028043670517329809731253034824001708801074147478368445885509156942994543650357862782841833051724280079196348139329165658928937377132698575834073319406644496098896221884146001662765821571848417353011182875445984560215399108115094273814090468814485966397130958889563797410142166628414232806896969818390746660471680067878384792628433864426670776377889390132694774379542454360729612418038427631636936612608923514629397372283055366135840645046904304307302263969334216781165468677214275572606555099072749190251739368451687956418308091050131364526859294679285663219679968959430638293741951690356491483742322871957136981158605241487271807558841281756677258860946771684581533013362857519296968663740489304658914559674445860315775537359580424263909512535493698930912040568275650938261112848280779196902578155452854707727237403509918464198103994000053648286750915317935467373235350114853317576113605876960689224555509368255039629560272588755025937726808459265768261560522015834053257088465093201782333368936249436544744884421306944235116135722444950085240311331507335373482963226308635743933540659819445065811262057523347483711946887235385202904796214602461011406686219760393758867420957846307907352517628838471664768908589897926130636318024885501829279951812794952758167368157287980354801529476517310343885005193997707010574676158461820968829395922029737115972440175751044440045822893464729453662857609976522281044356790035188384970059095400118755319864856058449451500261889709932401789877308865533080198801121077489377336092029311520677005535658874188432339168435373603203080539937842316700192091987850885499416899318938704050599761395662980694982028250654210301928167238249480887366891411653370461074543889318946083606049089236916853580692331986632398004366483265306015481250787459145766445550296380879829928413814895239934924344644074054494902431866992023355457458634485190803685955843746155452898178069954787488445769955036748317070941943554122292836394458477578244263572795813174535590841773110534256443944318555757730546262472076002988980872212229907055542764650340129821245393910657385697027692184385228131817787864024190619479427614046992079108784355784888505664531045439254548065972468726623427363789120632552082955093359753491606811714586074109319266936391892875775096449382222918663670876412155007413650523137502044493380487571754601859028917679924119565897205024201635277551590698089559686671595341481752228377072462056119070261724880313533295119587889173171919772755987181318497397019854355819848988361091113109436972330022062627890420539170024309090740607406465493035944366256550610004344022165226963155897191649590868117421540423164707328341569223394545426646410690869278753389064425135140720443429230364447343040804326786170673796832583342653749798360209319773743203582668451581304935863798301341357598596229237175773619681865420659829595294575565034599239414155426677720451000195315312109953452587746144772560208175943374117490795925881607601616403273310424346360652082957310282671369390905921963739988778167406274772610930455325016650200827506759283039745138680581725762024833604109498864364773870789520191734432452667025487638068736644854157372117441576889652883456018410151606329202532841785113419259230078779409300049460490768363520931684933568160217739705702433477328905324465255479761636796198109130566124589770550085406378087254304248832000669240636402173222116618593571466396383837376126405138319347657242244067088901060770978342313414011395669281648120842509978793131818202660799651668678210011753239868982851816427433117571760266088483125519807011424693604264765603981894731739965874535601047575767467520432185713741472788657684120737608214387569030162797528333413766497682233372728963248199524898975360856996231788050322682673202509229332508177889945594143834939320211405867552158176716615599424101059414367643200094536963885013255641026400804087029802849880389688417068247583809232388217172195011553237435621425848268671008691453714955981486213332391764214367882183568428081044152719665712067307590278510846037358501574935871629127919213930437422814939119318103357865514719153425864945465865808193861364434479794077599136332744315331640281431241327413204733393812728965045399868594972715533444212512310640324241200491216595469082118490337328271060180771018000419937063599106874917739541583922596283454347929096378659149272144740969383606365893499224741278650815699850111502391610487963829296358205185348442803578929630376805154488221587238229270819690390602443527372170140861881854328019329745827380998952621168230255453985868988753109498028289898619435578519138053714233998748607143223993114063360575235934920273106543110573675995988554818622340436807292039511360500256158748963771929155979638767912674098755841430631687831876175592226456984551033940831021348718002395911215495326931747241563494912163924783215105437446958781238969987708813187329418547759578905010321964109365632424313353759531574823923854110121358929049674464125544084067564860159171611221603361921345340630352482429004248617960425845926522701004305829456645264806951353581432611686712823855346026405025986050239172954340807596027998857656992486868678015634638876500578353010393109956259647608826346457623986523003461507349685308204798950659989327680367329038938182133115609510339784688064630555613943999174435386983168438767982216822036127039246637848186840080542534661686153164472466171475707685478849789546110290229754863130014022177899984969120230320800159639442096811745961180036278963785973345344371693789304075876574175512843010047947766569095254418476950300838054516702852997831767787658786314895182173811326103217778791877325320840242544101917540757898115091964713520739391298585038275034918455803367583938940574066916052565215118627353979340436192888947277916030672390980802146256848324437962409321374489760180001103803703606895668787753063162969477477712813567425298679866266559124010993006721518435749200464645198532197874899274535677570785604851517488623866433811961791146200226063333431632157138940516364837664904068288033870259268755099531458665627134040186324711301775986469150885440862658824366734467328697119584067876186385904063884161838150188425264866260052749707829731417802879246381091410548431710231029272657241616759901952442458096042988878411410641633312701271955082805800167654287234888819908136047826080232795955898933195758994435863290823512365231766615390788020450746929290744720838503733610184210102822340852659571877609726889805801641081746925019909290669270438848604065738399968549534662257302502491822890269027529461460532134229399305122133552081290536593059490685143974167587677680353924595717508537867038486012800792334860262027656477633259089348861939957056012480084311946718683645497537559533626117619135602383228909611065975233578022111792921213090627395835870889135983953160592852581860638931570671263409175166375026535091894171566450666753746994923704164913778666803136552690470140092781494455336049530281585100585641887295755469437076356066460310514542240903671939830126817772373709664316393415717516040649070444924907738667783392350219969505227249637147641808938637755835844783167975402826168242830076211263792773481487463206794596991340801496382693694333252557856794712580676989197613933393579510550032332354921065459466528536758441953112661901462439651248561678142835389230901971106395362125096600798933436967645762177668018214488671985623009915385290367952759744710995225068966192551522073239750244571705278624967812373278490213218211914172746304509409747975938541113222391568766590105412785781277721353658020986392722035947607132801290403676300746222951321082665758521826137175795281065375736404900342883914055926057803480040956958778666273306325822317001217318215778100238498872049616672120370193471851371292653385394265349899699437964082285819605535436990841061708328379663026541657055961600736255538015954857349763484626928021474598033856957493197465038008412086635790931458219461935347066121921699710945753287214424355964917689872155661702070369535583602171782745095498912509890684922988307588055284130488748566103783278494809406738695790621292490521880171987312683318846899146020290743450744413198995333269150325352320061852781523580599517953752720675474670022305329449502290864840621158451519484632585362867598755470264845581264418858522222322224585183101045007190371482211198050686016298830120987421194244266245951025503787520371883192675664139644296924242529724727993779369653119940554675864872292145895127559274968150957824102135824420172610318805038388747437900672677447604044538217642810621354435026341306201338001399192506140055202639535650858795574741158485744911098622533752841945908687582010568709721609776455425087068865014005687690093324655756092781270058464446846043265436362562037139536491615151321482613456122823875847278264319253518196204473287179237959993895397827225570331627302289556475388500345968604666657866476367503457947578661126506917362783497412654859161814568118597348682819575661168868661664667296415220648763445226953505918067156531282659042869568587146958466160380316253464177727654413069463557959361848560833196132923349117834991113890584010716532898786093769369031130659338179777739243240529619300002193065899265673115291246253306279250342088526942738532128935815760917815461395522660551484404328893808401286403429162191435563779115155806894403025293524261626875984837045331779954999018055491722627708162510565009968001782798383950477298514706869345315171742424210245881935120162263317753241574426492846014920086441160516969845895322304411860802470813600383002925174140262135691173317630783207126968584609250678747861279504963466958157921373156114283442429988959089990119162682386532597217103142119608611160917122883074818768797846375525595363173282424814310659812504027097415750222541314338258884012097389899482026622842100758362641655741956795537031719705801274579998571954001652708952354990386657506415225940552465488500429580662136140754726534600275395693566029492608172416593158244895479025142721759334860863236587099043830088804147440812471501547732850521864280782760537060590483612427290724718973937747062861885422704727764781437113779451114645026422829180267419641397818759502220854250613333332151055456323461903689912426776358175657345289211917867770321920826443021917078290937901923398057822331325657871072309586781877177255011518486204690737366758889280885063955491060290913837913543315086315030362952302555587207563892957262110108715591795033012334875134973226511663787825740864281043030234540703782832004143689742328893723171431149287554438871077361137346839029593860489272176874934780627291931622715559679442920245523620793900472163505634902982096247571800908572802339763898478089596571010518800619783753662289689876139483445882331478402000598612099218660838638446367258797619957910166078652803106480778693204089904145470492697106225283393048597930644882969768752123446529705182806186353795624872087305988628223033863291284479071724495415657353455568877276095486927497024151532199837140244251269276574071512412843839537160943039600134484299451040211583210146612596159349799437237314983912285767814231876619122855937162785069458968425170979508951128172357482481227893610859808616418500190360422775799467115838375058971608425213527630454811734197194862257297257867140691897046911278083794909011266984655705661544734961096757552373950528544868374061266349167922239368025068367242508303792084853531216104928002050895746639467808206377564896033991527127264168283291832324353448830689845876212232645876257810601489396328592008641130991227686911103360680526642848849239451889747586121834544054393672870626071753003569798037437118263124180547931934988801985517165402465413123394216692270765173382022643319087641317346893425234186367607190227263814610132106947529605689328274523031013729983991700465548264315919778221765876744537572655899640597545886176551825674437067713980212108319190265151447833461472656230240350511930961250591923319517019723380727437481219080098916366415604111954797831860741392937429990960643550026165395763021180630707181575721550518668118781089194008289053206881015190275220617266101311161322110077120790525792152824854704330221383471338765530127661433075829292294598659000310153651180124230720655618461172914314350225504159421785971044565561784131667683171850078086650795883569455714914046917277816701088752140184557737551231344387837974027117702651215486702903480527024272403265298780551824433908870910693664380730005622536068645226536000791405569858553045517054240418175805314421858095070315890210896818911870148311584953571428639374755263795205432229251005875605421148915975885175954710862276421873571506037899504453964508459564527450143758677845339143235990890227209782578470265364947736970565284039228250686527030691136234513029555863217593474283897778808245291055240375381158426669056655592089943895885875256461724041667110593111052625137276645977921724875420057829140698278310825921356393940257540241580788326495932585704323149693853849668340712230478773140056954999224316852561410799838296534048405282359439078519513509745499172892163970651969092880735730821398686012027492326125642273978713685217474049167042753609234921360245816305590249488363351832683521375121036535551240359414565211230768009544142040605039405333550183630780653107069798599443606899668210584863386175539208368069722878035160020374738291424822476780682114344828072507873699583749734544084778231837076799978165413420173102986306107343625094236104139049014905523393427593508020400620380808245687944232962104288288504268625941701772073479944782128178716108137933342088552879575103523868543011262699851279799835698115666126817327883514127609872740394759640783201118490552707302893178019926749595616188529755848522408958483358111162825791090354645197666314152175043341685289784149957869827008627674058520419173675517169314596582012372856149741577549889203533123878578638405212168974747820406517242190903859996260936449965818307517112185461556713550668910247303949105764764706796465219477415694064237608619982806992324225007957947790361597533034178024847096301666816173926500034400325335720024242218655522720618596719155125089893083976904834999682500744169147823057928448052696270470928112491195323778607073858554564986076192423918564885262493637208978140496985937857075572634271265347641327759263660540547957890828745238299402090750962972387216000483666945232846648107000123813208440620154858252059177497274951084748201420819155136532969193594197633776254942663155597912011578309295034729151704984786606918509080930216244938604762246669480323253913076439174811309809103663624223792807816565494680140249868484737123716030077084035855889585050838935753217571892225833110893363428467455206995722222750409635947680817475972266106902878656163112033383432384185085673791574324583678909697997497500262382264921104643680754601336722084543881872777139717203247165392083911221950271477565200926932021120099916647319536958196516946461016537895131371530752079816618238804728667995187610821451144019856925689230970629468950418363984257918537327113577117763928221921248636641561810427092505257325639618536561205662202271178962356148801570796443446297597966012789473336792422211326662080059536998895194563426981918161566071454857963701404658585112447729687794322924134657811541679565688933346616029789554922607772073171239727385488463657796180394268478592659207398430769883629317975174894467917971326969539860627816071686334834940631618732144770146865829868519096223087058595079919243408689993089732960297322473120111432545929135267023399160505655075842785421060740183406304627176179279837956472642034029550178985837391578604009401365413440240537751628593708501942777581399687742511240369794604261908181375028558882862028943911442002420346725391107806490465842051943727180821124038985985087490934008775613436304881845441935478633375388801848241426103353805187885377396538590084270654667624882404055179628563405405120037327695873470356422896852565751786161702065532366776150995142043628549712085551956796839245803096450050490181129146133014662717218648694389478818966401680146390610832017956027591904304534981146740386312072438470098116190089821928273945816121292149715944762504414289792815708303921324828874762379672110790663721965411854366466500378253504655993279835174877985720706632529633591810060912954671639734915685734087386281349866573445039002765460126114357508640451296419688748512791267816127800139838521791915769811507005900294662429109715060569226201598417829317254599538215801417802711972867969255094079596646562423330462992999949793490619828628187579731904455892820384611845310325126566927183239594984891916651243342743854775615142280678902977543719935422575986435712451923708585141415597023255502616763360195349711695983780597298084494353757994916929261431164340930626967428607196255536509999890665009674393928930473212905221260085611137932133281820559525215357951845442080708670536011631306966612342926795480405093266467365819737376326378747153807058848417218523122569344938617858340471386290579431438627255870128194630985944768359964372959627137230058561486577764060745363433639662720377581725583454119045114051972127226538466084514194855416499425261915352282541883606116793980489147829455249696880100914835484298749364845025332879132996964539785567454286524734735989841949698362184081770216811565678593266661599124529113558812060837142236080588800283135112315571772423924569423417240454770165089364764590432468531367059995437210043184817782889973047388907644290387513891717593426102728464009509404524350449826315896442423759389641276867335409926118280228243135844533187012107870466876645522806029598808830012054908164554043357478342984989159187884904173472820959368077873457309925323111160975510139622324951495938347747490381255583208534155803018928223105305016503756048396715969514519181625234155946067245791125599523630419066707160448463603963990930451147744569911754968422580826640767091162120674281596211052994639237295333810206601864962796837179023957291738905703542650346162718625250077670841140470358388504775478386999395182000364025035501979249866984646546845158918706938430125432738962181566129971649308809196476844532650091163467678043797910014712881105536679607489996711412664237536508365606979897346250262912203434111585358650298034596170110800916446731482466624927168269984529627598240479379735111123919637629410883620534057987679373054254636325274049670034675299367282215291421270959048807167373159665333157832977875937057165990454281903946123443215342642252334890369483193042292770187315917354086066443074088355319181908590492719730825547505158248640960350065115377658089301099308064021144757272697410510999758298874447325813787630994323875940063715961638190503718828875157200806502636851119146978870459834198907560669749436906590306681191544942224976676510815972295899836163613556065083720148248481938506832313387562696501415001041751602932318281869984521169989322168583317161962399120019140218277779765147171384960321961602895348141121206935648620538964099326381988531322851409450607080941794415132939367086857192925259764474763761054774418921146028251917115988567759428360932627802888871062975745488121856760100388112339419958852998959823297071873671914709289939179037121640797691681203978350666417941047811827728474856966842366616163102280186047254648078053985114945086829140428818899599488405381439193723119566437082249592891035355817004490318765978290258178033465899643617084308509568464465884170422739891433502216507473281574233514423202481478015258073647977310284887610862385990757954767983569001766610032442496296302523492755263218688514958455262126719395049065223737621288356702187189840961861323988884662093019825389402758906908184603238266337470425556068620440509716594587276414501450291885917828075526888696056057501515239708631492993072348544066885008025729665664106122547147955357355859316584211385663926453011646368461549399233727373356596973555430524758318805373595378562968864030442589869152712930693184910390514910740729969557606644427521447569839487577553043769246418098316899889445931619890880821854168885125112924223378799605957438504796712336981092183263607536951941504503715925523114518641472462196091950856269954064016185928833133504903073437513406637977947132647759796402904078330785761279120051937269716525634716907825100380368076172226278916188963725228941100859354114956845190787334336849064520666967724780963929433644661362062585268946069982582363978097504397752628997207447267184009362120242607121226993329989988753213039058669597126823512620274629681446481874003357873370695352545882671252122078362582619816341294774326569046242155939754135948922330063545359636764975212582038042305306393717297727678917336399929447205716561620200138598051392239410338425388946144324932306919291251158871948133163188817169131685029125982376878171543406099958705728056464249645269595819781448211889893684249245830882056879389240961134177979894087440926310602872957594915942793909409576639105738479933161748317929481505953496734268486095078545683635459085458806472168061378717909482352972824959548510461924719708366436338880742881817822696808074630414448456298605637607307513447586093402637982561387934960393774495890855673301674963918393009898644907292519377275006094968437727347915348995515569697947458070676406554664617625646681566203957396863925316716299376403901988725746394801515287403871881109366702105247438027205918406061098909594657162117494130749671493803662279022210510452232851568537564039651665698937905625434489767394466772942355308070868539022879812474859766139607139949127117062813961583490571540220598520334349888431291384020085293638277512329868032017483924353250581939526985782255989832121653429089617529817414235235119834760626505089609509783804312668754820061305722310436485018376969222189196495883730082763118552763482795738482007284656254992352816181245985363703767983025947935526195425396053502062758868587937358898754190048676580552939481666646514572809006833890731870050165721037502741006142241732861181253864921704509996987520056123402546624205934738238982290673280368803307266478160734561843691279799428168363024471070775636895037290246381311318588874576185561737841613189753980686757351341159169063279280533572141829790190591323742018474019003038310697717688027991956515550232431954768461407300354223524677447073782004687199325516317683629253486829252603177984902269306420741452898047828492171094179641726842945428578341443380329944505557429871351467398014589919391446370533196181164860264742745395087723598767391413282965071296066456786880150720250414741670285594413375999931882047924007185215415918715021197431356917537328389388115544269323221431362202143182506815168901180030897990586324558003520616306349642524035966281068410393137699561705920487559744750304139000650636630362174526446594282434364956221719278672459316662218983357326471717755578687411378020973004735012188686979183173560271138366442617261984863712097856172601123683658957714468397967398834237326834528874831124936292700426879502767200045700622963058340103587331839705645628526199910954500319702332814586311641330095604555872456131423896738712108367345006153811784676683654003908296947065982002877591207287123837998839410717645261093082843247998048967460682378005179626340682062224148361628061102977024014331226392339625637360224984254787908197016324169143779183051895017268085225885241761357064667096577289546713566179014465403048742519099182360591324475857243538975853688199048108052584053560161576864150775452418678951273470968955203732371927040254332672558061612081618771954779534952137425841349261047893811559631606866260644949839405709081344859022399288090815066013263826346588221144880168328865124628385697261102371281357941720528756887526287427885130638356125977883444874970995272306707366936832842394223337856317443511400178251629766748920737138614775530865076695385681062090018256479175957965680307575628228962970780901722661961389959988860680217210829477198508951851247162395524479824397918434443540271038738078397044635480282936956250081910351037373439570392704159204579001246043136011013949858815381853749118302670667877429901730447148666538959829530536122059098315345465913203538244443104692869788718694346041565610256317292894771798961849791758037440088464897404176609864923389112370775545440590928711059552030254281099647390517032672038875141083617548449122986052866936786564590950269450734700266794782027450891237306893996168857130457440699425148145433501742428928153163468269566457507854951951868584377047936408582396721731970378601232246278482397511053253022183647522226299665413990381815279177053570335460512438275232052793487562895155777788334432811669820319588335523681853816865508209767959270902184841864022034602191233406521462806151891003625572414074168388712182788096333822841051348042356756330745305507266287433666600893585906252266577662444443847287316623027169543447953580821734529330601702559699761768839931189878122249498935281443860179212288338016683577149627777945808420763221961901365934317626353165244182788218515262109044465888805490999184838215621950185479851098015736787558561028477270906693761537631077578458634090334586486684824278501814324934723012525582816048238486306184097037752081230257724617710187063736972633151914937628121288044595077963974750905869399099404335287574102964645840522586234986970766314439172375765656892025977478903581059799340319805726430508910508769815710120066383591523912794327044710196525244205225004397608424402319597891675335793848415500111999754222104089322092976011774672578211833344390928192419756925974670169431733427158203473872650932292060037939393715073727249287954814876106901507119786244876221699752572379360147886349503366985629828917096573838446281429918373751976333522657542373143626892258728665106285904261038545119453116115281854435827136000239976493443017079096150613009210515222829606337817970427302430558720020437300648906046612927506119834840076124989705613648832009940916161918336228293537244312311155783862047722081523106533294073799745633987778423062162638422810981483193691613344393367157878029523757721382335683883925168615939527838715225044761517315552926436449931540678418227182035441385558674125072163669968419887633111861641985753645544678141695693195578480713110105369912114104722665569657228165997461725550639816389563859406786044864824994810718878956834701900138985323522091460797995785953116352956674830241284890799433984993314785614086068162949844764328243735264935568062375205857514564877641067505789340194329336060790386215253442396102545554676233033303661306377446524805620937924401455042593230060900905706278913364262757291541149702149874340804774895863129514814245321649557458558648568932586432044619484010927229712310507930147205293872898733954885332983220594927694543864556564294095493704269645334272863884709629310494854475478293570148372621487002111292787359679927719327620865899384972694909411986833241668268889504062978132794727439255126498920964602962402139837035671919307724851388490776699171226717447058005285218823523001803290444864326496466377208231969369164111304523469818178175507827849792546582913036876780537767140155872792295390361571065772781935068861782874288658717772447763119140810720940999327510379958398427333121484989904913050669261371701470461101729928122160311632938622462626760431305674456514213333767977339610387916985383940275495428992635271627740083474936631279913530705372895232365422288912112475621766836765155839490149934928620384409114555784535271843930998632452495682074797265822999442426505094987369413931835686946024634849900710079567105841549902390201036375950203149353660013213977748933113938459457048523908416932386321704876644062003209463421349333200336663736539685946153560475154532108974312750670792425566182916078049245115974090393432354580694464091232491898164789114399962586348645255170299895881690959194560296809811097833556107268239231015770102494492373130867255058999878037772583720626556021253674728776529436766906205076402258051959961252584475418606957249760807549817305361864218654249080279748529948743245180607162185316085584835600636832493054814557443598794417641592915164636699302355222026826788092422920116118517367273159551752361379502428637205925614376515992625302635308097718778146504596367977372703711223587325134259043846791551196847444401335274158358244327977744987217071870053753889300348650516759904893589894574038404498083232569651718735932721902283284041950840319351356185739248020619994284251845716482884917220682319335558508558657879247604672290955165131374906525068236572078681087266148383201128340442565505906761480333723596271174487047268518916312460449903945854824528829664799484295037996377126358261393380066253328631590623602615634590375122198746971757700531825126316601932650756963406405492073490550998084227531111875063129770081913324895773453459633011536294987959950708701774253271343053083809236719458873756466182485233362672260551140834993863034180373063493646241777428106457735004461274523614795035128560136137379409303304859424868412846930108953737995643211596299744509569481638258114209924219755664893840501572959346071370210337814194843634167870583810375853891624833808084448079623131642234268537139600662240874519850248688286926252904817620757932437361399968214674108120794871945168148924353280123847667349902191301933405960509083681216719163853338111804664347122880958472642446875691295838726066498681322044826358271895587582821044024199005819372395508241563736494337658490125221164440060199751502797939854451629060270098521218702072324688986955166361135787745763195570531671549986846306849090597646835071639398572285334790775202983198956764822617323296125855532393173900359995827568450361016489181547954602814624619012044321571614909155443411771203179216416394109061607947574474026681651465715545100949548726780537100240211079156081798094746428284318023376892252053023044591180384420583812303234231013425253816229534225737440220410153091863351520607116332232281217152750286002371432020255488517764462668851433851380438180172897282285748131910727836118317514638391120883559927012419821938114570558008664221193610161282323945331003278415193531786635462849432949585077305375119304931879594586541581783910699954578640716847334512343367653144619686032237311946034960406321698318863238690516322203230957010845288888578007530950980144522791488833969701814598041112113137633179480294935086263181099103800209780402113616571630183955697370816312868879633855656720950887219621457235156301337032088969807193498390787935107112298399641298460249161986071081494065778067992651788751593811686281249027456606552312641315864330909881390297640498072381354557684059750691957587029248024902496425790748693724920831157969782826663761901963567286833254235895794680711536568149313137557838545079645868699057753269886754423080713932210917744400442670771379731640345715513688954063015817325951133517544536522392932722187189821684905737450133538090835338674259167675964360720495608446649430925772531223170754728279109645110965400316863055752825155738087488005018959304907893038884321764219728526247388430693293039036573529269380066479383782823831148685492983368074417632505685232119059945169182189775404589684462641189309981351077940310180784318578845261206499019633439043494851904991484462081383038672651886512636061928582538153999544371706701661903955415020088557802736748969804126267573233296371747354520428190401114077535452912057123899321102840373427883629737945732192408229281291642151622318162121353562479011399377981846988538558277809251664576951509364373143281044586682400219001384487742141087460422270627772915456934789474368055346199421510672008866340362362794288269118727892591265998672554172867551399604625959047929221031032026508689396199939843549895411218365305292501862943755525443002644478341589123460149493908276681347958813937874170202159945864319095178728484648243868989936439264986907756607796448328214511343095751318495886469600793639205463391084193463030398772518444253213166188872777280969600764295102358178439334388912614081198328722146240356376769091729945369046191423103815773699118728333427090230634307848240772962269537541009868390038940549514951445583690037865385795552689624801852138388887086641525026728203479200155927204202010489717588624563441364887323811348489686583926551904956120847976890556036850161584723317952875049485970396806676668384759349391651950543137654914891799023648425988558563476569040184657334532305726142358209062118590699960012736625733079373746872177536876262268219135424841746264291138714334800962952556869826578072155971356591018268301516980368644747274076434833770434913781298369739167187006339977567414847249727351496354621779453282855990462804905607429788770870100075713301083346215146402662036954070409256789253706719205177949248572592170669202495997101460288828979047977258678013248915454601159919181093475472410021967262783464071361442520423580009359769755742897863579657912569218589885023184117040684019905280163035013646861868468304333695962125454757375696495110883204792495398652498253136072989163107479142388966627846472628529967667569212407478169984761774092969843459286509899991231498252526553638211245681778173792729328416887398711470002164587128452861674006055058022761904375392025231262234178768562411389302312971717673342287055569651562382304521317782557460302584716098187147946501586329769338394377808130108366949947367696518621856380159411848584724193105009160273109997287565399632687485014998286526579632161805602409714392981981571934278859502489548763415764409783243082622079047758304565532801783220127012694484938053062557355181468840887198041708141269914001003817115485249361012166722801456101915478368413404199519784248294278252062776117978119992768482848598505411688617410889664382274087347167569416794506114339736940243640374949986455169985208786694081312030714281746112226917333391828772052633390130033224148439808029970335678194575449074753234146354199744976123764322178976291533256137936215203307171354640066797722951179264102888066883499297904225826655592792765141202110577823483702732991706733764483366892948707893731387793269568547077225902937150042504474182199351462020790535912201542100646487771830173201393419435656289656749031362861824335421544694461412776965700961470126365639625058234636912604157172493041362439227301156772797173036020243211994932650512135276206129599169126019870231909716022935218580026807928994757866879841670699632111167941745688554355622048264342120692326637975977522699247807082600585334534475087467400070489331794139801891029972199572913898899045135171751618237551867658815543617627350284918181921123149575045095091819212634644698887127727749028384979615732224902204526925324974293088029827242744963481637583332769778493800501535321053194627321449994934179221438724836309590283981951015085241304875643761836926120154567738868904895547950282940622263857678338345444479687914948738159667986779003293201027392409326025125303616317609248843081040653699340220857570875386553738510450470333071929707348947537760459505132033817053325092423349716229702510381824575189741182381157967665681964841972168318266894018094042490988712839570574672435965666112110292993048424228427737556404011870634027897865563526617783287136262425363274422361097947942340055545626214289981166311966313041747317237906847762743206675682924670550691802753351829337673152898504214001129064652915678420821024159105236335683896638448413354488867832951289922044998859555484890160448023763703085979367919641352185601142448128514428544224329754406723103133247943751132571099513384180273228362393083957930931096368573599759103543158591677736021663556866142255841437640078057225255609135412032890941982948818466928087979745268402661180798591563737609286096684591554457912057625481030568331146479820763004211591632339660866612955487902019700916536599091401061988742621728909978319852972558645438211893314413884747734370263915561592013816667370307933231471517660571906478390068994435243571535168064488761367559291449731557423021893752146231170698351183489281048646973486609161546288662381496473284822160190184732003251690807478683563874139215854613075494383217900733653597134612964267753578739879817719822646622774859824985856651525703042038706151933592182085301439895183977691716229630059738869713762999058523462586365416195693727923817993491739677740943393728560100848330307599887930543833510479361824000709008013678104428445227774909486815290805431831062802144929760664765233121004108844561232595678775456434533692357239269881920872400633182092288938723295117945523609892030042770343568388061619655645767357697614563435962452671461591356313867395791221993872219099168751191196347233201897591629810494691025241473221366524584683335236327018485904204751199593908382444033856720519892722086640621072578504234654409159485352529863836623220005910913910292229622382694497675180996474459909557405056605393597128573637709194541982472676695851328886207191895270551742742923482172266758925531061204227363899767838418166949470903816616340709907411055394097085937420550782658399280455804633292641149981525676486943163821943508950325880221755453650119519456263020164727896503968039052628802279996490363657105742870713170201164165151601326202220416158432560161323495215752590708586781614082394607465421200677232853060942793339291656966642175672171254263163066865572620450654050143315473338372757566641811628700700151321189809032420889997205511435341633648619074079020872704618337145166205722063548085806537496399366934450724550395440075612522201784912087577698101919177201856999910315515823118334408543202996763122097608873974812754459652209273592705993486905680030582228559962888474551904987873598420590659716371701150044538055850131129461941249607621337745528681915731857147256518660622014251514113390548095370852257750236770052689600480814029530201949254274121914397254560153335559237284665445745170228540066309500656102561568500677578088223971304718107268418388485204377870110955260096567449715525248541341263681352819864555110782325178245250001998318981510071233673979931215019350455668129050505561769669744921300240038882370393277449374996669657601048240611052470240402107781115391941585787921000111483605661070560178362581446467354690567495982446670189577642293962773560456609136827301349263373401635097079065444545494354727244548158881515773601513534714542523468893441674326281884510366978044188565915766048211424343543701950136349796461486123757630991211127598457922635608565876370511292678950991477886197607867671075993011423659828050300866426303881034813101549508802804564004083457439602321547047741835036568738267415785233022892528985948753302515989099797211859155001599321239712645461238741684675848370650334935411493308783223685121634526883825681125718110290329713159684110193240878671816189562499074611019956381431921222999778084990908492724760970334548571144245276178066913569233253035674625429663885628319326367242582631735143446859697927266225194768567114326570073011181840927993752912408914199891687474762770238115453481377335105712732221017836880190784143295113717205840620874369960762955419120145484832091939730351701618982381219614439901114528724360015289820834665176515541602346907810870834633871773679240593805349820338666260107157932067617123489586624847492928779304718763903552690249658194209173924827078962500771733699377710129938196514206493527914754846887345264295452247298353157155283500362353862775846973364103813051640996301778744306202759845535937446660515860402283239692249390380388106547255148409080050252389484086446024289487245802024441513759805849687062560926651542384239236009711910223577662656510414609745487971165220665462004124177046566951165516959954843641797294753320495901481655477161550661916259746303328443956223097373859941425024340565862715298579289368673982385643267337773502595501091048418336744048136612005603099572091400439511548722563104682065620593512384752115265522815722337733226983420719956621967343803622340931973208098547700670829675415203557754846693333100191976385961257254289618720597155731801046673667929753516467414531381642179326394800109578393219437286875168840583111348669441206694548262945520310011837707179237926461818785665705091954568708542829606466092558524735582824706430868091859117993478422158543937399244338616084574306200323089312430300345291631299408431345148219874977627097192039235744795227291795900173987040882289503426559670504211545991991543817069336889832287981881823195442408351488163544284406119141235676924135617504065774757247869229414199694769624254664242193285761932936476479675069651224635360393585555001190737274126044032766687055296991035963964407119730646734872636046512690094355682239913493144872566861840106089867764879963847811943132717749632444610133021412431039608119537581100679802757391587453268186368123485475186469503302445294567049280211022966001071837723733180738923576956917211602616951413543442359509122221754938872213488824670682631682582646956695147722012535639083714362983507085396023569432105128134718110891973305249070552099855699327274478593067842853350983898557986837126387018779057038777525284008303717902905371539139704334002048312283634283540126522399791572361320701789961709348982718939564783812733459824532894978644969364977821527031441044797532539936884365876618172015724641416356388057920002993543122588046977095471531744864326871004952792515521680649780093551979986568876745511736408093308223859262397706511526967867672100179819543678591240536412213067958810795486490241443854262768639772672335881260045053494785192424420743119263551212342096160808322157893963154826184310282494795387842972954166423779135435680444931826061959483336973838971938175114962530061897609683399837745909517717981490094485532502809297435021362703852666078222154817162280458061175509940606687418866027237015749010864906039495535237778493609287779034047379597926869628039649344780364797319451260138763521579340134287413745667128422979997614495535338452714657355746876604935514961980023434311481432645930434803901428724038407105334302216688559253795331528125780465286960125838182731221614713058520670253577855155706232885033974013890769999245814624509980149868817216774509488828903382009008325232900972909972784116875908793140144219383043284629593158502859754950065322231080307767479920999919395839392671977833273411268147310348658332421402713118839884048306881285985178142428067230069843337333261447598814597277793037221524187801941075093359720757929654177663296676136778356634907795593722443310293613578042400048898688793976107761143626822437895817898907368083772227484641906632540275744195863839919992808143061079072553382776452580582745422685798114386295464877898932227304226258827156659653007099337857263052819355627212771663391759962960907521401285921846124338239081200522590820355743189153584467957192093900287351094721855518890420544817750216079632830253799803731976146532979783213276206432360727264781441995860110205397234994737196703413810737039353060462467052686069312221201582931424238805130809246290556334046278477243583283252142503245734096883847175167708716324604673146085475212405825397650342895476188505186037799469582240024200601930614778829208200866730205311619017329774054033779527382628244708091151134082524205415628179638855078437026067209994324535998049945688528620633129593970671460107769621401132399965573905731780396342877713509380629937795437453044371281004170397890019373055980561258937131892181341668741608227531809300752237195832802638395898005856397759534214096270131074419240218502448613990808297223477431939278761226309115160692725710189767945330522774172727274278265857836723533014404740976280977957363648813514558132741873035000826053202838561896411666835770011068800178516313921398576812206375064073874775865923894103206381614314423664484433568976526899419827615702110926073424297597109220886412237850910475532118386548809609130929836781831633719535481670909369263071381154538877539930823948075993991864605650030623016037847984837258235409750016167858663456845623322682801730462429352055635813366414080603463039504325809302227033136334019545389973676035800210129268488146153741757233009678499777044514915861604238356983395423110333328963028504499851259635189200560415106301382748062073827590234564861885136086995146657026914547489335283091514130901283236624472021340732674282475325777722284918543446526449517417036194942653479438777474364339927432268720768716952103276250256118127051924086742844184039579790991795197393829681335383354084735909047676156232003934606458871255322041054964992436003562080442355181288871252202798189455922143497032877059087123931495389895169330653502582379412523299548455871435808747589171598360930628662532903968545816132564410319533228642298711458795123665607959549480408638953078126975187699864490772022747938709492476315194400131496686335905095007181920878981307916853033557027505692748445859632198093517590847311156490126883840100394517332078635653735558281075390462584167713290580223764308741520932557636092757065488972990498617781680648279712779307869418063409879381372572737442156931245822542399275285957528250027676183161219174898573424855309195269846829818031277644987373932787567325247160844601416450957298329816394189849732560582961755150244513091130250175680211911903404501633196253561037149451886627489654062770822670551817884186318088914002108618589973401959776425945080365077525314772201703445066359221169377887428091065141536295527170651312261133459952368741042711623510274898763048564110574363909421339675608043624908864087397656477786465281856535443813274885015882251542440086330914238979543224770973494064656921633218941861578134038472157023939409061833040874995002345023606612170881831325066142119284199033392788004954177625560159960800943292801136104429053622509589545602521216003598205937895878366460255416299270835778190566055460991505004166010300929060534766782418420343347900685291532160635462160292880610644204640369964853161723950094913312487172774684551920896573056746341694340510583049325962499423196269031869024944907223121853863056206835251384779610374143381008634335178746195471693405890890405284918907465933513090340301383940490940071437686998129674345743836793817186641229442071153264913161251258052203358898438545379324652894738686570535076639771792110246320354632943566880924414831089568342690355759093974857713300632241187706135799537739334426380024883224934309863799185682756267323866078201335218903641850684412554913664010569784641163530551279370988932487062647411833095792853310057433097156482663137624205310362487274344141371552896136970700597226102275843101460931746067727857023675172740926804311370081529196532103082526801214926674525839253931255301827544987251230423691571945424174726961111221050731946467255720741839744289215798888630033439123952543381177233882216158103266066131213925785368959421608311660037545836343764973103063725616835430840989338386063403849605008720984959173462567915279801520868623248770968750574187446651813518599025330020799934053864423341374477213716793874355698122100889029997343333062826288938433866628112576582193794444210446876073202981628504491494558904895632330451986529355541199604776853430731425935616688409292634761607515373069535889796930889527387996815386792204369954801290072293346025544397597240228778688473225919558544904640175658667638056337592446605399158855755775982583268774972713451331149514031175440331213057792018980066330090560432836647153930426707889707046159505922820915098133606300546356695165770121092772612220527576049784749573365132333462923009301327447846541711053867011918801014554590653752781005857385191441506125563188157452402237078456548022522603784083825534959290359891278777155357997061216442091831231458294186460627238292600702614067966445352312413256755415560600958476677815453421564823850124346848718260799051050359135610807822091929819197893192689445694649073396623669236863435011697276374192193299764588732127391096541570291760879358684462681558053292256981359107359704271304394884462265180551096612642030609932486577321434893672529279784213798057571854340842424523062176198280056410438210389307773597684476544688138963219327749262551019610545696179907225920256987193347760258656535291014000835440164263053261833987918341321785018519227127260158093260930040039259258321941481118231994486726448753370635266781096078633256061980876510519076773650755672369905390728839607639169423348580880207622954981368436744433728997968340184000584677255042820766395625913010784301820115760862994620532312962698986066975930706988684998314399954756373694299662082954197094216121405139056925095767422100504702507104134770266261643615766670248076411197548908802882777188750929398802120382928968173839052473750397727044832726373702942324307313717816524012331673530986753823271684948604885848031176843979498939398191562456337993101980924100028985981429836308252567730685015545601538200205358017056725734650270197223263154921991652321075459561005456580504360430295668053129945416009776601690469634021662986495368356576757063218517670225101115858283612752985786297323872662918909851496953681340626930106648657855025931976168136008254465242576114505337894060516672278929140744289223022618344158118424863485540096313632386271177938143544362637155609601926220237560318561407593833838376561100182798950486813908228052220211280845145991702448140605274715430587154862804072214254051127544510734176363690232164476740197984730519722894430240519916567144328587555159259554231270108544499644391062222151819156481225105898957331852060001504547415793557925629960176771359355150799376316117221019923932709670615114016076368458879194266349093301700533447933982301046796796789372824247446190393806081479720781975613071295083452013812736660609938677655011058029213329080994567661247075613465146498799648708875345184772094012243437480558558178515070499692941224363567557552168865132357083179209855134875500402888744685113006676978615339173264313694540015057024236182537330277753375745997977001930294466768730799643350618470185124967907418835371403299439923481137380416231244426026809573292035047222761334842246232603253013295764412635349151741783135099660729347082648485958679600485761774954216518169135064216395830986487530159701913888295809031394376010394301452236463243223863197457556250819577591044632970691405419617834690933273908445457631634882871223920052914709956599662091990050221007309731628951139707259749383784157492100424784591864090309894686342979082459817329109401966898907630829957101350453363439554276390678397848710369310824737866199789576775102839492982787181466131268517539597447496650782341646883921909240960974129594749066037231331563538550692501287847455373345749735003896951561931178137307604020342073424871165800437697483613650627901400668651675621795042889150341429073446296409451055935483340557927928324905299195427181880024592622991289122018643356390644335887961443513298956166594449145613104273233311859543641099238008802526235941182308148907197867401409518419888330997456288000221613030668964674164837022331390468192923969293877723219968094230021951962105812988395831097145115383817122841058514337439906205734607468414193081942584539579476413035591217906890974557959724133362727085039328809272110135600983227667341853930793570640113427664374032730534100554629835721202569466927020056007221642272069487876056137066550835051044981489804852170570894375625318821097218998763325362479282465364798526133519162635845645555682691781742179136004225818060785147671220807193933551333071114462926509078677530423232879337968684821428368589571551541668832823855465224010333859924926169265221009772072178153322358710361019128884872485559333446048226206893826796182727198310114917095658652981410664881552373817533465249499278436139429755417278713914060590310648565615270825448305799692707803509814235290810761509305889188302727049512128987608262788363952062876235192260206812091166555356239386584375880730245085758642932685615661493184709689228190342515602989771443209468465704032791105219084326649270566173937646335132028302413086703285977430245400546318224856294085545887731262702027835389758964723057856377985983017987347913085208018435147355004093384757244705665720311457758989123680555607726854595577551486820482495505633192381142917670371000637264247315706117793465961448032925006494024199095030807021227345080513787753197002736005789094818631287693409295271196603180405583807014206648288663739298049217787177808400037465592366399449630228374395011055246302792230179188633616776758934920695262865174372563377936423120107867617628701394288397498204626847333894844888350646948683682663054457988959264256761577520181870757023451122059192400120142165617852855666454497358741406720212700042097334437324789427821824571430277871935696274819965541208294569601860748432114668056131406991268087841733272368544927935217351078820611134886479118077951883439608907436451697643383270307807987092701268759841436252005194296011018886743552470661957975164385942621428299039463713762061915408669388353497974290723572763797470870536558842116120107076936049110157105296038841433017187452835962177110092933373871423566038640980622136538376889831586912316646437785275341844242103449888972062704466812113409394842164570403399264817655170298383183414553637526252690143576065939787685836539358064551682610877890081217420239223338222663438088312611709311817675399302173140149699191214777044237020103791166757102561771884021590074838353847860249095663437163274827786350608981789654622354260895278511804977251454984548263777474876906846132152740134558036665194949789187996933103423876801513683784678513336355060341030671568895801588302884427280041461666354386510641639558168489495318840313667608283039884309164044562188529774680419230642625040796398558323171106126380012611836089977968914415381097065848619543463476516477015572305369994012087910249101486752405794681612692353494337321704800754823796294564223002854756627297951453428301599027863832978918276408119621327470019214206958343877033221637674213309898224191198510023066925699090227360245245619594519110431119330749359214545933532014498661000679749328635488620753272496775477386108803928053285325337319488859500539098859418161655153400451487616938976956639735857442409108479607203233623521911294871622466316933798949896774173852881599933283237484086390989899027035045902725564288542803728869229831556937413439521460065547627884600649139513685397463673028590349445814312405150635245592758199123173880432603991178123837296187553184005129930650631518808807452113364510020204448310225272247974747336023045788148069614183006248143461293221574303772865993729037972632224793365605369843105781492325085552017931175965559464776917400289159460911449031305295233901327465121531737860038630092807650775253992141328360922721130150263866482085396841180930452024850259811740903618582865222259172890013485284765191880272731524805024698344665579470425828036753845996690683111207189981292770174774318573687846384035206333873862028291565090921136263054818180020720112732680020752507606967942619787388045148236292383930761279279565594460085387898199131901400355708108088379940205377366648945258532486444952101764241702411739345501223540231352556210936423368862311960743685608234285336765618538295173791013585362602566661860647886168760669711243377881904711319816669993807905427075883410814787060442789345255688343557244907513111120381611698695765709475988407252623795595258690745523329255710456306337701981491143662707870983690543113008518645832793208568788903455127172736035154907565196958493621535832976186206485097878647758385807789651800928616600332436187842406343808447941236357957332208744916923772539817146022210437469375385648062656902736426000502737299983655571888978636221584062314241383926964349626243792519744857654999726166795261914699020115688742025024037051004060925371625536966378958742891057283980386566315016462780482467516017051026235076256533396609394051168225394727963495854161685185888176996653576398884189839422384530813498894177111749271389539568976862781559601853653824267334117292874627361358208958587192070741216053519169825993840466825147280686586599685430277858828314741580925073375135610124860718008409157874052230971752424312364809429219004847363983802512909880006586890244233421611164376911667721766248696884184340221911738979593140448280039928701463583500236336511766207665017920082346527964940185187380280585445084583474079209996092657858194168664290699049739849021963853058568208605318819515046788090522185132771220490509303331350632140964172842552843973935441313802839473801669117576459133782563629820169940343648995664945419936971178245049368752118308096630351516766699830156359724169776589323564586391782430614182259979605717997527253501075788664132275297290948597818957030955390692054675987013105145138505586211996641493605813761370434796442963065705856584712955522612085797810513734033025924950627942294657607820687095720089325078042750746952306544493884139456985550715475564094847528954869222053614924002228116522730122003618524569629003295876773587052119725357325611728660395180011942106934860760120074360275070590414475759851706011177388635110164377247884126340947583084827160591149900064083454409931894665696230421924952847466961312939922067331248208819962232746683697515922643073308252708728910021791546551456299247915961125997726698228957959799139659037132371582466609353196034211448187619049329403330890021862454388218811597580771494517579354974537686048980928739101625459753687371963039952460132026149855834041447361454173066941768758007161960052814123638411144865136454801214149426315569099206228885135886693069200568348447801950628836361038939675688330963210458114797841436642791577151518965044116898908345179607117095544562506823300087315910695065378911272534380036290617445980933908187993924313446695970677576023610000490575931155321616712332125343574851561816732771578276204701482914937617992679837578369129527923274853812963230388212903014941803946247348097425263607913448633813653286694324496534680883678249926429758050982171734086108795738934663809813094332177803975686120685316275677684152930415941088468105490058443896146113803928746794125685191827228880110631422439658176366347479570732483917198685378418826342714430714933447358091129656401993775069334144167095898793197348562922157152910695628753723989752784247343279317394056834887587318516766109989144410586675164779844876188982286591236705620107465375614907210534139283816322250158266302765607288667325153335262458961871554016079446247165180245897851089037921736718460819400736791194455681459946743981267209624447023096154430170398799334809207329415799904186741817085396997779543523270365954910715253078673960900924612751788893044907467522607102012269626760490539776678751522680103580911525617787727444133758066754261594594771097003496497840667068712500810422409592336681134805549375157931611654814570245949075369242510591720643899141327161305876780331327213440392540970395047627574231733918353989088235101698108047479002262001530832834131593427075624868500550387895709305043252099236933602384446331598886296590651733703890960096854738383303570578149546924615166573330628878501065092664619203592534831860667557848251655564141011256998008931904561459299774863569444224459298584093346107960807631117874265610215386847804874537976862464564023944434220843556484003386021282914438416552211089556459951066681595190533632714879886356220106740131018317721193077523148633169333585044654997070876813014735662548603271651492809198792447897402883850645247815301298954560920110503661056263898738624604544414267038129015644041314783904822959427895144218459940716908785159793740412537466755402843441492169008858424388407463185283989334658896182262804579869096133340523633643458946116126390690962007963178414014870265921466161878545566866973305408194258794848032642617450279263979572332153131537973549300633314593354552545538722289415412263102479524685389845360533805700901159632359692948277147194486301600894102158793195865838009961711767924104869581292877995315253695371286559753730053570690148741643472343721992395283927279476949306619660264452175781674935912921437554839374208532067215371190960747188400687201627952701589895138262303321711434934348328829774791969320296048501713652602382064783922061924999169080962423497379004761877924752863728425491334471968839589029670487190185110190922234948648166172401213014488421758845129198306247634517912489285671360191643901861808814598267634574823980216932778542086297296145256502864652653696573730440737535493436822529987668254573741710499645030275807770857106737385233743079770983939259227017803503185645809979983831743055277189901055821463210125609557125302021247011038611235972204542059618755264047241590411891439308088759181824849337416275908067875801503118029276694814754938143303415043824507631955673453155299011782724509994218675912013616410944021373006603175469915419354080557548079240122534996220267039080548693451063523903812416785696875063891920599155301035440213801698704246895029321252381917058837063011472424987711282744757146118185756322183234896482627543779074255816700452324199606098645664069783282181482992099366262589843918361548180581088077199181171254381043506339944628789304258415055196891869732278454721574844861913787772242128586256225768034790718184729301419536324836103092361540155757703996212192521832023088846767445451356693262008589753270745564133514182498444747475016438867865898794186544052816392319943785870774814636253226676034308726219741986556408269377446146078063047135396278193474950261671144033463976537684532639620848426891047750250660658549181212209738939946805642557132684693964198939141777125285213300709037155998798785873213930856740380756304254085348245584146678010040585598872489356782572323566441278318489555838564995837250639120339447031449154322313676377213294763846877501510689976783083279413694538867649401073193779114953589696606988632261015458842933242638733348122185726247875144172949072062400453197537565618310380881300426349377163669100325904460693850118490810887250401715647955141751942714689528206904376322724642492992089223109630702523573425584696596275221114071965323574665646377914660823477664963871539363033710459262188346980214361702469954288684638541343734387666705428710487214321801441254911645354965668500310522311176505762541881321549100925601178809507857069938640261665276867391274692108993498758218004935897405246910820655749855591833259084455990309607347803888392826230603294749768259284690960181242916446910960178038967662848462819691375398734883146536886807408017565921727436371420501844462188777536136852935787118514065333264130964138887967236357851220492740251491485818303705240722969330491908807997414459806043122895240136005184090948310580936298633998228238896463911043267515739786115788885525255723748788187067954024566722164304690724904709387272604786953955352187815284869313176844825806093324490337882007465293631117630855629499549719838128461926812641227514202041746590730529268447662140954992417777863579303695830812303674489050084590929091938666740881021437769371065913065954928829756511447463160760588734914451869487257458646833197374803786165357107576766464491903453491095235990846864577707353910045560175889087435818034762976568028062127146182553108431334041392595182136284427495870872873380248793091171144471674705564736067396281377238111549743508645071707699511370087287777197763666168064833857936713528571195998540176093370173558980787388667960733340752267457905091730844293158002289344954743286738381094127526097323287399807228834563477901193499814610644394092245859680291750320515917416346156431255253128672594373495731221138224495428388622169949090214203640508232998637768923086048762806473300324969718108434777094827724890393438074526157658863286626444399471289767086503892477139770332051542377291928496268160805888318543105316415206145283332643803995888614524828655879582193987426524519812281029324825230416199931176825209154345814196355679903117306157119596329874681757219266483981437398945976405528084090976140451797326574410362135181982947078228520030813547019568089377452039821099400565173338124390767135076700407211300263173520710532822397697923980252525376060914459535536764953805985898637956954880715874329251246385771280221682536899719222985913094663481597777207488013806370269759563514785214050625649506835437963004981193391166591921658566700648581176924628984683466546060470812369189923321265772320779324747819379381689212150321883991454660128732481142301889786490919168935806449373570726748978912725680935474653869139868172872206441024334311667411840867890324533298497015846776897774169077171735557790394238571998245128763927616891723738142662424530595119043227932087835808432953219996048008280022546116642082174443878377582026151918938928242344024932064008119251693589888438860775667569957703750324396932755394025918396569647664785690327016657301473624850228397203454218818344702406228082372981084668428294066027777896185473268026410011987217597687101655504069343056769274089345088265932076302727088041328429645128414469440177226888453587215252003512735441344648582820914362702657989009038910855322583722377349753871477988168918793035447279557423704824025159686925935556354360536154175681690027035248165228619535198273517292162073665945035726069259668743201259127209109504273145748635487416704995666759197515651462669802202124533634567380642331571743147165650252107946975215123078716328436513409028932077859171744994593089511489757663517923268847800152255844682284525011647451043611286759779037213376422694405672747426848612162972021392953387041068592545286459145528746514461671601939891693862342934454004497234110942168670207044453773815987779095670915122391800632412805912072806873621114848257753381777933931832968080095506081404101097329252090344194905924669838918754282636898478807965120017252617935223303335168466365581819267484464880172937154740923992916031141447254016593270142175004504693356398077954931555997589231970259132739801912232019088606291925388618210867184702472464158896166174460186229014280463057011497693001651594233037049198760278350292085542923323788293108757440374195082768514753186413153385709897609899184028259571613771304790648448756485000375521300222778976651178278032730096211067635308528566376682320615841312271119149002289106727311202639573069187661554097335794687529180645711521810482460968517527553572408401701565129877126345849688264470238428449161739094979538708254332188836295437402982682504009197339740241679189973695764275298718052562522215246803312377762884790706301276280865348931867564469453832461516225345602894873758032557598270364473243324335242181771621556897284373350539592605845081167937227591907897199072061904330642974063364447362719489483934574255672122596257517578937083570124612087189718239632027797912074045021514860410872642449160897322343776240378354949771853526005786871454520377187137990922718352544328503542741924326659705473844825119624999142735392822153610590796091852852939787526588754041488726560881611121195652298705561793167367757086169076398606852180564386843223993357042361435221217751493888817083344083494631456017407452767140623116220055940532889063346534491632554721336639749518487840385229750221685253942184748326558573596618648995030619342515262844430177164234913140255453821266001227312799571871233466831857531791259117360642124708609331683799949247267008387591701708651399449789504486622697546952321255615769127484354334972289982316451212087900392886301475917621109352145756298380574736470105964907133827236838209364105838230375277266530699717658218755287292974156312576935286324157182587372331684953638760647420560811194053213700978543029931930064418277243221612522742207754062564749399592664090144834835721003945054571873318989831899331828384163750221877234110966888625829695656966435619175202209445310659115861691282512925669100692358851445452733834426397135033694385546594648508998675555307368727103964493772545539209049950088452982794852367290692454884079951375892028866527932782402235720818068707695555135141783123804273931634368640864934841780562205896308704138209894956416483379141019719908677182810465472536170611974229395840953949267565639672831868578615334708030653289897441032483893617737484704431501619299330828100728161006967446521557832545429138322178315784114985704773866910962593371353542940300816408713339401475957606321047927192184729757258077859796416568016774842325940966729940903496245282098388487111021001520520565463968459440621962337538535817426851283109085283514726734086779391664822519193490018973351128369914040539801304229060285738441753414542726925833833488550700505447177815232961111837907623666956174528143846021617540318549599285192731744949337564043823467044867781178370367257043211841328997173105863252145111731411015359216165706221872627896642995519829696699951907083331424364829724349104126210962329299560613200260489077270187822558050843252145878498972746151520623459148355714708949371502853395665746729540373915100535310103067156628240211478291268604966821691946605655665672241690940083700092662552301510050534892133333152339413014031053196107505503584158595310084125515730773573668261072310277124699799717454733380632023864662679352269092799215397072602162887640411207375606653814436508916771274457124357631140371356976623203975832469826017877128867589848673597879965664598527573510804231695687682584724922103864961562105055700106942863229448839987111764510421367394095293873260315403590631108141410718294294457351713044238597224928541618225376839596336686290239438967579160738649919796360389967840274938172157233099886410201171567989925975828508445784740946052276718067797480539235273387136259464295701658931677004992871196427614883652056474847404469416991995005968166456545752869368783442540901378477974348800472801206952240272168812961304775415751014240931403454743539299184210898597407424294953313981142672266241024990256940689130819302370787066728422541387127711863564453176023226152596474440886946804594941426102581227163388855015287290622081161127217623750733702598295780931507055868895251905642721660566927489835265375109840468821606639154246742923864980689047479567535993540026297127389879087341933822350214193172072001603182244912903424172637604149516475987368733043153881008055147149823880006933358085952806587407941573908157941284715922730751178137411648168296969529528643684091831324727096745892466470523290013848856997244412101380310775821986636434868342990616092984405402070015021612255884447333484905958067760006227708992239638393142842573089243954324370662578742246653530050166357412621367378776272439216027562551077100519712343620514275932821083069769453447383740041207350255785271051534880120796889445152788443150470450526328092611733154871229194488972318868511603332102311205942584181401021076377360824834542583890182138485755927692589571680719525376088412267534521078651142666715680495909072648544342410420471340999130450819570563193304688112897570071111349502873804568981851885824978451256548996036243660768585539608499075028731167514152481208299761658483805163961099105875028208854124009526321696939197886868475438294727335248986017493899663371671496210528049308812684064737384078814928444904836766349012830995165103628740879348246030156034538748267119980850535007612574122745632503435031694131394035511973353923074609947018560449668183340013913303480607961452075100929808778923916595471664282862408033113861478962680526115092834427944073644583203492827123155498970328584605707714382799360277879772457022763886064041173049213515211298456249765747054210630401622096150168422641779981181525975928282021246906474323280443827047111950037997521472538019401611463831957893547163598212850937493799245655918207425577033258180194240410083994117272753450751027500083692503373370210443331239097557897299579618132938020616109801059727734456328812731806821937692940634812061009714629682952807281704066055917082282524462285352223378146444100498474436698144655397831992880218530109553520508793661761153607116833753034952713350906061750678243619461701732020921454157903883620467997979436171367547142131366802412289399758117680718742395331639050100946834811881857297374147809054967755299345762181868175618184326249774193410758286020914049404210496180032269050244697125057219223639843196206598714038686951658051222184145844967009029347023155364629700185720749691096758782525580270323959958400625264967812786680216445576551766749263104708134512281201721153260043740927935715400756926641166019736149111736086422647004288988826708391183931398704892262239679691865001692393012043475338804579486079222246008157972036576805034997116691849352124281363101894013760184469966920703572239752505432912304592427450127860513712982494926353849271955123205837372227543337359957335623597637107385781609926464466043710615788491409757691539796746960242320912462353323712719224946084385251347631356199128878027468834895971539127797186952071014718484257127263871271822937034131918524145080138585123923068222689621158466744169242753531093729770379624976301887778815553118059381245588362289591870414517364414810301118404595371768444054019726508395937226433769655977502811559818648485826277205419392617071670000704454593223335787985086700862187556702025979746913513660014639793052815849573893979488523621549221213979337571465473578638553582496672856887055496053856209526692372259699802937977610411784946603245260836365448376855025910292748922049239144763658396563849802845256120553576500361050673147867398186429122720642352090885865730969951321859449191876853172282736391086204200377144847903428303987638641836134865029824559156806310601517325824054376987818381779689665778656292447318930008979624801481503628870439069850339752874268145980503708890866243534426875517499183851007789590212388205063364528551362019245000543538762552184043560524832750961530921731010627300016010458450671397666512109128864471342504713954117752971563917753095023188387053061783336538847434508345088556224034015911644607132395169558012820233292394373516809280141328665042586873825460070250137393601966054864794123144674983688953112843091176446516917077994391689705862390135642873245774487199425853075292638903738195373472755483256740204460787930418543318284707427492571202660717673659300098918642670455480190971615308000421527096697443224045680876079526912542315788525545707285594848547052991182316705823760929851845730337356429263414072067245091314649706300525924744653275683040083896417362630894131390338931722549876050668841433343822377654869579632532505170133023736612442152234305305937524973166232166030854985550580386356670335767284560948338309771734451269691830845743389940304669961055145231642919537678622193832996862398660109676944709441077018256435966378790769409397969352157215078472700047109792575461430906669466991979648781061119140329177419444473932708698689340563300756384554214398820093960871454572065670192896382977728659521596901084093693375268781148098029474851320162147188468403875593175283136765993961755244833058278220906519524479576729089927998809131474325057752674769953363397119301743980213895700845851975054165362147461818765940182904796179878581313213413042942534145389709728696563832505977493022080826753569815457338159089915055381167411465651480802842386227253935200467720546915658238093319459104645710058370193064356295893335054130183825636900500947231539799477569676160862517926025461016984663090521796376068299821082428383179342974042848778298828666513824896448452158868323923480550922678427002592819791757820215917007854574812955048466673266060758211837788212030247864439841786471430663416885709492106453023941547315601420618439251017217458677258549952556331900104352267901633355182409367591826552257385135614409621188743348835392210306562443008663862674634386253591929513977878745996889625043621218361739787973853140763714134020239515900871209427298414546992771380304873580940403532762256279220659618438920709329653451666573643469829815672004732335248182780972315032837311844876762237747919683656983279772214433284726945770772127697160229268307338748617562505637437569237477353627138954693629343542849931070105556020710749013894983206104796258933761304628299100084921894141562827215754420460124219807531759590057021616014189850355798305679285092698094515902656978787408967415478384468983799810237630539243941875847408565388082872835783031517982883832900812713035524091876733806292618651962850030785513081782946295254098232190824311849905274534964805871955869539544903787032065434253091219482764402515822096604911704868875113482253050495314367972342787051490453141019019236031551369553807334207017089052998019859417345759641230132784693485414030408228768583756957838437989555169918019817138471721722832556275921992054183509095432233311836488556502043801218709865872210200064348938871317780048390056565126622199806310231516177963136325323907365670921804860788527462798075983239893808553839476829070076572205829976765098201683274521385340648834618946042828071474333756876621635390962000015540800293365031361930676525113213357801012673273823561560480157411281339392472307141453763967342186513253082340817629110007318318405098794079628262005859431447209744743012550915761019078841868798290381985409389844330377180661547349953981237552213476151384955515997741658591341061482777059236664777430028714269904506995501963090738258353204883371159508187115889988492433733164815638335392422693102543792617363150771525786745070247608848097363869245658159302927404778288450289732448402824779276771268297496813453411544262423738855022131169644551172566172471383754181028004685525178885714785895745506221501023847825703122185707057308253486179375380263212398449944961366202762305848477880640398919691626247274793669110657987319141474214856885928393251322234729342057901812925837241289852239263643626134991393501298389921209494899264191016666916009653653824681112694024525483853020686882163204683715691651396713849786603114905156374616891279558264706596980480248203552003771587341435787206491898445055074760429300216327395679119603535321413778308710561582373391583695094379417977352334717087966393737066547912796371124944696337524069327523101661959540612391497864601455188124738969277225098234636450624909595117470567916679359450260497370602490992369214968039271422159314976001042860055827096404553515715067186208043894048869646319156218729590090285916304456028692758849492198144014384437954812449452463928720061930920809155296043586620501044166405890239213037503946253052452127882472093049080796807133069449609607263253790919005081450661056326527987223610615358655387439438841471557042935614727514073628971963708995137935388195025900338766116186282428726755471760002323243744005783837995873064991458295704524827395762258386232950192848225054491088527082523671456161529463797711065411578738288762542138746001991123039022895143868193155145407767957504683576458404860952074306418325756066994538458315384702866360356930070917346781673784565997856072112412361912450396282061904582107679010369364037034155885525986344805471144722011120313417055065514132533344395125523869060803274932945086627487113821176138705311630249010862545913760697503635532539178137773240652618882537819789634036225981848780601370366055951824671391388172867259177751345679677504014031107800868186863343942605999792533506200904356544236838562525730917403900932540916881647857400740595365875044635167929635750239796360474803543892702394249807621646070528929833724301773485569007814745785519996863846969864531912956206018531326114266517227201181445092161623154751314102164657362671137050493612484255238712874301622434389032303610815188340929013856570920716525192931862464303178546459789424688138634137398261277156035546618580503915275892045814438911738558739625975348235230728947711547329332536312376914421727095707204260154652329814605688734513051885142149837431074614405961614636274348310910337666679027385351990939352301659337507059063042000792318370601917217924662222690055173105587768553297845147017891188711316009612284349208986395890840792914127286631760000025582595780031753367073609294567745055146792890420045754773966862117745711217332302254602108277360298542581050469103088355133390550056610863163951115694181000105396785321188804007875612317131811571325602597470768958275899523583804676696279164119106148808579681678305888889802743716446152277247300386839960394273617262435695023021329300081486169882464065869170483003536617108922772781161471848488475460325922733641352145679371012082733340587624461978180331363410255848078600425810564737664474686891650103601739730192961588689344484385346209241568940551373708051885466999107413128088062923230696576041524587817064479624624583339676823063726624733785978178267005072188148282546379045735405592445235185523119763851085518131578675242060740391845576918554492761760972763286508003693900317619227969380025858246582093878835101348729125190300083852114276341672932847943339706076161706560893115352821423535025188098002177883148907452671200287765981281796808254043180583338590902393954180833604395876565494158994743894704303629604576754243765235600444856870864230896314087670325278880398215967794818596811223864489801750363272500923758872773440263768274829277359685897557120798472540187557239062584206241060524576509433781450970644042456734715084109035882797484159736870477651927856215337909593245713513214814459731848000194812543653060078017011699555016617721359454934542423042374925638070678451021553486357123578337934840478502993022782570204340561921936403884736864912301929075673351151456927884762723732833786396377373584429231324474809214858061854500290651075312188943074660215647348544241928007921265419843482625293260556451482149900128452792908486301314108492266271205047438098260661038266133564360693707217180472332267063672391460092748055664028154131781936330589416206317835146815031675752233767793343462976142481772609009221592077729963104777667562615114556342878879552600509900033493309498387955400703243776808772416669735037683049076386536891220466267788111378435997484011590537784337664041852605285364742429630616719830606218835389102137804581583180105688885227471637329133855487354589398562051235240697637559742922554413381096158706693909451106028202199809542292334491979288350450988528731272774953029599197217332831960388220138196429281838218341925619400323448153130604871593814327287093988674668689961647189254865247976109071569751353952653346686326477171756435642067804085908524774800302269597810962253667097462849645241406679538104792289008206375652280084639812453663749316693163691664763943872724057970277836286464371987815718231953269010817144945633201732946695670589764073234460719884480993085087743948809813130316145648305130122419679137903674880552379589642130907159501100023367930629625717098113063795836750327006594720313170771723268762996447172325783193550294960333755997829258987279491733081186555261006662208935135937352439197254400613521452020736809675274203291673914331424688756295980427206887792056267016331057864932126056259927899369541884947050067091181065216253740199355541368053278187415052825060278717027015609959707364487834375182659657392506274936904988746870756665314568395565925733103799493860209084058120358645289892582080747086738038878570073656761898381348958721338594775275362829643302155435732636358315529719784519308653702083472476074680819370809190922071211253715715026250129773637346588677890395357525852103033424715882555838317168790222067511279565526616150264384016252868942435595226910063668959514172596292739333260716432480468799681349605037680110341160441890820573879877607845807827438900329650432302586785567444679696828242007833635986031717176295927642632228210294465147180976092300222757546880618413627811281858496654084550693040004797464539591021730655333257754110628793288682883252743261762738081276461058283863427253157102526855760921324518612555837710982247143085414291946146787582871745843805404214795659037294888575231940665791059565261862310825229399238778097449092480566372148448156120956471909631106219280136245984131697109257354664837529058925527989234541704990773969127115130679723446721512191530143460157093134881271669832053475383653351359515498385075474634650790269711773439026514338148985136850586583733908685939801866867849556529819474336402831763436876088855299236586364758722678553654878805782056467694330895133624302555880561224068591358225737935866220697791679007501050042654646489112506678529087983372677136720934896835113822707899616918148915783998378096511830034628884915931789242876706977067357071416785418617831153243147501493261861163539285218101939891796451648130741610590210188495298952305757434918487658165345813060424614267968199275611696264317493004032154755057288358160490870219923608193286133217710966256796825575208120096747121749952175297777154648506002690212276729667915129946677964231439389788479278991265905742685489275788834745094584635604660291649356796897564438419435068238378643118031440481918993615204735858066585252017914776005779175313240970980853478881785124680134767497053827769871799112807708499146867261679288423218306399213307680019781191715506628764680164424433510171675093735169137810451074791042701807003827299044449706085311148355511879659433544874273901310603668329062681352164709586279667527581384333777241048361702889842629028160488816650049020496044857229848594279074724107707297085024276040796794523478088969799183355801099217697085309131836402273562979571810771633916838221465478705228168544872667199128232506906916575807092101750024582528703647209660314825186327135204695016576408506287182046608015519127934388107058160980791177476021977058117424519713754777387703301777485267768095062900732493043254706953175942621586730874205279263592522756982241463052845611586363012267039334058004918132192455340724963377937032437504888960806293924998918859532075379545875505578101025360648560533425776015550395709146050826075405714685854948239089677934055894692224874814730472709111822210829004621759944657608051005785783378111583647091595286820214232138903063483374249608315155208177525714950884739969480794222317682815834217081027388690518846757367312218510826511143343979998367007983403671705445958983322201919875771253233584984035524843640723248295098151815959111586528782026451842171274810936135517251083422018373990425731142479023491440115801907537038824669338143537079752014320350553568834996480446931119342248647244982508776749239595546214489984711007180961291155598578234245812273624576719211240632916655599194288806173629952711207100306568109866696282824762572533423288964877022522810166430418530110032332663662668998718470301095830200350938392273971096676028174301429829387850477982243111865370317088905243336801794646224447214823343853011458061762013176496315662464599981388730954621112001244646932676613601416234928962326360412917379140211398008259964533217797899912490953136726169919142427566221328344231460549606032004144209011358177866589476611716351686434679006412207691126793680363373735994176717189225562546827115695831682386191133261008465455072795077839514130439940564068656485520931481723564161642739231978947416528955957141635137328298930784989418162789056222742141147652355308824012115258452841726631606854716123030829435538344627743657933932208155776679167818231359407720493872455590325009904543985642541978780143153692245340236811706361220193159983504018243541501297471566043794076690822218060366513518633013404928014083163349971651548302868298746733857614217095950793364350784103392568917886771560765153500822526170393980716879760450957204905259674167739489030302628247853747468522663299928047332252122158125553196733266565967244424749619399544971173562399547844075206713199104943942262842501956626487480748693188596377828084052655413676987784534685994749264194571439767809321534729808682195468012597535141369390073890616631736168946806025133971113336666385246728163265659821246926820637641316253896313912049133848316319403303988647413207907808283095524667441950417472152821119737881481700659297676552479358754195226712455651408667012371026944817099699252951421100972677397467664598099328332175947489663108522643673331234239331230615411062028180484331226223248555001851426444745340337832059344005801213406350301307818857565038633242106351752954979238586153057131001041106408986070009806029043413687451044892110488922527092665148042901904078714711263460391198716363824224325210221138297346158639906611700041808513117609443751635174822022800440039739056368393745420650372476409879320530622736313557127791038195243323547058522929135475345868615711628813031421765309468659530941739308829150227980662319837388909612000785828508588102743539299615532864595038182464313299699464191707051175412545442007910069733425075138971875371329341347661162220881997596265763209421989408715361142259985794981267534140853162370145503490396409759149998019977450135053254116012507396458196249384051365127379255837823590745408523692277885207258465136226066058485238515506989837478929864748734911671154387336450513525793362407115713616624498664020930740925620370405731850549013462722365376699181189887048840964056527094459693406083483746360582765576377543067620397217803911711239616296732923388198624970981252511126169179388244152958383272170896526679190447582538047948766693594882063335680920342457712373013636586789925458891385289339019529642032057593915053667633652821904692724997856906622244762695386268603858448704529167038786139270754503538566154606857491500328387527374447513961328651026633497663632838000135559847664037223204427116038036223264620556362256485563273045572303480860845441835528002040150893712867603471660128317166537976340422692855551654052433433413535406374930595575104093911081131127117319799465564386951786776911927842420154666746862440298302735539405074992217753526747513460817206832686183636899288084186275064552761091924366020579727293874542479533582805725169057441771612624728525303315185098228146529777833558085149419054217553108953231842255689505881687578822692696760102067006298540463519787675095196078711906821643117898919698108143704108242405442408583090557530567910023539960166435063788148149607315270758243496827730706063005091629818744386531070257812261830824044491273246874960940588034065049978041314609276123612617916932430045710138110990465842175664011999467456731570816981722025562701411682176233949083736569219194721989701670116337267703460959982294801051926459277226244168313445790062384353544677492504952111451812472594811745378817863515750710153714307254019379261995177131414006193322063595712226228654464105227085036362950956065259431899150973993522798910077508576466022244919875776708080246869225395111367944273244014531563358173816452387236131163675252319937000235520455315760086160006847429738578830090043709103652149380350015009937778573547521896861137448250036968264159750547253701843767530880305506782102961391943661042433144246019772227593898721826057501149037552915621356734917298298956506918658935954491294671435873072214254527307762275751092108143434038889700658240256017502020709247170455050650037497941864539075921376759525273349548900045953706849132792784996231479650475110683148583514225722365054495428963440166168185752046505277729151496944641455727012803862807067855595752586612029546490077773213737342657057897403764460517510460912510757571439073036829396910331109084413406035184172129019027990186254291573839606432877687965457937019630242812734600305495258471699570753086614420557156808397799875805940011529586292707135862599348133291967995121060924449839520730263453427061306142235429689172961609726006640526580307738289335202469087112156638446287727311577972744632548314296023935031941256463230318865692507237170601611674607900357310334452529942841538400133470273676112841509659865525751656218984690956357151146034506551719139536644109201789221182475695093281612658930551649402075456485616937114656288546166066195189455728373489858976017147836132453714847731781936034894336699309040646523734059718982853389931990656773623709453673212488263132311352852535649439490824941638010105723008320424757341352225430792307787374138619200935549096535953655648808951320155293052497977858680209335249286614180412697038142885325159609780798282467746590241172830640276151125184803096748735378978399193358605714959401401521664356096219958528496894290576635118177389321648732438457481940244065277452747995410305314218960085509931962340019235546006889890584313528861468626690843066005477931847552688131508008173804025824071901792447246753746847479471536534356141313497627867993282497490443910492788566857355197891100866162043286310148133243189007665275845749768337977864109970902707823117789791669333005942476851653142836368963675218680826332623432241860479881022858429851605832484369400695608520527370948387837805151028292485230150728741742927179003507999519011461716529550501874344802633798209753513381500898619087559706404245144755721354112882642782393303731445866290249714523011724152232559566150776763853675594939650361150819005840251095138084582286783926692152660114277816746412264071044015533995281444067263683166851643933044984605961027907235875326782253679779257274578670556990998422964641760230584925875344192398679006628391478604229399026271225320835180905082196936329382683475454608015373792177028518506603313793657201813690809578524299968159031050347893762202783732810145663070719446617119087312774853167795409203571848518812670104093612517828661319548579846301037942757710075870260071508434546003269622270593102801233939577739715373220749374120600962873896205120226203096733947278225526183347529514547610226470957615553846688966769427980163330177195441926431377702380648932141781463018522152538076344449649566144320061518924014753305992209621287890113418078983289405651336262712853845005593166489519962494202432543523839398935593519456939304868763381971145934111304344429035791935751436695693882713483375522382273005465015511932233151122827384071083734285297138173139340839521176078016418653597173046885391337886286175934765109192843732084822736369842384064723959384030499726394867947357801157778796788515960095749334979974524632987898689575574724280102288418379346564194033136406373429995836319011550263817713674215034250129015437006635032870199820814312871265256966102376991165240205301698814689345773757299805169714860003267817248759043071655533756193694701204859710208978968982438252490265104610815745888312889202650171194040679780067767977723153704196080311154926849086374714448593880092339759517315042223746911438905611635235425948331055742733013955237876139115835979252226529568871368289025725128764748148005947529362477326394462417490557846497746887542955750296534640772486510286270721209683767059008669095333602610297733543688438064464721685657817189877938635396234415307874964532572393356747205214391093714793439773670191981466153411090629541851888344931339962123018198172019134545500105720462792130454423280113628191687268347355527706904547741751336212429522925852396955700945515423056507870056308966875803420194805737993002231746451342208572966837563033706276399876777176087822257417934768823642916459183367530798823889129789098684737324405523533796281611635453796334389595827805082138364918284387639672283001755144582596043785425261201677453977921246523657815351014466631225571333016385259886759235099111545477885297820162991616788128307076984772044623728341815122352364699275669227251425859292304514272892919746943687602635717817752826286642395126404624560549911058430275829421138227276154427765643518582741257591553061118817330656900857630444719866933414901110146792371524563402102346885684303775347022081456697006344037510329424280719779561195517250158471306324369768828725885930979026516390729537142253979655583310466669350580171405084490459887724291939418991123763253549347335539476002873700607753759600063621501692559506616629979390828526083651183223039461362931739798237487131933483198539009856258140212271441117399525027101979840062570234474101408461279834834249848292072484794796182416330697711906497588204854566336689225331505186694054774395970134547470132148648878479277152891026994854154074933187572390195601260743367170974883759844324972678338335973063955798081855617111875537276801089840491127023012703866777830710744996610839841219425612111884838423078640018464578098671475003253484721887265299533167580649442101535983321293778597664594316970056295514839436969651800541989039233419362614097517078028235499867272192779117831714237511144306535114118997407024542556421386741289451343105963486230670640502968182375054777671965711857300182272793264525800135194648112465343677438066559004626352430198525042961943055451003266924452556150980315281749327390987108752988580496151986335533083204790529559373479577444222488283790379935613494551855258219276918726136640606307394971435941944594492418480101375844170309439894717214001069842474793411994164390577632278259369275453305118798402396642022131080269507862571572113262850434444373815415185292081668391382757560681207039516795170640375388430567404876664818180493069043792517875210764788735587795747041991735603047564532580797648918061390093056468203868544593563070358079629973795816776048316184106749376346589671283709691920303338316531129891303673195587892858590858878954451085491924931747745889849479983654927699703673635864163219559817682212998609714458397085142363910698426058538856331996065539140202506354982361999930232971882094334308881212249434622147408375977755528765930533966966936242242880557340324941057275063268559103369827808227830531439228094861534686827187645034105765376408903970140860544194451470255930069848627994898675622125450744227430159371478344514473785608338278145560652093226880023123098740004624105930077523561902417329151649081515796725047351121755650903028223235511836907162091664483167386299967408950712301757692817366714498626940846364757004092410168895144331586116498584067683132560102167660442111221820455271948534814807095915641864003914927856964744319202620550996375846955321556195433099266896290257927333236580765268821905800540847617666644539671315337830927266463405047352126437117330229705540575304576735364947738447555044567642795619918245887384999265306209941350910633747373148800297696395476568169597768624924611211829170620890928105571851394573810154686643215802920602794035775876975936487610639617480169156943327514800235175241544694000099885701912907826160402783661194928892810077642694728330806101038625377949331007417022927259367451252173442487414111245610764320921271087218797387702019587309818978598184057943813646382304166548386915124251667003761199829830249354733930364340189310121166618724002802769431235319693649158200285692562056738861562736368260573090831036198335647120569392800373957817594737288122087091746113624126337061789951983915135767084773768076534911289237803298290245956121196293282026319580003948296373805338711809799165150901033433652003447348178816254861928988848532767696235386166513200853595533105833938823879878627887899771931476400782069327751171740871201839840882435196371155149102280580023247689374575900359096083278053705373465216079929758730775268101820520157186470385722887655063316891923510509248908124052378341156559050222508474208358839646762772111954294141682049502913789050546429320258739146145964771103363984480604343549212816892000483397023252616156639149161811133576459845526650568468518082554629319807122457834082268571837273696813493760969927038254624625437887612931515747496351043867718002610033386958086118083429611080718312073591949956826576804360824061360960254875083749005786242806853843061820705883686863936159076642872736191775810243101726544118517282480543929129887591971844058373607980144414673305995204760379082827187398815212783874153861079671589765718736569516252112307333846210498922881077824201967205887491812783376191476995525444507977196294681805113980278057583223355179226133662371472132401666554714711211883884816383434061911550745392079742041879900031660526384660762368699932939301503676491684394247251064292778120879089944925211690558738776524978038384108779525233020365608640721897214639700229618578337927174266593416832229615900946613489053867591154200104465516089497960246323174384949463085386215181816505277190826444552759882908176298953833974718500741179061905609201257411892922672449952743143802907107754024310969234768837151666639671203135360713384010916048696648828950722495525780076920299325836159593882539251442488693573050327312225217054577151034799280315770500935401190714408706834804147815952674611168576023366082562932441543838658245808590969969362065085304686514864004733312003870073336821038438235911033787324707179866343295769382575279200582653378726222997217648281180929219173063774707011663622661000318172059750833387201332823222582063643142162146965382985397608102710471963266855296469636390141673058228053499452829369204470191377468867229924272359241748445614866425638606194938176771457943038026772345718471371694577461822188358137627689712458286876690329481937461377083831088155516571384376089962404305581197554476985159951463185568212408628289588616608763636187228868998125102681445065228921531831522282992867146105824491193026530164528366641646812459936438730617801349024336882023458177983161795037115165049995903040507918118001752319967616137550944956428297801054394086466980306394105276350372067070141897961618049378834068272935630684117111630608985811706612762943699377125593334569369494584424290401729772391877565637365090646964899604334798815693042301275981863639570100031810396577067204887504464882676450904378118338530467613658644782947899201147792912067464789371586800956477121718295012753452505142321219482298482291291214296058024391932175570530688234209342741297766680591701581671497754843008496491316632073140614887496143494167727066594439996611664745754097885556497740446032291873611833277320556896306244274588923039576121900391762845118938720229209348326998450964380380230154780827857332277814379016632519228883045036211844723401905079054560987632118686099388055635958348360760500640100310570902132642627470091698132571121381341047563992808574204045834518125346777109946170722573654267817731710542163439128848771473606529770471370955915931958128866638047581980237933782963941412073863041686028525471712031457038420120822365696866584923120147770602815128453268613875725582489563251114380777877196257953645793647615020225233473669747552439752635336618235497496139084159441164812826926258714760847506532513014340415591701004557157543858757651098981484965361966257980458616544068271805131474828865634505529280374287371891063092131218722391722742158086463120240075260996887502694750669248389881376243196890815231541721065687506624011648278993701804235692817940011320124132014277242543496826997574844701664931125948757289953858127481725890640540158167265674015735398962635770252874032923144833335349787258859508848046987506522962152346922138430298329969652148229792756384743059463204822353946588100975234598193769353298615636527469308552206773611772945829907750163259211928006777093870008315933499598653738340381308980280271290079786251932710877572677855187143891225335021121300837053834160454383465622727520358791240991953325538811958937334739193991272067920526719515816182610754605815910363645492059784795271776911398455566402216473269205511711903292296823258964459057326877194018417062695206513286108910407761093430364840233885031515921114086199889236230810406095551695349262401293401545567050616216599037561189824647688631812616584920813810811396172156707333848202974399470218847145268631112437240758425128276245904111764633454448568143839067685854585320452842884263391284318969488555793342937292991427253243360911673815795046087968335118268270660575253389586965446912468746866804427661417557134520786275980283559523129145651638447342095402433668468443513618241517581859563638212508392015165381334417118328048540145971901619650527600198518280335629037837519726590354945037350161272724893973661869876475568123206260745570451878269459743644366308110701292203747600583481559877759163854162756159821255558589488012905685013879999422172429646728200984150663225908373333021073254898984477542985818653738728186625580271958528906372952622405141801547866494985648240050724098055152169405169883264525767459299295557269870008833674476146086816345612405569186815197727619210069666731686570324098598757402236716049641852269468612685351390744433419913509686949086650090686008837357171964805836626010457782439434088906980066879522585085842936147866013644417021796909095966258876887670542846276586734597839804547832998063626826004173670269739643444195006131722684774368377258444742210295900172581162727788871205148586561834832179604245499027096475577856427777997153507020749493804390163010461237653705277470931772933006337523076011576624179986207657754823145386050026276933419012004007434837880412184734341576619581148520524869901298290380332279278790155634356198761579006057377942074038620184178181846147404720911767487666816628755655755499366710417529807725674361295408698764372329708109586913269415480470214720221773999454226555530237354306125755657630866495970069826054787603307465556470463851216040971570010504623461355849377012623678277575889540797885993135586766354635654382209707680710491216388982278160499582487060364140578304899387543831946414766571626735411404450364693489990023246679010806754129325438926395314348835183939915345087682949367936671069030822485523699785909197335828290975254646124310721005699054732527868698459170439238985725654163089125279611244130626635854656126699286528687708661176847081584792644801324466547200354465630622456633569127932345524374439751823556937256557271541581256414523627827825706962505341799778954417627061085176693762461555072843574929712193572162573112121233967963811976909238366602231360570374469030914621424324917855034881117212534719399079183031817081500355796338001157870050774610677535943310875075327667547286426325251364980015015065503267112699157992622561040642793187915678326263701474692556213758117702833666358344324225684844308784644968906054768058871761602336311706839954164639074383493014148561289498116224355872786106776139287615745834973521680527599694283624882132382504410340160360504952460244738416945403353790504329825192670241801877158550518519187539925328373813128656350130459607149277148714316723483298060792093990420693860740027578723098310011592689683167163401697639847584264016908254687773491801873990077433298312155687856779587215413911498206181629891177022962619576971584003546438021122247577367654110150242454028927761961954457189510695334265500576056136308850422073667167221195221497836006824210209275938287502306893895049913838860108819195142378956898739678082540868603853446330798760107296941888297278044308684410828019853827242846659875314466265162850558725826266339710179685427007842940018526563446432781945418178838149403657856069985133043068849706493254273580215842863204518862573441964482571713538391680234106385376501371001943693842406905343599361923371712992488428985791760288029355937220553824425772469712322546329928785734742053174621935142947223790910780938380940150303747208513924042577137420821769603918025867298583465480512620871755900354907685337899782002766115568622240164945715503035158598467122719737550117768383910137977641050881803570847339540445006317982250263906340819586853764493668243804648551579475888201605521860190187076647735066238608525629798819527920218566884474073515179827724841963634466163251630472024916494173104944124660978593781509563310864862896342887493220643779728548508646591584455342895106120232285382311585638855725407178818550297458143918209429518083709346467488270537240656433943607564520797667725335057107281832433755062818812529326288241471126061675830142663588946143975426507860941749425416265642439309374447970222554876278189042875542808279047516421813076226616726898483713787330494809651119679126345423227445239810570592170347358049442071029257940944544774829203002996116148723373703021274429212495834857103196011817435358119531995354664897741764737174141471101737693026049239851704263078878197850181718004541400778316603861937682352821690955183589134588248981515588420097693352854817656337412898643498899726529589996117674480284265011658671414692537135355868206172905177070713711046491821906171567049787634177541465752124586347033135218887339433301013289582678047892564860707734736121810549479161279646504336256443386096857197792214051517705455481840071746890774860452805332322272968803241497826937416343782767137838622916989924985951837382285190100431564675550857903728540562641768150604415587562863209396199700297928799803567619231851104252819681259011397206248415480710164359738711581113340781125196698076249755503767332628050102658702422303041629682204846160991017367515767783332259606441725669701411401967930492153936389569549688829824308844159620357471390179854463819407061894520377072739007598363373126897419335372225975527416266487633330203958335184584372614549337762608393561310396401460739450405746212337489214119666889354746240150655848914703802494104066664512075627597252320515164097316869673938455367462830932914353459162450810612195173345332029803826747848597933518084957115679874458522937069318470466378475202505650235191555930899555630051325581680693760781206719931503386628056225677381244560653505761175522656497787597735216645537801111930882666480563729269039451626158746313675119757941453409473738758385028598996528406522391699649086184429433735419715937906811165969504414949864273818754507553265668329122250991863528271808801661755329176159755245162976086769569729449867612962014749250847718714257337503893940271900286775010796408709371656526603642719383951693128748328301621734312313843712632604047980617133521859165956164951141306517062646210639780630575614519809731477046934918414361770065859051560179764015689356601389929873513744902621323776501894671756962683260263367487778125345147904515546007422265257330976256994012284100744812460695098012386314987094998347402524734612538580950954845884922227699379089452989410886242696131054044105620428981966008535668155935437256939882124276530547013709421603041781427264495202347936459928957841208464563871274346260091813715675474707005863035639305048046955431035305347177899114604200688491153514657192125337644972107723930166403083162341331351508889711878379245357919296502937566269560477819998419965268541484174014076145918351023181932345538394005045434230191435684639815416498871026556697212566655693670434331535025769440181587146879521455374613115911494878516198494513695789233039352101709639140130908243333556207335442650223832355059089427931671898324785485266286244971508192343246962262313015566442452537968424701941971216777549165151880956831816027965386638114955010776018111958091649826027984282600292003027240594782746121595541760673152948594603634325662085831284557069530241330264693293607299355813793203806742341671771498612618833497982698399234956581575233060669056390255832238248535110165322693094959535243162996868911813296178966585281783839347063974745487784470218242358485678350571784110927118300416211543396642131413315409919227405975091832289688370225899173086146355235800974257982785866957009343312049039836712839240413486984000662564893923923860642309826485071755254292833896446617849188373179805870877511279359933797562354066572339366255900980595880147375205873057473866569920054972737799717672826795675405415387620256645197757608367202503169030909741269424048041393572280270671307822559351112543271457458858856616234486010357516513258234284918964207491746423198518447066253077220633888637187129845756977115236744091786021028623285980267457554123646357980274642285703478017966488767311185509426834842419935346472388233308640872690616523733210178124900069416285323518793052365847932446402562704969523282743104461971946107709832848013177607258841399901211513466827656852665111152410469537898226299223841504093618227217978529231048522689465060243873300451819955649729507818782799212058393666661297748854638154895623267190063536768549319192761058064005562074241291272279768714921204234941629393311058253835628661205484128207745310538406641274970015234029005143939373126043302252726659918700223344861343847371208231765694103218790867603642808119794305597588417185190585433139643615734512592568002396019438652967559338558825582985793155696765015118832314291563681912034988929575754777112761130784675913503141309299359335064266213058788812252174739543961605368337508744886854754388150505245922473889536511644326097673675771369399124232731126626019066820884304773369112939612419966905729036972860888424090064733141667413449721171666620385488635645680113977010590601384216881666640457520275995520343079174878250086416667422812065723245423950293553780367328869914989676609623923811454190633920378610785194011074178863861634929429407145704145835636458846661842736792217544284878220547005194425826787658538070463883449643637984337833696006549701384967005671089762190735175202034120813936166253983997288224472024894790769278315123799827652985710948020993837853668473684654772038961527124843066969484975319962372521760988449092996055836065709735176209375722955238849727201853901888819942036001520062168416216658775327007428082572518383394037643192903060327196270678709959489132752469140115809987823037244619021613222271218251938126482746153727545042944356806038021574167635557457920087168988034449075995369600764541422688871573648234405016462693661358015152634508386097293186454746461667279481526170937427871549385400899856228344517587733987079516557383413469456417788963947953683135024358163539360714216030177989061667061657926050949362142062927883317914815789749938561597548204116851410539199758653144764108545796799634926225711036797956679371276378650110947641562162161487000381973061529325230454298750828160245949314902618201244121482712550582055413416015248227952564073633196549717651932104047296864256854473353881262110981987033313260457081528990506652259708222834049915551239794264010498606433533461862558981739057829849967209197838099404798193791298214860209897723377054852149311343814068304742174851377830058140299842351769936557598590479419310654420982055715293898105163012295804611926018367980051074054444891113005963920333367183520843584735931273247523776120717743715282781156951758345784865634175589084793200592057749879527943459100279830944445187587889110199288375897083980796332069598139679201721740913111279194903443048602197706176952833769237278032823341162755616751669793994008633796649613563226250329218342127865341740142012497520657105996941401159382675104589907600373989387050370184287731683855650802273832514908745522833717149768127841565295132411903902874389853254964285812694275558886197474601294968233170394537807208266405245422586587929503308566072364574495156525850350139344388593533504853412350061680775525452593629352266518209322365121890480388319095916139526102863941432528259376969145883379866661147362218523279097108282707771408802305728406266284840524325536029012068293749484221183922624619816808037563959313685124235938666529349110958548493991184721179855245699392966236538114058351212806923105304636281953646221324227938551128675444666826714172717461711748582404649497795165451013013623249036312887964512030824469711460389321428804733712341856622369598064992197268782353826121346342056545296866311478568335753634214960636751989975994652553404740729330041248900260923403017625437522823214196512223066998368694600953742219876739799323557736531982638576135085892443863898710165674538763513035952498401440155824034710317327142110439669330543803270382655266725662878157204200716798936914850157213220297598166833008123629293874916550680681846266807821011060940535441819201608152937828232325931602062482610299370347155138804956074670327674787583306835643267867344565444062656567769704521161459700270529450174659045695173904381764108717431042359689337665620267061533405900067747622491044745150051986095725268054118366582023148739784552222611650022672016504761793588483499135661982777693301800075374300226727462057274481619235811216603571455931366459711947030678462429899852309459553030648350708728944616631139417860177056794628687857804338039857415584200486407019669050228570433071246399154627809687427015817063623468257986452747458712747031759330765555480539535882228256105132238997988141444278699411792787196205645740065963689279560853016469686869927974571444640435679084765681913208828394559078481839466891608984748823669853152825530695674914432261092698733769192308538134492180619436985289594060384807616139911344422914050670310814704576493783690118461463515312521679448681473619166065621589289259546862203630316086704866029307849844127855177508058941597436678661869491496384681598079733264998520772738559631517297933830525194671960822117599410917434656344157877823736763278456012381477896117003192214280339784710433357528517234586180821430818547592963652787566360226469089329834654430515649563921193086385129741019457176970605202064263437752017490238888331154432046291437731393981325897863105511025942847819849416757140791360640957878410524134940440174250152270511132694613633473147029957822019483843766480412260824045038139974034397743038231406171292844442197400515062713353187156674942607503934749313064427718294841842598676427814328239572340128765059866614611652592616499145458446347009721504865995801928787143159202577658195771555667743974536075586047950681416230409416285867460760527533714729341366378878130300347628983778663356824404727468955871258729383369287776975787067643527771807052697615401289910939113897701205608077886711252108903433052643135786560234928247017570122872884843607587187341663455210319714971152736139885503037895593050174458594067688723378716181753149835512707654010377293319504318208041656187068770272225473992612551870552790744535258414742808006688003577495643650417937720850753056358930005534823396734443077798787500603047494188795713576341572491897168695411354435352810472944193818419582383854226025891568997387111815374103876281988801303889705126574736428917107456119057200774777573259280489557262869758665583037351147231897123202858872390964315905807198847005173856678325515344829857215114010310667210253104159221199792416223803440443687916604259729547477346268271377994581432845278801446378470581439850293903383183082124869818822571241486674380633616916600530383273092445724239440869286865908029747274925997446200525711551876542190717109526241470621234822601357719836352921623524640623976154463541755082499027927604808302435405384749101502608656268418370995156167088284032824784946486428914910500940387869727216118681148646220957921714306101319704765813639920660839169889955698038372729911392524680052260890503570227230709492809813529968834299088953968487406375311398234419451258215679750651554368433848732659279874707335843235453783529716678748640525129575299223230021589337693176135283248156688679942195825767082869753373049531697091948994518046477240561770208324967740550516636098323369296462770327997978671084329114895067355378415754396672859613379997194805761375178683350885336116241209248017811260131069320110080443997744029543030800026632104511121943371254795931662404832140298066164775357324600246846366671664169484625947348451047823639456206095141094971393941463964193506287228733414686524017727049860543299806063193577495657300741997001725541555462633319609392573620765205608323413580337986343720412988058875387493362340078394919013870646788233846551173704500349999221417871762680805678273461364746751568433298547236094774149533971640594322008867923909882682309713330927368044369776752260062796117896549362088683904047204177619200810369039889217357862189589890743947331208155311274431045693475916271217964361715238230124713152797198876519580979621531475911437418289239054592189616268411442349305383636112846108866713226457314915006712206962182446799625185094551947149557754604276800284037994907936239345711913669045124040822806304923669392062992634202619447555673890508408290182042382346530182524898607987932787391997543544151938454021853488299522222621352074511691747090827493975191769868132076026469582357694263196673752848741934137193879299681964736191662119685588033588977831269329190479216382665889251431287630907329018102734398172535025027866580587816882905823494315288265350814207805785694894919971249983653248463851473158121790854525855974260404902411373187544131425698279222810554022480607634650048125790444888123964094546087350188938897655570785752802432813814914398050707991386931469163219177683089378001426635141658651257157322117634953918705114205337298611270306900008249206137691696195244108215116883521589426069097579051733302001585451039834148465864429068919563756784169206647983544367933513989225559264039522682994402152744432787168153567190823192182781507817162319546617637528237687107841976583759189254068543637600778655060797982695067521326162790717481398605086407339195783004310760879869013159974580023141882216587327110616532888171971890442167922658299641462041324914940985474010553858139469571939390721914902568206523658985321709233297263775112821689601097257638949053817924909995926179904424594110676191109584650725285743157699288218088783581670371130239135764304003020166745255520489945096397075172884635367061336897546103282610092936523148933378048133124646812234111561150939793992324561020540186350750534292162350466619305843785127474181884870357643326011661316597690421022386303748850606409874179372155209000929042801739835336528538477682925021956739832474599779585733915270753665397376259788468059168461632068806516587512031337986343534396354488526161467566611532590031619162928756491463833299804465980182944093666713213342795982821507962296779244745974446865507482459563266596741797431676261431002012557629747166974573469651417654585522237071608253549361160325420462827132563653116574846543015976286450622219875680451587255754099013280485622340671049398518892843574389824166610155909194223858447204914604631334669653582418798940176376719823484932534202531806580847776519690897824777507088964216727431776343718891708974147764096674118976117702744746455389307128549300301878519572986416771014666557477573724641698124736731941155651796745103168264249796142086366608416135883297384260598547029565142090176498150488874914663280092188809444360048155230430662778140561717369768592814571988733552755692662390996283669265470556777008828380792380437718178860007991715264084501830690557486964713009079504362847349697862149471917809495281502288966972453105091248182361774001044636211413630275894906887758876847009473225643081143794629785755314142342406214803954379482339671799324635923127848218564695307543012415944102188235268996453386837970874023348591696867051455005140087150625910687069139360209185192755311637186243706636212741649338239379726202721520007380781929653576633430300531238494233443661805540449281615201609356237657259554632807007805923436651201356732809766837599105361989804424493816881063946014347193861490200735877666397104051893663912234371831118722959527468392442304503292588178467836576952764869131454593069736330232984869513243450252814156358183827766448069736582110062599279058379308537937215268556542147227262324661184931631726330370026829381906296431914659118759397770507641513720813704968821173126747064138970890453860907890327075277885605572505098325946107995330057516633951530156070761300790946939309818468607988891625904822400098824884696136271313412163158425618232044694650897537878981176645967781891703829519043116608215065520707642736464630219358011493385022945201806678708882003615084843920843864717324513046565066032540377149278729257355946896314464548284395667903755887890338060130320528103319669140134378331503824011110709661233306783161523484735302531835625549585044793701401344745351256089718356891020460061733602080751155481752580712295746889769366741141209799938039118235819536572173547951411196661931729034436459072153858866298450036906964595249578739775073427577869503810078302046600833424556260204326098441183682297733321472687004116213874181650508243941510567808911038830637192977303678547418064200112595876878336129921180275717664471781166444858966982163228145202504990922496697260495048717119272722577847235033453559332146267089234461568116343753001491024852802924787937007509060918247861534949305694126017801452295032596900551988005646067580975469172116916341927513431771718031622132660031965432923260231369598641482431358413392659322238266963962181059134546920397909439731221152932075774945768435481964332101569410116041371799208042964797295548822406219065396384220518894654189736394381440995957732383274279304705756369461847748718760712665812296050692791565585211417587950252209112006576126610904211500302778008078472562398614239191376505465791594066926957686016983201685691612524924529873114135025309271684126169317758955590786221981223910758648481992219654712277726731065658031401903225366765832355362429854785682495281169294975531806586157240791639833561610896851617567528122741619805629152707231855917178267667096217817783315976466454246063197948079312322590150066471476802306817809259247638351645330372851896217528975136713707212935725414704068467433093256300318137458831106276618563633287622604565080988163112318227261230588746777792906628641578371658828468094142094551906619929794051242916278144278173276546855218533557646278267175429760230248710160788858885134463730928460492262443298996734600317229489122341789875770610897566085257151142317884599455787635035004056450271289982613875769436762473464840793600125725969866462575589822637189537515049890825504787901565643707894611401768048789381938410597221005057235291604112615205524238379759392938169488682033313806641381115492552273609120393566038683728676556411583174821020438148343439826333392122462711385445155865546133748312359508243691581004658108504744860671864877978815300740060498183351561190696910435992174411619252678137865327265783556276837346059459861755288245065594344666396540585333022690482534856920718577274252150707588936799337178293082908338676969993333521610863677847873833195522172144202657593790288972652512473906735887271585848476676491152396828929945018448344679471681687000929915879021249032462782014357128676009741515923862478506277068085616256165895378448400686847328451612389597786760870256356952894390512685847120338175577283911422873200988793821778296894171411330153808113717511412924047176762727775436274270091218888177979551211743815929811401725874997953017561005329720454259698391533120011353206626793656610315102270649146555290258775318650673476255025625411344892621875377153698639459927436422298020159678550404037578313675086167299618907945568109482137961469682306866456621520753214173857387031649445295864067590004038493917608979850796599073341527846310818210582157499536499056282206174416919750872328053192756960614328039476694801912764848876182789709073563111450595542449046082795701647970577014093810157414887776034390081084484541278288882571802358760081109053719107722505484350767810890326954964775809199547936671707076274662849769780658550129354585280118593701107123208434602278038658852067226723712986516476700208551752569203036836010142905510693825008694342079043589173486879546610609452866314868551592357887331604391723197389637923291321194156505918698624814475510148157230440311782716268116034277466358869509312187523119078808757307053383867623854766069898082790151567002579920614339089428530930123168064218252219995797792532645064134420004599046579641837435640889609249172767112657144580968700167609578847966664028145009611365818367459564492131782591318484535871767409710831359094527348892126003448067001820914941567741479339204471325317906483440197619470158976820027071221729864493863741980376972057303115219630164715192911909174651225657454340277239247844323926424663636910599152934288167887534657579382904010271220667771763576329685734954911533902426680521175183632600693645691473807336675083643462867543773448639922028853290098679014757744878649207981751794178011958511324821155926761477174756724253098898732148368109106448681548394241562890248338011884294127281778197995349970909983178858940324575476236429733983688880903818756063784401511753415783041059860598307070883569745149015574862110655466939291087042925052779638504357730357376657021227965768694400389593159844732539664766057112956260048487958822358623331191309174319051433965592517111078003049886927667560454895223514475151548731921227917799798602308907981251602923251351163286774111484802088483185001599024233653086812052154519401379597444315947689617930357069515989420377705163698688673717171151344404815238485653634541749029753592786534544524050485667021284519840499071861383052419191661734215115423155164112647910022409804165091679181649733701334045223102172906125893419710593203920042817607126496797776337221641929735833210500940718243294267040321194675035487140390960813653515178807696888186619473896133077365886197203200633278757545991353485708104521928735995663196185765767388586823810322868624289036101899330868876604367937123015495496087931345141026642396127671530206899497040294578910875457590454253688168657877560807050895143313507569968102515241345527118164056880746000442894930683666986388134034141605893470411001676691769611803374708321155671984438132998831630047276330237498121648073698199567010618068757570966581493668156601300331717043880679815477213927475419254164724598800713634239620122079388053701973274907978012083227342140099656354008501603800210698093815376287893818464566696847070920072614872742518754406720806166426701933988342925830180065591755105257246560815777478143391979823105618211671502498770313120265694535590064243503731176798055436319380140425200832990471700716358486565521911696593597928757918823498812056688997212019584981255315494134722858203905973755045567325385449350592744605075306960113390422344483827034074437029173340727731400403736858635277880634195702617606400191215872557873157192918588849718806764404387623552468031970439382649002894700635851311522155518166683983853170101178150979871111883483176999368983719359134809461584481907429545439240443108331576603376471416491984607539080200246369080762506091486226321034003942237247105357421196870641048190504044307183839346987936016147261951317351134156432132222971266636237334943655988823038076211809747833989276503254013574174285951736331863850382132603300707490101161871792044023857788701576449559640210514790540375715850747797698447706291651240188296491916471754851365425461587832157876839730110475481716812740980836768251180861950963064513939819032879304591661748956412611589312665084723223029558376849824283077077398982373844061743649001224145878670562948531716090411129925726186557879300054194847675099923732681604749971055678370641694249155077459955953637797903298423137032313276663192476926305002345683707596060843700240898691683674658203728618503616846986709123057340232845420694497244547874434505322676748440917464783051776741682741319595996738235819210549417008528484123288780916290925831540340614315777957725222681918570949051465425534269893778093779109542608739362518961682733559584417799282309447090970709021720532311362709530437750165096103220334224602667932325923820047290256224845734762904826821542517990062963973518375727436639087478016669907770010117336222910615507170844667670167470254826392764101041332561213423252138661297561873160995704040317390698030730128774435903324826675799980383963873977085942038811926767653420480049909164394372914641228302627215549972930940336596819614160699666921826596893926164375070932834249919275654052610564291512866173321106863446856389938773933266494955859199628117960979755478546726661690800831551524008389170367649260198562087376314524016399305831617133550294538759674586156734276570233376748305221190909478996463938453802373772541732856119619107158206248797418515129216249926407256720004788487407719098618527889201322460488683461936416783741195132497975906290999044018857159012003077095673176372192603716313963997847697025196385163622581699274276017666969267408677564057531018179731150246963863217487589956935509814109613902933913107622377751056180391229424630758285472139918879382098623697804030551077655253465249583828091892774547939515893106895003508063486810248436532838273365145667309550892491349076692777317339279883670591009341829864944579642234295843705521360719076749154831946312704544049636566753920781816294492941690450190710893913968728174042392194277171952349650153725909044770625037144251275763423654891047674739239029215375527808068884907091316762762181444909347597668900774659857567583935733363636867330838163051465789247598520273909972855517997165513060563572319764233003361469312075886709218676091014750560254838626550467884848715640854423247418088263233376535766603121783856130067571190470498428918936831649349619027443531962678337142732834386590126957959581810339747591197180932005803830938158807607210495310591515429343852001422615498700866695215471328883827938900315873806607575452651419947467317849478040437204820499323054549334448615460189085909311363107776232034531453897106869096619037905848756882592012381893583016497211795060755545609919977102361680504761347021114385881067746689659902727357321809275265377359079218167330266716538714048102393143390883468749769666873339685471594477857550043070525752372701150061211091979402809041337868790362107836876480742898064634905562991080947654656560153505977989327999211594041140477547691978257611111464343949994772624799816706135840069247495321369736687005666378998590409137606586083618491448169335156938349964036483368646774901001705210616535283838216618892714826882864931179886342183821796941852287354787606794556038001177705947606220607135565188643692791331202689547814621542013185158285163619524651374258143596174800640406144747717172557039088680961507332465984734673087674090534982070065699137108825405637852181521151317901780747063527883678520047094691899405078180840054548837608924623207469726671808310933053644456196056077273669785245959074258413773243921236305925325981042409570605872781702515243120678053071058892162957546891763220054557896281824017406082504462429334982130948938169117078913013528706059077834887491809242152393240438101135193862191290674975247339658616723957510459167789385128251066081727172071414818071307830643591690974058821189264019207832576053045135531747330531814334914969444993837733015838328111664024664451834019614646613906317430501940266816892163929167690173758921575053701489468632680862515893944135102872253994143398412143084236934559402870572208954927058769219831431750184748071298334745719239389224763912872847249750362665227119973778529241454547096688977402978555010911301380600294885208665959298590612726447563296591079021736319226817956624994887447372525182032769676772437268123975161501494273645097537826333319399262506789551988959369797831547648958642234537905143054930145325508632919072484010183548697330182759427362683793330709146565285138658733856118559584362368207499464126636906763356091757798455889229381080025960864412959983768531382880473337786700602192960886520432982452391239961154579958628182660000615864422422718335979934576828883055195423689698082805027595910145780741615764002574856579724099336805645275375341329813634306616618650852126610807775151053236390757226099749860696412234739224103640536105896190811839660268289837685478839334315143774365625540907687766284777495937731425532474341678166633728215785819016484740864324579570848370180839232428944392130454732592884041503886363245574778297614725937528497523415536464683551692134119604684393037269632127844117453917359344069741220656207424843888051044805838350191117793192603968617427533884288462871518645052386707329226350031618162127755121084010237695344465947887248829303171316311869090912312100901537294627045708366004123670722471908933812633634530054537916793424332586194004445744783584766993002495076210114105059797328907721701414240780881272212598287223914181767802679061411743569121344039908412736898459764416652290897235336590758238847057200680740431614106859132082898049437818657164657090384023565060393087021710374150851503793236001985397281130266237783542386417044304264190826683015720500332600171459251261235704328544241665879985830860075089543309672605167253515457304934244194873962478491151663754301572772101423964084635643731215497558188253884460907166251551848431094771700123122700247498221955113200097354345920483472882427380723510986596323157394128297520878565456881867985364912281471010189858639344089284109326792519822656584669642392270824219834439302870839806394232155177924154502712533641892535393068071549378322931583164465552193350652701410973801433639105284599464522051254816031956106349630441699884267569366794489287888479422635049421508725677563024685957524890385867210279140119485196395710016603351050222893110973602172984071519033512108900176968559095149140534383708549824556578931006451130249857614331126524913972823986767452023565089906810733296951500629679881938296518602457118792809236985224185396916211957908727324982335954084662892883412418794721012486224456986412712645326740598325260277496414747416329773397558876396151778444937361311555086354763597067302111456251928595442080962962782305953954158390750704102800742120321119578227826563726443496413995300865334283489555724812980447338984592430801398578321387404183463101687422798721199497330108261894756950689187339652943484870304457708870395392834333817803568266848261859210323460020846959285640057261315542699411897630627699557664394177153373867178624501067553152091300872017153877056881458570789167811000093008580153580009713409444491541821948038127310127475060835454509108239945693564912825523413863633098883674578706265940852204825752227223446208707495838565816193873445048420777175126777442334899735639137827968650658002565442967536164353391940875273138101042560597714734656992500411919944817581450771237574581509765796960585148449000159612221069607751662357945118420724640026143224877351086109143105625338987409737916609434830107208395327494658841680911341101442427822713760666397948334875511156225088458630903691378540182844592779026594581891541625951434105845806920370895459350559682310860899559821089001661576201005228743984449026649628756119539114000775329466746266924609964821326859696447737949194921280606867358117371207072653002866604893670322748433328315997994690098724505478765337395196765482591344596627955910371846229486691425554496793158677125564533877984792289803008281642617903359962921461921875731533799385839816701690143121087599862961139823205562653265926748202733304760308880982611676510020559890932675725707939464628861247350093958893489133519021642123690289826393427372838295138939857026391389049653055640218818684952342689737169123920450985296141758775186883810085248663048565158167696163706986988767905819004907458048406394035210515836622588791018404971741577208079427819220097963186912584859637562963826408791662097545632529514094476699617560138469199050697072166896259430359047322359993142009985886323473218195384146484217805140269236838628901007482987308575736800648506979100345411063785731146860250790113434771580880289876887939198756755462282688631852076152159402324154458249530209567763880325824046368199895431910747717321773454229396602896627827256355682485232929627111844060531992507283268433219901535171638023091452872865230624571117177830530526866807436360542529063371560764519545211764715856933388476123470748692345215307013457497997926422511294522280228369166603347332065787221957632415048775638894325532505961754117350359216229446545275231111331869298037639851029454415669388748299650204454982234815490883221630754185788660771459996229667942917908053116178395600059812446414416188583057512970918584674857621362587529300205705722626211185167602137827950410580774879635605165979594152666669231990443299987568835134848894852639955206863084913747921813780339897295975860166130586819991676859716670741059190614967719805603271401133395767632068921371309901671017281073501237935090688141691985204969058979166657089525323996889680564555369869944881796603902495148526237806632074975853299159737074598238581296705706973378470230837155836396420071287633020044916115857622391585440106347190622166942620065531735434331034535186228415276836466327464891844381509700429610442291687954551184274021022411573333682388403299620311638026293215243840293844852442748931600743187345657518993959184797253228319571927950087404997976550717259720260959673252250275574622689874778055234403396370279043934540937029930252413775775047345414298453262279902138532232907529187726565748738202559380850901487350979750697767769751460669703887100159408749861905524415470314322397383000858055871662679159192629940766405108500708397925723363795616120657571338403112659286608394620901487596585827501495579908484016385556713411739767327833014510011634819493053582542160695677316493538063123587106421731647151166648292686960414009172002473078669771940621130623314457816547107789050919842651963921193717185628406615020056587337224510668773835283438619852606252790502092430062029384025971064794447446826200884009142195848850137957150682825924184616189359712479979728345690882138193152594567939439721776905317937358947196962128288364435729273517491124998945940861985995738818709240910792872519264505515947631595348832324750552551527328820729708378112436748296986595367175855130662141339761132634059018383645728898775209993249326864990357368905640862510162557488853567959751826367541644905084406630719834482101673247629633280295780973060818805134451307376531423885508627959590003664924176797852357812447181906502939748199760441036402081023344041512377244177261305060098955313164499688419359504797319598371497101747966143660459405176943843820876351303862140565171728590904917145309050333748064852724317557563350547319343011512499766730667175652440017626442738263573548176052898468445235005997756769162736324157661962609890925724755859348624283722841528786978781637152553966818529784556043151615045525742400091902353364369754433703614134991467905048603381173398205293261894246163502013105709506803251897693365798892576976224147708832238001931411865450758800777974847254830326643331909279432845402674637766010192213879430144532081542044426419795223377953199884722445684033589008648217099880419645161605263583518161456104390837054417251377305885318912624925188493465100332286251041069889166545216247195000658871774923501029789499231874066245975347404039072411253194888351303745304775249485375163868931170664015487358900256105659772037064880310376839366996548369022025500015731947602336219599252760358667282278534794626559537979808454205602653639402459351928655111903663329624006396545807736252900985575000437470632477760357504824071115138774030705870279160426544203794902329214156783624376461481302130828628208004754741376910032309937053959298858211597396228314566386438017901924506452075784036696083157376683485393786576792658717268948977233035088681353428632312270274693630384694976776274971089098681853213493773953151404906156449033865016536151706033785003486326177124599991526328197814570274412731215650924640610265052121103153341543419839073063123425016625539418510119315893697725681466194684023515974630896920905700203778114473667581825801615380505079772346114552184173752100021313180213383662294866470979691946811551865586712426737707558248929362524636269903792742239926423863151002913644101513120010029518741665232745549245686182577177421417861957206943242611058416277537585486365177400858342511508035108659897343649175183180325369611329026359562557709505272589075720925223168793475130976854449498389715288931265290929292741922724551933932526034492574985569408481533834950909773219264791397003016541879704235061578452947775146400428764376834233910629034452838349707415726288935517436791395178576225022328679194829502628706532567164582557644883609406782636783258373192156984825015023518273804267983231545300385962377931640769619126227098894760485367168642858961360488787933140482560019155834329153448276377308019281591793034993565349480126124410157691653199749394944877038395173342862787211423315201011666091286685115387286361431190843104221140059030662974183538419732934490358866221563685826104883705966932964056701633593415726859223121859710730505504267734352519839502376678766400657906784503888075941263698365501826547656119237728099417398917759971913338675892041208589823492372527021027996830871971886921163078072605629049351818074726742136799233914365142777160718011674611007867120504803955895674722854725337828445977359068652454530933143012982785773961353994679160314098742310123071529759381661046803216555437874686178453483058695647818898919976147538691490668944358712698586032872742611854000430488879210345283230324319541411892967035076185961010819462615184894417950374407369769982114357362821567544518288745478996480405615616787729016247480147664181777847587112243202330779391386795086663547476239981889914794959853450973420727890789878935879203259134511836082519895809365464816487216982202844524780737628771493964759690379244297058840740153292647041508729201413604916550661888704009043368019783210011353085095763606286554033257955497817520715124009948858465130087172161822138362280150011211535212385929296952090387834803035877446894666995097196262000428952725317950613008710502524185673993712803888134727180025259221000317499916642504185174234028125843088593835813620239856993364084693906277266850774266827446287248017188614487683757711386511053097705044889987971670115991078398035516507418191748863453105587514986632111655544141799394485131150163495639789671044574770600322002669830908114908162208305964364477241536673669923904093852030246271302733546727979897028046615263627041508558440016705484306063402669888242413717535983463020654752142754099143718959011304812855758084532396318387798778428812692038062561479142009107134044261064110112173677465579471488777188327998474135678216383334142857424388762755037096938386537701838189524884639838286890154048244804138826560075886068827079201055310898295671940936612730917213235077677953920337598311608051170219203455761936543685394778865542815525624731014237052392685232091025082323694666412521856372794079058566843967714601228814634197025076867122855756159416548322265770946603422479015676393390542291971675582920691757217667789924184020234128425388520314581400052650518983407688280683759538579228972734468686777479118083578817921380762335867052989203192396469274066896095386868871206316328310281793445738679261928157144261150243439688290593438467541848990076325557435610678460539711925049451820521527396650028695937674479262219174623908008715385181595686318365862390714452442784366495340355716639363358290408321131256551547673081538337945445217342181431365111743723630362718427062695290091922086054634057615294880449347961558890384236789941472046814199130158372431184270199115543800790525295459066356594339554511340467416667388907711437788753859783285755527437622407378328294214765470159479258689543633936475433994813598795236385340375826409706074817495602568332997213548661013344888508834733961660785665947434602063016484549054808186981461045320727870589366480400496109268237174620275690839169374412556560455387563948173192638255121280816794795617039094226427108788653855000645595786752861622420317858091762577468066885270530869347121109306190601445703666289055160348657772815914296046543597893262757771590526907016243599019632354702627617004421627356222762570051551046657467397742183187966409449715505394471901804639632393318914546886183425956582106867654657646964342131873099570069716946137125092472350647498825839146814360135085206309486785110627365173807146376497615099272586721175570714410554894152745364568937599369027392182927112951953100482129073969441233100007364784954731425181249924816038452484203774240133860830034096751050236563359099317206672257738554500412014600747129878675597173033144401391590461005700264167793379086047163934897070123980601260462367078728097101274547581807829535871686831609632423347100640861872725437933574519490488488833454286571869757528358061113827364527442310591892643965090816173177456661751549122310616924420614144594921260861289520843412231846413467649841742046570612487027399057215866801071289500938470183963045552134577268381510363882770059498647545701706991952554064395221041543454907404628302867127932812270338733731722908463896571425666765878570159294341444350505698013296489698195823083085063866419216145690350727912699669537148642971733553247175961873400530281585775917431068380920795625041188263245197117798740833519959554004107339618465903537362598254399192086754119140787901117698342496949133784221438885758412432586960569391586703644500724854420236963350002042075129012399717159226458402875054847044700064845540193755673136529083872448796219580523490504057920019033819373176505431102478406275787917619550654207004033853696162207614839486976399528988932023311586768969613610334772275311328979458571195112014928532302714714268072868019191471273063953003215298845448243024504641940316887864069305437609511979216279047316297782050092003158621921424801212697601345154863664653238321496174702344211290549276598586995492825148133080105619888895449774139780746969861213873897467470847010042629295358399246237309368303917602723572830797805621937609387292456957246620232722825021548065920587711466323751866575536173779405641233756899401598261408531471329488306364400599951633911199392728252791063356219450163190313927436940137997229885316643751202146196047540210431900338475332737577372313117444414966955526426700475103494291700470302258651118321918980575445488407883633439130870678005713039153379481600068234834451759997523812156368921144877329532007539636345219565759184903970718346382305280317971592321830718402300983322237623112750188981277458965655431272088523445186534755870695030895535948530970760565562628744054905340561354404355642444756621269021843208992821917695520192627920803599353101105772683474163783101295017426167647424083255428512729190037175518858752507994710285300534261597716654278484487619508544688438338674314621418396863578391557306125654688346566420142786881313966064683193945521586502698070105092332570092677882627834067394582610921658392278498551120379891458393172415694364858039206756224199733650325854781742069155876434155102593497335574520462901800018536426943764278595429774217403728544336110818974283938045056853843361412147651325242064576287917257989936765646582242817568475973040723324464203506188487121755232897823183465360849924514930003138104037870826679324862594609856894712037822477820922238173865108059797515205838082890035483914909181938476239832228086472208591899970259315196769820013603667717816549435479824413439823918779368920213329718171857906184856565747621118602553847624109611585816254716385906364689207426156553375853356655398553863987732773310615521357887708925799725433611313989927606922498284953417959906885256834461863323102581155963184993086707885957170200451856546801865037254365958930599924941585656919783674745873273753369076026364195864910708831005864628410766203950944311906191715083771021345773695935925043256888371513874116834586048392785889735628411240140784000368415457934999880426717376420123973075450938500663844150746895598288275448198292231570176024969331199702919750471859463270891730161152757060861550801010492180095240803023054226470136301676998689045679426111120628791160427782894167706728688112446815235567742938955088012576709332450600138939262704276754670726034732050175527512855319417779277381810675992780115159780236323163389126509836574995646788277335707049933350993454660702579720509512676674234789529436788934907702171677330821871203662568249178770803441271830912056193421418661078783726790287525507514656507837590384384894517682951273078968446723673644660569373543666764662850721230552667239246509208924459456456762609189313885928027300806790437256155074964531227445926733674948379201776770079769871703757648270981259668392745690589793311626123552537523765582917768884443837162703164640060968899307591118333825090568380506457627591159190747818751899359704513724459934477345417485218349536533605714532708006558470507326603881531328539334322727119578754954524977450610149487841129821635664183708071319131897758086833895898624970364061916894010524543187109626810626425596495344624365775843208144572079350088942006112504191254852975732619411438905555709175736221399200159467331135921318948686383256356934733932238036801252332653470866752779604871978198033186388785829427982188141828095904943059587571592468467177854031201469128964246758156719273313668339867743708856444287923270617952774873401482113123564643635044092764732605340125362401958268880548793817840762722411799410362515539765852373244743181501916679662141442823454928770363043988829039649349112934956492091798519434911911318780811430240359595288974408552735926407646813142193996987011965714492986689638324568932432190669638239225102164288058585342543695157632443308192140362680467152918482929713979136885755721548185518360935087216580352332038290209063217136085663431732596046387481990039437068597278347123549381694253899844185702053853894691694192705903670870513796216123328645549410236390684701943099592564274090558686074013106658855020280740951057081435059378475651405645678025311103034679753625971738599187498433392823770853098020249895288441906317015996978384350611007031312511225962624538774761169469157507280378426849663176180349807514478983305970777456079150748491906992716177872454140580406236285638189537626150950693917499609759160210148585532776777256002196926447940003063485161964974859609665408964153379249297811633216624856499423692011821292779931250466844976079721488062650079476329487613062640540867458717398864326881570965101178625969448242921041672955306490546440204323294417596812168469461483351690459230472334091970581732190942617358929804028598611366933537876196003562045233579937480164854799503974679259414591886461356138828864856748730389728166769762644868884953419735936501175818475734319339930167206981936449329947779139499543041031722569967317346232525234270695396357829523232870526535926111013045029328330315635607428297576082347767193447413458443483453317198059658950113467044550102104485070200131102584963674137409563116852870634450588586971436532839490360333135115917754821032260171919033980129216583780270037822827610279414251158302675047750874444138103788641834071084652874353764953357557508305852503599036178678722856696200088642559916265093811962182937535738043503758707719444723913807255537422250046588541863739130498698882100361568412184916196869096373009753654916029933827595144194391582782913492674488318424809710862445867621202169897011527192107872122042512509915136892783968950208730874962420762801287269218692440088124310545676048407528599969302108987979360677827547152672525666638021397977451043558567050811621186439206168113573048364684698632643739249113701251553393783572710493612244842450129249312973873039342671340069090655505950838850964724977455203315259501349118017209683134054915874293726859618315283582566859535058549930253166490696704630772943348950061932797076974317278223722260010386793943246134062495706800492579658022533491006649611839694713622223212123826503181389013487133855351817845050124244876784020267737016608616675773859818303698003263579995054953981855181850752018757023353467373276769670938387087201342191967567027503467316289239503485497656665992727615361107432079004069861846265346020108437481113073693631162179491512899076160840150747359446404008985113324338739718535134307521632629345299821939680451464220103910853429510684734841144163275287919514604160499878574697360706442641217724865437733479639964190028876186669387666490670507201506375787804200314122708981547074260663140027579305139764774092975677985227974866811328920988719739962671428097972126570031864094262520046641816720994157823465471654708329003559802551204453942416783299751500431082132319144350677273000538950320946753651459030267012186751485507483370896198453250210731782628968170603576181466909487199124718291518581492051239682118710586678322788725919443162681586570044488679727231850985622803983702158335637715370674478907720373895762991048906879176186566289220766668339398236932361623226281925164517496268629997002925183783533646978874944936021748668617417375915751091661722673473746231732543289157170127620399983426046978422883331296982971254819337358883946571606430050341582205859661702108392562205037960968507595474519947383168060276838726085754848961384058177165039012603579668006541986011786934253101894841047573955351675704964859178194703003593548915465475319060759907973028798690608008769967131076739515558322182245714158484753569400897329523769634244185286676645682784587417376061081885559968175503463093484991311976983159907026079197414973429227913186798603247444671282817545036628479813596689086348208972085397061287895483549671959841650431745564753646493570410325151270801390723008129359299009607441658061804793566118570742789517664927684858782689784328417809451462973382662089620851528499579894524613769096498757495617313508485738304689445808194667447039949223178112194385852257618707742078640285796574928749204541987666309447367675265145293853256207779295232120946621474535166052052556102130471392691503701726049482294942787862604042989547784774877979821276464869985010637680157449652701143104821130198438793286621218717624483650718361012804163849251181338303990155854613127359093483224969661385803248323090933711469702565513485467564934422162221569247757366262692372466439274404726644921610776717109036529245800201701418450877238874414608503763658727487296368851906971215675086157946454709695881724989037770536834147495730100933146196660997508934377397179377997847638723622474504056071756651351069961905246309892606208077494612904742724107265307343047820820886416617356677374082768043849869658193579068922300877812080044617215474041667993331175038687611285627326911312232556558843630594502263521139042967456198310565220936362823803766852136554182969001049308955589104911246766458619728010135338009192732716462956718166280665127793127490408635536727819067193106287068459262977304833360665915054144307257681802755897429859544346215205489634046698417255894644549526435475933555127544096172670235071600130373112223732153747037527049262319310363342581100076420533828069711677008951688470061843679915558366457228109445137846522738725107362734174958486483090115349067903785444264629219900889572329208226193879943475604531151134655095607414469404832164788020882215871564785185573186773446311289221066486563497443370948950114295069533356034626136541477469729690133282895005707312447312160046136743651612939106108885378195656188374021793151594607141624428418533360327585508193473767024440751496012987159793132762334826881885457254511677554809217213411776327698135057864677337250864937619161136914093755004918766350354991605332068109052905698587658907273881990094252446820656668417202866868485550886678576140607048063577335938779806886867338440351802571913341921206474562276907415566440984833538159120771555440268690575198828227137896635597440201489847223866888618885215991692595199789324477958798627424995651990551885518430815565818207551481725908002478366246369934256375492503215436581846826995340989276446149301167518311918183568892146655440325585600619053925928552008555877128547915657737455509602529500687004857876528320265478397741319685322955195057069826410664806674159360601870556353765963895236028374848548771116657757023223357035231805484650389706020672110306184596252842918037454661792897861945724772423045200082230036287128862667300305736149065966883033484891302886081198954385655927743358546488953907206414408742087791943323194893110055821980614864300382416647813682487862652096958867877396883444325250795068687682247548258535819079229261300671553010980367114599265208281112275282073662410591938476298511426849001271876770635927370475037940958890244724391301735442927890665324805911057457493033105591030002807954437441932551865319013609607815755571816092696275499124016118079743384932496715557303828735977531957109891733441573683614321776987862307587914877413028415515947448616648420311403293278911991036360246651284373160562261093566787167268019957616668446240687030985238611005288599136850067303318614295667067355315688237278142058019679841239877595033441885754108152485201613647018333133134005100428065942649608671240742517638034968663748099868906793877314812495367404901740958889633294240720625642177612911413678842541575292243278812087479918329975393133453605064646467156522692881078904809254488192005034440854184044115505169690666406907833603499214797857331522176921640426659761338529612255184142559576270166432145115192089437308953919238995002775873242505590832348860720167649280664858318528400753709183045401417638706267766402291180408392823777890844791172393388508689004103597405065160099803645316457485804175931000058815228890218011969339102883387016983382756985700540550498856395726901413105618395966672884553283421570678000601973312671770867059750747854165448380460207079321104840632951578358233552512739569071088390037791144686733751841138685450960125604934695725480747000994174438105735425393385428291007724403028586174395959873949002531235128627140405222514702904803523407037754624401817736811934376586347364654824422816368520177843669281465592362936085865240658429907559699650512977029081070366846651135990495628426640363107080361706377019806829639467980939602037937401565368463196649465685114714401725119924013521805033343161030192007153936312951887158909649583255518071313640190162181355179721253397616032161034226689805997564094839630014829696756174824434859359222300269238580947248441963656875701418540976675103502541387493700874851556892609087833021354415943048184696369445294613488785225220086716904802547224108198863731100985242269528864476124886898461610881243853419374721436434711220753851906561416363693716088204734665116575360352114440680160003138712863607561095028366120639664296091032450740490505103926002576715743193722435829053829285190744146873877823130424762306248425231942319466147457345887515308902074622210119490201768915438792379327402731969793347154812610527259989446466706902300317159511296589507241214934761396450399925647983819157751448655510183091684635163068035036567919975366893416609545757679858743126567463140721296397993512886296134951514363935156693953470542168895136411408469598493326622587106867323858886173482046820112963586356086850280808990010336873935702288699269299309688415703065114372470270845940886605621619925085080483170075045229867561411499384974374528236724247011752752219792391712056549773939265617851914292889809921328094769526628739896999070092360690865247711719716436775091175397032694615642894011304016234523612993863557804148051261434905771446712873458705218649404521769873523826429994685541626010625529433775597082735916135436924552133345615470028231687407119009211523639729335311155713574513763873632585537418784709999773496227667389321883368250378467479239176241298114847636108461187977882790896691957016195922800720101638546729633201384307261015357392110485582562481450834990982271172537431661898270764002612769357048207170707238294753679503793495962053709252587364711565614892055509926081897980344124018366632254407903549751843003802340610340100070800435936157811233135704627044184227467750292122607571101892466935078092473270865634830216182778519562570389016434967497630165758837353184246971644017456968517441563682739261795559552431757742834673006626459484256130030407711624557183066641027603367749784483835643257505370906131227447056554213713055395041214404770930723805974240201761388808338712428339657470447972888326175246974011817153601468158626337757171702123517621147618083388362027272769805155412693555555332189781813775022864512563334408889642187108878819125605760002493334166405052570986144161057273100477440890380359378184981531286924553805395684627401471548769262161637220387883375209219769117520427875917032915891690596568537347585092135839755295810552603152334083221589424071908851145024496152020204077197006603243061608878542271414162089287157788136252319499039307033929960995265437093269656882475171755824871629343217026441816843735041207989998786627752332267153429656265424565077906414056571403078966426072272358100028009775563356162452144124474045881311947909105138404552283648148256126566660576402069983312509203331122099944816324995153060305883555278592779787181932706090624832300718237046448361621626417530660037779614935220740448905546850933261859896817727968563721235219522061092466831854809668186806699555899034060421453549706888722116665485544737333216417460951762249794260669008119655932048403317073884963132567528091648790438047733581412349508840742203320455266623007183302635071461835631643306650951302290705108596998127048560431957932483098441023620401286138167152606180868760210546102821111026025893832734613320145393502190620877182732872737573238961285705906599230762067191527859614523540177895283021029425074406479032544893190485187792230658755705834309675529851831818714639580644012274549506938498204861534961660966809718335676301653984712746607434827407270917337931121217217328408012466269969141030136720873859034350134195999648305717317281351467678598435506595604669482709646453996967577678348844382386243538066758599243352103883210672444039793429274809781333211958127182485736664421968622340817355283554540994033791200817781930840342029213400563009217882972619776202021092832751917678302736248024832636390427274687754971272187945612517533368004065096560778493184475868909948023912188536528179103192599014379787694565402278639885748900190058411517481389165962967651953628647403704182956151273781458371427931768485472783276974226938772107987280650911288542245558810967760530046225881236534459585529282904263248729079193829074424430015912233043321749983960208568508417270927908669161217403658713460032292079444869758370351797077927846425443407059251097353779595626330151620105744711626762930990538230950953314930896179480969925891196743096620547111553227287827882315705063667102059551881544010321443030390067536326254206403886179547299146722383387903491915917117577043234737882426456214220412861284971721194523967947774989502019344443489826956233279497842477954271383468074061678591708297018249489140095093673916673817941771532389429308963040120100981550256499804748645649774499382052009813967131642292372933063746621801495096630693282907315133730558249897658651072059062005100855113062631325532730165501951727408442130995351977247884932328762118752040709589800225767460050790041550959015117749679976946026217900228453564234340403303700438824368604127585365325742479885158592481798424770858697119764104449164730572524310775521839571158913576249237266958796377832895757398662942478109154167113743893093302272471373720767026888459686344653971343082476629181766358952109011457765130256368037604904513526733706299902845894840583299622867182786755708309274372140897452434055401684580331442206175450979375157863254743396895900909106632963435877923960446662012378018199794164336395903528652304820065144838908679968179093968392191346764968029637676333298724282957018725815272166342740226540169711608663866240218090610691230258860851222093928085683316458163865394667763437758322690128799847283259761763331522921978598030775207281267390995509740815831026242214818758918752733450398592305324064648544497849368991130367532653757601453706188722442917523077390798386974389188664990802374155429669756987000042592009061761066866642033879034307027029032246703205610520036958838534345610456384882315083937608115530299993492879713719524344757237305016282582542150160243275715388111482572421446699347569285654295230315900514798544238705231569171645469938125139858864940630214185571176010404089099327975451441664138366007107865647106849055873755353227776841871051331340166469339480101171657430745551657832452108785109683356354748786657030706674879487320083697244506973563156539802136665204030256610370871718402301655321403372464417538852203257235664145215183884402338134035492829892149346623249062988199528588748015406962682318582332783777509888501016591652217543819259575831084785025632513006822976708548987804562560560171630740492371853041415592568619958104191561642984679822860428173124570997704502562453877241875246171816764733206881907777952850924082793981263929073281714729472971441513629836934141111864224254713346866377348953047155270237630315218170865061346536478825552319622627748047747414450977573940752702906072398746893844127935875542231685031759886450160445454729502229670915478086782118105550534800474524896909928370668621541115580717207545716526524152639029230160165407155845568319918458649242203148094998126580281146071841028925720957178032301949356256807762579726731134506388372268697081586141323340914069738843995010372894251115650878936018817105445503182433285772117913504563330086336520489675687558691294460716925119649726374307807865028763257439727268794310323280246554164188095049202861051050645150974076979379309393988204090069436930520145540475486526847434255350699154372554548799945557575717110055290288521497057383193099126599926303027214961431085919971070044862548598984668794825495258494021644429365455240072577481290004469465245377754456611088038909700122904751944812692342191755700510546794194791852003345529200238631906610641827084349237032473649095221750334188561541405963248772037440933674713405633510879799023937800232827233993574703828841332201267921048808572822312486571541108882454719461573885948192265707972166853483144694770484191710221357844405868021520107389992032790187091323559898836069181245727448373000805795684024304337467629522647937272237194555785241808089748708355320779502209094930913969607027747219633219610313389566404999579058692896266637330748764917195161720964062679666541221099985276649576660420144657433916253677495650410192080317195903336827889019702288836382530134839416683270998084511762183945675313814248534861518221626102063378836409344666833348820738517989286167127243687766980119220961178925155892565933716152358715847381650914004310492845743608744560107702884685083857369842860928999840610300215603929042920026959636968651295488666912773577458046998678220018518078497963373170079355838609531844148763512680753555843817266948202320136720383810822466802922252691978489421176633189718127820802261958946390986457152154732822442813376542434686000937730173089124392560180921826173307696457203266345271490750962140711275852557099776787834235113691680780828761940796060552759199189276965654377803527127895920133091921656922403169529594685113166631499156266497678849506395154135904991785474203661241235620904912703858572631536514615628903160717491057296506314126419813568255882712941691134537209344616433789388297960429027839005723221989578445560121164739040225116714184825485474474882994050544802818364323503447623442015931906028348812201905929038589097978066895853336327780496718145327807506139788995104687527446556965845548590858400021628769846131164108628239633627969290417876809108885660433906039765360452058034986248153025429990279229645875221826001813553984387192565072243319645724821442369108554502444403875207934917216432308693696530611822458880766039122630766147793740139626275905122635926023482542867150705373492358449944839562201192870194963108712246964667663660188831956819112643414933954254685085048126649407842378840467575090358695586867824112259198277002620529560253732780048355032771098600233560886145066684861498610491902398119148261135313096980771099673733424522995265032026977129408771936338764192271815645730398210838489933968408978822692781354825755929231525219337498444402311412695279743314653681133415025365793459632592722352936889952911657839051377709343495780242884845081678096385096214991101215755293142309418932034817920984746618748792024623264471747537736346428784422085085101859895483660081913215390375796928156485978670762147020027518291339713073233095768389753811871972287718851743017432990914843707230497075803756261343617192803174591914234849951358886981060551521505580053390946939145214837006187683926587950757092098465369869796791236366311478509159597072908720611569539598555112249929186844346270259362624450556990688255251713253871339076233603752312958267984098524157397811147598166333242475431353624587789310852285501850338610365274181864389524024072329136928944886426361073347987120772880020271358836281647304958227778357567269771737526372148173947508452638915877558384168158944623590005811005155478155211915989409260954386405515023048674733978037078858996780290426169186235757536166359294651491986102501141013758962835974652265390618493425986197376818906457994308568221907793347750410979151819278961454833073843669627184677268786742069466661762496424631195468612096576083747832709322368877394276359485366945353711996785721950180507029300833967291622191736683486112421034519140420935936761527249882439761455412160930619960591520938513450706661580631712546713655592990318624640396239356508749455222093470080818944006344101707718245629986440888975081453877270541478718223272515763768181520742864436961608321907498144973281240253159938981891499737875751335505413518417523248626457164760575186963811239149064537296258772007721773002174800747597053030189712217514948418326562928196872716904104300599326344613349014295468351985578140523668494472860540913793547226618059565567974789983759417701187569296945207976616372888238100198042321670789596513165711270836863791985138098262010755558863084845013698889852530648547577457324486959556991638798432852141286279373681182767001533978677401991438219789326874884615178303965408742915199010205287154181685631672762183466751917728139159667707962740673450190692799069899514816824376399472024453020257668763209736099277089149723091276541591254620547640826275877647861069362876441617667636644838963349123814734513993634682578868394986006189506342220643651436899940418122362215194447774090000162529003413803124059972641955677104709970925659690989533756561997831379055279677143430341068198474896783125004607573580294330382741295579291450330998867721381840821020278858739473312732293695416310356121432153740235614661798524004440525021395317492649702752894194021403543963992140751919387922483883632430982645088815517774940226325031035773911346967803947228129840661238893066270577624109858360728009366786422070850402063608945191552118901826781509168309313818527126349652613171632836008818618225789871839722869146080623693390786341985322528631306740928417503318030036337718239262313422712658766389243628352537447792842071464341001351247943625250371773923736665075152700499142847200377228155450738117311252302239926639675836303822517482593507850853413749849977774639493333942614676419995987288351808515692400316580311101261951327031649910757624417295896662328874714654644080433326105731252788439201766152319983258681710218739334084676722940908483437987715675951339673907666824917850787550544600804325997527845681905733542981014490602161672173970149387378894100133713734855769508515911083471629329528280455823257535527562251990788100660549626629097338216024123587193158673349301746616274321969036585334387837552982923069429535302962676350451798404939141743612776200507012047136223329490497369462525149912683492697223927181438058385085920285268681848713696982301865308297867908098896917803585248456610461578903160843465637652415206998960414787715325424244985540996111998963619909269012312264906364897425095182797030857322511961634600004454764421342555031532111199426488693818814493421106664581353606774734683581893960923864223638866883259409262351501446193812289161998360708564624940578548359725414007231695018948458302720593692261704137279515584882274982673720341875346548209088782730465789399036510463011425735879318654803917749582155280959610757552269468795106019732542415323308141734431973169285327119263579038434995549510793548133416781534863685169795300896754157253297231975126783798632192569559293026939295235408847442879476919745173753726788317475798564660012434818162981449813556842677922942135202820081114595583822750948920344640935465425186185809117968349732983666164443281215689930619382039347527959822730531965927653302425127126749699508630225678150890006685812172500793810132582113360548258109364971181566126338760988698627860315480192746499292738684511337462361603776564128790050713351960361146184808245874008426170319965322688515740878136157918425704498407033028503986415367908123452529757553915487290031840253859937979514320951488893621882597850318390542010456627834677549373874061240266131834768257941230244161304953837770245421602665585254760102573928852929097209127195130469678663114130997016012308100588929404595846301464102675276755933127173676070611280889618436050077205018204380442670897837779801656671519912001374555346564849938275957638069958201719166487257690405817567636971212404361506702003585651618951862849896958237715760880506605688933867879654836477638754873726762343667754800685716634575467068474732791238900363278006435811838564963878017035866906159026918625627509641747162506614257119798101650911602530185252980906623953698857058078310607383487116700440474331197527739306141614058281089478752905154831820190496706949040868018122661018332624333689159912808149377726542418064920596394655582652956468333727266962615972487751793400970233632778041624595164805803403436346592692849621328630224118019487149874226170357171363220745019113029275746303317747217154549474496045856094295829053006488450295239940616340857374224733734814245419506426849881977981611766932149075905037543987573643046542500172457629902314224097485038865188824878315027482358749194436228928671663352438454971398418737339612227280323965995592850879930394207215964083587688641292234333301534414647753670772828311112080394933722247137782450158456921716919223969090286232016094629479161765963371964721151341522687885961033169929902442760576931744797627556938234687951800722582431928984212090918062424592635180185303355713702648689873295899914749068351503466406384634419503191168809068222155628125314212932287136544927099039699078208215999340490833584105621094662125184245228301002203695209047940800797248991115385215597644759006114021679424876074044640843502616114064230255097729570735359192017896248722619056052772227022343413412070034656887290688914620286088749540642305288340701594100762539635989867412942031227315973294848369696475263771114573200585363449916865301918532718804851171331403019420255441635475434335829627378963962158706460455335093980525922390066597067548927366496584217389218654764579415548138414964585632889229135970043443284331683432740417220417931288210369514888186207306109360279272912656965169482164345430892180205504472135657114260165793405210407840697734952004504759521112691337479248250650683764683231628655859394065964206728560317852898167503668865727548869251571276821012403606257408700895985113794385691175093332668155492099586899917688872025028749423682392598906603394819007147951628041508127580705590509013519365234297479481001387148005686554640523531781602480209867868247050509653194671137605571316031128797924291355429663527129979146221279066830752342926508749056630093356924827969028097634301111947722997078623164479746031501980730363239196044542013622445609341283436926570174030142499444671348643934023024708706329266833961527191154131675676207867998786354251402564800427578558345417656833324255245063376078865241734312512104072026386080854028394681815048522885549760892534838311583231282853300584311591807864573483256633044832841290394722087473592799045683947046749553735693930541390015717592010580395378869896624067610594713199824579090208389662160737967820180577425264422262342569408558769729400185846612284647802315117567291911364531592377420255642950367413104437435246036383057052792590202092523951848252002612665821159167099243504569040194048994341715294471171305002986283181463936097025333197729510168626613654388483441614449842750606869949358008751825621315847065265824249905208355032527822611453900619292676265852246002797093308424904535463579534923722706628477652415780430438572628901609790854163245369061874770385582880705708066957006054484443651671241529880478800616787816466150744268600271797873804223272207761657367813737183375356878311277547738636849267477601048242620871357405273739306773682870289334833028851251071877767584664437264212851363044460747572635146726483601908836073873952659451260894751274141366849372488996395179643388788313996073780961917419288460701905481073910762536926210425596742973121825231743965498838304878018073384187030316575985535421265677537681238828617027822447578897346590591368205344203449720459860905748210795125115243981730274272163407187304377806170557804721452289402054360437156616793369847545105798576217654107501728396941068378156993254071443800106793948960957235366369599803697679360116038131899898085139744032188286301754206249129689354421399362620872175498238669934581884659195275478037748945344890209674168125525824065853839588179366238067454704315633893829060657259067443959617873637401522592878212357777760375706285224367865476396887355417793869606368631201030248446479908519028157165874356813478831532998628488722829371320468012843880308711470861960673791882443502650867213309299292150124661202272016022067414762989717977189516048200827423310213862235595557217826044069058118793517048970509149689822098133977666132153163253525480938956435169548279001658383840112415649018491997045733156166781688107766748288187315289565988399576194026407383075962729806539193961325756346060677611935281100785111449103017620147551367569838856936401606412776936175658200436635659339073679842522327593686363880986781994636140316238315984801666941782190645557368184298158082950406480008697112241516729478140482375425805973809438776010086398593457203393214248834164123019303297008942111090054849721918397386241920086967460613954470263157559982242525419814381367004474094993549672833272735148263676774130421789296568310063479164594104587034621324837055848191679977226068061276628845367797585166102572371884995684115898851463135918445682647546874408019074917003107540057705084487062237225951047438498169748334717202596346295710247244798706494762760559084697800321903547966151531235529182721482311966893727128903793582518996613034753337098465533384266271279633635115089198408786319406779694006496489708717215745587849526483023699295048902921438961121233377985093834200240075051254201789914614251715117584800886443015715181593901197660558168949342477734459472979441893446084440048601368000718640119273859296974220928201420627674821776447810215082349001756270826679194918769170428412176630768513479752318002478821839167680520776751769129301732370318696550099006992743598343833235828102014850124075382746700120834852045972964897637375360217485879939023450265297789605704965082559493858070284602904460406686812657320215013335995266475870089034945066706612226423442974073560730743938965589913684686676490345731826551643561682495230627450085845299477321566929275023711098473114436723885858361725080364668733724623195548710301903512244032322899987709996074827936129251525190049738577747722699677935745622240451759404572204121016197172377005171077235928896900295200908420272111679268321316987406733908377795190373077431803547946695108060757419478832392767711405196654328606191310400357987715387282862410692423325721541841686778208328287200066252511383864451188921627403039235888968530984548908378458486861289945114381760937146540952454377035924250543284697741770062602579090827454421987496303108365806297620581695806247155779136419295799988783225469161825684111884515933575107243590959716653873912208175420945810879657226218953608309447384865367407263388036501504671889492479793355229520811734578491253453171619757778990908541623264341677115978035446212177165987379578300474150338868787441652326197901705885035137176724725410072264030335759450747152040861687100862832900654219406578144748525515811145513772681866646294423209057514553736443752884498241570779609405158577864337276785897451602746687615549045359817055056697998878471538227083560484505950725904163641774511019246521377791613174186740109340029018186835543380100702304497431890358949666003240996723444168717231575982043362088293272953759655112478335755121537344538455750859100817634266131870173453480900201982302638882297613929309355093978772440725726792725301033181535382554168848524828391897649968023714424133293389155616703316366207758800697969518830079632181022169478332581797840467362740260332397171174527495977142857314536546104322567644179488631918496337045147064039131267841347012739931724163508751413026061551732498532324615877747369838732347814341611417755225375106830125403218573460027206618132561328918936931630897016322770126245837042289407653048622578367926517576295615150681872499462879506411277611548867255002878357642859876942614740143289321603074656938715161651286888965355567711667871633054398982547775836254361505413184464363024355654308670271259372669436076039133579045826836871340178783901757635690418398717183651844402223045812574186524294817486967671858134694502599482922427439273398412501691728508483309904757377346863505527014202155784406940563807727872927767349594992259885366074974521321991938966776411852835118431090685578342837153772838648360864663625448362363023352578977879671938111752460974198407053084819141933714488612774905078293311734239570140155047803668056406140306695506577365794196983265957020396977117081841622048969543951709191643727524491878775205591844722628550250081499120406703928093407985589639644706392147751969386933032717851832567500156661010336644434767338648213713894485020761964623995661691694281578087051749392221068435186608047990437285887885262438964813663406176736639787557103402757531136958023011801701157057075654008777668040852349102959854076370198824895149116121262889118618315986628934791250988582879193426701109185055123862848821676402327250348750382066721214538687747410972188931504121472235686808365004919728050974285324093306709049230163839034760081825701493872266044599570756179968811159240510391521886304325206869693469046178146506980901638373882156744006422113434746887421939749245765050092354837279274422263196696872423427564704442993699181876199027328459673367282688950039679537621026891481982704454298522800399867408214674750348870640193125480463477027716129415984546549931122041695466885185801964024809996577744575346057325011715716473013301739699364776689446425679151392530081502706660538679250079838387366841400561860070828586820604633028811047776271752208133616105863323384065517263958789881283369268382682256703394448693235351684563177332299257730389529193327535059921493823712181223602461489840110775559696894661048854811925276457915888850900539513572682519210161737605725403003275570894444924612370220451724287908131379199256592145405386085274016046361063879057482039889499246086006687694657743643674327262421703482004336225490117173513413387866086638980983605120978850716148846485928726725779392158434662424832022134843316836361385741966644387263360909452879249515991274102264902157802907197720771112805984435859134023682980199047076020401800574846400768046429919116309749426356775791945227037862743407681707595348916555453363761011856793979488172543363486591325099576062830357219806620881979260111151541528162083155787961818187136297303137508757150245235213472437005713034871225858492477083412232540692523858141850179012855463527572107153349465927851975391540492404206413112005057445456235019587977324741936075118552669834842897113827923925166035777076351191826578129545738414118932058576875402891728078479476803898672928706967942961288084111226721941454309658624279265858221374900782591916155118972498679144088568031657592875758867518795107498115645422005424604588527337979271221894190606938348757979592418198562925884906174711845792144518358263629593700728338159140665225022227755823567909700451300065998184207991153935824989126417541047795384535863245262713396646258012066028457341119707373260842301638479961265678130880673349627906898547774984911810394922609117162591895340392104896674593226642235032411299192546487312455395371949498728677002713991494460024439929891725827835879339717518581227957539465024665967695338954531597359560134966708779152342394373117764252022511000956370448668367229402072108056660349892128808986530309337798037374835906542170850196019795700266199474237671585552130162079834861758897185419294638917324419845710485755172188803540990324533810162276921668005136471082597569308057850317082989264495247276589602498741796995940407422405430861038632980072465376164949386201332437135422732619142886131198282275574635326111040280372768472949118843146625470578653253701649525139504896544707512683516890556735896591747959860658573730440545268836059583722358682712750492930264681161873697623930372778621893396630547297472214012067954826246515175318973191457028344715859301601428163309543154580700654655480808825878018056055450376702120665747155975978625939530028759602874833539041911256124660783106260545372409356058784352066375132253430885147324863886189546763730352764623110108397631577016626963960920577413420973228290270438196100959671259821973754713004974704508729894381074253186285012937814607591054515654829295191916246194356110261678402119110231534913541347370056234876846883997046364955057234340990833566738174062836196301174038016582044089758451078947750781354531863052515908429307919506565607933491304428694945450135931523663733978580339332703689147182028871798026159962287375329316780145455483504431783517207702500545527693737303744463538202568506308748984938831028720588096006049990207360472035069778491203666541217220754529143163115663662026306007404618195496777484589773611485189949310088455423020878455448532417908527957133279412348710643172042333999631469438570911029813362959719955609452349303786216330030482457099956558963786233011123735356816713228301532518613882680650819625533978711186405469105594136411512614273790737445665662202377306460944182947757786387218952226122421029539010689915368411255644155944612978020547957538268956415742812784962277748045083216823260667228551448215067812800984299523211818501046725220540860199676374277297711356265619619228238385491872515049321154479740301401717757265909718226247902035479210215927582900395779253526482318093183167514574786536002470526011243998221454242072565789290830677736805674151824558072285958477366203952095402658571236410524624458564585460875869767586142973982637063652641334910932797355261045187467998323535661362240065691526910190502662063293249146709615234957479385422612321454514669281786742113968514374345746047387833319135728315549379838583027330401644917227810558692607461822044863870583218092845149222533243846099393561387625965334947496091453432688558873377840423612407071012138608694259786681716440690221040663299359280406896919086246656220302830542674525974283879262704461461132840004958193952725060492572754745630398243527143525744501983592872888799949632381652434915111851697669952229671978562606166769451509366876330540189345743809171152787800382764112169424304998287455739712675653747674437499610096072278337582306662865281054642767576785405835743633275404961962904489957515360431036902456871023736215863109283212263290209232517563483357007706027817308548406037947895711564337389375635155702546221137777829308928063055778891613705094973414894798822113276503533539175226273285931313458700841798838621532859342539344643683825971756665718230650191827026003810414520342843805573027253455297503719737649372667033974004087396587396031815747455415701464473447554505435266891607564535659286102583547058888570781802092483811445253837437211289575569493366107559246156174230025050918208087174616307193023130489651773396747881625210887824642316678851770305754585254541473649920011460059213884748487939347219805731385228130876000064065985258431231436576817240271718048876620529472283033340692898485170672349337196136983100732577327368426833731247792243287831781166088764429362079175456460679298840239973346148766546680450345294377329305513280212105862397324574285246804831311936984434869583635231534438079607232236893013255021376716863252752766736666657116485823960198815450711899376614629398609693697154569827386805453852091609268169616636505717053598974666105411674039415618586232980215941563791823914508838644602512603791463787096990046004534462096250500557995625281231643831555769963820038297377996022273363298412675248798434190246287802272554050597953760187930656796364332456776834903890998595017761693666155960165930404718260641341064909907005236584514626679329001818218901367199977218959400680842437243513425050742347592967516758970756408547905373583596546603892174040098351319738111406452840054614529337479559659026440312615845803526475172176247684798683097367306862612432159825404729449519991716604851157969969943677501517697852610297338103745946350319212814823033955031887427363381275085160379313272293539917318739457995805482976502015628585094660749871467658429072831568829549666461819754551771579993522251508015321251404207929654645407769997465663420754027311012478714906324146640828720987841463438884415390153540629277331689410684844033320858596327553280660554511920459049246630042824295882523096178380213317839512858622765981653702975865966489264215831240136859592343189527812692859485979675252459152978718403991613286958775392374445537483990756708443254082554598190459417873937937907091470259306124242078935071472697870331206495350581120410674118360462837485298287865516434866116246460690044143992397595923620896638529615407469515529756574084541389641458245664612217439262592726337012753188194267080015547775212684453842958142078844636036907027607684939374406967829037104834346496183951351466707724475334379948571181733858097242745289325598160962551513569994883173572972923502736794947992028672342693273442161549085010111561526480825221120019693696395434722355923499089149949175078924905945643699394128573865055440306894178778813162402204457489627487961387574451124929914952690040988313660938102358797046455170442656678926213001404025039686397340615760415553492510103239794881162440057081241453158637731533719242597673992501144251381045613745788033826078290052849602862336170790250416115054132917658744288277703315184310559093110110837711241587794522650285066910338390470603733834151772938859117159317414261528531348700218185942477225249218399477273344582688229828159196167236022750930057218233531134397927269272660742698706654574124822445658350701532741347340742992918211465393613521247385753358758178487756174192716666140708739735578396380762423422428311928951834002983706543007874597078847057689953648834557400816027232633757062563563460440716263625464385764416420885968814482568407267901125720132198080555463033999068154935174843696273827387578301352802967929770525248660039759713019481438608390600357060667958876460311333778664368743481534026463594470470041521010358880885240443965819350537976111819497976940603746845926521599062204591060024255138220159601442230401120888331569931846594243010331554343079406156232771170995581294834022468093027673886965592108020775684560514401996147512768996153563553127806290363713755433484078427783500714263886857530079324970766450842156474970556900367395680456294826992322433174714148860750735037036549492242290677151388186376459339745150882254863021863179938411742420796572553707249394317568707340166478653944798386531194734473299036234520775674182650176086158939697183288900392199035416503990160619645314603583545764189406433345459796406423662642323743300684688607217984868600775323738249732192578805369229489926411272278387848713856855389808405791762620793176446347051517657502062423605998578745154403110969393828639130491691249246837347929436196431556420976393613901134495377493595007140759879587007117351331417872879099761989893558003860466313066307433848747693285110596461779955581894754233046093516673309206781901059372499035332645161413960064114047210193848448590588646574148672328734337131911356984519397158123233435961990992961502358619080374100731620755233619311562344225825098653880870883645076707068491499455085312075585793802114420471171123248567052197216180795224539810286007779118984465935460149444062657640961058135524879744346559275646439846277029659758186226648030188793180640826559461309564957003786414571776138435328777958844710729221415819655275518123666220917072079912516636798677597363630270503715349494286840062416355325534646920794726337888973300991405397216323352774387290930102157139903175277321463592798768960766440997635713369763888997037117931080778697899921082186790415081903817925815687468883840121658213876137315114713033723277338800393106838041161069265398235178899694074526388380444099538577559803559956786713880111777857232380028153155738303886450401548847023464188591238836562620666421968639888114673477780158333005735613990378797389356011968117832136321032562236092827367128234563681214475307509735312036623564447735625899311059450410723153701387509925940598852951012064550476159539602763029385624313504959247241258465246875376194932718719194517756706465010574610291608158847359449256929484401989027170609716741672944713341958994315761516965047075619253835179428973552959269638675050502760547041774640498431700137438154648602405333743117054884297686814638957833850326132515950483488949070574251661696218652344065173532781524383332296646217366340805632217573839822985398157805255944032161448474800075128318401702255737314414517169610004376297633760395049363398184074758812203831356016696661376524711681194350285461641808761838272227055059785003439889954713240363539453274094080395228374825987645197324710871992799545040168599765826898487386365151026838660512511331499443740507914564103946207409632486088965158696811709099005023724315548879105225321848242643213608111328683391196919673501085794019345811397295476119065963853958549635906764037415139284647693269263245503635307582309650451051223397216360100771168983883966884394818132362705810083105436808941586863902544049411936706174820041540572750031232830558552676125610519089474325491481805805811087483964903748548051960087016416740142995427486731931137784519697055983538501302911539677235489168724511262360139367726425682799929035594936376035174297912166459309835029490339716239235353187735019623643734135682792012240944699579326853477326562766399608624173692454258487681566470253168702275595015670935238901417868967257718212498105915970554211359823494332602633636598750564333532419070235020869591819513386272313379201732385345306072519839087834363623500692813381913536803313735739424392808065958407889080939228152522184368663304606433901651256144176005357893520017050519360933914966218729408067830158613200216950448072682925841968635289457198154242618434086224365773032135218043395693511632091565787487328145283038066653717784263480642872363983221425978640688715190386477873052513635683095097760486808390634890915369394910764488114118810444914933686282806426521678788336856036418418301788408656868273305393452499171420057849136101774682839614312703331263868706849165184799566671268337721738724744572389684842836816049437042281177399804338414852426420940170233551893277462082642421760068502793938620511329653072247871873707542053195083310872895981763528923034296650851723914317229377243796953513566169580036992166624776081039801539289985589822300057542661408833273125887905684070448221422875280256886671314790993824945154304478530991433727797137608511865588634929791535926133489415781964875635403631868498257154262569324421917724924327853082468280577026803618536764971073297065892630287609791132652022507547766916320436539327062816165224167632903431393034315443855118626584768280155535410318475381711091635488797575766340811091561231709809148112227603076521206795641220516952267464078605099310119916045257842397083840046796209411275177413665965217491836304792102695790247625543015843269196311582322136246999172310342714292136404683122606361913876744472991923678986481501964068660186892737211898427000203006005305454446023078346682765019292916548908234194706451902880006946031040530436649647783120419065008065057924959092764637915977801870912322721603113554810758076901283718769422577427307771660479395332783766373101467438867535214476929985227375905184173613232622659386387755560018428657063805180280768567703217957062400114576227819707207431062629300797512998379500251952107988382825007847586110420929172260530149125374025136093656314005723895630705753042959463884300443769642490428980580322702423679828794906494973795015468026921303275143891760920123225010068688647064572836297992571508051076744238552940723532789926589512680975951181180905373081303516642126789750376980029637306081132055937914709022334827534330955052188445966754679279007151321220203372398729156200254506237921534295686402200517537801407154077685603795212546368905901550774293132870656091970910992884049447804399029279017984332689707661943240163772530268614868087399048603153992768836148158696588220593963672488596354825279378688282218219191149283007220064203614925824339866702903744624331269002574371999207146385014176435357501297092914505872497900154051208280265191334242417675329934390433666142993696053483955180307097859921430780170274426421593478882347224573886574725739160766265826141108557056680265796645563503356912218178938633722154622201707838167800329754326207381660910088743273218220473734669401560270615686188608880547464147809850830492053570289217362850384801829085843170570440716934294536651116855253574287360055285607932781448121398182342705653983071662213532223385264741511212953593629095109149919474365694179703962967599850588595196034638749982260551548559765180788855874703653993839920074192694345078829412670095377039573269837341867145014236764312597269875045865779556950379009016411662273186757555580697074466133876302619663187108162623407847127633839118444883135542596308598444407067916309330790945042711857419121641679556601135365061334066765937069485051216387366012294989397742879706565076395025248452681629872911595528566238395034317086301671455281931120228134061554153910873917945590413470847578059108776661946826783015036986520086151272036078854505453925949349755799613350809499769344162694770629214006431626175791316530132036432477895770075547421090672262935091453328498270932705554304038695718300399955246126783394567216935854202415618418168334387565808746108288173938051622714353194019175011959214898527169872004807214716657608101325677580794740228821940908306224790033147473001950677380852236963151487230405915125501921821139574943775597417843903055846213058974013429365193115698330558017790345658531178700126787431102960260429749206011940073334876529031068634496015246826105811947970026909223985818831737314102860359452259409730084187812968417534400453178625438654191983657117373001977786755406521310109314006602049954281437592590989880783488811288999834465682981987584933348001467782120120381272706969887424325062258130140889853420147151863911820381559002200764094315413275150492666272253242431170482841470305663095099893757277113575829772311001620596502277422383493135300124416782635918936490860024942176201079038287540196206063521559156380071890520827460575907700325970304241312986210455981297401247123133307975726425515710586816062301052965251817720962192550757784973302669185324885898164099763520877830694789703718552872499656105291030653742972491288381526901075859169221485925689115474184766657683914504863700419066959773173950771063185400721978779875820152667999230635913688742544008421528678722745708051262204901930965090316613951247106987269639626981500816638859754841372606688324717646887008660374282658015568632593653724375362878547709732733898450260330298562444657098676633063628811566310173208496675447535272620984141264569236111450109148082659591743382259188180655759436012683839935914870081159022959340606714837527610298560137007979821771722452434692034084788029265076434298277490952298687551799603854801224125547444883788444699443973368995902901993455947430682293299546444444601203794349370691711745362564945225678317859657132712972087884345632787157175350160708652568735676267572480294375794299327377465142782239475941469747187034709962253345662924022006146386435064488238888261580614986948369128357608856704837793821321643527051049602731031151117313000285719805343392892457769531562606186873611928817687095671501728031422898458300564598193712280252827891202393961431758517668364904047848316995945619368979968205893801444190350950435787751599935573324070860983176483758718359592139201652139933637951400972644046756412489273396870331741187066072941287252570024501899012438757369520532575734530450042765354249925235652364356864631355169660687059002851008553764211170383895803179795655605491385449368529378504510778724205792660206678378288354863728210774258592978782130571878234011813121004571497772102562683103022922069870871772553671049083109767132556399243236210914663202638062404642710582110882717683121425186419712691102910935875716247330485687526376426973124017588669854516638394913388854386122903642954933843298058413138078627071737128205978663676379483402994220956933759284357871446970852835446245593327807447815412517616471190267299156930400760043652901174753167744558120721284457712022971733662358013317372303505500104902447039865637959197925834460898695952214787245366213158930668906629876882823780539718940428433349425725197894313815327732865228435811673973532351060730836087571474868030882226863746931071928999445959469408554310081018096684755982574365858791286306573756493575182704143805489190037979112834145324131449291597361054598137385036801818664460149924077243329567424867792590598929718277220963269150376668379237060424461013412590363101565734789875146301484643037477431682735797484885401093758824680879107955304424878567807115782745490374396154449785491531604041034225149303867293759631521211184829860825346974187660766112024854780949202122188058616983645400864514553261671200040248860217735945771337979221390994081224343637217054232109394817283010990370692252003186951881938818045123062705016430611079749875023226281829151022655630101512738292349571811492969554519458769736435791387616419237898075063823374152379461542992478975848866673998179456638717953950833729095183166955868079892966392863452355858051139977584152529728815153003270599139032548226131154531220508364409381854839310177295244083277686155652162439781549425373803188255065188261275508056982782644181413068821148673074478183074545886791300879778117693247067564383859292892567043829994919142111987210324762678124292332709963950169570813139801308366148492930325526709413097214969082294276000558461193838523929156999792284512987059373640372494412974814792882389424416774381783546279326468457128270403823961354146307973967104620780066724161050287781667108488472886408210910414251361286823779552277813198366234866361105324145621789118239433949012535271069351565018740807618974037622268783261779891698300313311890348789183672837195305933305856648429388658890639113417752597263874803418270487187172081862430477827414904866597513854994143619087341104099240817131481328358164599987633720899899955640553389463707696271440414887211716626803556075457737453907538759315506833854681447962527937046739705463365419244028454019223550090530047428603873138198774726623174905604707568656817278299279253829726322732492853408875709996724494672843330318985814110305435237816426792846242056866987594254467096124855209810273521665587674898933667184557452579066394907152850956904236705943047390575244536920127175038172894849482965071650080078657967359592553611909696436749090075743718402489632206539582121711393002030102626002518657008611424799155094297876689803970499936395880390903862647414973447225980684318854022197753171697973006496703699679365488197303006964890134513577671543435402088979845986251349663051712502361031292561812233548917232049712602342580082148605472317665675406847097974932150144934172309124367961157188800347338681073329579955334189529968080103354182259004110381163098800849763234729152895254263189841432275726665607751245478959081412935216986279254628833569768228445518537650104117918943697831922498296432153961783335060483183045416482238368839823777339210025775528991645112881632289633039435061790778547918453525064089960510200822738778422944116810464228519302942602619958011891144777745080372408971623254031918807495960181623800288268252017275080883058455103132309923790924325365669930878702137269808397606276027906039859336020464213372082703467849024594792231998602863588911511184089288151969038720375927881384849226613334140924626439082330337425536410210378614775796427374063759278895794960079216528578110908049775648387062780099124600768394563637248577000871556908091808264397860475053185315081725044431132036875369739489907064874270081140472361605494027470869526958393690846522850049020407476687935586289711786341824881692833480266763211822219870614604942420970789847109191411482707098006968703449049224514051493396284566749351962918830652930737361479865082720526398721561942555156107850154876210251612881955029603259128733975433118001816982554020378135234060392372481427094301009908207920530190600922658921899341831403530994101485317861909669975503541475933237809643272725297573835926452881130787971071335937208901858866783895756620259397766378486219969662260607652511722537185935301683590431091783050527825659967089527797974895937752094233064388884214680545872282219614367977269247789078741512940120464284423332289709589863927714678071602892088124802647024951179171316063191152630987786358729171219665003883567633481506943853995227060514626718257493347963312363379103115661435775091003334562128691016216629480900580480970085725541019545141608828653708356025924796487407851209886469433089219913888672610986349614516468452914329784078967594008382963126991985350299672477379617592800318691901281207649109562602032833983337147678673700798855086339718366192965240303391607859896962247050754579375201266562194104248726515250765381343578239493078608129777652196469418182259487000053772875610775508625695991111280411562954290799041464147800901820327083389689728096882392122943639431795789859451332305056122362509964008309765169956187621843675365212658295968767413624027693215957549245151874684788780146736033649923323149037342979843646702511501034833244709193496423640030154259824190468035959073666662914983964114307611840476525007542343021513749353195783823748594684522406365951553542841082979120855545316817802906172165565897598001917991616430309345698472110470752670177009869066061078190162554026871621367417522364702056525967925566633815607797990489639262401772780931369787100482950063077225117612035019334289856446573811618303403455898083797337297622885807184985575725633820197580473742298709555201548535188415586429271769286224473877824046393334441979021808282092054126968798252155091637357556968425333694673028680223836758492855273122228478347310955289774960906384439961144062205542237176959476206946506623021909478222681699331483180092482519998726899088291579747273710470776031540624628070264834507399027276880458999093512315396058964275317016009125710691178225326108119369234522449116890888562066223432865635721779084404665004617691807773780478571299367115043989625090113779520907427478016230149706282014170777546671213658235698174716559902979843680791210253893799242820932408118600648492971991585163695664332754532261606339961439345909217808456219832023864345728507465658434852261411789760759942991046013048927773298850155598185147507321137251669037392889174426784670126949380402195795532057185262949422101728910402873075324709865500103648313400335987292325347293343854546357668969476557111253364806432000150298257481433068201119189621270823975888156281196852736653496098410927018121137140320180351301000174399185438097976232274502458872762748770311802266132798847150944544505522689317938713399261576692490579906967880178360918883622190997439650838586355828475715422456071755152795254871535157075248391630511099503635301517238570809599239248259284499435599236447007957859170406083255131598397582035334155212029203057485239571780324375711804918361168379085789882917498150358730942620605720792613094073282791759318370253373502171124738560764718285448550339797842815960478591989232517740859141401788116266480223549624311113458166126148468243933592862963809903751827479020394704635561551255194490631701064149570939531161696772296370928322363311428725059970531430497917278733968977302818248017591177612953189866784161851082770541427528680053185922920966019886091379555486188871141270305250883296395160716392507858332959814042522264455851329374494628853011686372827760226763415150921045678362116989978405097657274955745524826341477547808705284302613812996707538516531472426941942933877985131737887587301465056693666075266336958080081392402765967619545663654001340452069602243378024722912274141765993180325362506819193981265062513923989249708241248578192037618479877560938751464325747662310080979798534770498402798785746188634773615531711478168658537662423162030720807234822004055356073969769602161542317906055820468106218272730244361374288944507436666945128859440390910639973409153473891627892395817075095186092703836119283027917969221627121386020276593902901295646435279701602138020995550045782358730178492476716421747311179687393534564884643775240202850042504868205394732133761587081172220466056075147237012165697667070584481333941412386248222941649808359525309520572886621610132221703381419200451235945434718688314165201478732966420158010941875995686346306059883053968099410358772045348344796606678134340865859243481914105653269369009276614440154834642382700484274547650249428403835282205368593571025612372947708309963436515058709482946398133131576187181386658047758792308494874866568103732268838490270876424826934625374352843414530490254974030849837020486613073829687526116291272926946373768045629016425550359650052194568000864083877775385354495225635384007042089271243187235724977880769842498308069621685471683985935870173425380638122234695689508913239560730848174491450046176480923989088923755998854285415888530867110070496091536129990982282987582227095920825946381580544582239858170521470950813844892552963295723095982818515754435566689661331822032158544260463651713402224626090343713687213776259255872208045481175550254717410199130803101245888412733182873412493259302456015736166442830111195114183094183822303685011715166634387072711718068132970506249592373496631669483290988467507204753216587750768236825716508384041651584467685201424304565766278767144612355793099269477942674413677444896504907718756093091064167221555736497943798345453622564789536479039797305627885301219140867117542349427460510600089350737199024438159618292730891654832733221129150717092285145432485844979251596072261552234820950372552161894046164184642749617712517159662215053916845287320507062201340223124637340227484343622492450452930381819340330093196119497896968735401282243946455861601131971423123767522689890417851364984590758317690740369218779325811925459132316098290102293520430450343100744077433771774251721829859627839402809756067453504459555035702129559028438517767957330152654391627089521847170894086697229657877341965974865150384954795698717508925727621923487304016234493719679198792127515002598166600557385607244863816059913614652435682637305796185325902392295261353793842456721273372552346889211049183733658530609165323234156517520644346245012871443345807356015773727003259923339912435362653951543271818897266032808453847217436699274125886407334775329213479854390865212895148018215363881836306114826149118798660703542341396250303326480322435152212881876486657330833324266603564245947500061066168784808045909249113862219853707867570677743835762216966373800216567245122790152505800541837747741372063668624013740327120868652189089729998130825914549484928507831634631424422829612021619962106144853547248949773037829514810972721487168536548081132754432707126307010573695457312201633829203354996333677989836833437927095220050615977962854727018471287792773765162520421932214527304268046777714960065462773025175194253212081133055316148232179207100097251172908758080732766517057551561094907042747880974184794731051662918145175245685121082360056631076858374719187411919070595165016006597811568072876543078627833892551056731377689086962852614343403554448337011361088125927181099526558202046733757668527357214095691358506768490987530591499602808930082192162634647131696869284446400800727179554287489180121242905214688325678594254951028474567399271595300656876210442033046118326911750686789694827573134863070943034047381919828276425123310584206953205032621735674916515802850362037421822442476023102243498366411768854188243178513729371790976732730065000886238831251869854816790544558870936589732991714929171782883079664961554609406221428855272617326349761697136112760457897631741362972111749746270386795195768406576806696610745923533855222437927570074377971770846501136889705440806787604683916608426644393255569370534106784935878009240647167824764934954527734174165338665036556778403029497393195395236354233955688191078879346008578492907079110225473319429188262908758900507656239271033744710031129328950364391560869232675080701752707806523478843423211548264123310102939833531747502901050088248470263837195482594909865292954905853981633523315388228983062356610759977446827831327508119842629761725654096563136701192978677075916717324062253413338756493321201111611002127982087517019072688464279156770763249983222635486307643993776489352586949748849751403610974742644387935615314225573788547830481554251093811659023861300932319109004564247930321146313770503674403235657562882258815578610773275726577783730951965722365955099978374344728718738505710975167705800626299171651808716032793700637696847500449630517025774300365340778061900490793708743946541433116252121307107133062740867636746042725120053066934666386360580529365579982876699610760154922803157808897191954787425875163247029731168769791253140282130873999621285426589626214067908587559882920421996264266815331765511243272926126841686994959616257643297827401032466871215217749010272086140457041843772472525311195489853106842842910033864673478825923319440195480402227752512457148736727995538783417944708558390821989916238575561239048147577829565190928017154544343600553463454973911145482239936368285845552453034114474683119785985719316627097728823021777262084441649939798466439225566010233265468392875106399071910353071901048595516531664639592745878910643739728177973962840527966207672461643411686781575535194659337586864588891770180912888417217225497500432051721540622677897459621996271059294301422232686983283884121269391786896833862827665976922937516261484428304608065783885150259806211433195663350488050609265566037453650863899106764601219290101674567069019561624094820203077305921549764243193121825288671728689431125445386728920272367161881922705462623841917720289285837197711151560827139780339680473639053107249105347466137798894319514260598020382343644159944951471394867411085404944509808008300698151703519780343611080455105671404290511664151733643299422984557944289912369663458673723551883202089949332378120734282144982686255102142274174152183254787957072921893368172212906599374824430842747700770558693255190877689823338331053874727244094258343649611400758762983867041156015183732900598995571079956555196266283625768134264501598948719246627937995555927315352563505770809237375819927732998786483137876830441516543940712850701572481320544666268804972064369684177950499558644800987389208362996636796698350882792364639281714518450335359634955975067077670691427509489439789519366942781255982126262399107318644684099676675824939181952601013557648089417390091703324390555168404655853089727457381339822378464988854668593587414439017687003354456622861491699968892160709587071538230247290141485484740416106746779110760298399283958191306489729785832522345004804671709161415804604969337894191050934077160469964109877601769519037453747560879658056596644757684136225752455737234306520527662960668688607710180358220313332828710499541734557962749231348713008071881677185038744615518434341160700572012148470497155700358760536695125060993463381367722989599396530470907758702122853996538338830337225212225721534658095861971663526021218773523632210381330178435122328264703985113829535411531476585297846692757007559697375556967699379202560665058019575241309261414587994432259048183682003773968436944495246157218848351917308061752708845893860916908608337802034073660189890980450112095612626412975525866321712060897772752749278586832272096501292609356462566637067703205131587220245274187913071229238592042836029094238156650707018259933367311209283651704969721295368985959534643028363449040675393757489377951825626024989489824184148530926408879978584500902848461707138162214657347313217433890174590506791283071266897964427221745716969052229490504629895886919564363452168923779554263025695684880994217319780750704060102711966238043986914631850106076881123895755114165975674672239969904449035687641669269577185430807954938453470045388382519180299857597039886000513275082817739721940087009186843925013334961467493766058884062517670617317324011656724211352727767667271080127886567542802816796654394252848378591294168394667663590692574277499410425356071637213704579792717129628677452685336317219084261572800845002564641994333397366775411020541558058546291962468683127092694413562996573454773529579319543239145583260300164961284682760921582764759322645317655537189647347618521046070197432535706327597051994700471357187217516746717188929262059237262218577392052216967531345353854075203003470488261623987078115465062335030165630438179386412247761287998515595679452720284276712747977483251070287280992498202142398625275421215263491449495181407360738013516735529549664613559852498071054277918890764279849606817701885794716971124503657171937109844786577297023495751905111202094856172508812160494961870077134154277068507228973861791884776068004952852574202113343309688748698172912231024929912952394863585784573206710043020369173973619151227601720445707551961193400744267503723780101658057154702743553527723649528708623006322014537202645867263129662885749110181078982825669483750006320665961427986767424017352032935209642483436605633156731581862258415086995487014862080984327740752049080705378980976958706868141347465609520705692256182288289632683833287381836799884704005360209870005781378467071628108943805571069243816034423115760361837578560727359413117815741820723249056610791657937920500820221585146456581363006307073358447195039861034593272300274591351653519806826383783385512686614764871773547612341334360920693344177895268378400485842827367435897875809009120606976288911197073136745829929594622595742701582267740970408255922696318928301847514827963356516008799865337216038057734750790458398014803846870558758284007313682510594875828940638489946222429372906959280923534114808119795609015229201151869338812410530183592312994362260753777973451128613225602109631856949058591787192919554877221409866408146879583221690276146526961274441622054130855307277232756935114502324282145874777321813248479459612223966284851083267620631088226431076991831506241755550938666221987231475360919467445673284831230178426849935127396130511439101538423472978491039417875865110409223083210369966139884663328714360630003399250758697692809082913778806847821458389671751119783611165876794948541706362497979647713887686366716778613117435588767273179167421954978005620299836697525923918793680986177110057532251622040089934543566242192469547595587865248152889034637831251947281762820622186902895097322720856741846489742064288406331576583274543861948489355272511846633075590432673200889080111246682650476841020950169277735996655387683249299692719260985348948056447627920687117595329835670493887901330249519328302758937231040193347725021526824424868370803602479619222557848064538564721774802226817213511008593262749949014845008489903175262011433960285867859591384118961756718432306033322278489827095481701537908052652516915617638074009588334274469162950244556669181165827575524721917780145395651308004505076010173999359556832080165173828551396991492367107645694746557301354181527704008503875008202764150425689911816813511530895559634273336405177067232583457264524178111944965634705774151665859075756871066332144544841141040322941832924985684318062383097429709671423743359541064590021356505781134374988821704946884303172537475322710360085610228406133487489826667231501518143503271723696936182873674861646016598302757009795946747854632573168249517429471240443940783057298429050245401294987062337294771819722746648938386642713676507616093916136430964483765339055859293197302750509437423013116074148371718636350848596037721178615066040383864225251545932031153516108416049836300205377524829051326651269340813003428458984644051137004681572692683460151852307375795083556423293615185068546493126631664472050548505638408047462884083189073052701029573713872298709214679047949070271308432144356882432003274493488023890195538100659865846892907515937907026594413263027687067638668923147934850151013983430415583176782317548854608097434956032979005446260410446117369280573357968047136839545580861516038508603754766651520605361780012996860308603221800436066726630677971120098986095960596632572535855600966801500474860331149175125079018760935164799467120264650280347086182984145669808999745534666012706345931491204543898499041653771837200603230531471950354621864870916394677851208074351350077281647174202817332136403612062119341804701657878791667382666246577541783228238552998153000113554374878866830823172268221960421559915486408680092823285689511313292139238614673273547314809169569294120344243814051576168850385962727876708526613354571125113315832945836912624341880466367900992884782810930840980723465997235671816745138675118898254274119810122253867419515100945066316394542762180293487733081249173532838448091668256107566051078889588653280964807169506241134320224828598790629882422533070265672257437983299691988078118573903403395689022609117317894800410724600785583186995128037064396607304233156947984766057152290291698897530432704605454144753654667280668414531253331488032658449207752709368342739071462770304752385828927907232703942283040731384053437199830471305874653840476851234963925279445763358913715763197336481723178026676268802188911290798831792017833175718178745019508102049103736277232987798782499433283787579451622581949078236709705462685841080569115327651059827271282273577994835751414523212877524148320287063686434044702813320790447762661289790368878886962268155032038264768214962968507919117259391226148297932595175120304913873873422136089224463425262184937121582224917305833495613961779137861715299223354064365009795426658501849116414212556849811949974363732668328610671362606647209326827125716973275326233609662746712911222060720777486373469660867882369672248084287461327303847698108527813886337213441968895252466234978326399329956716234201947928241164111202108652158605093655973412723727962070011255517374843452231204431907978733066907001991406347768779668305053995972822911876176787105439700680217803861110800220941619930250614853848818073598104141660609792719666725472932779381922602791665653476763489215830417758319189614893840439296598146019380026935889979581064315734085047503598198018403243914515981657974139701105827947328264114156032555048781557587854246769706877003113375023315882348687606788203539423855920665501457745672938772771025182519589334075411594765951037768872120153149582436916876560811237458162718256597221383106123326501522860031663148435152510664945855524316106433664098324186142121309838570092863245953896067339155936865679719590788287490819514554225684083594504997913939842426455643662054241531562734162827679622389448058122012849889497605374074543551168737769780479874149255745172561966181508107921835671219093757034221276733411736305535781138419760429169245909467671909094355839038054609872681635764996786575699654490384675322834245373989638659796468259932563422366513740320496497896890451507776771825143031725866363616265171585035959766367145767810459247363671895005556652933877737703433780508971733906779755040742499864022919514387280648305331301051919358438004091648753402871749801023981830625367027828532179534354026155767260009100279125096987531596042782010373506189663722284406542697257465532267540502495515644108808431227021045921632372913461061020873896172198211923949145594407373583847797431985017218904579074666692628747428738854371401154196923062883229187887185625105526490998494126596933390856015106897487176109633931874552811692756511193931000734479876790261174724362766051560406025611859279112826787200058433155480895660073143976990509352574061310217752083767573986804382966830882560581568768259590650167905658712531093473656769770491234129809219317806166795959557784283555992595618106277249866477561117892251467960589685500701142124252131437887129927930830545109083506624944302585235895492732092133021903823563087130549236043116272612431879092103892551389401609399374004697784977521942058634646881089943781503370806557026193247063508202998344656726159810654161456733802205833394369668000412607439743251298508336376082014956074147758808397280505726050808414286336613706016939389814345632207888614983517080761509206040804153765011283808754738336919472522520488051458772798298744572088571351276468389043777972923049693981830418561910485894069169677388958925980842806805101821485089428814660836364073644863703330652191751847441355055643421117770721523832227763068783262428013312614520337283502609633868653976544088481941037133767963890890224298203468147059122796995639689258052206504132476527764666173738867852492697987560718484233422353096393107110176022150987819403299369617915205276013720974795293227555102498375921851815990250424236868267459815095455673418267308469641008692111476600096552055668605007395610575340503828192330700025687500854153372366614237389001203701030248219797332121809696854887013018456340571526034217643310689953840076105567375806285579211472242576616853682284652057185218886027725497747900179916549407049387432576749203267474200753091830908657080748476040567110297016045000224700717899264082969493113417962895550543247050280462763679524484147416837749527307392677588471858483894178527791652186148265183918769361521222960017365720318491481920700469014712994249586242057677522176008723777634713191012745342134490520400393809160021471099129896182829347924692147721282174153765643363443722374592857865207429818976227172779574851547663213874074133076906013978730176049463839568113615573087271606187997277569202755740218617827167828219160348567438231520143474058085730636901352617882002391054635947711917447145384583132122409659371344308339344505332650744246044941672734935416088045226859001150392788012551020033696742199357143225018174834908491384208250378015840975363224577130625405634889199697179502329197448230269803439847432910149444262367184693802475112009885702225281522870522172587157147438756676290638682180380105600395279888611396831408162268526926940971557702134034957067450997941717441793477922951230887274110569770313223302484591139391103439385086311573971209189462352420051849355452397988527157648888668781036749566643488731222182588056377456226211960816039287085043943427366765260199419650204209541826089054726491766156255940178473107864740277584153796255531989596317919732586947499267435591156492061260100968111696610789751416538919126757539003345229891706185126828051362946268421149499471582398773910862447658512325944775619538915801655468714939362451571044103758157206984135745607913666695335202141250328297162034667275688342829139304859611587370088835505836597229765042763661748632485560985123668177424989700449966556776190268243344582285708647139104724667283957715539036520849605087249463118992007356443301571098778313831113974550101868341905794147352215066874067039659649557382151443271951450787044426306760950338510984061806577290638067437240107195919287309126526496784526339933625917573945969101617688632309880680208693994717938128809169403085707076331168873788994849170269287730925524129004366293401668907740738866010759906633996588884557148413839649108467208852385125821558499899951201713302055016974303272869550526395039363040651437690363913155349348322339382487993808493493867453806721312432893582312614912562142195526593876660703183404380970443209298972353226741661787742904789330451254457329474507368509140290538775999681447055182461681092699692918729620335855272868515786174125453991728918027646416712586036890747673858245374695655487349481699520846559861489841848897278632122151531468752716125424919122233418044782623694332886110069515222967330538467974668260582729318572841204258909862934253420923684407036867139575309249905306471309564050617279425571139283932017071580594267544278368328886903185063390185553676947417624064230440241927257307781113303980191411857835856329955707094857420333006127194147298098384316204956571963737597001975590165533336974426345133660015556697996329225696614905474841287965472723845735613120857900568140188145537344864533332054880745536042830585225134680945238687668358663411746670403249817871780065269252167643360641573903227397860653116283700587525899790840598249456398291919266529273991521521187573207253961066524167197471335971918733554007452627788876533081345469398194914659622747159649602618592892852647084584406173197912438575874955137342249400152364608342265741275582248724632437093733546859024498623715965023533088753608127485931354930782403714071112434649971387558228610882444361988162576581875283035645157343569570123947812719017911917033572590431551714418846502886166954627034091827797026602539500258290527655782082419058294029373384738748148017409479111446646438468072968717042925544674392729835223797039530442619414036302105290700816143882821422978819542980130889699819663957948330536667207570717113695793543537624712996188971088997442827203776726923264687947205514231771148549281841810528534273916918753715709918877612209878331462512942588768356028908908573117561038289573968426514964347832570920513510350933787026566673286950231921731305910379202147899397428486969257700874001553582083075821280008546038302645757456756283889300067899537939025778939416137378805977503805804080400444453974912922587192252235384979050958717728010741786493668253876512567573177558115907126648422877443740506454072407609414678995418625202178539847524694390651738466972370881626324479908193804616495591648158650186948684246773272555501404126515849387546876782861116690763117964749268517146517726580947322051423576803569554365285023961812776198661473984776948783425600400567714191755689406666067706908261790650036497961630444370167594922244808429014087020166635099493487279808166647218720992712753231338558631329311313242457601506553912058066529051832025894703731849091444348434808434326103933593787648267188041896051756904580246741103010111748960015147989642107052207441973266382094487411953777430659623068717052954012576768760546613202558361048530522577155053265744177935170194547081030764294876340569980389031677484748778803672154532826423742527416674435834926934195499468517661982684948402035427510285022617191352122687016363125678158522911036548311547513050695440962863721691862994823789497994213055251413554075571800308754035720958207160587608824239307554794078205685306282652845684083557174807209564873923906005554921407600846918413490045698070311232633470536779458718551322243408735206687187231131297905025259362885138556463421712013760114183356158346637768998364330071285304993479775804755668427853609680885502764854107527098597278603913954230758817867745868282870085514452982843620367319507443442900119484478393397702898721297841356133848000756162441734700311983824915609053248911113798828197098155105762346475214943937894099017514450606652972999947956582170955465240133178647565082274956790314740185748280301415964607678132929779617125109967163916940864175543802851314712018726518891488563064877438341636808042737295198258856885507007426059650800774871683337772385661134038093066973923477018879336858203218080977220115706079755560799193977966179285588259936153332380394394019716932620338008984924883077333781980056303913774756496823628711921844743120127240134182833938294123486044155470674438976956594951925477792314737222822339365339003601342725928191727541011540914848635203408563633513246482355753264171111746260440935782354659616206525001367346331660089635818454045221896117791930096466130368843331149971291444565032368283162565560472957120495144976632415470197411545075494320209728730275095089043236176551082198495792984219491371273156917154407520756871797543909287751809633530213219355819761469104779474248146142532787029981721358921840873386862507395252111042262188466546551151376776478362013446952389064237993710382981484032102692524874216348523199993897166615956183855115476458085962652726933370358419457916217522698647571555615805388533347077752270920990220039358994406497380872504981217916684593124182592324025374006916857036804718169197487092513186162879842788457240506064742132783653178259166372294004078150876504316527747921393124228126060490415060200720477594124893760166828213347877270097524827582481409500828367816754893024766481430523431317016523967353404948560729405859595918061952822455680973347123410668722256086640927257960685730340070584593512987980993473994717841779732877839511594620694178400219281112650639649707122611566414415625631874044923728578679602511129008469135155196085821004271706261692659268771924069097845621075561349263876877598784866986439892431251798703080352847300720006242300090120611009691943821229024592007212765835055847651255099205433521304185872401171802697583006930807196319665015839801494280907935277192167155968128874479552150895438247825623769962115989129138565026813255250892947825097362923892550112734498795803270037693366530965077197148987096412398958726330729473304356542265464363963383028110480697497553086212097817152466189427505482894580806183266743192250232260827081522299612033184982518420813545424200235962767200863467812417105515563606050579006127984348542894188777647693354584602992420399415563117311598916780285812095418363624660770888515946980802239394531781352476384162968766913416106202692312588338849103834875627042189088876714341462817909483789037036721890026193946568555599262026954792844191846135727357191118634032039935138328090127843658648845918520335361914272312557979982579211881486609953468510038524619045763205731454509571905529214601580910816995793708527292452578775654435280492752933502870230840360056156299109160971148647076569313188300028962035743033639620084742382176591003703154956035395407935004461016190790133257507235996321913783877313998983647868920465700209404337424297918050831694118976674290432245926007686439551415289744551614275481650493386431773575811557489208015931999157012270037268192910650354714917166738925984045064484934424920478395013192142926244404084638815700576117848934717086104811963657051621713553940608210728576164571566062605146500551957848919166245584022674770043899726035313001401086250519518306810837751859298758150381775324084373636507076200545085645881688566425450520108853301366908114039678675871578720259433347095001161577579995583514602095951013197853557641104147507599768420759301142250562125638744544862204438476151708877961958679275940960786804534615627203480316075273599889617568292868382974213053898268878984621689950944182457984477537090418439276534642613243571700559086117489465531210835997251710745149493409652960191613011957621514721170841867453664356639947280846039636735078965317836707747374961961848292090147608586236643865266909958879548649923415945909709093783728138597447742357150674481526202984368131889772978341086548983419147169839181270769378236441449381912063485321636603893030725120052867889815425532982819138752561253341607965795233882739899937752283121488979593387154704541073296116988250242921695389409074132280572186989015246491292661273217007598133786185399720347230709005669196862903215905611901025062316991393278635937624362341298022035215017258846924111478638398650356782153446441665803960941815410791270687388836276741750102446929702389042720725114291179463155001827341633173364527198238608115449992165912898571181692577218074481155907424739111696557978521056413534479981240204588592578795078397522632043630792336179345075291397881893786552327385593620434439854134341554823094720178493708746552601452425045763253457851041494638539165819539137206915160943505551199531910930019089689746768553334004775506138695267610568532144371828024440458268145319834619064955571799858025713424968310436920887000413991776953121790668839479098340759823715681478355602052034611650761732010389998942101854434093219129745653208218124333571756079455644838706243377538512784769685613202781934607159518809042570099100478353153701501917603539950433423710329071712599982185877432171873208061234259158584229486044989544321336217817072517459644645134189788863309868039429969635821035474826602900730996905004594487139567566066302027293421188965145594128977297734287704850954877332576147053387740141720993714322855229604225243534930556794962210045410297965208370017140954260002062816348923754632522015466189483297418420046918729986421707162583556004733835437346951820856089977632524156181597571511278751066378008980867685944186101952627664108661384691408543342260797626503435725140730705417337932702238167540779907079880403294987485012976980789387265633859840880945040933168282285684251206815792928231941809163505397911571937901688732857419310099941266822241066811553850199565250070630922062048428310146634921361643748263247888747492756008970608611234321889453631767562376131495892319391332828762933452924781950192585743838960903063703192543203794406086826402307833164893488218714541280098928734198326688660151795767209723789954560547142090003803216922093589067464598518477376873919041118239528950444473901697800081872376513136576593159433796361539796331751604376283923207611343510606730606271813092190337843994640809239480570732636899261322639864620242041848836580917510150111264587673384228564529129103932551424357509490208688347773492723685076132417511229506018740507398724458078957354425426409175359032329909576190784324047477496921907948048039689403236343262389082455052947555596796818961812933634861721801138527434537227975145081569763231234446940287617934996009249926195039777670814717405270697253831088811114440798998480848237780096589028819518271206537441910159734821638904161788151369728510135914818713098622225829826732821557712911029879251590519399007439452656998383720867897335728529463690533230873289641870418387707530108244654044661371011728909696645775885709095312151728715407528299989427384383904126530362097071911894977563782343526659701994793555800508879822049712723598608840490322751791575095793882681488440990925289100445404406991731960333990506251069263883827760394893476733147160197198076699923657030301728944388170913659001664255052900399786910037064901291194080173764893539046205932854358298250442293995476481859219681969627792095517855859639432880441053739616114805088778490436936122375826625043347499223527711116253488972820904962627303998324704517923118138003071276426455366139691322066546434098559110149099908052343863868386058626064033847093294557128646230933323163476869183644601051714948052992071884350457792824751628420391504018737912868233513108283464206867573169811246103977408740241764511277414327035370975171936253932755479952539451387904154697670969868651836774933735938222741155465138284187812523531640827412375222616660960476406727720883800778699378046978961882634918653861116956384151848339342888468719339163468121920202858648842587269920176666168735332840926640684113685471735470938365165816580362314830237089776439290503442500915242967780676226185930743902577448032084546537322234720013642032479503887248442445579724869667367654669095295264388859256709981719129791445944794275160603114774791235360687082740777542856560362978607882580186190759277240529464313710902617660270839229397288874427362934381432084037398401052716538146801293462061501867499828153902782368040629050668334128691065194485209938242051088325559958116112836348424622897902441950925942997306653501353644044262046377414879619448493537016799912118286678922176639149016539342553082634155109743777579991861689999860969313875634270248881632432124836044050549875632050477185645426509635853873484666121965601478824281727983167230365439909498554560868541844955374831355624890819186055478412109511267549071624385511642678352292993679714703842657516684523147910622141021595193246409883054752960409956271505577186952191863183282230298727542469824184393379825491872008324425088523282777213255306075028820191492747304062113208864842926206941126823081282662545478899783425234073575084229640035330940072787739350907693704938332339832871086792506008440255900248509689177551909599631944555749417430753242700639861587462396408045664070293264681488237827388330902275637306828731245460773411138154163878890009807025216581344521775491178159466458633583182382836011351760291580830706848693457097688948578320201750589771803167771228465180291393815617355510138927210587060624893648272554293356813667747632729838390745545575787610805990875807942896168215964754193670660144606621794814780354349707814582392942043789335318156713912103661567171672665228220659975982606051762129304491770511005525046523859802110425667343677055777793482802397442926705907518978075818943473814363240458378555255452362583994937817140932330094961099855690769778031231282868818519584352062438635757337199921505614086335120525228498175284169916467134464411254027373378078697422993029638491323646785970353623848870446366386766220807116703931335263056536949751158416611972129561372421167744584682040940221192925020411394840179248277600536692640870559490480213350934368454791046176163992634099959101497774130839690508742780716310560214230997165990779997620078030947602325843459672821297174244549947915004704240119998970259302486238390519542509826450645218756686498237255719049070973011942705226436272816804229961009042022542215962563044248026441073821829282556392586958517329129823148813781910965060523505083645916192583093821836150397773246479605911621130450447629252442742246019702348309769683812752302722979686987355372975708641297275239916861192927277303172354057681592904650358699261587672314617078804869479574424365055481952216203645111131757586556394658648127114342888788965455387242128950202324006632984679787941501949416797160340596052340239866504783335241163372262755401712749219869629485078219862161810814395309493808951849067382035497122942428983114494060957934782301854437184195839759787300200656268183780525539181731931040253456244884269055296373913782730471409756312088311333059676784290089462707652166727145407889820192287023128770788929633413336053774955495862834069169350173430132776237233689475460231333253291061668478083539254082399120830525663067627482894549781229299132854465925779839327564747468770646628424243348422641280828984755492630688259237379960127409634209145619502608306310215621997313104254219865733431643594470919621078951730244736673890197860681933213786472383678824404897226637834541335656390903469046255724523000973889004082202461814904303403445165173964527668806966858249342953273580536998073724919283174374041605319597475693370380619724589077895045287460751557591981966738710387592846128272960469734028701818771419327573871804198202893601914959135314027776066885132037430752639376089988967401253009007504853287330485784224661477236416370067085462662304788092902286643998175122898516588969066866097440933552391105008368579562098112084581349550609721995971062355504853613028193738711209823294207696235357450912655356721960515890997960763262996697771714135561406633867819425908101999258689627727108602989996195407303719479758106903866233180652964476353236279318883422490739682388028477447262141540485684396095438596470411557122318259495309805283034274241925251220667190566892164567066042265216715167731808271851508248995518526346259664816223794398081518896873681140193081844877859211153698738476382846316099529267163771316776730663811843486184219727329348782510002511110035610966491786272208308332970832574781914112072203378933215678612437945121357149717789455057873261878405863827501088174160672346413638850291128154284254773888986980929351470183566879671299025286752381391637295138890465600085569532984626380671518648747474707039447611592326513214947623485635606247314789174950507208812754042990172480227859134906711241567684547942986236686324302754382937285219351811622762776028156844091072335422484004290289172349310572772135442676834197831562391699307135252798861885676563716917671414409055074599331744146498192792887628927017793439134425883881592868408721657909355030121902812779272180192369610807558121116417407729107287852105377998661057203580683979081378887161549523836747369336930056323131791479117198277398984586188824049350640693064877705129049100543929353738783222849279688007188484992792827291197164764478504713509825981221238851194178701613928172641558566043435459489588534177883007098007807331080296994002786340040314315235419790828250079776958801900602895457318363251620496075955711744385390934536132852474476404850912201851935611945907618545808097295150590800712216913827572795365881347385431344626704138748414590450272354041109582749575788073167670393525963122146976298138449954118787803351137382549122770492008815744714599130191380326651826590970425538125783304606836660973169085620227331942220304303175520291268620306946706545343611178297479777694495879440219268218719244953180862730032721788630768833557142598499254429164559491700154619600205164892209823800473605270491894389640644792825915974688477117308290369221779723398437782913506160662365061351158133823577452627430351557952374722220612196201260063829319615730057975236045234970083519381735102857326888388054107905162248133214057174896287724709920409760570953810808626436287009348357370411185621071027823443355712705955525738365553967427112675097692717235677878634943887089547469652590180432027331652763899057316375154915130877237492287928772694120488896869776266385192893917657044650922131300630890724260411448481540728581130123606789063528841044592170804975315489236930991799344951258174537838048164792930957076274298729491846275314803875975040557247420619911974536144956110843647209443956572821449606706955908666518012975657943744841105622176048975433637609489329665224435433162800004175088415052688573924472844076389193446428756546577649077497963221192335215217889692036723021456437960831346130291458516988136422653096971727804933196329961511444673536196330572811158976727793176081812386850380998110588003010761478885948725931408701708758729805034643041826197565683963224485117748056707026484402662628040220434054587588888092175350876682385317287785374083311784092283781374906049948123212176666645145452011052627149013976498330760122193246323360696540853979984148990262573446430918645916971670812715959020035401361704493461611921225261144723747249881442545212567972402207787435571484841762452801023117536173072688056242375926055303171034873162439582817573829670403804898606261684784564581443013566482037430962939898099430988900803430551946338157963575685123794646116750002240980334731258246261673513143782276919323306750575795503714937679751178120116961166039025913006903586720995122458676235460183742167879897836239731729255856617038306805900438599298678451665609792359779287395293894040690833696128981510800964914886089764941623431409081282352151193175758260488575733888081666961938852516047615110470781015124381833716959247109240564793473407318467222423779738017113910035783552425966335031019703798455251786383685925918461310325849739346459341484928644705814752037003796694418802669108249912972238785434631064789576532397373670942075401785420878747764117833271660309030828399024708302879836456330223936725201065784998011720985177975569526355616576418988096433112977601535640576753343265485756177556537515733891472254042611197882555198021728350197053315441287564725939861534370231943103243279961124985360952714645455303373741131254667504807628558003241072018662851544221332193748792863556340672398650902267352944030275371930922571848213908226201645656095704968686301632928487790660853096288193451825408557336023023347084764417495414182828635760555985404121790162447930603959916245970645169421355107320122684636501665430654207275407702647290578471533821665078542718787369814972797836298837825805753359548142378332910322585087074496288084695960935946870182239055282178845204933795893635075017881016746600740614494717696994917871854689739208896079205745832057448602005469279472625801148483599935861612764816575001132020924184761515000197605527207726983392732906126574595409981295667917332088163693738113194391618259425947332075071142282515061266729276573426232194609218663551045893043681473331101891944109805737431236948751763873559154045479496854444855365352830664100967516876294269938001409160255016501728407640802398037835450511253245463287095971781020739517012848316536932734098821092501092443129952121685877212801909878161091509249287963006597068646431088596855223053597380917808432183700670206977912095438709370656797200347418873457390918302934459339184541942778146656864889898805116822746886087584779408173535093012587912618163269448816821376214852863981286148239286232241470951424712294123807416250048405708239140976422484787717785090040481655693410330359523362188203838677266753994142960890758096589056535650546924320882339988669246901664853450840092274346609321807632303306191743309207675424617247931071746579270861821844457006774778056750699928566315231214020278323387669178559305580189842078902466075802577242848424040172212547923905086096062330073136537156335202293230670468842473540640285613575253670700023930691839200699946576027965727213871321777482015584916914031367889182108018376938121671479080898391538855211095241801317210907472443015251172760284320152145290807109146920734121320615596079790063839813171922467223671960226685371006950370719819772351082219405438719726668697463958274263727411759127755878623935793290634408457252861587469724386882643285918441600358956256998937690977237806918151379715797363951198618784881358858806519468545580087885242221536745307955032508552224795102171202292117239329837447105974224671752515268708281778949189338048036789554032983615386081813861755755516815514923411862829045236308828827799053204346337750818725910301230139320450411251294270580539181417124005385734519361973038819803213060759960850728612849965164588856753219842110359770602332973818000756008654823066870053205770607321526667594657253829386287561014459963816005504951178490912085043632020308933679253694809262369515582259336126660311575728088815139033358859316516841092148327538103094630592570238927518536265489897826629718311353215665202961211713710558862923793491257128772927046625950984682678707306242784020040637507192498225189108389003771316065122130344476421770272211496904838322018029095457945175898943156533633486101682878556816892818054907760865848362809951522008393767710296574680127825048300335055870723850740729691631787068602824058822276764907624964943034067760857587520297087105683676703474134203700530434374335043986817381390230202149383952691503180037637838969157420199126794508489495084620997747553895955586130568493288119581567098268521482552623241569877142128880012120119185414967109029229356681065828492984782283077543288344825120908734828355180423263114216743860119367677091361329276585623404184959138295826737618581108762563930512897227198578161462832128900820661786967218146163321028179336083590107686916533126628024637923188179413099052929925863355885294238717604111961920294298701946388186118783085437400780160534838356101231563729926335005447334707994268019232249417677602528795597385703163709119514807541046083294181697747554393519696386210363697817010156845148289208498507044246052691711019508849433227710010987295942734677361158094717311849675762944818202495664800136687028987254369182046964118139600325838861621956781624179060240776125041246212860126924723507134554711055028152901992885300489215241672529682901751724685786999204941689556889205980669778854304691203227114324103699887722761427535033874296018833832429777619167103858362358510536774772098428098598673468643775375415638858876864717745172738552876643800913904685907066178241587785612654335962301192292585509805217918265462694328572330210067269911979274986243006712210144637387672768803298743776950878669749081415828320538461612516711378084890651347621814011285005274197916402849160927852793326103993743307085179613208951927619892455827071845582768014992022676491947170814028954302569302764977011147236652431394352502986770615871038214864253343833292499436524296768184552383107575582042660951130138386968736361374565110233068770653767779241714233559111107771033495295440054814431049109843426061465418480529154824247673724807817953680700942005600686241194311051978740723983715561206122060113544675408414683226920804956873826894369357428172073711327542941861335414085399238020169915955591203575290487445372185466644041200693210607444014895418991590485481186606704165148242393050282034394447386172961465665124279612519023043560332004416817988908150581723278052472611335359136220340189993841686046772066448171634621757803452080204406734948695753018548898756342502204961467299707210652092338063238789028567313880672134055716236541593238691492263191652373463440208795311120031890163048153000046457023592153606401413123250999941429282066446324628089280250437420379063026972933668452653713317487283562488643873626017696196342228497762329563138933991255976151521165178470404115529463499429861583670143754670343320076843791942945304457622918812777047776640034373817008875333511922247309283991987350482963242887401896197465791209713575594043491665338424073818170851335376008084352162560691244401196625952644856183451677760932016001755058988258011150073300267518066261197077249167954969096126000479725335806065935731148556719754514534834013443396746453969650120766027544061901958639475588507590022309815883934682572172528156664613433891927594545323563859123147501611917457434217146080055975825250125931604462879482208434545302794650748328744722768608478185950961344508934401572406161370797756429682026229954549801514321221291997525175082695650170931817206684682761622257246601804176812660430939984824365368390385003052189081071416800205610043094340247882179037555077816437964119408602597301385787865434035476966829819414750740903878293459196957238746996879582662339434911174292445325888805202296653075809700698958045065713956632263186362670262273408980921061247703021902075874577047709374318767550351221252417397190448568790575256630994155479304609487120789846084901146636796208395155082357537785899507431493760835734298012109557856618401124504502622393689023886778206460607401264159890969897080602311444799800282114196016332331082936271453799750677005976340305211554628690543917004951051713888280948868294907107053002571681022585789676936485448048365359850535317314144911702177467036098479886580947613225567728159165124162218821681711164440110006965488455568371243184194211705410249489762261944843758184698989212531779671361233953314057882340915997131983996267341063056461786641593783979740918058201227538722274703203595377517410183721308685282192827851850135297914571825881086580680335712820926490162533800230538425869186757620035441009310255197725150713029407934936150356149706852560814689052381916671398291499485474384542475730249097411385796136996548885419587144084933555400771997508665684029724651801169755732548041146382749598278499302793176548227663647317277783300704954758642224283186599084827973921802514046342447032215168498920075249086895559335322977814844923398782588325028280518017715307400040928554586893149079389453579751126672568691401381266496641387768479468074901559714415027759605669525341319283383336689618595258315324562409398133171316651997315352658961977418882911951718022273619364812655920947123152937827348964663761934057242735498411408440473900725864904590721562134824082492762928146150968654515521134050834312546071692729329272300372152333072029526820032579530197396325402122316725640031362726129141220687693193959470818179065962252934503556465722913540969235942115418002154646518208320636861224596229510124418256451789892549353644711582428847103542271410747797418933629565261955253174819181612651775430449668910895615440476761770499796965261357556757130446718760445427624441683912014072714987978480162980529478076767613807174129184119985416362582519010588795985561469736275322394295962133297848485194110215997185881285374741729020657958140233258360039810680663726017895329914025004881790236801273933967737915522434227224310235427293152625657637208378335150038130983251144323256376940366303018668958457293924696089140105130638504902875101521589440433065604513138867336364781261029996247200435736691984600088867634387740794806295797926996135552021334187165841012169395065091209437767715334061085860231338823238895880819338381241292872112243941230299619532442962748558051415569007015432069961475922199789034663428860511329328339333524758783545455738775816239246639142912471667823042754997239780063560220490749658465314888085644828659051004603376129565208094195712102577759806533111423135156072270738009464156702661563749403577266272102598013322250489987395257877629941592548188644362734301124095891756328005409224244685562412140433135362761373252436501147083665110656372631640856653815646908410676797935398831711336442775249561089440819831948315030584679242313089883011456689066765888852975770932696108152467305867843681216805769213819037669224044096135050045243982580149368436949782449173304965839627705549725649115338865263900063988722895836784398892268471638221455528019033998628722563137015985557297018263254572263666701286259768025801416298465411009019739249778099462829872585867423433711627728840773304701004105875164767160357737492888076514548834240511850476526842933607100440668072622050246441318868309419970977013759203686980755274023642734267841830622360818975237947520866151471016938307996955977644087176312610860247228343560761096516521079016018950756185422460593365989763761304473134379470382979567639861772407535566470389720595939115635811349502220708328381148218680274364817817302501464889670257823365237782021678765331286216365736700248898744845009888251107182148821335475630077753935934789518940521266302413330983535144536823988048209836556928219595903328562646031096559841509318142615010332862122623779652202721158478201587138148669188744263200527555792330844062650214556582842048184924089872379594414578739146134751574179735073100079993035437768450019158681879537980290455669005272698728983019028791942704701611996895087549763614898505608493821198909597588211194257695464546449457432892153409409665817405276148857397597813305329760400791462586652668009358402674250007874452873160968792938461136127807037764347251544866246401708733582863254510369342342295315730155748481095021700514277187412312897919327115723108300919832122352344197410817998454295860099752290062341692898156031538146411463640827202716461016410653506493980626007266428806364022590365931214032772718214532703590529561263053025977583635217587349185976403746723195246251054336769720081978731552983711645248443397898583070661428781046948126426449980354968657750680064710388201711017798489924797935043408909694599706705109018618413095634447172284799175968336055224662797374643434920586574371299560203697476153656946576198377505299990531350121557047743164810717713037257376998407936234877159824282542648887982765729804791647303815105755532454006668454700239266075734971409247116935659636894433127323980717427136559116328431211187663543100155682968482345150216209769817887687236393488410576126805740362124822579768037284245567530019231978225540627444368269650950208101081256348039186515786215552430765883417831564976787369667932508265720902131045194506132719336923148526525714118621405453714366503284311415178546369205466329339976852392876195090060652166298346064382334992111983962656002557687008846884657526408456803644587094605035325808436480193806788297068570014260215079843889879364639416235203712110407801432780534711793480966242194381598807307897461015023283124652436629462995219386352978635726164095598916222576115516701385941421353161885007921401925981129559569334135812635676790370218335037168039080002693916497572305469178201712524343187107913105729381050337272804901816967294970289628629618040469500293587173261248700149659070777649520182897475086879787646030483274944437411622854151793858639804689374192328554069184288429658574720074294383232393357676798925334401846691832617746072391733188359272423386669968620543251833555788425363108958832881393640497326947986513155060127484272128757508465316752767750264791978830807512107139530491006951063495215838267159409326578340197999778548039809238777236930281948443345577782893252210287009110274541740845039059002035912215354766919632558830537482756490388322372444037173688011165620116334469899203327081522935083975357690223498437317165232548065067538845154872922921691849713098035136363119518848958318130666395311997732352413318018357695308244297638735940172164252521220226206709233179227426310616603744217978934295731625440298980429974659658012672901057820385076964507527936963931297691102439978946663695145783949763077579155089120956523068118744560910422227012628765434357689151377303707731455012293475910110046569059499675721386169402745632505864913910206537509611715300997135396973343077212384331636506846984617672698919954124957899575067875041728948092864983949616276491976846839685081348726749313833587477579906966205996434918887666684790548449910046967969096833238916535356943554148252130932145371860737533590160300009117792261500372083635469488938426868637028335406743041660388947039689704041802794091968227731526830580374922022186089713096800484239714227480135546018105750002473964364318355027672898863422937314622573897544003082743207729395138965328032065835530333898346092668883328756769594825722266201448654985279766868384304380006307750392558147541064618560909668717589872044560360413650620412440380364063895279512300577504833539966119192785644086135242155496699849408460774496479115812726101925527863595543053954127444073480219422411419980318006875556070411703899709498366526382141798844094572051421354337386762751035813166381893772040076201064258386696550041007907022081187251712301270764979508209536097238807461212327786554508962103478289643268541292496188912281507710488817004193850833548022811282886599752355212547936721396835719027106871030730566844822268841675481619107867248151031684298854266013618153801144456431137286180806331147293210905064095454251189947307834497500668560121207951761249615285694382858916121211986884897025547239065233469487460670110582584678230461416254305325562027093189763476615085217780308593406895092264855786232903117757353818218834792382128904135768233855047688304230070609112537051839345223145892152828803204265947442003894356236305188707061531302265853364073702272623231225935700608956104540288824067998378490864733649531533266655249421038109542178848475268917547100482991730790297209641597559291950346785418132267101724790383474023641266039274162143381301502887297519603008837529904256136977839232789264103743045725023045534396385826375159548930452907283162579282252466870066639441931504622328865390818029028568900759199193749236075461040659622318762782449507458581867410087536329376588461613133361274346751476201652450831916643793782226515821550903828079585194574112437810526023854926458377333281772222396067052149365355252732481671066080671068331130813653183201318872998402898248463172775343082164204810120741768401470310952039261006122922060080117298708375103072345342665220345918136327121509358097558479912011834038094460109300674123160731371595832849852983056746657816660367782272867336678231167006227755756169696827618878415587753230776864415337976040732619046984675568514328572661657311195647959310214089642471005355399406881615278301452057103904741611926640507026177432151301870803626710628703049732537555895323437727900105366667404448236939098219043287419685889889579154838468545233560752785546377370174913313074774777579334552591074638538343541017793322106824321170269731814957154617235758254371380127698014965302820270755493218693691086650109447293698424762925182899152470761102840558258621676012577793446355348918004006881056895638381058025310200934743884675228434049510502238041587705136294068425800864651954163286220413767069027668686589799745363510234136581219439978052121102546995448230227638427172115881595610630818310958546966320986746059455257279764984085269515786175386842521589831510770180474552047753439659922083822794063669017785522485991348223605097710455265645313832078741129016191880723476894651501637642449016891469281526236232134444532852346317950646628801294812339438899221173366959753494378350700272753967188195643787176508234874731999570667048613649688062609810762724054122715672523391706766745805227320331363800565669968448640000227572363333480581679870900492486239548319796720761234805033355133167017175090613400014400269307385287301070785967140783057425037572128015017841926696721621317358741117604199765742781400505262773702276245860438960420040025879301376311016332431536929837189575666764658640074665862740422378840861208417989813701347036501621128693352017697549821003356576665096659490699385354529848212261816987326626532031280465037503616715817997384085966458724955045229442816774896613355197476412986304952646200551916566412061440351288033606007152402348782795003173460817268331334334663195483053663006524771303943706984044928058995042557356392971470494220012315605222040632642937982166261089048535880353133288051435999100060086365694738050799596549586021728764185263695133687421799971526624531835036144800511570404514792707037805726542008052230597662861138217301822120493412102953746885651665349005393014530382261085953286551729847650238857892352738993296702375107264906354466614607145316162637529464100563871147740119502404069301328472769253590937957756452006047590029797231785851506648180361240079150022951441637207339743090540153781337889383680612820366357528207767144971965507271097765596890245001355219974323800967560604733302825799430718675783375324286980995745843498103941663633552860159482568416957635470249618140459087207454896811763409111022500109490921408376729602660923622625957828394078790533811615261241316240366077400453986996597534021787978140159604082447774312574239127762422957352962558837982851096991529682430384680689187470007928468514402494758250250433602430228461434504497868142849651843016504423576120450936969466873836721205972522510601244899085752226788100539572389883659128497787486629981426780303920962864305479977446658849242826674403023591983595628007742781629185578365556878805936173357131887400967706404847705099967323547228495068883419583697446430788348971146411717774077800905374123702999075639226336215177094794313143531584003089543928117552948375666291691006575119625602048772771478190112956240477824433399269519910989735022110310806917168494680712497411755489532841853124517114621677159556988490396507421530326294807441670022901485854730292778987055195610592999138183230858739197843150785197749837242189503857788386497854590681481049161155147810931684298576144282613236005928278851474890862721190148069771521302994206928857506839325798717659494520867267068182522492502928925457355264893579492212916179236582338387224873044031672882868370033881646678543498737594664275102151061684613899306025104267960232471267116082090421495255803900745172018904760280975599212602329065510801405122740729747122653209652917100364082100944790794667914356294086235903037608890921004500954687794139260189135613786318598163166106820667288609252594870671323824503459342408649688809304640539048664570687380697195290278659710568616072746346394133921704934106506275878173103236525440556894416140643213188747454836678841496447470474921913960825532172088754527292946752301587319640156378665658093175642367302199874688735199187150582585029479282104141407350573798082745759144308137287841632496006037900747945165004245338364488339087687576285149658037633639618302356209095006804470185640622158810732068591993485739162873966652992311102906517668329063236453004533315546268202647674456564915994435272484013697348970067408664648696147444370982873485681109564031635229641658687926715161594831132852508515321728036526522422040389524434471008319801285774995072851654651258997288937475263695295342148468601048171490693279985060314668686578760144439743674536557662665001894705007384759520697423456467580426004842671423618983109655539364008658634475127992900492503946318142460387301329782537249347587915945814817214785427506633817419353989724067297887442181571980344665722360452855416580576187358061170771377938935999691693015285302618218087895292701784743875093235667825259085543984346686185375042831346303345277154493004015522887291637438283070279706113610711582130307783955695689503309251540541596071392559747219884146434220253750133510272181282542752465551655216715804007629523049192513068658612963665455326027474060130430520866310170280369625911135911147997148738012388189116158597291704596663067108054283744269779955412708005803208599465017619515253416343211985139750873305696310398433561495629609388087217866661446202329834290435594033203356413402166205068360960713691760664150307573921832026701519418708506202620485957351702229028482514519836611228867569715584504627692992484217099300883502645649634115681052349077851902907885726462864922936296952196134462710183024749300139819019292154318147870416119380735811890092916519608390065154179813643575437453109892822190422271389369974028800364208148426789460584612893688282785118329037052456286244621422978705873318005768436689663099757825705093268577902414180777087690239277262089284569190507718661139826403474235130825040477709420047926787335717829789537473995135079274012639800392773777751598282291500710955139164375280732403884632513656711649507611928546842638108819316604336998904557998167502111199663669155886085367000171245074412199336423453446596869797214399220813670597597110943392102692390257165901769828034982675416410533868465178408949397862495116392371002570575055063969974679555265152336673287021830550497651085186899482518163682956079199002676320430550631492852302796203569882284184855290620072691541121143560142008927313846843544554468705617779603986860371805869368232007711296656283138050631988169916109146267652301437706279959434795644083340019478062056655133286904429983835885522719584346992106265993915808893767728861781272985176420667301621130709517509044164607505737445189357837056868227007336689397220967040655739785952148033431864121846184772756710524411478730817518077014100413901954956406140284092115184275408630229199525136937316210984484836302431885884800029205577075276659708390379185367462059142543110676137559180856983249006692340696715332704045946828077260998738586973304572593171584697324852249320533222063080721725992229326861269740470882989315299014871235142053216926470236545454778682939166224949372169477901015559049441669981581438548338638682911588019655657784193250113960495180407729966751383834698014355808581358577997219430071957382762653739139504926768902986554958123507466717684076982248191491318714340845508466247892036322673439508517027151059133623658094313137644874397245875081849464006716422704765748852174717457436297768820909851410553905689476401158915902420673721228960491453243405784608372253200301927702382563200601344505931358437599047865981342197456375213116814838623423184435838101287004635044058001462490398626776433916692820364525977741125148882048875684924852945686668324817207455456444164370689888477927964540543812572913522565324912832682337050293815019738527217025555717827377336771884417482560330677605661538856442684061551367417809197657384293061402284138341210606504113401019754450620573580764758212426087820505094465981685840351090990950830116697005895402778868841378856776847938656381156397487751216049111212902484885931151591217588165087808874104071933746732746932661850346780670124968920545376909261585406263066839500761842611714202931875293455492390557631771149317237841626662104285165678189157388718948964136965192646749606369631518125410955899873163186139087225492376960408483676093999465655378307040169301421614571724801506347639424124822756977830775063257223228829349509802685605517758265150763060795389437537031337706511742147190451949070897327570774504643917795629526894954060317066065321293193971844355826306585416905802009474658590727339021073128012497321344618294251325681069512380125462517400808417599235340688012284499544616869985023375891240728002085636934910196228348911351434471559444561400643502991747913015146228267611354720416553966212165958194412903011460918832836372422711172197515947187354423645785554410344368215251302473026061531149186138870076206195456525164381480746576229631764447914744662746783605330487744325363623159718967497036010867243736019069494896368046124655214493482447433988732964535590098223879826285221755509586436101319695837845098075998728954600671150384125680303281357926629636275003363349110925332465094290229635536172329127488013329857389571275378704387113065342617053423082540418014434097459741865088726441564571469170353520647874325176932872432621631735367150624969223912608119071343651225022575800494717244969270317831392441761765917332311769293401778090538030347065166948748926480541239281123086292080200159696692020920300633090782266246777458304922398627107866678061142527216758886193114763617504765230022824333742826348186790146000847790831006069161591087546879046408885136204959017087869700453630709108790467064815954305059364047626718113409798575352629703677537766273053976994625186862423775998877941721992981497135800936411661947697226548518032995188647612795734742320315140100112561633799589021073103219488452956235463223192350474303973034403897937429044800693276873402435472478471539998635229909763790069682510853916679959240761518037213137774209309613907984375493957981006747150487741528742486990144731476399535775516443026290357694089856991146923494738127572766853467314363180624805499589004283259566721476100164564793562144556577483818578238356694389308942167867784115459316729994185436177522631968227053363114680013269612630400315892585766909893301219925659157632606091656780296640654741206217418696688535619548491587793635155849347522991984230313685400540482857980815833649140187892789868860691019789403704370076435503280334836018817108984189976155520908638702576845067664241654930888665060683548542959436838828163846212337854317385032894801623548557762937760376850852216370231120693542690223439599926391024100534848857100260076596028914318045917273668756518537552428403086883845893716167187180954352733939567845129951088724710368188214406384360333339087847554673421487275195814714207450061083114359640151654130351226714097445738383312815917383404029051978574923079290727019879319246323929060049402438004329144165388105436867914310802846967784881610095407536210137462266798841858315563756818843028934267851575761328270685416688454542837454341167882545144076753970602079770275946904959515262917932605476928787710141463514489256542056406492342596319735694707494835461234688720705260454256685486889662846965278064627388286025725168493822266124858822992755032024252177840736012197723184468966617964847364945061949256514617921894440516895826605133500104778309122082942897203017402423480530131352289228706230892456073703814931491781600427112273708293301399013139162941762574164138271816561103854597364241205252910981783970079595749089998694985259185495104035904763429910956069946960955697769962784004484891952639717236505722889057637002282833108968659435957316810913303413216718575478353985664155377962912368636199051990537724299158566517733000060348907279275902844347877013423739938929363094035573131563810691969709651652340646059801882388071329626015003253748893121941486830475543329820548484157028801306178851346603195125278080465637181720586749379320183602633274477792112868839413552167114143460390242816182355545760994810631984890951935892684081147600791333072921687443309358024379985507808846770402028045900010437133487467235617560789847267463193030193001682449511746862799485911109080706254258661940899291351450198120812672773660462868404319195864651256716709764025741396781605634817506794290153433049915150999884634583955396444065081611830132056738429961971062157832647189339549159616142268715345442789280596703145479980497374312025492055884827444550066816941285342471061970326875247067277556286277627677700608054953423194436199388217947945559957695362180159065849106079798780297995868379200692038273934351697611602198768494889821050747157279438646538355353567820039730956334104453335066655121665312548227688191408311225818627793025390571596371918162624047138511120517726592015987152941777314470288128931702679391626618065799026776600975705116241965994699725275123063589620471837736347992710317019727558096844860811620859268094755794211800531877222194798864442942938326770218492223495798535385156325510815757717919930486939372549265817734853486626534525345199558449480578631294166587125168235569708145366608625631593041975437165889298228426904932006100580882065122431942792256868948982575361001113216592350319741803661362471425904298203851837989418015169474240719208514106586291729901686096638353905416259065789288064689521076237019281914280483601489285588334183628496089670312911115127647431923275344371202811168446950534379041979652483186159653906200071163270104605681337763432086836614187598614805311677060432767475152447147764707978911683353927967265338627216876152187560500724087472162152909887998817322681420147857044275797017922163146011924018021211047718493846473987021686563771384764898897718620452051763290789432351348797850299656774231332451456654615129703947230048535972923078472466429879526729845079099248693780369906257396565199594148109846646392175527900380589500708697137989462826542040795600369386253993166572061271601800120740558877423847707134323615226659006754820649727907908570671098961080163232773393109224805966889439078391133227694929822107532880760183800215698497985034771390649940204265894788351846276095016624637371560771424645112223788630772682052934251606283648970455164606755450303204244587214308854931234835457654221154880014015795392664980436298047714696277814331508984125488979876493134444134231616626459447107040735729248593375110175535701330708498340175266009409447253753591802903016717605673649280686097660339576455463166080111298199887985053002789527414897950093267442543979215395547410876163563848129940405150018949615674606162794463230657562162033875679804381222949673187598316873633510345639359235128337798530968739548283721804956054741090210819167948072763219468056969378187071395328293770969702423006548004550141426540762065757320383875636244810137299551728022726757108427735941581284958040856061121958094178054570954890930417072780773501733096143173871181366350530637468815308337897502171173327731669202424977693007825395261816959797186152156097190421500092817694643932164947986257479044547606422602873559175070109015141907869991536147550095142552701755245392141406402267851153192620560262725899026204428522204084315001314785448984021114798509917034221193931919890361885450088088888429846757910677918049939989981890956320154261833475329687428612756885803469056477402045416956016402303197444117089338331203824383773273527000407855976770366640829689270849943328140234225716725345772313162655709090773013535766874879799129365417550056023655825429673262910935989107388911581884862509581227319858795398101003702170999882945312372410881422881667817424629267453629211254683874564712291435641524895995026419057516557109414800484265308103632312113891939021482156389441761145458628808622713763895169761155641676666227307369169234088083264898627550351228178252862291109509939837968798894413868609887240800218191549359493336264760867559871958571059691061289253909344515689836027666878839150672377647281509711003980295838311322418277604636827101916501160882916342765466953162431098946510906434276065616253416366519134675100431871508013993226456366961418534206595007237495180550964681801189401413989623797506835171679737638041061488663391838617032179195406130565378022439128036939537656515079230246563418210045471895193383700702104910682409218456894802615101789509392685081711279604124657348333147613869490363640386892572786499462950634852070268508441063915756530610889559568138083241576577949352556795667416971665891007421126558105414856305840664829050777520265705391634243165679782336244427666541020314579912703471339424397158536747728923178916509893221836928911782681682148416490005855063395007626543589873697484554643326344238479288503555152983692456493171126265065390711424545608242029041756823974839056894029614912104640562348991212987890562633169068002976851305788597974311195889323029296017861392690275568329826592455988576286822696336630052618730368001832295558293440993439598710273466355883431206680660106997856625277158304836841071493653183410993106226101694757850041877086595465993830802317034742710234982525215387789976504544270371394030233544628252499019128216895223289806621618889358064717877077460829391315404919780224202040298250973041666771286094100607347066707586242622168540153145211179031445173693046622168967053431602125348390739121311720836338301811499912692283519271899003337239631840989140603479362737963678845446502876011357845785417424455256994181546255109533042669518420615237443845681381558870721359996236767439521058657857152473978583549161428965400193926039489753892244787258113985696804187687935874100658078505788836362535788665802609344044248380698640317446042612054964454157620120019097903861359677810235504288488406411206248852987871458460631428693412287114927511035874012772881696551544276882400540258546448452174869306999807939865354592754111914861659077213673931496390195909768070779675461593251429989805996702303390494105082523525995790543420230421232690798107068536360597051206579807319036384427725882809480252525200109607808711166921499203319937030782570720791994829684229578320155132768017998991709468899186933050814134243717019191970085189395465955756091030561106021979300570612715682837608754040948628855708550812029130369188415045973524810235911973815241401626931843173305019472041783435299381815470782017247076074216847364589429362112857280122135655238617607632013644039077500817004491901041463149441107245777300998309721207464144623939298007185842702842403567070018317656352239949009328737817154887790481033720335243210387500558346339685345799036953906559700600033001373895291758749048605026007224261304273947418384208754113762518997480881385821922662801250760290518971229814300768786659628062596176812030045348103359235892759151070291551279512801727286922040101193135686881922056121778278804083712292617465178846616753942711707926919483945058614298183488679960311058619034049182139771578774766356778799298757960366246372744928691099329294092622618227411782167720053215186119006903360755667494698556181105632565572908677368551876792231443828293248967853901769618736332292135988534210298105428413693441607173546005392316084416713205440011080866166041458598801580130466369679386071734033830730155259564286051420871164447884395326664379748995879792318498245775942175660741027470632489337991155477499684842289745009100173203126093738676308208071049203759302081610946198033255039938979684427237153193738996190236725427666810576607259676945525370450693894250258801063432593740430734637845606982627078292050843629703632942571617766198825279278428453251968287823703414999027668061396201651771321146288674283677831472832524228772189730250820584293497519810437178694201142102608110830768323304639780604528044345422457349929220076804636813837928297005461063668089019688735324576639404963010871186620125252782008391289264169783743851517390093613836002688434808987112959976185633584621798863744445524176373347819029419120383844894917073100908762988164792260282285574766435408928253479080768090837953364833123450723927656527931704910423278608692762169290773710114334402809890867710671997904346480155672924585147882958770395321405576913078272266958030871696746039022207158755148972685797043369261807387596432470924901304568392609349911212794666476616069824734748880454683003875757642689693061388057472161405004114246016881946712165699095322370441563762023444396410184734516916074768823786521929344317132079156585532543733325198283258602411947365989152309495372544652927025320163254559637181316957801169213114195311069468476254836771907426498700916596699644741467659815854497189575372740609428045896737272211651252549483159146082869380924843564966690550202055591038966117445211624914293617973135844503787525576683359963095661832353737450048634355565051066195261358774632213504175825219113267123476276783419771494579672097509377246284313695206480206518581154946879186764664475716940680196499372796549310119274276382599508281034678709801694854423170523211181560894279193507042061884351352595398307917002512991094776358205144997952292826531808889445482983767268765380347901884733877558913691862759064576622960233998000667257703911122445732831453114320147051181295207677290505410333837450495257114881577418568231194878558598636867682407990237165747762405106756920270037548040394670158739413834546519540083786181172073989100138951399807436212770017712148001573638937623428107632812956293286913939951615085547226640226522991129743901577375090680343346015477108080884756701200184883760158358706107244971392221606572496084059377181832617714809615101859653265518413348673583006131339013714147582025971317588095842436956270047923200077419269355235924218282183115526238427602862259522585490737303816704364239669588712869099498487897717112337232640947092696240958871275926611357435725417348907063463699275632190652594071177891281555882059990898018267199460026900026490934295354756126954123526904173107227735374849700334362436266418641763725276081080142997205045942868224499054800909512942565482070953473109206804307167125329872906576286973093242320792307937673564811267811624996171559562255525943002491626802687235488880299551495167373522209398114378477477859912540053816269712530036535754217709153529575079481636141458221656821007318444164485305741047429185433182411294492401710822444289368287116282564748852963146972684226725316154332807549238062487235455556777536152012974133823539505520109067827396979730392623995864943441617799421685143322123204135649247360261511579425396160715966201196258124464531378451289709614417768712381241808590615469598253439881875036091231414866556614967999666247893523963358777577663230385010065952391813286312520330734904054673003186573673947200841797809483409653671844649102140833646133621781454727743896100615855873981328535588803755893499765771573524297868219399215871288355203426596215863317450477214243188363711824148603448646328421552609254554967359766309289318273155885822073586840155125350867136349278182700559749584389144454422045960288517032580348934925972519597408699747152138865415739736979138726915700460273547629321152669506731526824412344005226189404122220485835075166518079911131851580846673813169439774643983347207897288108692842975293696883101879496357812366255380271418704690093577327641285328955502796090454117982106621741413155677399845975652483389224625475817614660840843408148288003384107981063722746406294575584199509179647286444263232264474354541065332305530778158278209053768171694658916674292347188577945498937664115794463210296924968204608953419363970403785624929906779763165125726644150845104794320253643661006600282344828650619883567265748062001234819730524194140744870203807081194022008254089459618212868720196518595236332253030337810927312994723123244790525320928760061478872822229219372784135316449399473791450176921241788122158730981480701532544614979094240182586764975446280309152168901132227616452532798681938589564614180272503972146138311852851522951149742386193232783389421062884925745050791020695945489965003357130926896163510665078050964030012515736224544038938772278342659043266130727961873486872583778988078806843630963398964901413768119629888228490976991590773596647528139669799366557003452358946865378797377164704407808217402404905396391235582269022253276176908568011538316171316167872445621506667421555649456646873378242443166538657434770820366739217503519142180063647650838792868536844987232004569642984439070777420170033419458551942569731914698376303831553051191480848724497887277327283274875300558433861816031603216870904163359738190788856342613755067892432921625429563326453704299584936279213731011279392812200861549337242719978561579420760628406616283445873729978230459408316155888640373204756699542165224246156313962790705019251746093957413005954727541771464005401960367349591080520306474269886969740626373196073692833693644250689234252940500073876797242566868314484380851834135252655130449569873923960696891128851900866496023113327412800655238958461203086270077115097457458847449714022856567172637351636820218172917440743467721311266718478282627788579120152334954963837742525831538456334121057361233178703582147633675071877549992675604022928245541499461957701101458238932374454631611290513784822141687708547322937151198845048945201696969117842479054327074686642260731155232253636111359312182276509563872159009289702507812429258542038043978608299469112955080389206493576046918352417083620536929434181622883010377283890459309502839018438315048340208604476874951669463583722839743257267570268893690519629270488967120552466520333530842774016396213297484740551860449052380293326815590068624946853206128139564484304037862709840721436891464822312275554353520546680459209174334536966131098406237207838676607157933922041711911363180320027536577303698449158394134310395572522055181135326040227794157581488782972635246820779556392947172434066471440876606018464608739958341734828446749316972434206009868239936244666700480347944035352475883622516631629771634122879928622631860521528714528722356861764006162548964146582267302551936053068910420126380063958160016161603624006730444490264879438418294470825584528665618067993928679996942324214074108412195583020007743670726695129586979676375122568465450534009629731936262777800554390038364083605100911838341371978997587784547828798352723880417279208542639847150699776242952657982149180281497668764049006062345600239368742038498983210881864573545260800108279486753586989773083481253815333392273674962775872228344076778450556859361071886151215103756270067431355452707832624291219640091978296032513934618488018121633572508289880733579153391217877797266810200943123061878787655470369040874206653171599768089901019084762810528759654068407907161118219475869935318373942633743115459238693960781585072729129459849486767649023380465520891913252352963322691893037535626050011597496580861805275396642033424800030477878002606902941900464781315721461552203495219351269214933150175471171502833992201024150282355839520329319733492418343545786234880245282058516685055410370549181346721663297518762356948118992548665954326671150986840366540123089916136443007701031290173725742373759431916911806229107036888063660432692644252211169036198405397332748429098291697184660169995937558073944448863402333178483984372664953185043055580457521833801979070244554438596439476132346056112309798408029524011976521761652108810965656864112912093177956046124602706627626400884465693807630417114177081372307187640906603507362883111119284632489691516811945274263722277421180907431122780750100835649284096690245271735213226244556070470317763849154953960629380862330618337354708365051538694440594227741555673892889424996691629651301749688665093322313799967103833705724457064703469259009745240486828457310193944968651486156392391112334151711390208992997441261994152711746787819888845552412786317673898225842287247767101436998108222342000852353578555295334069772828199726744679605793816619547532734111370273600080473781851656272571275659935788151146474622094398880765584549082782311534084920213615223634300248648912878726586275453383681926825489264313578518647085203208881268948258835452004797444912052650093707987493971900079115873224109381748015612143519695276589314263297622213144185421175285890921564311124280728239608836731328888804108516955009215258087124207446423454812444491213865450610187662958945654328942598364181203039171376361334385231130031341615631667434986797260273398669262903377726189508268661619899902840517713373532342336485687952503354064017916277398191018410066504201287736643373763631765123173878693672758002484975644850308942964462207895324113830358289165299814123346576995286152088918923970897037372971438464565858289909635618403400083812823276906001660266721650604020100972004993189456271252678180656088720053382018563262097658448425619604836008391440216504446100617125573011315569664651751757694612451321149146721142825312671190313884360707441891220044843433821937139025461603596003702744503697016562002064808946947865735579325043858975501502860383733388774634590417693819130362222527263428309983491231763785709158505511050661174193407939597494928754217069657952237104940587405625424222206643262502218241686217649041866130769718421668240637728733220814624993849094133611303269668484201349397204070909212193075857491325001001927260831600115882205915428043300395993351998080689370767300171894981644049172458478427943045312985221175790469082906918336937827617126299689595451287007721711648085683999738810118998642241882473986628294856660430979947179681860149657875924471514860985254382019882845188648556403494225821164216387698395779766204532457423454207991317243872488050489477009942350251018676224104208807435372955311656329470833726591259796053176551168935000339148591055224808878945260827840053289787872071057176436288489688729114121738798344528368086111657491047802300356509715904899853617635292908977339013840207317060513392012271690505425714639435262900402145638976802172166554111904839713798860692202217904716248032359374580452191592878991614710037712321438966209179021159004367589729202707654118804209695536787474867302052009700278118193431825763105062713141486249034482229162861755673924080371068242715927037928786536963739466724315912011315152980690029882626762490195235708580778575383700585942635651509139149316864895364011680030092970845277585235811495616211867347420574745823330579073657488872204976258103773062068366644356642388918213650957688506747765320997361307133840055940126868854142191772976207077124379665078778619923406359326682214877157413760329127668270862905038630447770303623507477156091509881934622424154784332437475504126510406053392068691929092880545822477622244505095965297589923910062885795643514052868049237819630694540338178033575824028208782504344098050418449476470416263759250500359859052644147342972838764776986252574348432719160202555951062398948302115800463132594264252432894088022608607704244381451142780340296154895337127983565062481674803951756275223969891962153535552535637044044165253726176445712760818759593776813089892896412834210853270846037377715711029871302046764291308580370920728195993797708796381540441135250287462248208107877127950735918888639389891704574412083782874124736959299110110609975114854083215877791667380530946485270801771578964685045746283481903892445725683906273176848188151776599411889139830866984652088098094385386945701816394189152902302446729865901757143728160039108506480928642990092440937416514172656433788478232687429933530716536864067350862731082743057308213861996411522081837599250713009774059495052925918562101176298635976221025959489728174515437624557631158025098598424399492107395918669904748541169230262050001204848370355660638600521492546016976117300073569152724834297150962267614032255110879486964233914580250989369593941503792889253734095147473920310051255155122560146089694093790310618002754052933819283226387391148991699977873272745045424689032992701863123516813568263020167746827792210162930984035615650718369040696493164647179196070021464049123719333674139790784163808456856682388907453364490882912593375291833577499917424568506649227219907656652437406844247359111523655934269922476626279897043081792755678949155865817225136387908664699833760410258360731605928147899382172953587645736502477497997019866388675280474730415343050519141308744655979717639724514145641409111352461231603166577058407195809682754045030364195978484249591093405396667177383736024011332128014801408527116828626004125390364904554020600704372342977429731494938951934962680753781607001978056922659483262381519120857139578454514804769592110835935011530823815737315847913332106496134982626268664268364629089528596436692034234152002084645778778877106166841960480498576000881332407204992091011916056282774993141446817931191233681594235232400126399078915811623120425977925631028781952609331845740072946238352383451335693098087249078915920378604647740765074217991352554383326914734463755271911540936805612193945952173207195010223220835660607648366596401545117572302320032539732191102195160552528377279784188299161758515770464441395002358898477896993163496642283010825452719750291851407256320707014977793559970107316963102139938283842821750634553899475724955332062936992591626342570423678657705318360901349054142681113749018141750757434928287943819148761962803024213724763772083238758098003830669773954025365616541650326365843988185375449594622209147682794285843512204931504640197371892056155772768329837571258000855146248070253553777913241080764324522292491340414389492882606396051991087001594429038267289277269469026974439578065797654444879094492018249918072478510892237743017082065565343370494001012785815083986913073259026449243062180781075374094390926259173815693066291625755830372870829075058837259496750349771790108505387034565635092980875972802822988899932045702508409903618082402323092086696068117079020486954969396138949990683487714760854754262878588285352971299274705046986458830865349704396917268726440844145202697803003306296561004451454868910678086365756159310132291024647736518727092163658569422755385316792666806199466567988810577468102025590559130985393389339181910794660282529122193989842894143211710268058386638330475440730913259762884327937421001505565608105583188163589275405964505405480342575159398726343541918969015593846495622259708136895700242953859796450207572725118347427794151887464979760714089854329694607855692623161522188892823627973211623630570317250758771589028763445854371162559756790170415436723435222995870013462643356513245507738000361113509091129973929994646825692444234757381488504241028322947231420858637277326173527158607085661481696234437141364724010886415958775917882137454982634834443457994236899334910571692553127819134992337123809413323007908498071440601112855054585496921901407320462488126009243872465731383575361086485010009343719125994206577506456124413843848391933668132634569222156864076435836384245276272634834939176739983014520000523628710748852505723182732057416934384652152209146703038243483253779204923522279349649119710739072215481261196336843999424983264352178972974293039427870103392750141789123512535536495879330157943410598329043115609332662645052230144962299776137913873600778645219021476346766154420425632061954690656547251531077708180872055634038543431591993721634682387167242061836635226252677491806559394524564688922274545036024893545495384573949519230858464637168886890193856673896719557713300908342476970007090210677418353622124169056594597849155823109539111541651920717638507040420781085601522009324129725816553575009113808508987026073935302558892648794264657152180446930085675119162258716103421985527832203896727528695691937910046220447804602654725275408420120827821090343501243114746318704854392261277778806433154757079115880291157485516114204395066864453604493342352056668797696202259265636606863082068659680407519090489191906854391649885671999293756580595001508083635451156724344979893721055736694384852731645235964655512355797681931084230779402626289614101250653126820063976637296087350597221570849477987163220076699313145675646123672858125099623421311931739968248760046741605735495900844476368465967718390208036462803096464512595750894553433932490772837357723568486169692642230284840060663945733156555776826440347989467282524354999483218144677099138886667249675041229174160906709374054177131833986906624644106611463987760612603133731415919143874770666716687049261699085814307357557320123549630435303408568727345946931740823315476770180312631760037581874373515852369337669963098494738216260158161399082948164598365921284712407586590213377004925142496910313093468028766221828049978297592842102448480933869174242602287038059165752668848509211212296982003274451269120457742870537926285329845087951630835409954538326455040957953376289232315519725066104795685151085730611797814134558644865205038750873296031345295038689553830485614703279569632784481191778786473671515417409787413312465321981439685119727265273366830837337679469489883623475516533669033583391738236383191885921546661975688017725936390567130835146847849283316704612253035301972382868182614178849141222615270260759925378629071913970838483058957030771910473745779589127311457593898908914129967300455906093526070300331963726107803514703082048011828963639078542148461632983377347758822916755033019392737389441686559517750979281134874190270766546068443960031491347035758634878258596099628224540305661129566686359063665799516687074049274251586575420836717414331681143216835035551333858774528035610424271980236852039166617336567671698938204371996341456624969762704235384293062101256214892705050498862444978796602817239810897258120096498258712229404266490535599008343776689297913240332613166066270906328454236674393202211805056502938404861668641049134461823270437251969913841253211023794907501074789760905542626838433536077225913521050514969389363274732183229596115855805684440469736691604572462050149859617977997371747710444506334924503629293089289547306113450856536558107774188967039882784961900745554205203420474817540882836574962421577017637300833324033045840916063342511682901349024627985078530252354283086708581639997220168084732009545574749368430503492264137711464898576763499243612447401920009568620401601947684328571798740279747066729514237588381205593487777047390943849785406665375018791533007821036666907230138760164393581690849263476710238896951455720393309838885368114958435210320901238740645358790328595206059397281153041400549934119266179708512898621173994716392833150637787568777321443925731185450007124396939862834892956246128709970594259346613141565692898554345697777819340784752798091019074748519947273199384285150144956397948457807110501914625217945402743211500807760631226150561286327444677995031515563143142998351209856451026206304830282452680223903091197673140456672078008106864218653476825977868693544740725315826453060700375291857144625845225806028627851495892188609913286625894612301690929776010108712573269889190056464757332506134655270779705344812815840689096204920643339665371923327801987564623526402389518796871800659207086519155365050044644902897340462864907590026505327939709543798703590294249952875046964968006714224637468141791869530241775411117732439424381419246628560108686202830313845173881406929263227413655150514363640049439777915441136677664643176739332819216282199703669136329402708802061159342958924206257915534602813148007761873906750286013807048605136313396792901955152288607037534641074038472390762631721879099255601988721094802405782799096599773530881788967267792606924849661302218044181218554435478599875456426138986970237660453984285861537546846257981753725914163597528610643552114070218633500936724142987267735927706378018068729451150771843014432475194121082108974610875773314757722439097713725174344375642043880748037333666685723454171691306069702621071574371889907002643644855009095821192493532473890181003066659872049402316550882686866606256243055425934426923683621154891694276375162257659398946623869322202915572308888918516346980627597382634259738535556355227184429177453430678117378632396631325374049699591336392003507321686237891920905016539053347630388626204482901463060272182966380488157097774115612443976778843322103995653554976174808801646931085889050437929073621215827114014803641426499750998427703597041037355093892671243471555151311018639587802985558471020790634015850756357359525251865157205741427513570735793708157353306556443645961159683343403319373602250456592286593927290001018927356535255508535603170696374393954039241524256701593563597522840546131956843130507171826605829339338637465545669486475003884271109572549653898965944464430537307268353674322726162099052058319468052111657415167030988099062420724718767735549017052706645841887201206441810808579148837539614806531607572438508847319936776749740545339666572598593434379743852280470402721630873149379225666220224516098925656955023969620951958885204223293510270390114693778129554848639376129818488239973600368793132918961411647144932134251230612220052708337057893806930246775846873595127490275389555617988247623947831197660259692497504814545886686152907300362323365591443206466280431565922422216499148386491272938726293385641707393626160536672134365078026916959995570418741829175231182824911513172482765431975064082820934168300790479178130503356224197592971957279661447192098687702413461984523906858606442743122809920708969891624659823951330203051416899433653611967972670624109871148853618376634586830927870388072659819841465737253682520116573326376840001448958745191654938777871143141373994984864651863232631902283831130425232885173687270745967822711057206415421417972348760740132493390727650669861126212114430596549566790432194771702830168033557772883524628222020983295653266229893689507296612460370508053727972674927313747153154463721787468858014882330057067269002172256963700068375339410209053275880819237269933471500306240755063688596261397494789692422792895931340604204678211462275480290411380267162193537706607025776670975280630382541026793761297633768219894025371130369830778784953092080956261263323803301533444108646665596152526439467072168705298338035226822742862467280023717164852572146492363616775637141688441460384228719040904023939941586053463767190205134556889036754046674619811767244122032995082655442649289998594593350130279588159929764362958637451742884119410858770874755563294724172671155021075300921896720358323951678464788180497334363984751177959617642452985580224020559282166733476322555808011275611635221049220603646536232213100467017216438177642812713741568700724756717734960747853023449960822070738437590561531338742259632897203592691151612263586232601774590124050643615644002750648253365219607910559612806579515389795341937043722082079039728440222928493382865961177779003127405791976305204539717753348758564307923810520622693812984418103013557370854723807948001133849369078044341530377189449158935448528459849710727311307222107337311230834356554739885868581136688415626271920833265026995675977332924192519749190910287164927695363823290707664417088876940489451117524796510835715289946046768405351412305627103125338157115607083591872290520851770095258207798212908234598839563238655208740628943123664658622047868820416915163518770926612152603133642191177653370976919055289600695317239733651086310156137020691573608390298223457400410535239621165376267191660856563714012956789498197768419389523674027784467794388266053783029883449394290105115988284234857102023043728191620581578320696434435203260644049784371999654581538614314723283653951683216925297823000825670860936676692955453742022909003226859604941628238773878950322116007912230313290570268592575428478735877112963388682375393678810909172029754637885147245357187973506046847108493141009547628834353327908441807710349126322670490928355439702104848887057052443957147065429142997582840609900337374978683215394429244433862793945709477070526238715086146960608357093963354078462506135777377113629423656373372240922672421962495243037220092682102594988040374095165026130672564284262085635767810559773426570419788851731682342569559424086552908062175747675523150278681200262052462612462305029732411195363363595855143721454764119182677874241632364210150980582521150474271045191242733133934298584496027191785838829832259508114606867851165524902695950249367756626631595976290368865655741718332529299062893257472616288743686812174634173120210703885571210765962615313592552067211327007875527171787989370235214870576376400961362491370677212776982195204732160998355044208265244305503564083932629473397038294058193210300177835350861819179630224427096797412776751932139919797501125877519151184933278606015317328195149035528969809291340922684173614288083755627567683621200088187202025739036057927002495235432964236530906510278651795376977791206043698706346510448150662885104040649131273091929534477681237377342083449782407329957847240984092649710868837400692748306254875097615474071908791586229236265699216749039774819657490581450117625534070624292267073411806781722361214488832364468358131450171242249417973309154930736019791093773928169217852904479250670027983781718050038702792862825833487358768059532379659193548205480774739317439188321507585021520024335028298705904793671340629327470737070746176882699091820902813375680467598486767419792114494318065721797233209454089321459750778630133204393038806078211595437887365730220801114880835066638674793255369417406777948432300846889272007425979220624291614256647053358678077317881992587874659592627367848401986130130440102509447945072609504228163076352887590187070157593339381682078638257342393779219635509653698444155333536400156283265646612318555253486845226838939057535294429363662921485391043248023148222264109000758380528779842807775006257458626100073692460288597320150737629332271104169285358113831481349519466540828481777364866901765175939078803207304444633051176479934584310770081841910788538391089641173476563637936198716897833250388200020272529949830501978861433779798409924531557740514663316087760480719842892051846615831998854080788680149648652992622950523480434300302183262187219197785127818213238359207280988648066277008611998351686198706553937094363195845354276535987851247591442098933152019162000718249988391050632166059085063321364058524967122339146403975776657088222660625552449406544795530395126871479292151611022987643878119027615874788473776282796239340717618415809265999979890527703590428715406111709029868691776918300859369379625550656284427123005382669138174604265881601149524783221204335950449254655436207551484960323642370314260925560941022972160617096198691558099243915843941732073101526772143389643242396835711116359028273635522499978873120484387408584686696845531396009676119649164380718527891825360152213896505514623414785932062583893308840706171790024191309336891854454126323915121251647192720985647149765467495806799087365781304264614722385691012288711734885018118754781237869928739577665648963498141121192238715008211524224129561736674648055754571218118230404535694732432335151365778639608502383594245867260091122755831345176663439216143043106941582259960751479527752331669029478673758270689679014342364241389409111394768820625904441721611188564239627110931117637739607838632634168527603263840726604930653409475891290106906895169778640957450885068105688197180958901828543736390907701106717669571509115490342264654142202549414674833952393188091635842605709421302205889985807790654908043309145291412246540474270677224694581908703268240402131672005651835293587750147840854754411143224797982179429173813691615847555144212477912332304112730906819617512597777737328762270823704652787918232213523143450031802827088440881384445900643193179425424809523474650334161714554905336311473474118997637544328579220158876231089230920987447484875378328035651194289254654175779571050382896600779167975360087432820756193895764820713931837146613550237998275643676211170840055167933084650374508130904830085939155089123491522118810805665114652530772166875400253813091779079760754251698531472753827111026860767684603025033974711023902755014265587346197570847659562173387848485134000921071197109177788719651034421913679000190844857690330726942707202448596161802112202607734801466697936556374695867390758499643671205547998148928608035241875553923872720161732813372187104470879107197100365189036055764867498533985043573002726443807804447510068727058819111965603042926674371876927497428314721805225246448873102234596093065733838040702326483947042683761795984177182584207839101155394096903800487021554070260775705935079013106991828272282966342365904342417229971541002232279302004584301389649504778170668952987376461627540160966770512161592685082179364370704808080572224810472615652926526841397256468340074895531613359678258401681577213341865625539222759559396633294269082991385721401613238304277377675167135104328565854272705399889080326592523027511472811797323927863725575067660547806386241117057062621105615028795747470815670860232677795407562859102654930950581908998079152952458390369655850608063471712588720332911154319082194149089105732279679591432877027141965282986904511213469483609038511015663705426483555607302120389497389565623097211654566450441790137776759196701150264548700814915248546428540106929074172646232979725673929147276502890547039672213296762522069624031060576441099524904220633161274519454322881579042897007762972026785099493055718887451159698471937069354921910390861216330630671402592944704603230889458652094303308157928696040731975982619599206768910445780682498459898334556371392713201876604476372657265673868745126570031794829797418660378736708154571498320522529834249168688154157869255575947096542117343130797442051483853152033939405799200640447314513777231205128564403822454574058349070531263306902114292894925490460717720729311759443363932736897939787193311543437947007738710193962767875998240961383427961574525249102805777006137990706799135683550717094505569226214132622559423385713109913103113368988445789411405651971621598349853824712728929549204970796132700360794139615271699626239179880871495521558853604794710109615298463395259194377666511046864198860642681724862086869460490557582609564419311087156032633583537126167781145219967203333360629300049526196949641535430758287750952873964130140291321075452890626136376709962368332223387162798911957220623869826817410007302830431377471164500019837033762022291987726599613730975313071092756748838935566804194659621395143141229909490072478254594619158456168036603175654805184691446509816144757713860855293692755326974576523134109979334639325931505821078110944056951595516167422305297790736528948700574214383915795469246969161898245010829348289209422511683230553366486379897984746362494022206592723763860128659693541905041970189791793673355215242502679525702317200846329199594001413155042371245159560161945268082534812580612696758251501318825841410579051291468794246154396688139094475345917992558127023973943625763865270038689490116676743121884825519064139908772825386631160974108907062241662521658289381151361556213078743538268223666775945004165698632928947682259925229699177561338653011752481771120081618820187362694855238104420364567482643741860691861607478725710542217606311610623222885372444274307968869289162448226098733909125987411120503414325976990339401606640217984053159899151437207122628269691555502844015400236015522539628545101620258907957601604601737744526655095929817332404935856085251958572795327354487923736998903072305099532819163119498810065908543669804855528958930080622875736208965392897808914349889845841657551291709192420380889667239457856181444676534904151447656837427965414913681012552175176967614190586506866359546182633787296434391279429636511189131030760943554198530055879513116687873523527548114477343797329392988280508844876152552724431524488329849909164884614013282150845537992334422037759033522475618153637225162605382222841744342866053676645317525643437842830840388636673190781178537823081153485775148317929215812720373080944505681485637573806453860655927122932890656918079268416785779012328807918789661278748748643353853671676853076736663388334493978461770310065992300541431355433901908084191631111810327828315760718458082444897864169615899891135312757194254678149021423076499111212154077436285108964173235451678020012702627009175365377688590266395377812590560545078462759078872977934904404577907174845520207828473739806138803124949427960555874773950665624789409747086612109074502175478796760228141406521859809428053241247051085755075716742607376825003744870019896368291490367370433875068434991801851853140932036819792986090441352118133789887395807449468701353447183633724003119656779206318215592269095817225257062524857026968972318455407675044784889040603504979268811053899311895008715525624985844539959076257156930550504329095255980177919494343077112462931994025020217347452395795180208547844150244775726067313716700641043293426675838248683344298787653818928690298778529225838767619047324349373360107744036070375551267704406434105359097054084243348902374617895090177917476371627507300693418767893087548135188680333146015660935026273726049001120202249162486771057622611822019569606831102008217058210519366195894668425530735501696426528042529663324523441254220225394320469926061927386693710820940986345278533954926596278143556788115339248756789351615577234897731187568857082941090771512246220512427742534259876812851838071027450538899921250071777104029720761451105873706139628374186174072278460811271083038227290677971154525132848258071707611991832281398310370033356054649576760218093103572058225391329784124760044227539818949621464376105117205995306164586697071572558149919114429542569096300650570116635947079881029966990860807075602917137329312140358632198569187270662696914886889923529971986879895409055331263504505803205292703899746493606576719051658307570053783695978064777731545278026476749824433364666116178125872588029481822922701997984144381260514202547192835400702134880442181060016914379853373262877969386952631020550044313430483200102975259461692200207524030584750141665652586254407344312288950882648918262911227188238507674100079159105126863629709020919151565116803879624587288610692643771118824434810089802302497383138324071124395681966351918312741753353128861669679309582630671478343102614479285618042555826904548831623889042289163985428289847766965759965492098762016135136057381589025130481354157190563602205958577432933964439740327685761398032032680028925928706205289546032144415286788640695572942732563957906330448304099643080206446638929991031876176470843138610692876725120581917700192441302696195189268984452503289619770858679638464069102572529962979169891157045163914451431634869157829785221397212885247329599417265759019020757573526421647617920811302115258440602065035393239304596540389900729167548732141702565797645864424217541477081559493787245198265373816961829973696283140348264607221101652617606827661258271038630746837099575541699672441149991262827330217236719422310288705850818848208685529390912330315699706636692744380484900354034925137040742940367420801895440975563020969829786234152134524865709494875442346238572944285997459406867536996475448438275135718568645783797864210403447400465070942578780073849939819394272115037713831407241169078713307468161128723044370008909625767493850915161634516190394399076118787478547792822140840139678377174279961831005021552671413866440309323680459080191332731951419210061299018665544171456174305048208575668885609749097303710387528265450228500455793854120694128058277985436182374976717606393865710937547075515437689234619307736391816487150251882895613594233699818842873875039711133123475372542340362970316933362398076979098258831851823189815364078739198951647409119725282297752095906009723761096142227069396191858194593274261666353275112312034849129632828567758482976826949414302064834341000654975721099851604646341267103099332966379581627648666836067692453305670248867086419415110898224627038449990026986143772436003867444971037606742706924653142187420334052462889184466008737356920239815767406014384568383412379760675689741209279863423696618555832875679044013978473269835329142556090980616831604263965523068861180313933891593558540965745591359839815288828845633039000088306906906224463172527582858653751698167753274943975277126651553524359477494365981445395012982333589859505959745441953865743862475816588863137746195731554893416907909378491832633635288546245537980078281335217199008607912885647308950621075205045323656008299159323539162146985751391455400052623289650556673044291322821096258427730429200998030438359220569106587585504727535938014023880048094795654151460697890212935774598881745173002637823957201544030088850225538932824458959214737059689160658043821666045431540466809568584874483504700502531593374859318967838391449286084576875799727269096147560495133581247400547731011101818468995676886068395761127574231170462410572106095912364983758877627339636587979335986869670596230306592814295324515545158543887099605362448320630485118595396622150122519771803418788252428884856891646786299241399000217540773446361075433213228005175656143651222179719809077023944401249559153904494905904818591544715452570867134968263924513048728449314252825208040252672035075491898295371489029048417978519038751362091455958492121361930053216896595256102987383127110995058376110887067096578967400982329023372091515680238369621519208161304439711650616445527574394148078608480436772912571962894650146749648493555935849869137516359103511920582184500973022725458378763997806871354765989771768357465536466126911173530913404627715510061606884494681601125930114295511033624655191385917872082647400498964975196052325385034895235962973055091612386844761198984812863807815849642838230751834654993528770857024107016891896565156275854686185739684095964049117143840156791270181482090616522048548331126296651878631177482700213809100586330577420237782517833720967169910269045534768244685738342907785646862587259334214524349238196882919879311597030405846340713853968612012130791790160763192386775597193245755876172168963336465580386000048353428463451121350327004453286774374765878466650787092097898286905796633205079671982326797997059274024742002914829650269109497588403006888220324871222565511352049203512829571365689191759938580339503013436219430824434152300674672138776828638394988721135712861002604046622978170758812898464439968813959657555760531749946749312726538855330987506847208506762446827663903995117035136128814381376714107326875366333326450696480715814297985883582796726550383949325376028934636301934878784267445236537471149768979397668876193045308069430142477993375417087240310625310548138221257620234952984853590830183280315439555362502857182565580049869084033302728826523582402283013312017797077817437721559268610899631110230651004677678967429005986111529590237328105114456370547353822926931793401866270498203018940337938822717117197069329274635217669926569790578562799562867075006898958964961260294313203212226067492765953442834690198536769976909634317170639368137949932102381490487797940130147165854844031220896782192831188077120561877588893479117095005229891542774320202963301625388491842159480560873992083829541689805510826270307130202147885529373182714277880602279213831655043512788535457023175315869064914963220643052460730784865757994207637624224595014817812313250487078440009407861542207205052377204475569711584059560762167338923280846837426839490004753289941617984396572766377719494728835173133743709388540057661677966477296112284695625855418461838667959142837681957695696222224885734068698787176140029256870451325885114339627582894111591214882287668932163893822734900771497082229907467198386699322959254193346391289119738018767995481770517139600534795571540993922914559994165252449348521654501564305858320837631472357456703242364664190730295435527321928172679649182253411893546680022692592115927014181623876597434093892686583174322341280922556841940918935860231664589983723503355142524952551195725136809316744440758735848201001342086691423840365657485249803706330804176493500227586625973750859122572343670997567674940002629290561196391505829471209710324627838698963867576055548685841130236313254936858263064732696332591377812248607916457237933200192097490104866971286725237125102215522670386816494578002594672097583862844855464025975109151588321999639544358877753854235892642080476922997841961383677145472505322199544330522755554998985500152033427525253724563178226657335471322212094604180537026046322378324102930825108581273999052694084731712639214908502501989640975829842807513586002913354365976323525779178781904940297951755438337096085232030099122420262117472237597165730799399435129358295443636775117113328122945810736859703921919795507987900851424351730835646690161107598013089862729622636769081298382219366755017582077275112004340443004079729858681248772063775780111385283194709619489507406467488036906417605679560694943527877592678751432403707409890523838155513512802238888839248689157893122578256738726592385255110481437977014432310306595117953938282297663963492743561687152531103331344714326083116392748283325523974662449059106919391698660487403844460066798915666269945825265198995480743198744722574901974350964196426834507387952844350941680246513991051720289577110947927242750608608971606407422633722585318809033946809407509427760564310686775206162469697836923297695949099916475986074799017043549086073178101683809962269855708384863531122994351678331324596554505853031323191512354695007671906309791563467390931664817884444765925146755409639664438851456375957859027963894315502181150815115039942475695030823332991775618729370686838869517513708263384562451623309859193105866628136399369226762666504228013462367888412498132694212589188787591657482695803120968150382221504825362860348337421129703740449804584087133197689164663525178836904602992731498189895070798295345140756738707550375319512163962010755529116562968810785933907661103080831205551049732796628198483696725231133236196641283035174086087946542773634133258024896898412641449417494301083927475287460729321415830212901613342051704379483765849565636073683491685536105810123460950465211669339131050067916004582720298304829389827920093904338114860308632098118560346824076051186710591219845772181995422521768776537861587070435510057625284899401971572461566286245032754825567104244455553514786775889568064750223987154210660174276516742214439955774833777262217434398546139934685150108319728697275153160554463514440094624535712912358145865617268779950177029729017209509814601920967483135936320035490372237625161155448032331372626251076033092539696530383378835284358486716229537765474343752436943068360880996563748784033545521906523864890806840323091037035487962598702051686478683441323821751038212732789536096583067348167921707810548771590882411833152779841115207431042502364104404288189318552754172583713761610746758483591303093771053734695996666599205715325777631229731315352598483055162977152705652167788717453263405362760084687907113761506246947228320560545995676805241766445415446953176987901900193806155223586278957555222259735931362576099014482377814580404547761002371963322099882266874865399325151085908876524195363188535200210261665772320162306153609431529815411838755349814477805040331103019111942603252613358839242085562287201733694910609430861488839293929996481161900812998169619681732055702833189702973150564455869659441468450140281448188677757298447792420212305147647196049733907136612480719999650004830964864338089429156761705462365777909265819867766049184480003793544632151725507542536074257871170115779946288368185469387371899945336780402304458601006261710706969303143645208109835002361088078792035826418761447229108252463953383676327429809773316350285721413774243453626646329491599890834584664463670964331371480291192943580112788972762161816978724276647917531646537669445410148233509232264574192670074594654888252179413175493330066654779067146165623912865691210461990822358348396502658698884892915947738742224163934845115827911248586820207763855106883785822607655742444603523130543301204741561611779508079608826858763832033348203791195462736774828622675275126850879697237671536187676666962957203861289718523834858750797895947199972304977909933907992353438778332485345880740136712681860000706057296214731722276624501162246913500777223912134122713833049469549844830646124595295790860490618848756626520377451847347612011431267028080070162453360694107024866615820805397851151334017563705223700736695153548207021890883302282137398683645957907831977822536371367793708368034834322653914467419051396089064768291723436894393943956820393621215211617201365789545343510861792212938490451739443690202005391294771018799127212574541217677581355644641588924074094642484599687623380363820633866973258731768899598531246595773544169128903436724993155170110063843876974885288841443925692764677122406427094691355794223799026438282787239691590783610264705439952185170660396720072316164468340509881591035124864668603368507842736075045277207310925390578793866468057626805996557011565261271150173849064311761263749373827422835838335032701532528695063284835140856280507429676516928753145283465315721583353154331975261797405251196836767044507273536255893646810917101152579932842506181839319621026314640820099751463864224697599431054324811315276651204348412040469197529948157418242114382545771235588189874697849524173198806523221484923017604566648535835996373184713331904373511699886750720364361358994533611869309295059426786589846556805912979944413842537522551444469398335757740423474457948664086129344857460475189362464911328924028086885780037096079030801903045456784885053900588532467592131107916034771106308851460171708183545537236036782326130215816122715581154142898171826629610356248447050305284260802020683772754103395764046553978379448998479319073533273021041917534846788156078306136841421948490286357811176143406309582532374445467521975210754266017295445792467526691253590497113123388646721158877663222217454037940796329114015699036355666080705339690421050696072182683078874051212593094403580270382008091226879195940309024377644506095001738461392248637318677489286684984569012434681042346234631272657591974673391849540965751559976102687536219239112748115398608582792491969457527713336769505965408780275067463193583064336439847712698432977656628423953463790890589662443195402867524278627752411358874855621318284438260178005716092165646453338476599194079167894563530307490139399277600496342498156284738640792204375221340138326111258487657363763386085569893904436285749799741029160207570463035277342246137331654131239115304391593495927861306162611866533380279745705699080843145892344828121394605525395914491106718797220374671061959070605352714219960930634981212543228879901361659978246588460485010229029994616798929503186384289546660383143658394330977477505037028583517367700236496034296141987091527530675586242146868887089648598227265189086300571284180555756217925785222776875496528358435185647854795821914355528739484829897639673872924809429145169943032003538890435647686220989871568278981506078409810208514740194793482353017946271224673078281301247613312871989455400120404614059351241393524705307493796329707649916350171136361848838952569741766394562405624025574012265787178912797676081911402791306440944421735207062112139012600843003940307764570128579189187093391987876931539063882342571413543280536023442084232860176839390623098007853609913591079300596404606927921570065612325188276894214892164678894244629502502431121580214391265784135984762254890170044044939933764264670944765335253505776251039629894117385338087097722024672817922819610226836697028886382912767473051453333985439136477361149187247959854387349908744063730232059601220060391658178803116959510896949732072586442755528698053228914763831147678793234144073300723839513185265654639738586833254598246077752167340132594486123019842406836856184770897353169183195216964644324864721729597936304243652523742926406877390768443435973925024199315631505852344487091752278478996153745351543327099236534430099431029562592414826631144426930971164366814851382148857156768103359589494620649313439911705314826298409435335598984709855477048353319061395929671459602982089835660185055094108175431202157063823093869618053654132914521787424869708701529074726430409081496981862369243061231283163148513384873192528792403555183992107186181564567475734442529981295240260689502502106990801489559801610880357516163371696457103675632670855857710115442534207937656132413001505749432646752688809743711273824645377978617999670428619066242950822466462578199418581510660356906839741736076932658003482634473550382575120083384642387013572924497083658697449429249446911678905278433226474757365824043724452734972234050802358800536945060724816114056478545661827984263888841588930795943185299608608352407366597195139557886714254884845558966365458002126958399820492906255786729628982237016914032179598859310642108471370299976193292462786923209525711105951691447301251178980460439521842567693129032484722766137717429989427339357999592781279386370615373306116469089462027617228611488741881130292397013267921493069982074472116727933324740733804962322502996977241118740739333252787854358208584405781738869247450645537678702295921429459468970136167944781017955132012162408634051353763568088958899828516140846556794099234504491615286548004883041921583958319850458685146795626418541852009625690653000886799684485649177582822583915852364936814495325951762936192123770855175466077270803211696299980735722777364125899564230444565728027237308918817213716922984965955224782882940272022364366707414384590229110774439360806671182407162761537873121153772249134330147133785785380578580920552371595154197778075843755990310733406542473696165660888474069699641828674312459932997447023484431846396162409726169716574351222812749671236461972607120930744077751346376164199334894828186570727746990975164870468521995427879458923908549486264114464762606314021375223112479190667728241445909358380430824669774055943847548259286678671671188041207053076304622864349072112207401003236283616484817427924317090716470833171200433407125526052996882767679060662178272617434682599328352667771693253048115252048147945876822023755807055694257123575789187383255885743593257051851727911663288624303978071549893955754616668093197225905319196893659038482258924729110665432339628602210420651763987646559236353083924986522432794407342408416903687106516654118345756387490448596376289765926019933581521405250895730103797947708564559131780836905047891006486866676205054875544199410569180648652460664220205007273565975817409067753825700143299866456503393954755675323868366623760262694018419478491591150509576427117216538236634185595242609036818440244241089215496445249310812735093525240398277065482671004190832668308148590172711972825197954756092673329586901858744827973421066296440271733749530711815880271510912257039439007230019182766170623686257330668595646952800522383488926236775335373614735026979789642051177043402812029252867583398597781431960687316575836606676952853644665675264564813720365146627232348747983611569262853399753307341864645135426828544005933763133422794270812694626960437722496575757841454368882185511350157702445578140318582436945345587983531125292494900372697673487920855772590783741958071851425084300572083507642771882449108091189391214784136091516007181231297083267458887055008510540063529563128723031151738370399335987230547005973345418394619304549512543268030854826549077780581628053572846864853369215928615261961778720696331734663333853969030203633364630984661148248437434215336825385986698024254852370700672421283935045423480730988292123270767883013049695263565933059810169425227856448472612054261622061417829847496799153980950373416912670735348941788771227029544307163901404964511522344530365313258859841787563650324686046135091520587061489584308218992366656538076976229320720586041802777172990113589014448814519281165909479535613346944868136295519019963790421113601242283608254462413764743920012242706724660931191844330003920422079644782964290401850418659474591040658029011527169233338193567473508955581199326128702135444348176707168115323073317110487588343405344339516261734849038830867529646332329256244949025451484749432072476243761453461655118432573648373671367834723288548071043039859835082233080350902822997566119982907696719642521312304048569053517673235241543638206600379931227068724904490801106292101866077095420556449272194332573395491268438109852021867820981257556184789224722683536162214171945888991042499935732509249812413936812005183900096491012776268936778900859451770312520465180132883169537054169558401494350542717990643350364537086194875629528542035711470048568331142993876945525581112775389717971207025325812490397215991000064652013667055671066605359344446584666637652137980810437359529505539812185446718432915194307846704384852228920265152776754181439583170083682282342637201055228805398892872474841136575546544720406151399620639105340535755801372825501686872667917325393101411086601951268620933177398665196459801191461967678667743897675663452719690809041320460060969945993316625301350910079321863703775046567476040199657274017916958927658055435306831240515836377439358967323534774757699015818382521850681210024436065739262087825124519387040887039167933536864302779579297872345085788484965028309705663109365916633726389760096609928936501650174844754428615586655352123317343105975797442536478495142941425151326628078535744844796892211152867857303602640070651886592402365377077280953650725101162891481923083150711006283239958635762103054550991960755534715480629425161922079410998421680355192482493775634747155755862539816183159184680673744587812490931598550635417660783479795520094681167315330381913532966745660122883185610620587526747198828417441768350365742091825485337005510475544623101233769351706001371470155245148726012344917283210328858627080210052164732032993419017194060573966028219573942158583322626508658658380685377854893741930554857234716432086606060344780189245290009071666116573453501574749819779061273927671087399134880015231615225187929930513517398948130341978335101297876813803384345177357032059361383399093582638272676453385741083402633924368534234218234570502425264297334668336869810767570261923556453641625429705166210742078473274663898081908538695701721247789591539204246435054776456248948381876219158723437450014758690137169887519009738456492273721333150564387115503980991097920438748013017484812764995985826333325472005012477217748152117200583904284525598799091441992650204023490129784600066522992585999454991737581906362223181045934423752276019530179513436325241254676408338427010983246206317141595584985769607015130588864294278234407589912739998270216053978510544421041880711821234966757397868735026506948680516269792665833633954235934861885275368187144965798896391383853901777129127070747173326113565310105714252898470726969407214951034183463767685488362240811911928235905330441450779974344373953178637867258183716326518617672981698255585038575838125636497775886006230264856214047324937971252527104116360473561066288871286807353779556204926333277684146744332321995223113765672228581101756112461244970762834562521492799883913307775143779165158317135704739610883648285328539616187191266458949062187731306630771790906506148432719636707369992668247153318904239887358212445959902149014308269204259597333435615783868636878175968551708068905486958689467027162666207977431136972386268941183248496459098710273999360000626725700699642054299560932020704300579114173011264155010802671260540095933049929354748458488003021661024013726802175737232527913868709595694621052610914263901032635180704508491580057376379765352226690154343491048106615381543488455179548165438872964472463864948962117640496294725499493825898753598065944231193792242172530812097568958262258540329985203867388196021804725319722897442331463817916810429192465462634884440515046781892543760783735212891206427438844896017390232248304052629712996470018223317135369939029386744549015850820353509837549192738551656999356736122970149873943303856655250347115128548907990474271672519766253419522257092677690256246322622475476526473655128863163575911874483100685562963193565836198923898570629750132159561381361317454916602852221148519946447314989211337512481708760181832936363358947323147395905832785817908824942613417337801195741788170446240780965851983694340786355265759855092358227971098586964641969606858142338736778063449333152329710980339563967219029202187080945003228090011656473971050387477391681509917134683332384795682526192799682065134362547139442499323109028885960201810730690659156270497507062462845794139296097314397019985383251189223614052432663474719656732327593207376287659747391715130143517731799513151906855506750571365733589227397718705893201452767844545513374714949630182089757525114815596470421983237736637137856297452210329166648970399536336590834040291069900167671894952494121602225546208796198894333605857597244936382488088507037619083115964409804092024913056303302701871349693554822157399808419971988820111911761921948728593084871718797825973016466144997631557013255529989057565322489678145009535785345238661106044492865583028498402597643547848086157459827566278463181689235452170468357868908077325004217333810619395520573444174125230501625416470968092271295699626173388465044725229763869795859498981301817519121916779169692475968616449034533471323758450760823982197496377667006083918506713332831885845138265581789674529950538746111325478859648286199919098460384888833479175860129057214478443964344640084958155660551639726442022358881153378539963120335455771365358135236277641962119035829551865917462724117609232730453216252066784416915672556960792465469753780968970826839726475119996789827915252037172692050970590987124106529667213668927106473811939266609067629821834829730708432440275812541296181811901289335307856359850456563771637983989113673561340388008483719116777135108404578694769111579717001751174496181366513721939264489693250296748853766386321057150674220195880011075806306052656887282921700277991480512203009251210496443853145411423498296883799006679250676724253474844101236030573164828602838129358392829658275743472795768678086384440493815439571538440472221828513411066370945495893286320363636105254122449984478382220568011053266144371196420700473131354579566692738589462623142266309728746270797095206666692166812919282355765873378686049230000855068159092404987237575807108523503215604453617379894229306659203752116036043258499608785672121138816682156810732621126991589979752843615550331246482061153064517577077656859524986745613226553641424045107420454731459277023624340317179512289508231974286537975223244973936837422876791245922130689569934158748598244241527772690556037765587898413679848991062741069622730356446795443721267141850605109493328535426378364047198290796632491831883888852531245782420245760903101401142374387512738009044912052837558359017376252367534810669845743328790101994632121369252895051591767880525738673324875396542411174795302576644848054097379020282123267403322322908251924703780677832215706848643828795473682768943196007587026078566467308780408030279690497176704045245414763115782420822744233928904200218586856633658924959656946583453592660626736387835756865833401641907290247353828650941244712357443042107553914163502122822250546597644940659084402059532654591401537765768955377747474801628586170748762462618438719953910573897780294059064753491792069874499814838546484230239903475078670090777209826461836470150078153392543958485446475697671560894142178474282653796531196195943798155715406979626552654650486795158323818093434362484563059884774045526072054126443015450504464964836895855470846411390539570736737639245042491719692690174995925792755979941786674181620938955378327151127638295298099798205366597064294463242175776602686116972952385237731368441681248948908192830013202062798428918261693550750350332689264471480723654589714092969904965735057219323963436892196390464470271970429761179402106043267591121041659972354885496353590126289273148021473727760786928708105154931772332651356720680920016534528754833141907964219655391776938288241387962711021370951521739367462595531341178998893561336639654516564027024537430384799115724495399857751947349592245941126205023002876562963475184682542435787316902727711504604542759005581845122641687884247729949646870027576603647164609451087697697367482794301165197079509607396560756884629003383833303457030712198566434751576432499777919129789005127370351231667949755268260056742276495275340574145153095233865248221676229809221057453729991295988255584205224805479999697747884034971362906641808471929980026524714633127699530073951460220220260935738962118761399203749933341682877833419563613951842371206279130171278193954203863899430001236046073702015235717967250762716266042988559225539496331097183497311050722868286598945301202112360220756892702283131422051139446628923201310140569655735216490107823451995886394468232325954823915856687058834174869707050704974271033745110252151277427481042046172976353748835110901882286519150656961285110532209744434110323518889532928473828583353810764093243857159887680733577034478360088636908272133142796254890476365948046818713423165802840604230100078255392951696231156200119068592567538408078943963382631240674815089534877464299280532406993369676442537651492365561632471980616621024314968518172259508540830847517334462901726682773653833294227378050422234888132345911379822348090537072588979238086498089081537804623267749849865499924903075467742467690481645094088762695310544805668365756209315395207913327562149702904912288750340703340909624297827761944381833444260992635511852471158681042902214235739900953502468938308782041979088775892106576827687851578308546869486920464051538561858656240819724050169011494537616525064747118290588610663566732115573745865275911850495747119472886388937912482641270020341852899783539395401266337860181163517466867120728941480009744510976822630985261701065706356422965967338966023680902331383954004753644159289723090576453477420095890671707346326427079991146668184273775729639867347233995164973535010759274710875989197444430215128351746290578769701649018814831482443682519304515699971521132661017103549601339674820786688334474405802481098271728688298590591244338591228443884875106053042309878035929412336544448395352730445341344406260235658944954926910705041587155741217699818603085346144979994376861128543773844739895937646079145111715403519717916375005657161149232517148087518454621575147980789320740025816297014865131319419445310254447470503251207078117213634790812895249934555717670461932586216643447131017670733361725408200870517407853078277440181565004288800863241769086015252969492821966045957440130763505599903982575015580124352618074141781399233447297155253779536923394537671352516283995241173328765123343518375225233168794916157660733419921113720744519131457444841261824989204308377729413271680154958737961744692988905621496565632870581419663473402829262515727583227459089953438902206807843890889422215689080919121252806562417244336231857554444139308617430518905650317392407937418825602064869694724413166927261826937742663919300332693386816667796012987833070744180168395557220658715446214420861369130022955634095961782447734925096941464801951759252588669665404519100056937574671223270685399008555911426330204951457324376638450148218637510946520949692053128853271504683306938919470228449059092610832405988298083535456929644622328206654465643013431164676115670613760835861085641941264586593532992343077797486744383768626433685486601735016682481565543366559472036534534558346757559137603965793378111025788153978770705110982585140238615586633316579099008877388311153071155082808144251849952671134347598057053119597921890310854920242294984628379124147689817377646620626906168850965596182867064891494852592914213502980735049447012773005301069257341168080760705522324004450886284503229342770258287557294226581526835002276318735983204441497735884800415608926069606688522181078096356630886239423333867901295710464228368811061012473363982819808077107864379982682033385698416915476638200899925389196131734506277562972922919022185236297194378441346180282198313632617740780685457283144875986521094949068502107798014814943480106365672135669380704567434614628745938867761626265905097436159896277595512319261262767908848761103740446268291696173786822196623868880428519369690994308545240850648540584801044287343674527331019349699561015051524271739433024543563606035907382688776329306341896204135898684215130090445645579274155986513077334826954657223390128587283124335614028624065886101666876689295731613361208829025783670452972897600333632638231655935442925531159062424192514811487115429100429888883441057456403665602832953907636557503579992857758292595499621706360695766186447412128178999169600545729739548318470755299094732764451652186307699306957865157892185999880787318669577059122582932075130796600021073772666296963795590783252931798329472122255454499500384840749699942010036158037818175156640616142710250115086362361010230442766553395428914023155735370734186035564062872390880640251771054881028093888193363071252534261586797448910426327389336827954462353317410317699447194085664032512785339232157147748205140445103275521043266365515274436799021988697211592025499947193234079535229893719461578895383960476132651160234638071475815967684222595140536458959947049536777520295094325886286912448234655911792253656594522468969528944621159720646762791668452314037509823629857147015706840609607939044672490399328472219594909461965700576495632117882439676339723960538788367881262753899709270107224831152129864944222711819898748064305845693181905619436114321801767059555153013422687556130070449668234503722887215452081363009396278542240856908341637408110228483403026175834450319960416532221337411746053317989950964004916122997939959491767059504115008811903841048178244981740251268360405387825663993234473086638910000657698082734106470603445884329298378382434797796545826784510493548004855516317429709551659437957258639848150231022937331165788892317032075461911668237850715573674777975583288005602035655772966474938763250415871193103852935415270645115630240493574455965935226345929989623362773399722384016742499285503437548396242267620972666389367936379137512360816688422097209592062170075399868554976803322720957803348210682515364688609418932106821861196394948701951509479225664024228455712928555660996590724912476986646436909357806131249065881458303224027233537379555130996433023509746077471824048121464897449035339972112201747243918519401598589606471431999144301824811382863139238468303660680013558142912980172961210790342824043817383120378469854010080951791606611427016791566967056304356383014534638356472178182571665474589882832002535118474670460032404409289814745894172496714566288334171137835427637567366655757014773698373292867036923488704927283662886534571665680719295178515381108278826571241336150587795715124918481673219024949325982337405446709763434196798065559378334563407889365199776555610579569626305422608340064749582595218699673446916484504935337979693833508213748187174002624350205851152034830106151578793686610706046172976740460109009627128635620580549058037232878354870387834951916614269945531811214016419853478476436563530226179354823748758428896662302324309427916150395165188138262582992692012156358351945451094463304290813410777439246456545423707292366181376158010395472983242464202945724030222206888816820870587651912278284626271492376336712449505990842935808447592291762717472480938503314019560234183600635027368101681819339270082026811366214204939783524053072818744906188681820792635589966314188930920534223351166930890600031882062604028283087071377679328257786709461608499403856329793149215715819128835162033340030652494497814477503470048510869948833759048961835147266158566940096169633914196302004870824576924771686401937655810858300987491614478475153849029333200244809840206528956999827124693386826835622776745292273223900177935035042245542516556499723314596156622011743777833870440509042624683442125027795055376225126356335431033384158366380132725934546079327988572787755512766360266192644091625602239851984758228328223862245278078777363900742356524796084964129771647747556699666998617490952704427981721252115494324049626305227474241804143660053102838690735804456622585401809915772336283238084227753804603360417263764006922683583481508894332670855781362095033786092093007051485318992943622672571507210303543962187231685674916426695677116705092205192424784659914105067503583578060519301838083613675122206955259219052549557451307939819294364642522742298298951634224258675695441752336889954088821501743919088245013091800712031661430643344990739694233697827701062810022403320858384481556044239458414004367859724919034052382020267337991647557684679729807712375271791793009610159682425276598903385957340158892910824028549645087294029513205911229755366962303486152792652959583671844472080682819003465641612868743144914367695353047521553369590703927978141060963764970753546307993603094818696216051000058378899410712712020023358529882036326733720264552340588040053845654531643448434345467512102556130208092684597902580347819141556957182446253767437488171105237702003544832067707688788902995875980422603606105263209257756164569021259000645375292893531996636476221306157437832210004021903112573596071653774294031249286368189045973202473282959991057753813922819133405407421794404178115324762297586018040198733303802199467259360037550711669845022869608167490604741194731157174941524900730668699302045099658065809864024591732318116876513960606971854386838851447208784655576137267954814835029214229864914005704011509089438421774175191156320209363393468190360296005700131251467370131670403146175291489344404604278451713004135711113819597286523774196997343031052717172873155433240206957054250894432712124375602992666272458517794946576967811802504247272800385640227101777718747322597672556545852095560420869276085104527576605198532775426220583952438556777934065513053760957317107565793339314150334283963752841642657826326047733530268929432422556342794153085645938740306869718555908358645432795373226179332311528900805291458561509164279028673211464676752991701279780598667231082293247528429532207027015885723054329412722430168730939059410448981131437821120059307460921635900266187970657995131022651379815813219464079430600563130492321575342010152534118598378015438758544696061243005464408740821107948274041344609351718168143430488753018162125043193756238781408512582894289134849884493322297009073134002338870009505267582748420889500082234555470495319400650086405517863954471307333749526823239576948451026865308569936898393348572974602744131605975653557850287261088958149708498495410420365677730061903900160116443637981835777500178413694699990877563579704944878607390489902199527124745543515639369403550700623565979961154322362180256362112580012210360631804117033940398102047037641917030517497602071300474198021072379083576563538589949007903270163807616988873211930859265124275456366480394009194221382472308249707634769082348180755445081470353905722502518819680883606325189297064437916227839612791790491991455137748322328516980509917727357813156835402402035580385565153908925599589006868065314923916662859123575427372035683630465288331484304076093000529903783125296382489567929321161127122709470278220509101498309587341886107883314738453562386305552590693231929089044755700298794829696966252414571299537064694129365038731634120423517968049894341263724004713394364128520362050009476008684099354940773448808258978192864190884145490993800438528632199697654593436055637377441397986467885926215956080906182214471748545890708142792163552867586837454753721379159162857497387896836218412894286571304357968829340851637732832902813083381211059943109939686957346491551512152710475548595425190770726131336833088053471513386242889391605671013082835292138736976548522147534244581803522064226078065813988063900463196584302386136315295706346914212580808592571450215246062796953126643076295613577580616821110353505154606070921097138916590973349824395121489309149287258584458270417212299461817198983715264749585847902431710422635417709097357996174815381584216189715566201410615494632166042336121759714453293002796645618849429803286103085431286528471396674862532970425795931502534998069004241445737901056057619094766380355536571994547724041566849880608289501604968174334922059651135661891434642808473942305040468054460895601651939454406492798949630456436103355155412615087074957552497059088934083984905839839585386388642768070039507827449802316249099805175242718687438084773978828250795886850433484132406573308477060273047621930601052007170462132448413502678479925450664869512801175774812489728763252463731123305873059328464468787212931968561953802984219677326230612745054221559997583754600307695151355055185872424908627421182182185607867206691676032735057655776198368594669466376160297839664704814647684770478629177929418566114022467775277449658412054208363756303883971393473940279012589159584525295614071637952849760798625950346096614370353505596189544297127934826688692760367621578932907578357452863277504711596973834085229152628592708747063793625466025799259612440806318099893985508638174821567610839576815578267340219453536400038237417070715199827481619745316846102316400156182456969994291595104534252277176768894243177507460985204624757626544106787853588932710272044852196797695756993668469433735331311678427891278490753062227446194030677667369747721971284505725724923256580762223061001410811519958535732139303127602206134011636233237556857003808729982464126244399321476151176473400963946934384352692911372978479759876548728044711216031213712213316897211411862356285002664541740731056456006096580330893353073315337123789064518912004370340487975193961709101080452708267406952203004139419379990981453212287294293000096907480695405387881247343334227351358110998694966725146277487165203282850634214350478590039565288305933035191806062344945435902727954949790113965104136795522122265502735473067238212002258464539002164072926341410876053988772251249988976369307679739638836008404747462362155040045954325397296009656556022465493802714700507222798439286674578152529256107037206329238381289522446804229200066732760854193590597376769988005727352970320851220463832418351812028524885941202933835760729807184766206428620557803589724964604861083338340195578235940056441462709137479396066083069097791016663574958112196127179035498085930226326802538477677954933201952431550303468465127426009459607788884975492841784743412704751926471251652988600033636614720015081249790170910799083164573067394359240247601725565694593950471495978367757716070470849291459166815335608162372055716444004101467477113423485804210107201276145571089693175277803977044453702267516719635401767005287953843226797505505127254288169137595702215511378530597428280811764008101032033276021029179876511982563342625461321476651498471303568212137739748010377873672001459762505335165968857632149595650116790790460968851179735032185198194559144848590314169880429068071595575358847015638554832976319544527044428592022486856443729953396927594640045297477010272506311958539485694304383774477996284830255227761191063031805982729712760455796919529535012983079091338097787655990776351574257073454635749649144797090711196989903034627256557743405091122931826488065466491839479907908022406385655711599385946424533496250198367450619613334528593945844784140368823749377632923189983871779571394408563067522866209176094869076784499115970777960343427298077700380428680377140085693371004204199668134898886350762238977219455052722914398217013697302991669019637965592778749414850253101853743253439157668705774438564046650701458796366297320674329420377768087385282810237059367398742950108017127851305112033711741078265007579891911558917212531957539261557789247672229381949777950089076740920577582087275490701407913986808054005863515402454643707297138102138611417554603547307159916940353004042090409492439255724686314055757626455903472538860166291053416867988239299871682903931738521471869478172191181860774230901279055531517099904217325019510940805631363385764822497607362118552553488958195595074358464416349662365952886925849399087834313182575724172911709845664424353975053455088525353087352543530432077224387360132577056958753817840435129279894166145254957284987053807171069893100883660740729866747526470146095093713357434625359173934469798672510869439399601066527527086346322296590275693857552650772154941553528637028342752382001579266040939269923164483813683416204290690150532604926700730118651708748216123151285158952434071434263492719583059500789229391418914257250831799640245235911965691293189796878096297936056660878812255203265542538268460670322674638350693601117299306624225966560798469356559444676202440918723269769123306373212775487312557685851849210689176432745122260112941617776163958524648024249935583265671987203857893576636873486959404841317247180997493733257111463127408411319006712628138865567048595678530246671650084835291863843463522709683748983418260391830024009247501882600299549298354276867230712395993722560801437707501704692195359943276576280596246740121572930044597931287607807447103186982797325258395205912667080623349430462227658309102525952850657656441137806482192494474990240693915607322021247251233783793485190555945770433155294854574446917847862195343532689517887253274743714305223353145683115294597302555979774803629466761870764940534431028112263870947275004547199950376408237868728254699344277380930842492713973838719150819500507435495024585916471905003946698641115666355403031139487398270660367572986927178986327021980263122585694237971779227324811615631332606316944210593904901490611585948899667500830338242624914335507520730216607209967867564125954857097576053723131390025787342557146827258611062309141471680879029823094847991568934739602735982434815743743528110220556479861977154802602188447100175061387510294077202059544164667132697996943199160889512573002366299104073860271623458194836838031006639202108370696612603496056645794545998732900259833007011638235125062878741116849044955445108119760918394598199089885912866242046814008754602996907311759539119474189264374617555035026716971459986714649251772058603964162115907115095595161363747351679997295220196330980924839081585109934104604995633714070411607784017153960306502984892976690277351868962040705958044920537046105089730265852754935426706760832845744377275578514152575113257367043275152790596334703434012289762507353785092462147333123676646536072045434813673666430202246500856289554079762957529287489909281103132882942942763369948157753042411036102010329940112123556806505384234847609884680671935771784731974933299397208831146914068245013680491299731157992552181094392767257894903965422687061066518557141172277425522126757965341794181999449856784536572873774103753813927322653992637376230344087578613632568263741418236491350617167299720805121894434924936972833244469559706773063346042762048617552566886709425297678467190828803919062970349250023599443544837103948993819586419272841470066749834558169278180398342442098925493636297251078778431310887402934776583644523225548556792780219578579917347015150111720710655879777189430309350973009770693818653919370881278568996281184136670550892849770789106821797588529749996213126712693893441788061783368653611834166385957819495291582995934283570306794819177339425466415418808504963423113422728732138243256400572859401553797661436360116162086107278861725503827810481145931383706522439521526788540100192366467944037472783909187886784955262895569678381931728773976636348536175550880456915640575526130466690131941634275544495563954067706806303589001119995243763637671841856368941318729228644508164759713387044593382002016635049226943260536089046822556880302425588672756986989110780865644486759673263798408895985660667687381467646434251183362848323040348482468401512058056882343224013954262461038078327242619128478858849929288283093356955762961543861655110974983240958371500339288370755323405781015016647779592048779414287181211951168566755715680482029804086154402401271674753849248420971323128416559119419352873626130497833207478706420743939015328853653993289452801889580364500585376755505770162409447056648134313353235786305760174761524462944383299997125274219685062933027486659070299449689159773050281077821169625604489845885634350245246542384505262104665129664586938844443565309170883591957221410037527504627315180924199454482126349809017608364384301122749753930075883884684252877887382261152745017544395046419921541058803374868024529870189521184701355719621310363992952953585906270065413123636683130218973978594902676850444120695274885419187427939935826330455995219993746119081329905331670709833701641469135899629745843139655997947481389056995766069407775272469152454697696214374095674583571199893193931845607615095458347430792272359093554599550426245026757109391026784819401695540820062458779755834335411030243374146874505565180033607656295213710826700598291522699778652246173497442367089368392963648339492674250019562163525557038017422642504331187667637966311032600462943832945628672082657372988220532947479961103568551464000830855419844850554665870926418725567429330768885281457571909131164021659905201818757224473637531515206492786127922499685352413711629483364897489450605363803566484280472818065194388882909105341529350271485688549378897537305163633826571411300542154413813008855835973537013544090870392946915361437370768337493930952943113304117942535142061255464497084748639355330129444899680316147566472748956878472267586588002882174713076253536913331152264027866148585180876017375018617921621891595467528226720139014397477190013797722073806352599284142264425732512464495220601892201071674241606514812381359493335661824030291634133239685004978383240594981067729921308430635215442809271483531002270846876151418721526379994734239598597571037412527896302829075911076584194512489045707805711194037540459252413804582797888283119938504689358211092376927709968602758463414702516927519874560092029596775002068147203831851539652179436062901412702636115886451862459888944463160818375542517546244394967195970680523363651676421375414049196651551088375117849751179956001513796239750578744922432249407968952696312325568400857521023662980451266497221535831228201436391094555735036706987222741559053256129516853762129593667855265258156879985222559389031916530207211729975232450153083550381914185103528193762298165716157348778790774316426411019714465422997537232243516408263375288549775245880064449360874913650210185738608402255184023406608993104577346532574994289491317416819186286883770403814415858455324013791801450796892032930050437411060768848483885814804037998999139122849035550015149008691266933330741723191540726355525170348196554111197985094701500470647633532606494844028201690371983323478220383437536393219683751276297876142514981239827185683541006115173717611254688001822849679312994158138693550245613739552836592564137554792074064424734074669797560555729315070220290903242360723133558834504405281641712259856468444039427081530247775378663094457621335269328257705767912671732102284695595578660874069001383781968959327979390639701834484764505428958467114409073229294591088240693658969683454657627766909991821877969206758046660602110966385365609573384145024087880541780690461632882855943461264771566170113753110886429049646920080306026522058156045758586239038604302053520646274340937260729730401401514265033373652943957187033593292326191423631893344753914324318763373723395471804141255841132869189616846851962942951631831714889009200166356554441502118634797706148729605260117886823861475381712223328248105295679770366108725725296301219831585285834266195613553370971127590052468529252836217304924909805223129304709709922284434972088158324282346891702453497528744169086481750191149428611965044642059107527642493134214947213523360694434208894484550902197607723010030198948176039907098526663362771137420894414287434553133724223086151737252932621522247987400747914286359968639586750549917438254800366166976640095165955855409415082152051716003059711169504833817592337188858132425059373571827843526206502534857972783730711207627649502817057527036117434069220607946984633382897533557721744281374575714036124286169217375133689086861804204457744493193339683060881408457339655902160324199853172409230369535197418933447382747051165722036817481411635026577461946464748622714815672771602673828890744331889242344649871207763499057282323257389845962270926418873642310131112290130977982360460506326018278322769205856322359302955247763554242815411424735357537821534070812592320685449830945311256728936360062647084318521002342435462006322982271803357342419399816550372848890050320348747523552840117453695281410377553453094887386493344497935605936963671303928430691983151285984590360934346956209343403828406947964447038519546796532937182713287352844641059916940669333593115822656235375438864271664910270436588778565266977215254508023066591605308181563386309076144323906965746788051131383596099847340228105600109162849548166812456222014538036552870812921852448756823387419869100420376163874634473866387723036466635715403631915680771823732894429608211839134213784663841135333044777849356600134471136011121446179432448614884208736097874707969018680223821800409089105670375189776659528615163261812000705000340438160454928585973137129401618319308766168122950657122518917921571338786555589545925844285104454221813752865505709552999965087493904715633494104659991598632122111660785996669194923388945428231036488396337237917334950506128304844184469225350507850077114300170068727746181817339829877986559646807901394531230168591074053897822927148206490440592289750187830688678507527504022299231056588650624446226751265142551539479375414801924660579052697738222542364569880938287813783433993441776668994533805710394503608418253319430260469804044321914945011992818205608434334802678526082912022649747822520552584967721419700112534322262952117865077962004287438649472663717527768219887148449966421091027087518566626528636434923297857121179301246132924462933414936354606033597863455098109544955401207823681326343216986363134244790553962569617710052961386223047856563423238327064747147957905082046913004748952062651426594422081951843309279604334391460052103437586758020132678755023323265738355499210126505163018705177774360529837210270095377356101048899320806006844230692954649426528703050249306192510232528630335212999175444664675121129461555966784518779172561644125545196641159806537749533897794303914860351506779594900637469303013565499402756744163407605011577548470589198363290656708165740290755205847176201347726182011492597885841335428792374832350930185533045147581904128200191151524401769159998358009431914629781021251827532262821234469653818372628668722627332268413127393193194071174577131221945131578161025470533706085613669998445540058563903053065955597318273908135443942497191661681486767539252490402154140765129483484495674143460070017906948519615687389437910098760983018210721676197166244534069798428309827871924203199432308476482723452008773382082912143822598910964612497917222165124520728501465236146050797152614828600530391874442261027188143925952271556016925807721224909715643887832843424144240271381839890476851705209296503261252947166856321654198179656141375150494875051961550774909863073478226406744712805084828386532499090318166855031581579746368166781049120777508610992100240934970428521216600935864879646757727934091330039681540980878938468121461076601678346035252097402242637570324823466232280002745279507709854020528465541857977297916529261415851620205828244624536721467592636722303475163400685308468378791892319032045660516364526710167907091976234950916215981635944834704786594533625853362638220502164138409278299418688527149041258094478957573210295570141299343489192222821212409391474625957807727449888481748284605781191134648390727315236947432442563545752280950398784618776640402026576462810943050994317505015282344152828775855410273275181042501411301906111597940452193496086193486544930396908559788876089386251185711232020415438703994336189402769645204402143571864863980183325117919857617117680871461143554219745350764980767469922754193397821534148035377441268827840481099609466153120866671083115067173011157534760108021280925863495329011487926449268383789226764311936710361241106542812629565819691803249450758546850981500071870538732331244291102847401272868344299183141833530251988535440929884094859437761879902254123101781649439273149930361026669598276602505713145540317457496026372510810944978646719109320770886007244235480730524790534695880623508193575914983563576466346361091894421231255191703227968222058364525604881446647994774073437924859988127472622656645426647771422278566575763005207818299811085915858533164371805304660885249396647990841687979878888898650300402805439746680380826632774693913659086882176345835281351256741489489641666592276940587855938242327353742651383828760101786679061955442805919985847775172583171019451052350420461410712249049603699065559588196018155785423451103871344138071430813372178884553936630587501593568409085364838751047660268375883143704184062048321742152203041228594116071253991035915906352819482927915055337830677970199437939271033368938495185109366255260934092801828511024458632146850424235384786082199196417417593356669482036445940324155444228473790378654094512753539842641725853703102261662280511219100725039129682675689390167115945735697450078255730846507954005763481130785421198595027248640270236559991811486870636865803405590294068452398141625810810670486175235795433524931516503749499409509545295279552132555459603870756778342140807935275545658684168344663356529663005602276569358810054134658099614545602408971121429809185160272849564027402221269379282757797607757417691717800691100724192022571785978228210964272255591180617646776719601329021604490864834912151231047027012994318537743778656999770966187748582533620760454699092596123388706105927421933987430132655115851464164132256012517964736677325800098801713375603424776907667283008836552234281415310565560849645540650167543691783467241319437948855879919345923994683526165563785214172183925352359781773857385476191629434536542910482880609824889138268199699680059986409132302443040109504502052360632404418689749035195378003721012296870432541892964579549488815411611702492124130028135968022539004247100934610594324666627720379127696697309471601655191118830929308484299460438004078090329547351828423458338567164249486922691553899391519914095396796704565605504177924942374983655004398026537514805573430594077070364583373878939224393953672881917337663618790374126344803368663220029439318970284515725747822602341655953729645094016014020324834185220876723859130080856274394946158203568906988871536695368065571037863430611962181356606935800497678498012655927288157551862877160474271548973525403536196715065532247997843120400437339870223275200557243479801078788374451089846860229995601965585723905552584653335150150917469653948286001128988060250085812000324817021395193245608660614217505788116511531098269578355404008853677636969210886149673802879012540447558005940325127457710672783037464043327084232253096576711674081837299442006288101401605464931624306358614138534623054935650714946174529268391791688898197865365114692931571196369921976279152344095543181769697190053555942337926631424006261294539966954066856260527892412373086368140020766107961238969519732697689500011150187163663670792907765998606994700452404883778704423071279234394279094177892396023329351633376597396902583160573101875215744396795043131672910229008249997011003096986204985182298987255110388385034104205717727812896693997415713755288174325009657599594254574225192267453478832802793767387312113632015537411350894808139705093299938867339969664193227310610259710111229313141198720740587959039166687509582211514650331877710205201994400026850686147118067402686019087982381137366632756929546931888283590819857275114510660565682180909880471484406814725814784184854105696560405358055618530182815823654404377203378184657928250788321253402270041033005724648493487660878270974564980618518810574349760838576740590491269218414036712536260333099570764744005843406178119438182396955989367633608132994848337662145424896372011713528823500530691965858889457096237519377636682526147641841239430789118006334914027860591843663001310439222905114443831717685360894934552333414202301427893995662678242234083100332381451104017049099171422156522576873989065782664027355712252660870465328792984753668124917319085494555566788814175869250818172404465530155543391893203856039472890192659218926383509549860319259121221297100648430034306758340235983150052860368944705059661197271859719200265860232038737165306687907074099347447738614709067531024648759535258095852003501342033237364360003889465850188561569721824044516978144480228332484314542147248529077614935721437858571617286460472395049574127957168073740020192263372726757915548947834554193710494238240414174715261560283627321767356591455524018728520746575939335486385053517541328744782782344952384211331428729856427410781247497622376821738237086273498432232174940810869270384096625685661872954005504287808800687516463265781384678781478455067146223592629264833722281654733006963459437558663164685389348755277302646164093720828902504345377035789554577625665160091636057663825693439303478964689431241680366146630846558705581623117463865874795437058779088475807360224758063139562933140845327752086143711926445269727912732842984623201568748010973924552379099255041375769713695529098279973691759185595892326100400062876108560247060616036180671020015117142397280796293295037255754811537607978138932225249671231320323453966435984274126529878349030117434777127885503482721053572403378570357486592180970147557625139837791448015413661679821600037241050886759358189841029602588612384432307910509939949420291506012327789259959121930348135138237226472336782226109086468685688091111363651615497900525135952829815542554710300474057801827917816844641669989261422754949262912124047619059643112687171057137275720064409089321429785861858020113874499647075151253642020150167576150960875393173785189290067315255980763702765221206420466292846169072515761505657623440900608258764746031719252227135019071827710867302687473108555300176596933295354387078172507304374204528679500049058107768723408538807143244974394410609367700713799929248730245562947267203363897327772417055557208764965399122220096367722662423014348626153987460737383983100905169387015655820818410570437578825534543428610179442796832194968481512960132178227241291907926382994193324013165179515956004093827909406483800893005344982532443318971285595720957549260531988290901332601226413455254542044679170376669610148255946773065141566259656520491350273334290520716225763069262819468835118309164735332662532464944815427470252238102747843411003248890645955553604564752044659192633387893270323685168274416933206104780755005587251585074475327846558651436488815783080935119509023809014620187597664422838280590297386157167935778207090571363694358126496769704209220358473853734369482568193584168039626620747901677544288325792744706134815737518025629032478747778681542375152540968388798734058012539716782373706663913488119716732178401446764676961605426071617740716986046237979466437326832853170480423511876058558908355338339428170246802080765075742196394078829044146066707309913815932360125427353130459170679001469437544962085450808730132775877070293795374597335258751744914873128476641716729674590794755429879448991225943980445352494938572997458329655812948698161994501774629440397613001011854285863121722350138569061387818617856746011144056351197143677377357942014014077028751958844414188364159598824766021032253579733511532371453092623183948549751921907540716669487561073143717633522134020491151401757668914569926496471472655030530541208255789329235267574597013111132126114677144282482730576854111240627204560411850212732473580154081073687075050769080978920725431571917674541494102221591478273492516125423507408182498622627183723252007065846359933358341544173716032256863115791006444972169961485109436303170483475837764062542445708877462083596060658422206032622753390209095443078593475622872343381258626681266755810053003261756807506074758329519084564083294496576188017689731085918786092701254204493209887797392086657499898362147917238403418882177215707982774085231162959975969440483269166806806947731749181930691739003644699805244112031893217496390928004637008851687756900601543217742299259612542682410342485007987659438004326583750495989795764281716976072665038907041646865111106568280136571957809999061473466661135632803746830379363439435188684744078448142852690511980510663323450474280398405115803093510352450647667478187437775631382156920282653138254761419622769631335246236915028424739181426307225838952193462944036235831849537342167948854854428214711066343501953313714039438167671588789065393231043541214554455197693230446209792146367590078371406880640583847207579768570005482366187010140214845969082894733819866870933314611157854525036791849980173738255678450373764677807280906197190762492575220971240256710459870340769275542873694381425066228354175028188489739700915971628059067151034381519650738901130871200420904576256431716077692766209649521798803154929530964956032828181691240061739459298328168769423661816553934257610058955413561841542538831433646999500353529842580599883599081472201711771557029562090930759621217037346380719113814873876610876037673298930548711560487090274173571450309696986252258251524545891528699448982994574466114596618182453581487115624848764599234637543382973678257627816088368244906366030537334576476571983557917106854636706590026270005980122628894108558779553248037446267064014833715310187464634989304048418583767627381169239683655567839525199544904710920961522244774455303146334604685894527411408655790507533289616278463315816507805450069600946669054022621572873358182490766547036994692313766983413818367282114023056485744071097419664401971087946253173818405470834015809961970118435953807254059647551099285961570220705842819819808697959911652460095501185938140113615403345683607745211545482492806011963036020864107518455740267811702938488544334944884783106949461876835209149155669647992443312293001507395677701604479432248862719509406246950688514468669020399503819955366430078500617711648823176187366070631225385136280452179001410645509824816561941331224612492446436575672468500745652747863917974654768963346300107615433320641861518254292211880270603175812447253546861249442132504464925316685354107986619448830736511438006679347417514382273656493807568106220351007089530367042935995092936017747404860596852277075193980992526060172267790364634990909714559364453028059329957340154857051444709538947285976500199681032325244825423311227980861048698801738892055806020727248781579087598502215632236564443108260252857582070513507814027472697761631912279524468070684663196086200089151666888796262400093123974127709276633409284364143044130035752093635480371888874661134726217328591261255545560261762255336009540379137004508046170378347918669518619724561730079739940213647855646901974969050164610373259145464208495941212871587553363777272262838293102624236664557993363654029577528544967238082092106375081813887019131895630371610605606608822177959233384602278987634022699442672695338651861048579869983023989762276250149213128654634006818544679167048681205125592532082417284658956130416347847717731178002455009718070620650395021141676705127609424859689797534596194527519892210175527818007282893430010665328250971499594494275095752578740336199610345373914159631176217217323855930059032221347144183684867909137776089902015386484684966201813515712415877510031103931844376637488607896196472225762194804141198412298272840775943598155085079241127708353450664394481745775420670154820152476142129184859312146613289507213288597461073756109256798462474298434829112361026240095942588352093530432387682003528977100354259123503020721758140292124213185127912954947551346188230194116299013459511473020507318873801902271454672124979600492475167601929774655280021246537837522502642712330347419737208569463455562714661575744578771716462997191918754995129625538575290594919388439912098946685582679786736402322232466202309147351775318715735616295307819944534023592665974640287065482079759692231146894089469151253825335151739861841981135871495136479262488354093706052854197784673156693300994082578022420938669466508404739896078067326311230086579768345679151290596127157294434358622054408037160150889517522746072430437275794629138110550944045896341774687695498407622010510211737262813732707949574102618120516613699385258103108749809210236877332897955784548122831984284032953548176586471972464150040564089509884786472314459598731529688602768481424495318911112059717021544129410291482710114842751815255590747198160573147837099945328852275976921281558861021883911164597937313462151357341719100101434749985447939011764049091728014449476649759041864635956791672463442196672674084809232358686286633829405875533100737136894820282654273995506194655469136164884769229528731568118472722960513752792970092905884572899048709314899980693660534549276538913924922619950284868187455353724145536976880825621775235923999812640323253193190595876588600222688655380630888750268808269579611921105052547351421949238841376706772800017273665132341802878793971716629530316479158763361283093621603652380924246633395969936249832299407937114023684137069950616726697666180744979160867339113977292050572595860195431985256084763913390634274505372891600514215564851268762538432850122699198824782194964175429713125018700379711760091406356776810062322658100950939857242593360424877080456980603197452618086157809899595136595938519226155095531328891897413197304713685232737953249451070939369502604109881791762533909969075643365147702811684299801467201381525117381726491599302797750561067435321956604855904151504129809865365014160040186237707188260382405100429085799439867513080525185580965071894186121861547636929558223569879114840425626884839292010382446465927963994811641590993225230564396078422091726299675012023296354561482813915154737392433247012827562853608310478054894793323220333110499393480998611275510069968975536494238067522166554411767204035090691984545643145405281632730723734053877998513038287629488329002920996048885211574187860846521096085759423168103557400320073946890564541139760206788563418785579847717158362870436907568976335685918166843560258702228500487055411074139013897596176202418089803805676144013389797414845486716754166558845665748336517809593541343191154104580649598654043432171411967510490184923872128950504064640451041865591942673893927939833993941181435514247903924072797111688740454090068667456669717301344857216048568990741022436582348045481041524264263977788674338127968951876617246553070708268015979690978414734936376028270043412791379937926367734609012792076322165878327269763542473056196196464502237838879727211659081975850072783835064672854684968089881961169950349304756804586584980494991596819269884072223220476934913263749330273139503727844803604802939683246997432915977191605091165457465540630184654007644600561054609134509074031128073136015256731684092266715749906735617732850340161488437783739526849375460644894231925146046524489236746131430359980970455078911363937748102467855158130946539607028243643577597488653104589131588861249700551711999982237799341798091076648589860929123254149956697554669851469969822906441739224815790117501908762970847325739870500053250211706248031186534842551375175809798992145180508036570592751826777091332640810813336406664145342544177862805754402215119607310202297641204044775323898951613496197763399233751074538867301079596680752442245778842487785704735845140518488175993621122011254751140067362885915745867438524319356732443496768994937809154998404787344184903158967945217248920401082763154654558949258516498181960304398606595048716646924146505518377971795377779378703211990124270901710225699339978584212324667272264047006758767008109526031344860803773843103607988740833620877644314520783835811133202560222118650994952297686290848168654115652383862750736519269926167043733659175178387239044619625421476430113084857064763624041743576925150523479525335926218511039190122626541925523556485240017495687508127720432188606964261221380463051926966616723164060233563318390815645256798611570630987708002839094761950007358327800555024089862781456491135246770441722858500224163594221903959380729330949723955828726054656722726933033227497478992838105376394427358814590380044242929263909948792712991404007396457576107136597496534546595752171132557757392527622757945095566895393298098624785685847755049894384122061577388224037347357767086921492605939435303290650899212504953320031558382980294367433023686014644339967306404139840693030943339606139401497567504857321585662990724352413952253942675971194307666299237880227883136188327175156011455231766346957892429512935944061136006257002366771821957451542985522043878794444129888675025273252186242547214911129432781921756510127125096264725217915136192310456624549388310719106150502971590404974397587755731347914403539644946861562386840101283127425811354727359280433812564616457424972752974002576541513482452282605658079782095867762425470259091647935537176051064374347466203824937502657042195816235912480885845081089001412941867363599268322316483183552743636446422433370258987952250992964185736871074648304664609322200221450754719133992119610051196915340387431524443907983516818501003584499978796897426375367491697920384709107496481988701397597561402101124424401040909637085970368913545931634655093825422003144223828668620146581179697214248651776266755128456094690443121452238649261844902006088740355099767726773942154051530050493152127613524653648813337530032251586269555541340021339850560824327329242347840690642176602220244281461959371124642755517783100687052253207304587601194824926701492887298521996344054550284010706424229569052877089238529323795678013711699240893908179678049548580474170760828868015528826377880319930920066182417919013822218507606287801423603372195996180592630328213809093121574643289720522474134500264323734239908505132723956040785602665221699722403291316722495282474203425622935377652681032767527993379476135229818976225338212738404937178610591093929473939041448979110414968710655298682368479695177726921201691935928653792602974779504967008452940302887207101713140677678514281165355033011296184043959087144448845333996575831433079778605078553592474477306565925648878788207354592359108306583762412333374045596224855613559565278532418072075632197585111731614985761748228006050282292306671039818166497550056748751774404094019476239263243495871875499925776876790131010419679205431676180878374329818175994642107735617765799202023696176751622279781256556652617078014591674324142645135428692802273618778586613053164208662594874427558402523404971965916759055433988837222617743345217729997109397110762239385353939055035150353491623011252969150417363058772144358168299346587701998241410221848335782069258031318896501167958704964315220263648860307268389837671395750184869949321035130248847548854414732334305534089981807612370154519207025434154141173685774772025594012038439253925165209399174897458670801168571784028204154331164428106605810814527155958442560360889519981087445955014775158739628708050307790058200741798742697942299467558577364994897819273889095673063150039184068944170946558995231703552941351096946527272337167496561742073266198832369970020191924450148794040334442558892554408661958594723936005669583812338763113531695425323526336377757276130136972355070387240964814465062940328117988283416137168085261054516422655460534366846879514071178433607006570642717424821847270795832255155532035764963114769132381913537328124616066711120805289912802653634750009989575154548253212566313537207994301298156783934366661027502650308427127668540311843565063873663663093311086390269665089951173521118634975410937887557988969773511408378917360371198974057514641411942000423834481172011611441648011137493162175540292812818059740363173810372419700648113885777336041674872909777761889115677796766342795330976637181679079905900523537042784773306995465458416208470378721505293084805435013028214120849021071168044178749420012835064427793157367035449232444678509579754584476337974948311015380812229731198609427815195588298764473558968539078560553049179754169799831980213574429829511435082251164298815642206930035701741664190704851182819232156817359099757326866313999299808874879122741488458263021408566310232426223666347827994241588040534356466005156693253073120903228680428683067453120428181665662327234553405555110190755603799731137246240109066031470310555000633859712305057380338687400679576357843535434912172834889765718810227153514045794264209065670387535526851858528822312100382853881353669450417529413727760051356684132721416503674070240033030552859996422630956940316890653513864235988252789682396430114832194750127188450190877490358607277594205752518686566413880913556278761378788003760169626850914089203467664618108836051365171176492545662544466648064292605657324591959827437187044072499189033340418635812683613843586560407658180728378670262786500924431582112234318750519802756498382044858964701302735361114855036696244169591022179597854125139860739768056246557088501994384466838246939142298357288485237090143683450931115493286450412460267260466522632772023405331603589499753646557040527754908693332015526149614674664469940260056848573205515206739240814260429923778354671787548346684183883198018421765302934214804495003665252328589171717755688567872202792505725697717253912947746418796689871541293059757300191168564932290624288897223047932810103587844539678034606915144724063649826554930808089123888258755098759040209759566805555038168708513076811533022728453411752385509434395497223174648299178540494864323863666470883204815684417089815942173821749298014611280006309828651540954189017706409405710922593046033950026061979190022649181833817180634960392154292906785301038234916592000711396559680468000712230401969575080648040934405497549348896692776700928079161617279478756695589316166919035997682561733386086405054740295905087602881313772726767431337100167997742173421961609544517990840250381738329648903953612638386255043312181314059529468418461125513853541795643521099858157057304695210962087742830859462002522776932117489845069714955045293084967688778761777404958875427396094349310190627853973755241209277391095216667999236429052791865012126658683900412118487404890348460205491909959916060187330011877118053357635408156509378212143741789065050930391695409927092844332656343218091389431147069959984718932009800356837327641738365365059073752928129667780281535555192944944420381225882271869981872883468917650277255298659605509404928167141576882667509401773786879956778444135280521037757599025663813901411795975402587862570310234748151632140240875842567984305380822476373780081492256002622587640752355677570889262292055342194715461535097272312931711000182644417085614664680608403104567399747937229193881793032881937250705110764810547046009799795182844802782870014676548199106122428230315169791897238132484351917909899112008407772383311870462835707405101842446579505273466729277130947687209509010832439957926169908078533204197040180997216820084434370002581931881163763648891248799979793042057833675769453438014707634820135099791965956685262453718752021305822932975812875807066831539935870172690401268764400311044530324821582721445820169642553821159349491316837799168605655846560633649643813204745701259833197966812807606022829258298543816769310819679443718024715600602205094550286528500855481234603339043407456343630278259899825326429033918328948082126178425242372244359372267412823975106846158607091364102612038128438260737466245445470521051345674529479724864339392001566393411912092750240769639094617954613365487827966494475962210557042623602093446625759246102557916267661124924023298383244254274834285615985676670737333513199056218518150561478822856463353627914837569458294700130147313245118868574272460048674123419434210843145787828533164408968741164905502828787000384746039404280072834074961738293534888656483972612313855396390716965408623049340776852787361926390689283769045804488358680129922035155185829812609757896853003282745807970189121446389115669589011393914024228462109496382506326779199904116353422182967381393834838660115517006926709868325455009602927032147827233895119195637450061476166849432249415482249282936202092588551274120476820016592113745853358333049163411215815641602976827098267649723516089008979196529020594434316271846889273644770339013355724013135172705570434431371646540692787133691271622592692093198281032936810271111751699896844339686327281981842395624235141572188350203598019545245002476257428517994848078224019289434749434874276511410032231586909146077062990632829387311504730926218095350599703319947414858044173769365894637041618769670213336188959316833713118099006278212914831043739710415474830571749989854852818808021639131601869303655511677504760465635686549225432119989881242732097553019684215571373838523819897075446849870324963991559090086152108552837571622993958825337626819945685519090059167511104917981978704101945661204322268235736053412477889544366694155526700655651396692853329553775281293004134179257048055730914603015343505621097051552737846731211207686314466632153240147204662975319996035006205125465323898626384173265654639486340452797850374926809988541287736230671301112514978111656781251269692273734099465304092006012725929251133646473758619952984571341255369884187102535597043218553908570076665370052090627834536936286545729976672474399485850375424537249766328946492454823487433536304797678809172304200268503754511802272922051702951897406716172697889147876475015772877404998847357539003071210709960774094229232676862388608525113433984952796180339960920357972811477448798390025350179537746749572659963500111684868880479140735120248815819288081823345129382789195042093634893244688376123539758580199342179710252573265357406180640243926933870989359879019687779386592508559313249851627903437805548561011381637931849055718085921436232015989297141290825573859149198365919428354368398597773665790027099688563543689203259153185576993336935308693068231405889953232948847092073182422254888660123778494464546344472100085393513184037591963823306768947186552155601375811262521244318265296895413446080310006440533931384880380672074629200850607288303875608245681179387599048424717130786808002294304817340417520486963614076399742263705002427449536788159895787136538802854169611339946898962731780227650504073940238403413508642619148115014484198947234537776831571202912209641175924327301769750574304960218439885380374506304862948220984702529764463485321636753462721775412470454974785848245547765885076306004866557353060583002388480200661716976529394150965173095633820085609252487027479590304567329263786394352661654889859086290439225002261891852527778435530972947160813946608920989301369458594337656069917809126658251755829968589395371930940373969164638524841325102446780221938993257207919003795713648949972613874132964946253065374516149436853355423394517559395627219782216682176517584005021937967181207673752848140282223573750300960333255620123032761603916790250174658198252362435236973648862122683262495065984183144703835392321109135892262162764031670269321697087326788542971924137540489014233255250879682865984705403991288236907971348040417073499479997749370518595421271582424718717731907799058446088721632314427819085867727024636289212109922982129807708391951088554674199420536539902981592764744686557927397826782913552550636624433758799348400840359717226164041147466272647892622007981005627582168821271140721420144141762060795064839388943390335656591892049885511430444894127501593543643775031814912704725377636619808185027219499746637133031608178497424511248262513423452666817375360920864906145158095369810259667251759161751399586104703714037300686032911864344294302354994447606258296473940094146146183759597625684806774472987316472823972733443497786130220124123198876194348942678357877760350489275761936972785488275434456766228116402744837599841887093261720356196879945884530314548953726097760919516730086776825787629361331639594983572629034712104311758034136018128445828520013260802402241363468343859355197879908673063522224997169997603280369277000971209764794731327071387913801113036501930220994336799188260405842972865216915768831963989881350963208350039486708629729070951415245983565812507666031203855851441379969316244155530862062232953263918055415703757656378333699028111897936919044687544896792054251762496943633121049072330825352540903296637504937366832710268061742524273871687835964156501555605237143652972308943748974566335041259770048454088310103125777143879659169138146960703298781810599369995674411619889214620780088565389061249136787140734943510184408302084020647811160090101234948808516900937931040902708017917309798320416711557236188470474675702123098041162154510518147778737353913129021577719991128577376521503831188619298419115708561576663196724655274070220716931286187035663202107037071323155353554056492300773583458779720086404742096934943795649141816966488691588551626676117244351701042271359073184073845962065597730508997938180888674492857681777149327690491230139337892600836516314647215720335960890588973661338464485064975923292769313974890310015863339650900638476982424228802733691805505271187431535451298319629303521861179949962276482307822784538546825896418095657309300280090776598586732644922908723590239933265896954836396815165866104874882750786358404979975969592057249124004746592991656915105826276247416809998221464622835014331083332680944078877525617697648158625262755087270010191098534498692555212950143439010830098970336409204141906584345009349972960656104894234093872939804276966372496296931979076050159902993030475794798719100339119616531938846685090929198023864800799780216167234060352803060596012455901091820088032011247158113454038438251656785275842087536532629940734396608968194898190493072389679129206603043785505833994296579481756102135569450680181014003580849883023185851178155234007539736547601596294508556996224183711270396529283378987265734370154746257437758166528090296331628131664306329065029952951311903918362408415880804500042636355098567857899669746462374098378151228826613130212437547975073223064902447703065318036742409928196334145909054357464499402219169311495664316554856582054974956530902226232747645706194048766872347154036130193379208489412176840924009541485218848010933012953090365914073793669890175748606827646906342631405515944272169503060193103093150207636900730803789063468240670641788518201623896046307203667541537792934342573836060471654592636555747974763945597512609893338204587513323671511824476642535241587484266024581101882156100858217057093497286669968011120740597873971665783543524179543438844386841839862056931751409808887371575396850829165715848754912967270852146027043278147357228753135712401755841650965891507535614539628705669711624184223856666492826192879093146658425892712201089871912430208991752352077121341902129188374102135551654515787229117797594003454468983651649664079033489573758662530475943886669903901197758054902706510676216533432780386452337131420809890787633262209044307660991172506134822105309372275112747492054968220114073641517347828019800029311072797966581371679687113269021930664528057105982824205841086605331169489620850258711135113764171723321246459171949396476087337206220723194179002855354820728414804570200964855266858566203608593907371829228691951612687451442987478677341526980670867520810328666622386956550787588486529092694364354669998777157847099864332099745872560658655094976023089544466157484438768709544569616061472615864505522514224650270471512068052194140167051225470038786664222105336517964653740371420569574722849841801012536740098572043620940053644165538973065659356801152875069542313427052886358624192441974653705602974321548389257063935675345883584870043927125561785245054204275490998031141530944366169529654289015586466620884218417274468190615186545247471750860166422277395455015968287229491554781577859187772854803107365526903558840287534475827427330633544722797043806266655946656562014978988190846273396908997584929322208803254940110340049871442696014171028675124619846934081615307652544185748888590680715233106759774024482825789838981297955624464851969966332824839344946251883604967045716495068227980637973221961981968069665474462113375705886381552467001243111307861165769469502167548310426982179459039644220980176645216867629434190203080431177962209833584803444633287784424060175562473943407880592653162498745886643186288993242412609567410527796558871559687652179697894766460587867517753668853046842710545592638416886766845020134477091236061770406041606625995946551267791419514495612486389525991852041579495269923404288058225340719761985760058062965067359638292593915764389677246547209059713088190165178953919262120368028601953615102690910922986893432306075451203340666876444317999588503183254749579877020001217402025961749186128204700973356498704469531992077474758689206589083172396336993882014903034195060956000055165942852483781760157019929198872253579894102809433302275770254888594765269342416218830705043148705266531644478249082587071004662532648007949969297584825892506307453814150858049899972757674419395707487293733471754532546872166800600573937313291656119882283653132829290047957754571360263835981093665296778818780868682577071446952313027268395072103905954553519669124525080925166985861521753288711467622165280319960835609550942369046256125953953764050935044373960641352909458630604063956976863714442574240530723899507717575765861836101784383562439651646552445528142849602678085459503632322644903035058241082738677277406041869177525556578239768760779916129191495276611405018415402974052354041727000658095589105739945716078839932097665722167746424557690435354985295009010949373946575930992407313952066568712234404277183769130848794732094554413839068601442376326046708180286803616315520547117479815122641501372786324008223616387889429951642794369738795823296014431935143685191635783029843654881910396850286655494913328524092217069917569648323994567899992389211993237158929598980777773810963784246464058742642549699358457902918206977639539030268096317185468507655789958607133577460653585626004012128077310095537711889040840691439172153172422032114569993227534092630237256554094454172136793212560421270286044805877116810388302384094196175434007974016018698070544197579476277984381164258548221310658023568626846564917363082561566560576688848158666600629650452470605731518657698174038180570199944673278377211778134331475197955157310880970057469411801174878450145877780514282137268606418316528026388808406145628390993860090739000557866765612993644433083589095524593491258528890440781889343759646769163358851406228930238974362852103819153157901776799400832959705990156181395511514083738908529198114120814870843538966643603250879024259728987831252936275708898227813056296124671324968693243358617809318470316026451506427557130043358559320439422685777479951888892853910312053058309098638620700801106660183646656734859065428616308544310731978117947337275842098428221621170873516335445250520059211029125505388480770388036304467444968597502406700503861049960858003513112988536984782171504598106787802844529291778156631124469178133440456557170786430576435596572236330397345258818733949871170862245400864556563790602473847066765139275303146696450135212637378623394470660937795099610251722639555599286500533867646775885054447260682328279046910517692723877272867294236433617352160773889799289981915396517841160123682754900751560916478527716569926562983514053453379770913714596202391922852393083207210357412791403735777951123338624323242385444041758930423843110808418152965277441255765124623368387862520648214553013584726469861893867417053176874189759588283727139955661512483179012597301409844612396702401325258717572491346423294408938004364508492247924697697170075293537016005336136210364114711826298365698161459020192078619621350684305061652885670001126311848123221800163908306724316267850042345011388488328335546225469529873070518726610433535619806440929061700856436932857716605860206314547787675594732345268413198282166479598241538639730223027166298092411459377206037682395733504009467526760991577338015739400808582592718338468018776207152678020828046475576925853506215768631290619348366897693114439817233627996096613412187812674290463647702630836269402444758607040068763497988102346699441021971285162249912164508076525572482312529917501438476988267664308456885676889154195271317789024068017006874753465690591682203588153860395113012575057143076548234401782279684970757285187795872701248860680956831851508809534770641453814653740221350693013441407447516056784160450714103220092183265559699605868819822439756535646042363169520299903851830672034384977532383582053221458256155412482557617383213887633571285103460830849835436913834481038265610488206750040243010709877046024018054502124219537945743305683138095475272247404311634394669135434708925207234765431951680206277285240644341878204529496603022769559301786924856840101723531067638727531232420728974302857698158211651037664626707108824925187831286052702148007555713802408028494649061436559316846733782968132388805023900571714343114212466372132980271403789748437764215841237543652250007880526638792132627641955414492142685716720926648307636052889610904106832146948342341187212742772046564110371969760970552757264039013417683391056129896380808775752772697603084124857929716802531545394260737949422465403668350350020506811948372529079967308946289600853997819229703272690446152098123610832029756860763547940537640857819169638029420767859780146779786000814189650877407902375975041137638299245041625666223906886080591724062106387023588952800054919306563369704285001310792837955062001284007469550330866393783962350841349539711210882909026146581052002101921583338762924439520361077321700046711876754249884643798070829740588388352492604695673258733216808803514313874744333836451225188687864399574978088990256718673954576007797197573817472096777715133101256808954092753116222221827085550390960638797180586779391689860267533011894866570476593893694428798623061538632871680464476595981621246877661922392097891190094285318600189255015596435149388990511628715371830108052753474171231200158806347940053741136516133015663826401385313114631429103048313983453115678064047929724149842551542952993164214640113375536622380645532590215522291082584665132160643264077556587241496454893973586760200258303837837381856331732779513429153921246082299186161310489564175133800411160670090686833505418920744603362398457765364366313696941030705944390079008215844508218276788015702708610872919818110460991958701155864903110178259082103977107644950285936578482378503851255964998450980598736201803893172352647072428401614357680744589630903523160735979730599332154563718830908352810365970152060763737847224246996257167544896459657157115703115164934648582081594113620379756153444451324966307998953732199244264428637942661147068238485318989173202085299626115363441928160596696928675273726106658616788848554562236506482845968591975401612588146315388908727454460899016717964363027622974473225139634727641060392530588907849061807197032575791263484675998124474289644143458108436040722307373016492022708489739010276393140709448243406871208741290406331534832774191242484534082230948830434343924661259549939725205241991861267185864133625005443263784814769783249036874668961935630343509453686545088300287407527032506936652913930346072371440702492436386809903227482056704300161248009285154377524933594795612948716322716646272263135163176432065056298224009764060514009410852206266596588964426609157502081707860563205389402612382943546473905563870821862502306455155932266364841776975665029298515952071386193178964364755249570688391686982363826055849224678629703250967633034334448623412865370980818516328541982603503928513872819304408458143485133963466717429205792985129777664361770835814396005414268627580824174984802731354819992919287738478025596333675143315921442172683314734996256845625647309780276502314784419173228289691600006312033683736303191165445091576452344266656724849811085195063535159313198863673369731924854505592291065712259949602704814233227099442778041316241020711381361830582976510605682389304119403295897565216853710385825810343708633634582406360104288610301425484269855986853374127813673354008454738324841334951920946296377122148550554088307962834719271528199166112047388734531162361649929457481274375302308683862358672817280385204269212713514582439643142435271477139896515191224701256086794615026479249055001218118230498255084760562008723235908682961046037270297133723883109416683007084341267878720195396454976442491777186465283083634930932216166847657700464442392456779467886529267228275567904891191940642493672459883663846874617621063008056717560388720062471940349073392220298354216771616047528918115504025417395975995381387557832668357582089549850921989351627323817939025004080821563343960844437510611505879418927864240587061453506754095045735729870425648271445025651948350952124726312926859484835863945199737068694616826857725145834049576189225475967738172608686364699713547388401622021845328893102100623597746899831526273331472540210123512571829171314796522835833505260572643838313709934958894598891886688741074128748922037401873983353009689710787409550991190885001300740574952540269193017651334567586755051594949484297652658245365195704886687322597493991298739073531815791225982911831053800095897261505826509899973316086227663741424461960559678576880285956199445823652830581164903914631816926082040269678618503966181630393488994565819736083590685749662070105683065638489642695823952097141567988125132680542563413627421247413220890036063167269981763180998020502515362974886576582561483057997427906924593735507212756675860374336401897539098058849898394214107504125940344273856368462882919740047825676004512135486681256224097011337388927659694296625813411630798849780526361084209071889503953613936300523350323546204992938520978022745695884778952499105309779484708151176621045762371838046323899933972805213561364601055316915457509468041445952044465744920239097472776644012463077325591028581106844721533399580307538843598491393833692017939213431602193252635695420667266378689772296307428462353615016770169062407536578587906852301632043580830756191607977412044902048611681705250967598158175986230122762732419734740897825360406029256626587570891645600249933420289023591466409628438208435609488773502919427391192239414825413977354719111626795829939006125594435044069817549877352327577881648180855912311064367023243534703080879762837034107655295441495200608141500274453849294768828863843794102898198014200799255344805326853319117723047983572749795707404276921487746128695665071688695709103378208866256704135665419999004245847940700755162792380720905058029594831711286867462291588760036946023949423108767163321555906098386609440022213719880891244202897268072411347861497699109206784166175892189242387813823109668089775159141319179692857713033641071794930307366261886421500241080692536770897512880829457005614631515289269355337049471185772248918542432851721407740822738856058275219273540082874477323608253517640217764338154250315958764565577322504310540578024533982619515464681920088330426319418057398459077783568300850946871956584097786944306023757971266904717980612491311311049920568424459390292839195208354180806389712853904932204262557825819500503496957120963469953146660758099302445257748704264953123180998479782394887525063369713965173051090897284036630998711745543245148004332914080637136746041588813710642341445660524288926234515614152961003290110697922760490388778664399062578740763712781933580430110326804283115479167123441821249496503840960475344455986731906289668421655980074220507151351060982660103228916914060221017016773999576040200009671708674737866820983598268684969206924461513562455998320493273217703516888304535586358533725462201728057435067376305139372953696381293787333666035377006063423607537433357579301287302643810364236513294764440269207300070302665640158568761817436598061668521119212610946872427444465264961994640509727253659187213738943219134689198898539131115568091654673434196454024866743837822612188516333882353559408306510230620898117876974435510050770500625444691930252865488253560924465728384578080233673879206864318038891585881430256493003711743079335162991127311255402312047261278470342901902429314289537093191280965408250210828991575485645765078602431943899186566085914367051431841918934573088887741425739569675273422200373393610202010855667084777209789462322707834346402147085386336719812306662689079783239023011169112168796088011238283647755930250920153499749199096291303189758304824371407285733969553633494921312582191935440470643329141372469429230750632425287287191600265182991197078048600460107003998701337674304427687598829300467953510997911595471509408885236821459809191278990698529690124873326187334826813214890808710463771033704065207436123462852693789867726422481457561986948702374679916340846938255098833125051759655596054178502201453320845240444669933443875575075359428713038852329819210543309237073692102893908325809407106634667870186273700333558611131924649599012024494512579417499255733002104809166104225946896385685524314063933649310612752827034224711918253395124824994989870215529624644972679331977970286961385692397468424391655490220991316041147655762720015198145153070137272614465097125881419316342938587920033429054713941381792848527445779276822113862373134890038688255681720348295041989168043026449098221317115653085353189931873836142615671442827572548062948212402176572683645284987730063597512979079141850258214408487532574348632697190214175980414831703518908056116017763309217683682079210851272609295499978043694562454980103248113098711302033175745872335027972571008068043794584303016521015756993013382906447506308428619409489742360128097194126894355282347005870123000103183803206785118673167505656233324508011791906604941150705110678409608060777681643610933168745375068027583456151833252861348076240536909934912504633992548631767695355332985198928028502966234632474124729404524720271826508571317013607379202528197472261314169001331540006370917106953480172610466125834700564461373238594373731917185376174789990844903574271498808971058037307485325824180231066184458302751506046305602828343212310234309850555505931928811255305367097591548571222392890799076608347189717403423280592735644268776204392122148194066857891475712690058521685919569944859552523342346964498028524863799199833445491700289634446824942864710037807112968563567133447156688844120041354309108102845553605959259205844034482160199223451004516586817829882478023788209053506055181004911781942021213673197146251017312904768914735297752112911274043418857871054041422161730211995535489842853919629341210486655424140508783128315640060361994193518945138649742955212338880887987341542766076288674461965813867577981571423793158905980199519813707020093324412336867539386756065287235861604760881037128518813354425098060926001390023913561492427060775393431776496659838848965243239661873220750954510968673597181078158571447039006224982075822870628095765989850630499772398973111731917953286282696314319168960738214355857730098360248834100457062842588759998331924168924227788296881161565248350039149773055277309919818901314505257078250442798568000974555496826120182770190507216919010793969794668459003517769643310282807219180090341226191402183521338876980824868077374232240381620609765136889732937094442544525378271275024861967700507679735324938454418154795800028108051016545620838638256174604904747041542558200600723065680477127342010625610060349322018589622750112519803372170129224130956028608715758925424740360406197204289513908164647360731511035201457632582637380382549071697322267823882592334284792045899628139437920860857404921874903219971050664232176455622096723440874750244493991402747591788494711217865778466177403474317196774654535781849262625658734641065122067470756530691871226525272227682547705147481977691869436196131707553885681286677634266811269485632605128197536557121892762422298402206978704004061751626122968856080065595102965276996022630675587333033422623968849302462161334957842463558531115614382858616816784546490914627401167685153661865688291287003661617918135271849110596017785924623195160537633253239488401324584081986919365205070786852514326381147013290956167300368235012060786755035771778228503266635759245046272652339174388303304444933214667799218207591431857484926486034778414199319995033306868588804065481736795116075099181576663374923883628719563066827639058989788085370382946986654329547005272082314943560388324036364896722161610093780799019245851722482168614317226719739416987754725431625797694677038477700412793021262642337061670353503815037554776126612595623903020749942389820220677237004079085657499740283311893505264307088962003518530513589909905995515512232131935821171863505664113686087775951354299194069470058287009820050544960298782899567680728184457634178935930836652312675055903943420254668809551452038460317038945187828383112721757597156591843176207260138877340896320345507596318830408435912364246976077124853672972607787336894808176416541542112888274062823009029157145767216145479427690696841644397880785510624156289149376177064915782727201740696351395064029210833271518329545265778575980989928045900022476226063540517911821132755392915705597623800941042314830310425755466821024087463234123698747915980650289697130422510838905108198896962422202231946357729884557712445644965994861249384234062722373797307198585308627914985351743108318489260586912827089406113548639450357404735339217821264805574786131739107252665084640796914478375993242388446656068744344544332485886448238632577094862874664042501997352991543760164392653895836906324229625676843234910174465867476923774519833870012373571774128548315293693597421302723843711557781777495011205960095385049061013828102530716145803787754519356356649456176640907258665957415799505579584120989996527210779494591371723478981059490009073696886616541285070266740257605256909835229083738136378878886325600455654008470106205522512691047716414712094769831444258974131668975640192061723232035374138735616673353139058525345509645615516031202657528589043649284666136457744424204256973637311955432755518400347292950522121734794583520824273420790205961619129174859046864430493535328829379018758153011039678634942989283115792726134866069596591107737538293455449531202555111850548008100709310793977219504955345548200643544303603280094106313563117317024946644006906320123815851007847768154758262919260049760023210992242356723311812347519529261409401043735807195711477557290948851519140013434303047456176282945521955720321571161034712997715167150055152345355686373931355768882056324900339250946462895610127414825405220092964635211170173846071877534057941560651459724756064347076866045413560381766694355564306485923609329050388583373261645140278518957154723478945947820739233536515150381657963265226927199515331546134666886844911505129620278592343230051638859855881596603447191186393844160819259110409238180473786415700093505845131760511088951721596412894336879231324984229374666085266332717867723559758702966115211275664385710725535743680209127435669721138690471036837621009329948624671874714632842164288229538788095937618702269120173381488596782048934558008304664384914078262204684112832650413424465999143191322731750681256073862394737933260521413152892301867841555884044157775961655274027560666574047831987035721728262219340843840858734750434533969099156126515826210186588833614005753681543380620044143570847217720817032929493805701796032974705011394902964321851004353217876198398747897638251038173528509149045431014366027367411396051335662035216968182493487963332925572040616724056751783254274748214014761741231766067658930935572036234903618337029120763894557863234706035665881706944177200776654940517514215938290893146813267717532567067315120320887556696407722403749526995822150157464524946627610410235104120035116798161224576496807953228581615500896255629767794613729958275620470187798699604583969179637744605313050744897551040172738539595552485913780096463882840280085861695594321641777568081437925752424584403482355051475079526628487061081973354003120800374929645681262904200830417863468517717944624209460628417182840103272350325111803800264145378739453856538408341516669616001383482439607268444642582706589101618538262107991297950860993611600496042280257726985110301660277710353216243357676498868461786079604095370791951664532156417242401248795388018837368191020876948382701879673589268971103181073663763324388916417693490865905137300877948812762328517649984140728316896768699903178173014235910925286427363251462388189444047260549195319039887602437586062544460584383020147941888154414218477648848050479188076227326988870847203415063800638577914522119003346729579874853593796699042090271683560467196481096347522016983846323313972844455182763698961806914063822134059771775048736550391934903192005145047097730803416235899329518343114617066249314925622810928815167521909463744117696501567135234620612461952174616670216117200895219312835013150632172859138542175537224877928508355065050854241800192565889490152817230567718201052512572615933189190988312475523486516637881819163158892959608153409659950123611772752816430846471335708136895830250542118423072019081333390279178198473339388026556427803922544028727637752751586814707211726270087321030999331668845853250883568975260652084845393929062944931887856408255554787776357462479221624533853372835275301150448413452160455322813595384338450594350510004865254740163378144285041505107738429488640117622999277799676723012039836274367158526109500932428453345190589729178231023350805795455676346903897565729691769945132378484472078295039535140604573750931801490208927020118775905436215675038745799345376374153019899740565179989481007562837922834922567259752308000881928384458037299719190353828255571455581842102869676747247675824070093835396063670080213711977411254617772408592801287364358205778058510017584354752273872433624215560751328519064321001051930454419564878686989998722040147183963693303587514215904267798545299322120046486896604598738080111744721845293206419041175142961328943756125729903026771921015222398564015149603402774692808499007518385336962906273019971037013097744569797091095569295461501451345350780230863629597646425772851408938852496514820770101933717194774567678019267626241158928212843117711152315683420784685385098213024573895940921734187831683746634036204905446611497379831825276490843313768663591825173667117325700857556683783957338603724640109301192192087864780596722612665891896204251846825626331142892679390511535438099067007690324468163090718372168988208175551507383360011129155804984640376051553032473066128472299522678249877484271306520058273352957720887921446022962664304031759387086527742408249825757094508949326463529482777518094833183013401547372003085412804110009745150687281544038241396997611960715442267571744128832993884178195123725419072141627499887125922685098558877681085103741089891315365540849065285108261030502907858724332931058644336356895109633192101068895609554994627264454644003797900945087756807309092795125847364216148783389569491996458511190011848018567062515878224531844705528707194272983919473460928992681866739028293059729472802444325629177551172928780729796673861747795473180818812083342716081919344548258434987058206768525183070274517863045101790486917294823608455510155222745530684881528942565660370275634738791920890843510993430227304817592814698642572586289243536987982666513965778919092163098871395399611348042841452442379684120964927093016944804940775301499224337449364561898971381135437108797972535454586866452830183029264719577528321458873622226023120759002886990752622419998580124747293672551549236207789493818178456579217985373278296703806856420477724152836933263484324163717934873717302592298806914951265667532776973375324435698567432886431713846289906846530825555339740050922633490947347953704025240667400982559303045707616157394749799695621491039834127983304947954686022697394300015532209180579595754537538368243722945304859182038862651664324490296142261457381528505726922445908513916226739579386318168645611152316445138910416431781820940055637196509654059225866731940027462481798874569932137090308191163819099331766505737871772067324689648501164147172447688265905641742089774746909833059358133571114174591157749855126048006391242770270465740858246217263700264675814037181141961304482362281742874477724257399439488046962959577860446477342549573375114992147496072914419291359961551811712735769366966884208456583988800810406574368858948960131776149543709455743511787263449212296505158361072789249004079186271238229328313259592969393627613608899720942364078647329822632341613460890525917330396631424385130468695543243820848142364270236385322130265144544101854230107309152264764417199953613095460051235831695983603166038867117805948928369849765256566875994095364008130995987819938761989333015057941910655812794321535735719124143367262780980558880196040783336525978625837187990184968266876697043355320298201619318507529620970743874513506193999666506846003724830147595938280844488069293440300276539088985400356104160376342939728293136890175873543936523768879224594523222630220536262855448347375578976307134095246057754495028882379245185095832887746509065441049791154997864222790407301632586284685169179972344556123558429155260655228353876583617806309640687212215085357097750702988235493247366237326531309997615869317911691031461926717442277877698352149159496275814321793453397139826947622572249682755412874195231581493667353408412446287695184769994337030852076202125566599885440177881231314700744863954194142824991757798778933424810405822441437587660039240305563594034161595434784740005145530259558954402659189738425596442163178135349554837955616060173924327838401864169846799208814398269559411988938427222300200408411011720156253740272689803715222891735094751213210862899505607445380716562967980339083258471952274678282200523160297492446338841972934425616708312287276431011426003898342287257824753641576730995951141077769755987760909477256303714643885646799800736231012204906250726115644434890208688502239537035498052691749994894318831193245668202305569129425854739536765671843349171587378231710507296610914059865277425521284589353333347908667298862122631576584959476532811390058431908116460519209385322679828997285074663144232168275615146478448122269959623552986423569921783347849084209352190687127089650488292404543447303038504864839790736055108248642693947838853112835793232038680760663056017348457815467214246334780512669511165445546609761994510396303925877507506297540578052976376681438959430639898296636785009583844635439221625419809584095789875008773327656356863944835072207633037418471541393852291676256452450350722767526529612823519880648479019492353467957597707416615035400400033065052694117220988817611925679908018259859443478877041543678804573142958538555507453162212622685256400724822859960421722152477669089305983078192376126831626883514514602960013741675169928417986550023231845547387745129811996815822129145983327467922064049640787372994346451650780956986694356376965729715484841724754884249852259304229080558333412280309886113447841402740807336630967360405949769343593367924364607195419812060513835697336451501924645125768667546408047981021676339410501299825318690424189069143760394134573598028476821999349120770416410910489099055295343680003762400340385707074276289579369335276054099205045628099736127517786446286969844163800554251286228452325914624291181590802478105539385915581624511343978486637608987371610752156044391817523883018476522547233242572784348471670223645640244715473851357624206433913371821658734637147886463002335261126905604404979541059806994742923525371448360685418863975307858958367882471829369480035088676463877316662842758531628123766398454508228243688264900177832031615680673724722891152181267014614975895183092837788986182204158911553451849872108001314699118303497719870058162609703572382794348968114610433453802446021370777735139085005254105443969419853384072752836469279237986305693321135484292170521174412658410198607945579454748748742446464449274462089603572984701216666609361777497858670301250343022811128102053607719906680788381834936376243633000443037634622332266732266910004605160787779389771430914794020883896057018335937742732617581014774134228404192159493284712312541307419577889884940260350300846045528070766520302909136061742164375628397379827001985163708551469351754997739946795489706221169704641171699610611177651207334763299111449762012322451080311815455035162126500360208038035948090925254535770567752714609492617769027373240551065858072039854187300770739775803065799408888867339232535179755869062040927021922361857762386932483892890607654049451476265911868886843472463052669529389668289737032173093900855539025518668536757156706904597863544536245100233250586408864799808854043286237351744194829722834867256333362456278685427503266138534758140256803677020311658148560293657652653381144184525014889566116596584378831971989590600804810628474967551065467386252797137596161669098519181070959946804186481913364744448214099650735454791775901863675472558938569188217251822457490889658219422843169567075397870067163895258983083357711139510876297260920848884502748677555328825110547378525182499928045336573985590350361920506174728615766948342017645277581008761480427095804573748826872758386876232355664721251775643616978400297466329850934835911087991007583488182595589524397072318959361300748665421792384807452233054082903740757583271355880744229959005853494768151551611757247919480568526515303565101533454826428113943305076064407043792222997427106351548302473042022395752804405205831975225868739852050184320639459965009513597334462261916880344929314129174111155332172740056918928678387914008831073081168656905443663876358503471261319658516071689591507914051728158379345433404367396148436195877351283390602709568874878754523830959720369358406959431774135573299430892366874755150341880933617104717782909740988791326083545352572840948315933314698108213008841782108844437521926579734777987679324512289902281705289506716585437096308137861961080873241130467880658670343338863765096820834610273543238173325903938349098648942596742216747173881388013437594834234356292158733573919815814129496086765547794179724739082684244646558097718043265378765287653908117778307016652975836155936730066131336918124567782144181025799617345073443455188803347890486028143738452786082151524538292100402223237048710351033418550445476675734416185820169249970943665506520359665104362817603703756136116782850587351637235164705027795219578889067620494014089132836079422785192756046996480449425253195609072131520496959106546318906172682756222854746185228578049306436353121644763758779225262576409483775265410479712454033817426339532019563130610392433662536981512200189906801629760263614519257387980342762193211188512027254884571921973204361309372088274925911584255437085533123572130392351978176551279570015690416104731718154934476006339983298158693539639950531452403791581899956840209274066460233687859225407419814013941985718966743652380306081879092905078266255511165812027026462574114109838325221398512671005134671553038011213476326624989369202494491715564360600635578920334315818417935967101801361485459351869688899938414099702109431111605877378952489683311718768252250418300613423459692579051960790898621491797725771107066984721437673755129593580533436985108897468166544767307921632751158802199878824683348432252729542993440866230025727154878518790028512004002253088211662829707651306599985107929531584069613590325086777889514437805693352611356182189549014515325136912477787452683827261476669536191654563305469866026619185881422703284165471046541837210189631346132099638969704361825404528449034682005838053300762131911556244880365848767215802126039058896869157230142752456321808479580685325275115467335436035943378291338486889777382355347760887771283601794824506415103012498760746724037824493108297523093950048225724032655925412420409983011903466012085800842200457992472649118813158044260828964633710564697767066172044272565359514504826879639740047793930410259045952969527996007691611204786585078583679052422049438933735893494296441728289319211859049135395527775991006041707026293233648856705629992570221839041868132915816572732514013678052409278729396838940139606176690197231954986033168777843940735609552884117867752177054162268228376895277250193301557825673380414209737641061928889710290869948261780071273543635388473838062813836463121121165341887601041175407882612117620606978787021367050766619446308184891890672839671695038720749426335010954570152357183819343376810313706581799492751742815671212312719721732744617638149224579397104513163412625039783143838161926535968851387347758755803077637442400769013116188214164793702434302164397969652763379658830141756972217158259513520868314841664178289841534152418723472497771229278705702895089074952344479216946806168494240033483197070664109025239486255401654973393413198589228337802723447855947535330933993603108324370199108790636499064194978161227698209682394494677467750642149653816134306945515032334384293097761516886964523925739810020556818373725150308478286265234954953332045727592295626067658252089700162159640787510440714216106652976268394066529617740252949673172825742002914089160284451151602445124898791451192852335372329423930747951379833187418564856387965220416683387792872664938492048324638844977066115552674898301063961595164896421488147159465241204513602117084857750180113368520264107058880585261713752274585521620184122009127333156060106391592607740924598946167084146512633498204615548049868809268996518513431719003608939817478723058293128052479658774198326840151678640786682045204251021496465510571058675110966151073384691924472714321612890159687372731345760984916878187448770790042102430461827120760735575087505739247722328667158682682011472969005311647568722381531111971877132559773839480576376503220091967969330103909847035423407651444963914616903836702282565913548589653565910297059861619179403311881699970397116232410049451377986537672372021210301836290366446540187926921944152574916156313251438723461774744251086668362060375056128452893497857072905139057014291333679130333481514756844438394463442163305541013476247996673250234848207420353276131785135556065408595784206283417730693924073752850035269108283870809995768587865873890086505599327323761314205959692584914893067684098730662886328362469909573406921644863795576437826646503696179077995541708118339764528235374422170393738240449935586017846891373618261604175419591752519532668762320531896055821887368040400111574371768507819348818833543641741243057131911342481066608523603383737708517924717654590966211605568418168225422987707964566390472826048830879530661696983562456616817063227324566628202021964398841849540191060749952078741473981900848405094757519953294295851121808929631386709597537297737470890759858785645456831962781343859878633094949138923463491122991254657630083839718635742057679703871930696621159443427952148298406998133621835851453195309184211139886018767818607601135008760567388613131491520739750573735313074467340282498564839961623650984716892491699717343833730419335189180506921102542540446216432715751979237731197161638273056710534107717229268408551629159744006228964407832085997640020582255797970162821930955656225719977673230019292778977606309923954316795978970423279160594983861157822164894607783506495209928972421910570346130041031975718012390618188044312011365881137251496598034772049714463431109259830754646236708162569251290907612483106986112687047640980537374002658221231626133434819495902045686582036087211553877838697993994351933111312439480767610518918626347544215364248578803535049260127306221527860522281260467341600769208585008196472454324063549624175476983636976007236645696743636826181931232336351703395119413447778062848431714971079412330156624222582633175711159353548494823910013702559671053633813114480835484111357578216556121227703154429772273158273164961670239220158265160452593962003298365844001038086590201315558895773776157700286791820757122573791696188139335088680801965705243309460709417724056294539303653358135746955425090834134490579037038096284126111821296915636834809895012207979219705127960939220265721359054585628170737582928058989998038842564476267076580089888084873934517149387653507929062729998014563782048319131810199289588832899021143694792841017804006977774443423888167771727106566415003744757732140500427958352122162160118789411668321163722287217145360608967391388283775066714082934835528255741367985227787098269656430274050285101498176737071760495259537974366972709929110312612596022386864089065843637529447917974367252129214234613882072214941667000488396206327135114728550833667948214085164100788689961687544268529565959459160774152978143447051415105493241414465230932907100440338174607390602413225516248181240651312010127824939454895800846807104407335373281806279592099138634291506862640605284709308726684889223879794010365272776790228598027759328462550169774349037480777317172239134293918652206520738501951755162426196894328736387923561065895736510304336863734059134610303964190355832264354232993234063123088679911947259045461384160426607898012599564047143111670691222059328033657664932909065956926397844115332149423172520428943117557952125490506264567596233794288602023748103671008156245703271431770833184487789487196805799284882734507765764989974004062540745353702793638163548464900731709567416197719586848920316900619621687508616887650829518350180313644912139932994459591870352367615971357269691612964438417190903335574245793945764869381336812181174043465445177519601160827590993723229215798490296986374480866678301601439771433487494528988433018506146306951175590584688026236679406402288763297432064255942734522674708761982294107028556201152037299169061998075021639996713281926446505468296262312929872766812949471146245404633144556688094097638776091721479969462783022777001198005023598322512542700894034580805379969982620450893715716892828778752257461160901579982002458689693401414129324170211909344610160979478419680450256166540750821981830843777373455399774031524381927164520077039254924481549230084874657546637263568612113016192578757131593620284293529548952997444842768242346494114684513645369770009682610008289144279059310226322231220617562180150491278863121045588035572844305184073462089024979411069161852787023997901235746136847389363346449082590117100978936626234884984872376205369768539006346424503035392951388325642092181772793893781453321886589959324382099149095696448726968796346204961188112584199058784864130568840828953999175778509579487432249923551578036618038346869094894407694907552527449276529886862042700343177423917190164059416170227790440607285856974191081063165572215740415939172064620728827754471446156429184332993161573544727355322978500191776199690026219236475320501795999021173438919075098943295437811983274791568134110392831305419334923240353091786089624342148930764060261606469598896659727373398483014780957382626357753913294316108848117561068781955500666785869386902510120147585951693092664648422134549012310611847101473520956199203866521363043921615354331609584165734173292101720541635167251421837705295707682981162751666210011014194051630954399422689749030206607822980531131740056498410443893490857630765698935432750714801698107961883980373882896838582880445310755946842674356704917668366380640474830371488315012720908935384720406899976113332152340246501821650296878153836790916533622052519045432080059692348597997047095844815375053096767030520760931900308991037746041653999358262062793515641410581873254120274273141324568998888554909873078764062345848985842687594395727219726242812388475487193247831969120601241836818746752997023381478559039197310519524849062912547799594532024728988776374934934565936847845202015937205166474479345937705460775405853190572392483809785818412937914753216500813645185238895568893249972547576057693769130526428954332723378497998545323349267540937688374648134932108012478581733040967101353576362372886673645996722865106744856598606241545586919386256596835405808064989392163018494226098501633185153523798849117500305093603051437650159399020013017574823326783354991279268244483471148010376747799304786925686539491858297802151728430546267364149576160838749300660203191135803378101008609296905838177493674145311189736494538690390748781827656313139325446516977326567145095377779749623131738551774860382374126350389294035919003940135470287646023548951631834656510851755929210928469126542586768304180172237242054340941397203335955962125059422830674512678494928320966295321847546550368250377268261910770663788375859337253999940003112510572367988851585537798692881291130456039756454893505792826440595115519814094378609762294563000642832382494530803669568709762596146534725737731202124300228625680337430175030665219698202759418822106897538000876437075290345511404452303366938434610718071380245759519019614073474089135816676249200663655082246860054659451948323855385847521793505613153499469074019794227380325132762564035412111531009652773775854310211839624677297040631221617366348828299972884739875117246759590999547866193638998818511318906246386548846720599344363897890750517726964633747431992434123370880903153207458232254577137857017494179960966985662038567932682805258970299483313781459146578247968024649989201388699548222503128652343610259565641462942835213507126984466717739201794983023938297852558482752113280393873052669149855716342175977862360628431565272491573965713489190808161089024138543745632387626243382684908572694840947985814689115061158650384620847588303500404422456746508526204211169840745233929525356682651836048245744908540674880588006640176350276604850488078305261462828768378694691175765539975532815506881875894353661307547827508365505621557994735672628829782041434392985561702264100577369352956157725208319365288107086325928861618438829454782785511463297256874461799904234272311567045529910195610626896277780353914839562612808069941387831783069738175973317024469833043935146209201857100296041862471565561962731728209941108819212395985484348159478870037869073117570837969643363795511339835213771289808542455607701392354550599649608436361604636692763150709145971695968945317197601027972592452438722504389877002001874197639655473016574346415250265038704494724126823896873865216193186007280665073475582404679123228654461740236045609979450843764301713324550648832205645601967222211117172171199747601046704555368009032339903894394629984664132468275258941621513015903348604951382291078408439123133172092838149423060887333810363682589180977816080680291240155182607766855623672103911997488628521790936849767528800497415860631781017707501091371876916682473965290105258646989520521954403452951922280513234720771107365545673013489450882622418593697177460413530272161262635641709625102595584415457338263996400136899980279332918516070595867735821925623925633914176893031884078867745858705158284632423803628887567319363602627258294370872695861748735272067832367117306349246216311674722757273958860075174045508921843157067623227537388014844767163482393117851135131180033025440319742805579703288380905830594589861783328042747443091900789709411137995045244867075484615958084520116298465019983274684985190692081915676438476404729168687349087666614201498101111519448737422084346250500373219671767982991648076415897980755667710010615458450555826081534683616931541545317570359170139624767850600855641789179670550730778701705647295626409218963146638273850570927631076062303696064646215434681446079586474148531247175547018536849361559401578082461747694723972012310407920723086682298406330686646647810692404001813381894130567903408981312191188789307148702126293478021959741315674652272122553281623272177622657144673222855443594326760019025936433954189169776328899018308503780589861659349714339756551816317752559528074005228397863586577764040764550086221168321916502073817627956715725734728316879115986217365943747970451302644907497670913581305690339650964905932334132365876411488939621262021581276563059027465171909822487726837858700296734492907215351500880842163345813418374561616488646924764014887411267304850344520640204810259236952739230912326186247422627779656380303943103423089276089441704367745872538634843335178380201403940461424779410736794682521108361449617251909789708705412534964529263644507625204675153898827190916905668850512354100609399809288025253078565896548344540362173155249067095097638838779675316113428734171569456389084413057362305329754039999547272197954033846003850008620271383077221482260463088534544948529672932096774663776785154870217010608133367443385771035118843745271976669616200094429644978373274517797552895719319632552628912004474433398287795054305560646751611408492844937719397318191828943867959419255269091081275639034882859946535577972815165373226309589931208867561401390216848448362627318761890263056826892516608752233763130647196438006825027214402720395426949037104790122356046529597029042618815745257926882686856443787708602077599324197763974152784234953735997568651321874592991772271392749198008755011163757170280076953416591750402664154757019708262687601394010878396506761896773441519743406415436511617636469952316214570586533891679779829799508069585086818498399141240398679970743145699136078706815751273636823893017154091970359461105964796986269992320493429120231895937912664321013087592697570675393082509464595602351364475641572277621529660422637677123306205116426899485604978642598865585940069404000311455212087459891353309101733838327423631335675154598687873125365702274125157760058411176081467707710902438236708080908362188014928872767002287096065311301924826537077194011980730036332550273920015049000977701008566909699722219966107438372140331633772552997099562332550398653176476544706999165985123017786538409586201421106040483821015887759343634312191606369182881317630199975798616033903678626394102898554574046631903670278943767945652618784908702829078031788438727756681562850577491681835845058556934939155783225499970489174737327023670906198359243538760749307050821342220590338467650459840073231533525388876374734067618863846587527405715142410850119205953547781760939750359835550740312682540907664536440332348967244943549145883520728677063701981659088301402298319172382131491104769487536284524918892894448546692250906296783373335641063691769111874060553499500704487061351887286321269237736633012620735040498711084440609034608918294220778103285608079617415723697736042983043988937696231959802236188482754402265580841502361650741142303713382799763048435182910889524464831991430400787315366673444344492902892374714635036951630206058278447934319059659303498184466843341253206731734232951751478239488164781944700719505253550354386713884831015766637928381434830432915070822289552045160104444765675746414777107150675788571188356919981093266349584090588164691767048316233608103903743388450014824385791376169330166603177850777563232348088349783992814471651122709253489863379114629160895963732265259963262745262110952981069057185189341348028996910179296815579485719756878902540267340880582529388910736880447471868846828752890145362454618121979552362329683093354040390942300554737089279641386816676762132524434176567557758646151100769493331529083411690694908717116775575786315875009281952114406775318017053834895020238533423104578258196193313601216585334963073526427014533288324715244075124016232108199040640968339606526370758842619108258800120716338937502842932111015194511019162181065493048312491783846760221708612754445102064347262088960521485772686751912347557750756027634048369035867632967006943041673854679267403896923736301482063181119003417408328064624311980874769751691383114566504157645105272647808583238315943803743197106424146975706937401404153953163632625894177467594277913341028406798753368737899891665305576630484297638312557364845834352990263072094185375295810341408408973265123220007787711920346243404908940497122991185735835621092022597187161055815782847445541328456419788612826673260697115257695172395437118679739686295335458450188214387738046413780269149557705052937074493668549997155155186890810740520588152819018020508808705820390528669451621233875840634183858100206839638120015885513864638862671355944886386140481190284747836178197699996072297565551286801185574287673863505259812373381287934409429926880753386435724843991561066369430933648691972671069561529815717078636131541291553861617661838945400945686770624540238156852509215216668696962941873166460111117094050970324571421015889180899425973776721760723191522751781483416313705469916925817193899866753636579781480713501177137832439200396263262919277703542634961415633087509964915030560785307748715564489474030180867466901893134165724480007005397802863440619894342331647804833176730995992645832012714344302402975291410006713670285505777799474188635890732586899481358147750588437227872800213582156490951184498937532544489441272023733480688615424675608849885474443043405066077565325199367773386735840397384936054883619217226461805986806944009594010601409789801783571131568395648138867295905218942340315540413445508892757747461262664204696844139096767009658102728410073787842095547368940322841739834697888213308076306345478420993456759417140455091294473073220433668412686559646562992040540560334831958370191903228070112337787082739396173853979730423883326089292141749745174137436842576713207101574831692343148969286239903108190529820093944686813074774116512981460728725814118933393333100168827681148168289684154021387605355316752729863179048094013581292410461731459647251426363091060347884500781108639327391786059052986759682498190581824475634177879907458387855082750643323774410042923374644093673196269243459099880158281291317270780320226109201686675073103191644049556749616838507220168365360646845663828051452586083494702662235167616231958521920765772304471233728065604760228190464962678733568588990301572843474492127437944598978767195692496022447324763637403215143435878780796312215174273572206784570615452058907217938302586146665687457610019025964775171414686288618424350619918880964601695322252982663838465200601219754765127813028463505006005301844880871296492296653016917065485707619949397881963190148833690802988724458527426248152818163414632682950914720735777490602119861776508386283878001694320397078754152750622762379311459221425238509670641463678574575918054313868629449172257133580105245010319504956777082743552471963975498377402444602505139524739217328273619155287315904956904676324711527470120457961042944190782130891966684977905252091997441384720719966366538092417480951012397841916355511787827411904668705851084669137526094368671460974482480167360842294586141102185274735548412353307564586473854557851382509784074611557768527768107315308966892657993137796603169325941531506363761605280843081703504738428474127059989240025303098465351698974226309826366299141168404208447099529077738983483855135772336255385413350687560425613810855375109086836241886159506577398258180217721128510191771049350996635169043164023012061764806238529712038302344086836105451524899945263917721908774396945759844182688424790680863657958419282909337582204962612959833571026790397827050610376594934060672053494500720766586706043252633050751693507244342094813645360706386272762672151745694549143073689582486792552270273430814148581384288750919225428567735627654007175658845667658810655579637540168905243622025749217860064412436737268205826700850360994883719211908296408388100709059418078196056208089314842014172408396108701306850471532795651856799725670848207700440242401983244818896359615942424610696719236337465056885302784538044241049791416779420063092016924203147519263922732631318256754882071424770201842634480931446239352575506784926945262437897633210842619569108838306445846265717797143403603501068664991465567767088189936318855025415529481972056685610862805125090858314555881930298972595365239425020276654036264554838489773127695406508772027931174276647045522659184195829372716445044685222428572735189261969632678196568941245445686667424151643075789284286401670763809748694379860929057413840171798924571954039917701693129422613004341680037128550626469752440915917913417892531974536030540748772639770732713646109882343706312696624785505555523808228582920618137444766540395982266932848685922853634412444276061007106488842839581732840090508080084146072896284467990052226325156496942946609031964084927762932166450025983544639500627372141943136856181842501435848727039257233953194164163812614094416157992965528358899161606072009006370545419610425170557279392779578490259678941307761914862303279314918040877990539584329324539634480805665019230374787829196438891890794459103752594806307098556092455352336779322209855834575269738804391153947384901578292304497332650070874237492390161444356024690409039792975496140781922140271430325836866519909688043099292906489865523831061040213905213683762120329503012863852076247224957411338878876744933092225800546424395301994644496193740989298222417316579144785635055558240036100767982999293164831243494583917604632823753873839500218107153738677569098551642164075355308619583985576746536954932891644281302736860761600615960279969046905866309457835151646490123842867053127111622124064848688246366052766364153483933833327821153577200277801985270880819748533315987493912133468562337757338295697534512362562086319033080262902965251534249290362272293951244993304494419661559052697687355434820107875537352568116820153363757298210462191750122514460365697550008223495738435997695712564004620687880273622086229134457053910158490772622971121991932925801894181217182770708346258381671608058535872898571617551774424196247004304303426046144300380385669922006716067623470745707405374142997817230247816011383322031832805537327767538868517138966107744162786439766516079872214976342056806300752014623212555241761490081822717408348224549704075915036009507364232337343847531648840755643580012757399484298445686249666780433688069620532569075675392620829152101424358282168862099105978313481335328723595827260222641708992095888740124301825515176285558631958561128256482270941769738492773301725242526856598585276775242627257093784454500272187974931223209057277426078764218911519041546103338695287234569390256767244447252406043318175943925561275296448683477281751590724706715899091129267681967677943885177536156283059651514804681300412090198903082752297342728106418114886207051769580236668859458596911578571322432775513858915821862318449717722141122301255866506632425650412336296103891392180379871996923636666756500079461865868317397380207424050413316717621327013345643592016661255639806093910628081823523729248782192658961172952698240726369424568408327019311559361328278301565328793477411160083020432032759350775818637644059087027602532713801193184136070152806483045331965583843917784515635767501500200245471081552797398335463080792487998425521344693938558605104265706844079707100254136056296068652484102774672274528588185754381477424430833520620026765380037468387876612195247268428574812032156362182825688037606528751469395133668491301437299468204522744575984577080544554462624339624416135548886246244639901963206756487610384409919930874017947343087775247823324280090346407485020109537186590970510714949005263531422680575838406203780803766351514960160477816643506470015849852705621019270269624721859087295147419668214679634165010292989778177062549244541348484290689302592674130109528400279884895596047747397846195138890192452065864765021799181296820093992244478095910999520318338988633549147165713524300710566260645318530163874735894092553379346269227063355661167085465080101207854240783564996673769290304786154067509420465147270948521003741283626840684543437788153854737768383377629311637474044133616195785814246366153486229024050739454104013915072416410321547928752089561095890104455952257829153652114291631741270023894677538951994110713773839074913492413566849688226869678131547053356473820554673066562424788570347636357915879333739845510966341210007073536132530101475321961358700600825181792804781911011908362993815920076420355294047583400764052442044473225616062714877388686712892826048331375012753114541915644788414511466320595670989514958604648072813172261445505519410441280656937220773528385298213149058314861125145821274247667160589803722914653466068282119404201247290531489308823948651081184275036334891759100258614043054503570482775105981942745373213427269856146744906492970376937744689437291517362029539652308299150322220919542993520705351763798471229227428338209799077925537734484500702943777821143194344130165575825392562717783541331179905570894935480104561283673302200509545131065128075849426668939721820208993207647826986453667408498376620362197990127185025112796949864092954592241085523417562433320819613943110193905581629103411573909230509631002121188621994352268138886092508850061487691282962637775090042275891074299890037068173041638152784962358810048060595645833553938456059256541955178369089374035316174393764022758978227467556082702280440247084015191358469421617299680332062358746756539158428713470170438280527710803821093676188641893618595099577546964451431234976045086746257112811885394970326339607220713555156244042498671221631180355123931154361723811766639008218718727655558173162028726056152400930351451520817409023040523975190777869439287450178666744603631166086089152160216282117937430679858136004773171419523960229586066875830849026205734689646306306610962560875371339124378384297151404419347902686695987498648522724259073659375532044174157671762501592788782318542940214855462046398757287135353239054426601787373998864068721444804428034179290374597991882081203832119319144827767966474546476677639950875856209753935198022636463813271165889401811456644277932465602543649263748640688135004024715107362458684594176359848546100536139852817192716331462975578461559061907157554281148266477284129195612622155106095983150783006433927508373462736228653596182210369728203619869944603931062795051705852704994496686194967675814504011812083097267976598909362098046684386941055749110648022923174077589800824493436194172590062896856359714719240260077622715934926216882088125748864113930458313518957096013126229425003782265758272473558857534954657105698219917702029993239181346472057391758995809307861315928040914935676675144720072979304082668107206451232117640427434275350269217945110654762360672542694362372193798854471612558868586799667562979206521245547266202740786935291642966589493463059249637843161880247549332655206061260001072302170481379736280715187877503461721179665584553126897567498070550854052181328349756048006659446729166971193135853216582113773005783976325780981327981914890627354709067417116219956856569850333028086968928728110734504350474418210023434837126313553433712885647047006146279454372763794869033103342529177220674838732897086891229578036483909195655361544819329451839669450408620273130654227047712919990234051515024230994525915611346772876892902862424488237178384471525600931935636471779075144645167389456016089891005654142477100368896759199736645131587948883464658168787667918958650644944941669228024451612991954067275367938585851327004604561269010961706082401143366361738785935264046672893623015062850572509088143090672048530829604629947015137125480287442402174913533671508464269352851176589442248231984277082109551628586164356629874436995812804714735823832564740974589230307624188644443627447134403847844129698064555343483055949431116014597676544784887031727553106032914791411523063728461072070569145912872577211852361000018224365527075509475647658063482846143998747505434475555070496543664443995994552912572710982689066084005387829768985221301126565586886606674460455009075779357130141887075514781677180331120590227545040070075074164877028507962686509220921808456381025942831283913392896725242249619633378256317199431696947556064986925563704367611174862829318022831237643355719366812677843120949405935858090362608754685437625246733276079580314975887134968186632082055027366377164193382937767060939969441103816893285884599116610751035628916877623982663157083292363850096290217546606327224299004992056792248253931775394270559134176254653715485577026425052511934550225378033048234766004368995308850279620824181828139800812249041987824469705399123530997804467944267124336920393323934224924835250969472216420093513114849783229959864116395175287518300036375181228814432565680580562433407051950330654421288903294204347994083984745460022154155789405942261202156648720125592956829685233013301919245192802378624803188717803716130111319513583484293366793959459114643586172189001505515095248176403341681503786057396551473973993372294643084482279033993085340311371664444224547217426941332240367130711319993836373746976534058764720681488984146464365680162314617966079851722332742492865534428027546125073791793166710666439271477754614845077206186888709463598402908006504603841530094985695127744501665273915615353956356919526951464383678568897103452771318257157615015940305726649378157264403614836133579029179574050101543854632088345368022416498112407407296630844711721981269451778781779511957795980623678698130488993151799090125567610397173305033747749133267521373025921161547320529630588381935003869816109121516220856840679955854845335454682941085191096801567651754640130662193528539366013343558669711697288841650005837569955443454405549131157625089169710075979792490360558360337049973510974480560424858723398906740005646306914444824339028860551906973618216982832796635888830527736489735426250405463867404564737668011126727367513214126151781104947199272333299823569592754312740066309129196419460885445679094066004431615247592044620196046530033073633852172840685951755184146387513781761939930151484482964752072729310871897788422799911551959443458312395644767080855477177957096212034498763105978521500144818497253386003522521210781125030669874997137722237480821792477645292884990581627074020063241027885875658743367031859751345931237661897735563166306376753356744784790968793787782683596205103680560103111392446164072754740345106208104188844116495245465164354000691456245565357694069456632756552945029716133204683495342406568497693174238279128257988124249946251438891812693414488834922952058181214560145736531192889716259069246203966452898911318068356052638961686891805563635088870711782178734183002545838492428493810161071202931557438904468479319517974086190453157997418119334652384461991648234593590731500950337809289345994766029076508952102996204941476248515344998003687006516350320008294544588275980720467494750021904874860259174099630153086546701560389444052211165238229333137733155499815671403114881972290886412282011651260041712289566657451445475800272131171850320452070976132698094109207587438835154567277073967472165412806200963956531752804537944266019128181527346375568038345473430764520378299723142444122639784178660791903394084545696362042780032343441402065360607049221102380259148093206174568095528932968399319252519450939436824355323612797938705529585830983434844706026587683247964038285064710777741866455816871680460496449335170352701574388185081876044276090933363899624065092316260109668802954200416732554092977365585586418929172648925545823516983742375402027601255334085650238494032237068653574538904138869376080292381482264524205165395479682712725678237907765784693065207795399483166406053560874113851655570151798719709900332606703452427952680200953243229204896138204317745206486939704894613220970966639663497909648257601863599906440627351729499417321131089351942811325351353040019427190752984933719893162696017418059511054827751180875918645938847017117541695936493331083471248513538670559573765409336078785928649725284851085490577588844702496068749187079301620326956746873076367882649246306981009265603697780322974636217770317082166900338354473072636651551512934648869958998460317347175042149785493754631985761036543216808391714531335274927124444628673626963838275560074015684905934817236795293626573965909917381027712482569304937768074602304211351273683697921987858830102753002999794299884650565388799297024358484748082522645939090448022351585354830696631125444869665469154666687015561909265004318593092572334110616252857767168461327328638477064673241640455855287278687739925336908135051592154024731405675909844102182834848354762109375523956180239091593169400121284851645887933126516346960260286371873331173642323851940132592865214386407819065605885146496302218534150753302720440425991238400609525308636524886061753553747617446088052006843364553819119575277516071146350780216929292730885456400743447168408025289020131066055471110725604413615141504789576538867044314746974252497650103448405469506522087896000453794285785538408567194336020264006100446775713990104838940147240815933567112064084065756435128772632119606551588221158889898468270072605560860827726063222493444218256496545811440647136504765130941902196556757781602701114082250521264274089424490690789699339729270423279671745702000198324415706972699076192884813787130931500702228339304788534304766702512789240813181918896713951014014262333364093754421408768880559912128875872054039541075158109668656238979425313236907071841036649893301748288677468762543696025754098503791755081267533392560373161359196925523468632830667168028963521207944686170821434101833047509455114544460348675051291109071864163017683731123922033566066716258114413413604100409553758329629000572221502256926436024853954462621992422898863156241949042813582365640368699872481687553278661752894903001092091522885110117760936554651045852402111379668926033183328182343761849406167565932111772377882421744162362064771207038628020937914320865432842394050553183069816405849034233704221902939057444382531689270424508066570484561936349140240625286091464195950467866797776515508885077008438152057795681473504178965886182577480113773593530867338029676537684253541295505477399610264771197882906486650585599526372782383726463132252310217230894422709376595968164960239063197717894295511461755104543058658516816766376435523227502159579615087562042885278914056111790801992521412306264661805310862317632768442066323912942584135949730371348359228752003077408626441213939929204597022506569500493904911645661752361586941434425721021781412031534954399087650832962285881003864793527945580618272598344189785270779691175880136851039617929991659995954616594374205351726909316045213234985784036180542625379569437460754966803289723748748091895478041705238352577701955396862888450791247712643110890119596024163725176239377956703111606323443778523524302803802335861848761088058601720064937051259301648795128605479877479992342836174495442568159488846371645650696762383514344836838634056158828715552586979062010766859426110819875995781070310737100799898960573540234620541139788935158224437709720693184457779817290591581534258389613641782775731352807582312045870040391976108076273429347703140537189744454106058172624951133432192051589558596196536415481109752883979928131742416832066307370506547563757079413978284409469098508015086707988288069319822146145985215071071601445047836642770212976855479395135996010318243385681323499495763788241329728522975654245959681202859160899044162110029981701701406003184264794767148770744949967837523068412690007493186344965571124059298481027766498509969737753683009670089381547609833079603465870618209827785482221891607614816966108866154059272592388958220940841923564872471208729475428429437517196279917181725728687919563609550968832208775705306940140983996434184556785767692687280049112923843058417622601922574894166674580434820551579278674175456170896409671195202101747683229390403005708451653075800657204681163247705217433251128351950967945894528635222207783339707803978067174974781225875360742909136781077172433525457788044268621270440200524170003973097699827050625043534659438138020756068588474497668835132537249632726933410177391244365890626318246948556054565572080968899204186911582190534133181503540672412016137988418609895535991821212413150479158673768563635517674775655244640522133610649632744379185199110454908222918805747819843206555631707720955837074119088309400213128076936203134943377276942601844655964778763657657611533501342993254177633636234252895094056736935207890836421279369219119607361287098526397938774993942097830352641838578442780570226022242583890151383769554123041064731574783091037632065533911437232065950979900126292028667996314583306067345910212151186374705324374526359280474417567369131756674804125889830855356028287931962152613928899865380127425578456927165687479215244980983552519517193579926381687945191417818884695429466110285003475102651382573773861652957234763384032789828353660592399773017587951220780746266107389684819328732717699164637523966378148870579521535940909533420752503505670970772724461180862127579888113458663303634205753897717555472756721088546415599575115032030845360104201070653418243272145008004564579459186230450593391675116667211060595672064742100871769653471807475987438356505541562171598074530824910681498644101569613583122989941809311805067319459612577881857732339858679307745290171330068436218292123242963748764605103790742202389562441489968081785284982905575149921102144683552896456014494116931405871398853523083466121139903334494687183138016049938612261426225916367876426887643853287111725284314602653729266327350408819991632170449936204665214660122405337891700465865357597577890961480010102656207079080156253305498097967103558908573500406842729804372669384808042491591808308827690008939664411442261275373942995585360635663597630985913205632344190446482630088544598023330645342508191656137287806294878067150408194345137515106206495557047276596981116854590897254211347047716589808094994433304502153636833158351414197700545078069304340814405431780676319151205514884876132109824891980003095521607306356357624058252537973203109057959895919314178161209097267544511764556537864092413546011110398032977827415254824764751254939318183998955303983415196539287536552054311019828109275263347908285295052432563620991616496392619267763933829325012637115010023024695490317660174735802564648030165417811802103937239158923242755255743457691264618615578474420568796281578011740200644304736155617364756861052430379914017246566839136724279118482263258854039137546063443157927607002588081285439508707188462794091344997249528560955136795184590664305847859421316542384322415721583934796344146090370641271630713318093634525061160754975262468794730225197197303698837466902607779229822136003181151990932285491301472245982034479386684111406180009567133064254256321099550139390732272680270857761738128758442215626735762537445758330081591456941119756126274921660850268820536063760189936177539820400171734482903547908978740490725828421059275319670096213819309822712654908797041278517804410276927872839880717972488677560956567942063048252213439119575136906988327780285176437082844229075403158561604837512637420903519563941932548460520201108843302695143183240272623862117243177661936541298426982536231372917493370506072442403035240530049066724802694360038831787458107738477884237289715515238924402000019806449912258561345264134285429043193795506219461052917026641838311627350693777253836931483787960283409142060966715447165329925643538670398407335288497631676517471563589252362408797902815339304570619001097318566855134506335378007290051111977783093425982932742620811709186428067205203823834326675671482450691827731217141210632980093608137119577368203836537350875533216887928287128175737453862685307800177276319777628336625642108790076269096908095546019848805259622253697861748952962687155207411864675545226959050294006754129336009023305353084383085044060381834247670448521411342526017248889847208164704345509178265624913756967375391734971473213546166938600418868434378841982959354755695504786462112655611455057988280270393583966331468874174340324134978458651333429902537388984235636432883253027955350079948993471270579076039030871239799619150435168131691137192999722127535940991662671647333990263798565643162959223046047477900152875231771057209269487792052368994301617265817217588458887648945303287083735212533467617505304341484532780906219281446724741544524994940285879526682752846855882928411732692334335094459304098449176502135459940289536370380851861626299562197753447756854631752079109027396229866645690983487499297953789758758362263831085737953615609432917556084986439797445151294981471652816396397417727795632304140716314625742489553915260013371306576220546801557562999381477567259618096255105421979805922022410182981943671773914281146167884053423320931560495493475953633545296446675236585625340390481021088420354074417344347266920954855900792197503885763709995201964134469517990047195051646494817257579135997905942855998215508723304917443224826262768939688450330561046682699639502402196502788421397662707743151408271478074616017485597563853876031049908989187580161062449123126304764196866809275391288393929173731075969462904291482347906250816009403109991449434503482677920256282353524574775285241378440786346256882685153835381228487313443419056660934900901718757351698103384290632824378726053545711570775048824952649263661011925393655844398832955598956366264966424002917080837221314360026120235080656115638495237638209077537153162684157983159508348761612101997238301236176570792136574540955686975509028042368281029523177664689877522096750484844724091449020860219448158056699139175896741393852079873318867890602027439584485600976314715094770714900223032386622125283824140730550031607324974357645374968340795377009840129140304759730459067496645906169363098562449706179595582368648068698483539304318405254963793083152870108247265593875251238376333326527017177985147651777593216613100710327760092736109002382826447006528701703349719451708896641795678968219918198769527083245646419519124756261559333125376568569540895974114255632279125146439338493217645651918646451991038677799325888769531820234209969099533052177325925048091418820836296119520985433000755694277508460048302805051856769425675681349095670549927774972309523714477820138487984413985505160401541392090007724228852947416946593774191430267714978084109088251106510810636360627976142326001180550244272410166646262475064955818197760563868013261767891119067380538681230723205170198373904428201061469236060241352155608836178571950985653690573796211661489485386787145039819307669018947745983318032201581245469869798704915413559423297101045259219487127511653126471799712918951419957285609017722369199202910591962950680317948597987667870336379458464455083919983103274500351351167648743766929042707376809759466707852385356310541300656694494340036958933093076891925033833082016334867294347034096935690673820258573143689896480151813283258376389238304365683248593160673007483584090409715843050782067235995458772097065749470001722156529760092759189113065184004278366326426988713444944114329280418043829055897578161076830843520370273540743729208177536531774045133707252933867668056353234187521757561533704970036835364900614423286390346994508805647835850994834891511837962831771276526689611885814366534947023882422601098783178953925702021758852476271548159143852733296900441825642166726736792780645052897476809395190767883001454350338792850749530878152391919963994458099589634632474511715552298461257175853000112747447451300693311041968655008687743561052832349753938753208066146093918059865178144418425736008568645294849170611516160367506619130827683003856762346965751311301284403994164667323602828856755905331375709821819672177459502407744310729090866957150604367884624279781494158894965979615324088321483723678074512763257148311168370381457511859224983663094076593049211931817711901528088109734879026381231332359392766576632726003059275952024114633900552374345618686489649330868152090193146587393047120292807995203902306827563542579229123909278599603309469035765938854132031866846761579554794107216780550240399164648269164225089630671944241529800863756676718131690548017675386938582671661521640444592538909844179728478672724290756519578711198202583641604368582732298923458793627985429643557709406314712509179809435909479654403407618272604985483865052896401833708623884699650049989596990856515489432340942293520608520985074348946650912265502272226375917691170783714973079976614095773312075178725146286314923472424479892532329663509906276902409158592521457498677349800365161183669145363735796014707260044846210140842146808663912584870058683114304115495501791607269005056992432274286910726572025421709003780080686037428886535935802267096436627672744788787586803289402575952510319588489736592207947481436541666957494723651730607375873408979058222398432749324296790654069680832536145488048964956503009194710103310706528106328028495488375509845434065487585552801638392061128384609249947256263660900800464959877922279631028532253250572213335709734250519478745602714171445188249308160620422947869750369575721839156567865124458356726099977531618514294545090378896517267195677616332665792761550783735568274205650020779682292063529143552378897886377312799887356295298540238991157374772471909826072877622598399493347854401920807214398055362294282941958231801576578870427323904886071834816384865293946690381682094065623914506280422336283350915021870558195269194481790428768734870750859887236108666130951919211583910335518360989813890162527361526021895193362212183381057571164491376313916165850951487387810531837076421545755622862577581140906079468652737845592981245573464209129255795807998327325537766327617320913464083428713215584626607282844879366738842168928250051922045874593698449555136183890079281423021183250674994296514516447532363198967242671278891870485237787574377733349364965134319763728736853015248626572522195052084383239130459504146462097633566905057246220647917343465577007769544285458705039015808359093067757924157020024291604925582354196696501320206835847084245335443953499522463618100243289256659730984983532628889689307436963020357651987307840832737218706932073981599319312570208973756273151417035501150871180235057915291456144072971092964423801673136866012096010143077010538422701195063029434711955699152719420956695870567753519372416569931513550392166222505384224536770253214115283037749498034849208209377808569664666042790195797683364514706226325697280550978386801912300570929007526576494817339462559217221168109763977073526980524318993450291352181151241328518974998487480794477008355587290586256852290972209166492335155116340264418925217762943116354815700425037183161764888225005491145924337100049896706340793935463068476547777904612614436109086433342561642594142511491514507775701890038019604821401142549079632624947168689743395511883394936990253401310571285683679884933397441427905163059699561740921846398021321926930088457293712194535253078188491527606925231303561835702027132053238440974605668225795377518122036433510046306622501838968985127572244059204858240332136978780067915154791122067712420718674243941150793768737275866010329939760352604894689319927568633240787557009298129996673495481842760680162768528610330137948020641424878267751585373050037397088850496695017466736306421949946788055613647592165642658800408859510533193567718490932387056428041980589011842562837114880899439974757001581888635003794335456179437690192142494972617401426200228752822838641914981157161449707837636295537561488569117537961553559582391135341996843530043713413356995620614722127805517349359649781315775128894961139133423452325362100047353319045888595194861924204272151583348513398601284330233671528902111998043334231432271961650718326918733395690718677481937681179253598836399374661222698726920810659919640632700608307978414418546240383660627256255092558955256549225905273993328500703494581016044259438196727044369640753192203652025486941932197625156192662597768331292641243650633671723764601313397133703426813396973082405501132938229137786181480551236068354780349259500618475512868029247982144245625573879463669696678353399979283591317865936317668829571975021215735725911308873117581804333437832841493281579422921960942760523301291840589682720584054233386369195427673327351399223111593605869074123464778647870133891722930907402385284001383869544688952353486807824785724725961283826965312893737516223582469351596164178783404451829922422349165424649823067438149709086641900939478362089899715473016702610944741882109569428701335426354606268037767274844641575458069658877451958946273948315643913712513972827916440552080357261632804339129066683971287904556645794311125144231247348842875626509492336046240372664476393191515117738007859047726859373620038168335434475790783581185711387344963736115377853158364994502175361533616542416119528592788175385451233305918723010061932044769867566096366057775688766526378125363475565699956236336305635314412597276003306266454407395355098113784562007547154889502782880406217054071987716684854389110300756537599491619130726793661614008833535303949084595646284956226048883452853266395854718366943701914608754597805618550860490646913737167362876678096280891624269818048104503053842167124972657063103596636485787280220957504731746561599823325133524683367375239551608050550347423007023676853132313407113897753151148016044222581461050320236386136690364187114980170980888801145733507998084120379663478345898562801736998362247516244237689854636912370861802983737838979111428052331481717084373861945990900361578686188192778846872793459123052749921956341651024843516202273663417551201164362772177021468018372290299730349636063123752249146510394468882762921945231568975985968962306402379465185898956553296373439571454819886203304310320252016748837497204310851687474098704863671572642640775360205970114278622520295000639478627077153993050926961595637545522760737412565877929108495389363539355038806384425856443143679756152239831381293594272812288887680179957409112777268766177693830109894608271845336758163923042579017706414113656290557134796968207668652470752874394196129614165391163858547180820465749561035726857071925812000543021316614362067348160204033747649405525328921618024207033930149867970288953585250651776635093577035994039846890401808878434718447910141387863702731376036457858928785436792749863563566198382684318749312791159747228079444423139453241374047995314526273403756339234131018450447841403869887145122831722010364810419867272973177502589961598064467557015810423262997173959403682326480255772387832689935353993813008061955056198575902660081499868530316237856109748282161167866783184774955926987069407176197010605752240733652971477940218331080030924092842346721401864931379654041581024474980091072845827763946204080219531861183444577480372478067387899896357481926978503121384442626698251876327025604839614513049565697282580471948524176882154814326054174472290517051481621850276039340835218322274210528067965302832098684115888649297201234589909630938447383308795569213668476774716805052720400880305215640886747661414732482644224455117259513215190960696078778163568821945926783397969346622841493233610944974360456754520666314240854094231277691313532512240898164070098554212647367745328195588713335078345585438960010534569939527846570653568516587470911193031946037356086332666322726464492465272863210061947187348034084292544683481773056882000334423211457273249785190206064000501281226409001841154607237797341323003260436697219858949712439129890757371981269755266300439654645296601661789908631411740393965914236849334112304710411147716541304432466761091588150637075571521326321270770894799727281369958783888182762160470298600045507489419961641000227133741064059453931294002077558501389765184880434933561863348155716641326033106575810353843312065636286397641882563087315007918857907790953117101490057288721044590792736374574671646433313091861665385710811235515476452032256750425814492912764599061813992383243113522081507892174391076834223645582463692692815173922454974606415835721095176499363817826336851782391122252746141640571176071676005939804580953500818163250696810733610050574069180906035050372187840421152503195233126143627585736712597976297535686378261602160464927614166487760828842835201770617970394033498886053505604798597653751474421352507373607816061651997279886516921540224740932607494253667540908145571162064004310992802333838208726841658617256841279569035242150725060214855742811018881946936511970231881887997235059925849701291533946205081229698765977119138594258492422310552585428656329853280591471060288976887157969397366387489059403912543285472076799198716139532896494488666441959423280992816595319154005708083811398808946189142226339444812444235205436854246809991394601473167467868645057782023264046649650639839064195654257561104316051140267577110445908053757343724942395946581081666665285602168151851919777464522470056396086004720072238685871892666954579670983559277587661045484033921240651669739990983044833575621687073263360049159927959144089969339931303933677276338413023974347821709697388897309614531179170953410235057011248340865561622166497037277490740279180569516621750596643901419463091330123372413319250204756054576493439993087483191880502130737656284264819386385450713168897698452227693120643827974446218595337617283795994989312447118048974591718920030305731164035817251454660413644024163380630864855697876363458137598333220187802416033568542314304746897650240138077267087762866725337601318673219744761725480872904891039683360050108085194290477969515508525126181536199216688674389296010482746195503687479559680544068663254758052402894337301972804412717025961116078662103343931647962558845343095030000978957342002651848790199135554495016870779400355790178640641264950247404525055420411933156447733826239957397128196450698110817242899945159085512553796521278419171557613650861790990358635435583109852892002318050181217570000285095932769665870521031251896562702712583210675961345512985557755818130009838798244595814188231910930736141723528869133164805165458709126294480598267425643133450406669759888811344925584555635073013320082822945673702127251366200471204877619795658640722571124122127118694283081769609892976286942696941085987832674514521909593424889442342884451246108902983549919662106031513839497874905466846181192003492121868566601735512603220713287496412177358300171408807869865740333213748538187493833413973657187926987715828181353394178816579825362113265332696995364757215090549535549521482013062215338925435846817208409455798647298888081748562394821256937169727716466526588456262441216744171430691592729708423562050539145019474094413490556726400694663648969407128298721991133555313253903260121970831501296966232172467890667010139271492858363819070382439742422212676970062744584580556280836405426516452977901840254208122092227431089361720895832016905328879741163492664958634788033719763971955505823398412472769332243532585246393696270912025703392060250623705783457414671300333432472358717007848807569487287888156657409015052580311706438142773958556281856871075129676613564177755327955380112478888795897074217485937462677738356467997194908671531483635942082164623534492377615172676379742800695596597017078292138568701885413663972928580875303162943731175473190474970354534896992159256864769144770865247701238650348484155004288870568583431738033943919081522531887036104230270610055251691998991972107686760523046526324590702496002436058536605278965926291345512210399788073033250559199945871840564729163574166028036895472064807907442050116695519947437993322594523515310618906229885328146065560606708852283921025920479079216108382075633299972877659385424357330345805956236835824308594290504957334468498723433158002895975874979870812917288909964715650880515303021341127227768624116148314425533832757310383929743917670835039436509717558662141796739146145971336728962966615576879553741954021410580950535127770831283693823053108213300396613316499719980915905281575852844050088286049577826932647008527855625319734173346335912991624053637640251970543307785833707662628072104078573530432132486241739795611035180937615513265783445918009018311682967709339652429325817967101510067872993551263964965842876831190845881874503713602537151302402041127148401744330289734684560780134178162980120470452315598150985539613667046915726285701933212255338206241285891849405762835664699946641647168172419128916619546094972724451150847448088587840360655072942513600858668929995421452458958491386300585024051576899658711123360443606992342827913907451490653622949899901816052610780175011484641187847919597779245946383656538895027388793659304012947375411895984921402495539051089171291954559281117960893772242754872163179378031143701281602599765394763766058543012814008602009581912722529459939074819201527867994046634068646240496308501428519435678167441916885259076574191421106569589720967287555940077036678786021566173666405936702828759365737524322207673162432407756796228323475410113953995766098431679580469085329594551102286501008294347293675784710492842517560589022871059213431664255990637647155386895032262919939766028682285182086050830539297525626690556663113476632674259599777345474489533782552030112871640115203342419217606368857622466372043277720781431314289641928298421541503731450801497209928304635754468363109698762630956998848169836493630254028611482608642962091423507903371021919387075525537019509641872629181854238019246018794784591248306664208215877503385942985446436926623486665088654457047330171072564164954361946574437693448327311254317384286067356248854116173155900931024589545478269272676870244755111027822972936767923127738856043050403057384127626560693060266406517679938825472196876083500684667893770981745258435573333222081699344544897867586083388744174630192770492284292664301597395469245130179925476642670225177260452998997284827461674392320377012023791006619572305896150063681123662566957011206769772088396204631191576249585426153771772697768248418564795351969329186974776493956327145653885883276408861692504284192811943697900020609429530258737343432091323798742221149267736953763949598773719070338062325237518100768178124351385991760868939941889234929582471688803469276334553018778443854405493425166864502831542394743404679751106753690278248312635404623911873311710616508750671766725596659963151447868802553791915581245038701938107280034621622292171411802799104720957269932687729300037591770412637373335193587700195549211350569256322665131281453731462820716109903757195973634835477078868508150061750324004837697209815464604595383225095883248366619611199609339349982168202927178857468652445846425569044532234632987452896764505595880801425991659584838828780510578116048041477387780431998050878902821591461137341518437451255561377118142035765212523390347942241486548775476830252633224471370551372137399075489777577854607298448333715784788756358494248208704514993025993879610795610062833261840137065188707217851043222906438388370153797244656579514035434353310711225690913635120565471957980928166621488657507185857496018623716068219862954398342149154654660893975201950487709877671305424581505415351038195986727652045880598515376324535273268620649948559534878168946007218897143122173832059468524325881907960666853302961535819610151162561239288699926748625500308344068039072336020803281701400143348020676525877691317595023483678834323608026642451308868227363906418441815065105605877117740203294845979750133184513889757250483441376880726353416903594659693982790180465713435819526525132672335732587682995183100418732175807851814464036633772097399453880209418593044189664552235733031133919169670656178530794176898484181155618500711252131031854456174582274754978311587142528109582574311183324089093443571033209556176640156411987536643356802324232248945923413826043563179870778776002783272280590548095469635129514905121583713455029190228324270127783532850881794710742369915079225625927677519614483529394557283634445658575455570113165514610819261000715385240255368194835810801681087694178240560832350353383703572711851727937148428671311533719809808636399365793110040039991288314987388407728385161817140624314578015223493491415135221992643759990351251846101619204306858564716500740595162205327298150289032758956344982469489334060034472332306519340915707302618535449764539450489188289949630224946266335833142882016819391085442870132473199143769548442356030134724155414736102736691081569057133507042121811463779176647958516381639001883864422517423694443386151404202519444754581431711646712381789760020044509587107902773524250068076498111187972913934736882066622016854927296337847431481209009199175369049403795134651652075394741038818504378053985518581183511191941474985711221534049640700341233583422840306801487366773311035629815608248872234619899663097022212429268170922123111998443949480026726877999988621861809552051239558704796723926340290280744688671794968055821800437481855373894632587340342111275521906121508403008342177383327118263055451671292673791634552274356889946744771598528199836138699676807741323939852446367212686853048899812112770580982649032030271541422853046386493487031797652701323125626233299101124512227479515159946536852895285928780752232760204560777101291737589922292864534368386085679083289929520381416989304318100738094090210356092232416139619678019438366092010526273244455362612301022401690288186360409032025207938622596590912721076157502116788129801062622084664031786556185309586026910130299248692970898672929976954547529369708716964243756666355639628532447326386067842779913290604877100779234458745270679202735771113480154991165594835620484748945548833461329801882324509559476034331145916325830694269472493048903577802075859484793368455289543597567765488572839186002812123994745682986253750082188289159888698107187061890633167521745816522756804208383166982033458951684562289690180642073638349254898795763712626677799503056382154055308317131281337435385166297247636680551027384476219640806998897261318582180816553782629893671174433315317801643123636489720316526621668042528577655737595727928831000276945245660476081030010650955371326643701150136408174507964424988846398154577784267396298307553097537321639210851900300456082051080702098639975112055273213387806967943280104386938058645408541669209088825896921625922173231813409226681050809947226689856335748376868170650680810225059339354674557546907627825153769725768309924483550755926559375000744672102758479712063216328790895934540113215254879451573919921327881718585735463659390565215570729101279256273282173843740542819534844827805670424062433415426058823857584192683981905263716605835742076689441234425285708875610091951807120721557613854391288986467782793656457363883198293204388094430205937268549781374665564068289067717326398596306145483384512866151830240209171400320377465336619082805643171929109958057082414754985561439960116144346342826284326963788845005715789835466645012701067305922586411352573127037562668054648205887157726991575280187328344098403167968622961617267467315763011809477637380543141376316738238224228865176780538532225274476419730545545694443074429773941872078451614078228250803918953441370311927105041634257161098938408668148608267193369478530832332808470761356435693573373006518303120755771681728780707304690056191212781274926942269797250854293832189186441243785526352660251709729061527978269258569229835944224627258187290627567303343490831208218776487978618683006500529240526852862282271725251990684575408061252313331467056902747566651875064549810332148321410636693965410299092497426396031115848301074200008777075095789173213752898337423553684157545627113674257886510137237146062167690905637074135738415635356808668551994311369069362226733184045434541798832053537009236704155638021347829626552178499948552326984465896596543489602389260904453658033120223410069339357609963102129444633026165189144456642204903405907847914438143663406097651820590129071651738894012460290729197620421549867512871739469707140358676122981627305882803395591673320099532392760066519007021347243678255862854821110104486521224626760776445455559534050360676901575337515958019315974002017918006197981390056822046999056167824050838164592424464901828181609885820330003756498008751780046175396927226251363406562621635085541979268977526678393127088955489569748003124535798212181588961814814195155707742480932664566411223490484753775922218777522525425710363050877956934304625004917668845217167019725392776407924550958101026256549661435923918137199511745197595521866043911827655199030636011073953781040717430030520904527740624727098407077471829455963952802450995398875709911244926250537251733667438638563871373008496638221179506383212557856006951756453310697763857901502866247945722750251833894996122028267569851041256845119292978368918365501513574266660487654626728036025112102211492999579234748513899821948987336873764274066214392534083150815953675237795293342877422214098229873402316400358086795750750728960346591068731576249853541822138399556048182284118859727312803596027859098813019549429336245694105582863663703157923409475948221488277462808121049285525974289574733546819363665512430896528305429543420376157316890838265251055094881371730754518073398615051066185910263441195996040817168760468333190449731677979173690335917748292345657718132110273601583936384605425196252075801693244750872729247670113385266095170998224204379139234703418156736560787903061581957402289046123660220057120836568182223248073729001432569972961455522252007763457281380707048296064197331543011257642797370693922832987825869550317803640203460656330463707861028531935032057956890139595369068535408661924829837536316056881240256053946747527632682059703782992103967199186732611885441358013739909891123432106639018593924952699457789435881170459216848642028879042651945534034558007589862876352977846982173585397740178348055055348088608914496867252200179266644523190419453956910842196203147357160190483205120257734262162615553085560147657540608000746978177494710097142015431478484420627718987229910988739501927077809606044285376800365985437531698499702844090250146065489140464019791954690459438419403447476816488708225626971775456892305278698477692429960486635991699831268554908825930446227766149119099471982727497637243151456151826781658814430753899448489699100314081895177760060185302288979184118894930573419629033562550465210446976251170089294852885492462308222606121120911327980965801983638784100852758401893861309448884467604027598580385136940610488791218688057549591411362776704688941502623202849465848679181616575988913268214698889250546803731335080513092088956312454040701477923539297412831148157395408302050519755940574475763694350023032217118401538728766481502377513759904412129852320348226654903028684393628284536113764198518721283012112597248451408759979627772369156071047041212559210234840990234625758523007210039098343393818591504487142815273175748058868528583350137760486191053834034655867537729045098196418598943125526884305790450730673361613843702220026393370038564722498998527095013943574334612918443599269190792952102304668696115713288050089116310599947424185468084683964767737069549525994729951092772503669107745884814161357047550211961981304200253824136691508133772424236044743360411199361845926118084297604488590916196640297733905953433949366123650830812067434878203823745452095389353576480229997600872172958230537489745262088309595845484480051756937774434729241452491126817374398348021700765539800431647423832475073817080046123046189823355248707441164717904305446197576119025873771578002694550706687267838858545165564797111022018788997725326505200828532955367339709522513447336179798236109087358659544625411932806491424070686240525805693558810009805332246513563899175983524130388341428254722695705126387781737768921235301709190937441506223334906806717439758586240465676630209689159781801434120409692945605604910427026112132695064794365248451309318160262816761719873233538198116400043606830152126511613135802157429284512941119271178060838877018366219778494099256755914033052779860313180819667976065162573910460056123804396973188469404511496680764581267044022896316453709096057650358315868776689942226880491227000484902667315745120694892214618971741881648028802362947138704700956889389779063566027058318152893767718489739494209467726758171766816256211032809324776100197846162328234847719431698302562489943212489789481517000777074777413599983671930965043408963916656705113795426230260417633411627856545738307657009031193051136026347970266965595312857069557585746058386144578866997781913298827534553702209235984065324603315398183446816961709800824154643812326092244919798460410243984596261262547407003697064269288109424886916829820161879165598396350842188318047170904175503170667351298039254892188513013859365796789890704624765624984466713260132173829784375457897350964834374550861097141208701427888190550012531969354123229033947672070700814255185231593570379905999465440275471349226672495408298360962577093209300403202512617832960636716593692549579018197353561062512363779235718222125579124404573726460029699072456693286336205975540247223627435632889720580790814257086980294397537761842136921813648614668174794460111250247674764213286785348693592963365864406560395236959504014549623317911753514753340120998685321618209957570255806784802601757631054890503771684536100871851258912324665578194414004632616905508305237954644648372512830558342503813987397021664501593861536805422833427560079569521863488635841962582801967098635839756534264733531511601674351048800454794231015657466078774945692729526369928713574255568207741059295694091678645025469654939174616597275910934823126887389799871938613871530446239467845551710316824749682134097747443465056417160962756310104406964381461352077776590187545397289889554776934838391717930416520137650290997828887746775673105782505583987732812332971694475008546750005460119969569469188121845506946406968833680222160202404147789381256131975798824540991580236786882670909885275567360665892069046727844222805231964745156125903388107013976306550081770665025232170081246123705123214975858811606834563262141395971689058785919484636713060561610405819028867482572676802864632700298153319532940110789619754629550967539400262372835603270920287139915178402765234133847962486869682727506241603767815674734794135550331928881029031368507938685407404118262247060512180155929769966212141657365082744468180162512335085964478039320586014365329293813679496738967060217585184593803253488505466828694478264683952258021427695461390632572753231503038493778968873332126991416816912069400102369637200309367893676667550579231276212691466338813197425094304760772974495443951745398663955811242462870852963283323737206085183605529559644144305632446158683284485367876797056797535195219472257771379610180638348408081538790506343083572937732061663269515879752021963598959701227675068380475384758054696655882494039248301382227840290421661086622018146459513548591985704006452203082599441027381932749343363321375629507321692062680820240310109112789296428914647940040702700605100568781113542798448492209237551798593868128635279674446908974866257495616137221606364197781382842497457737212801621001420735040244705235606732346661064224433620180757044009750791674573071095648777515517313813619559356098451224917736522457214463390210859453511725378865341564540574338527990076757201366834005436038961771635265931685916934224277238215879826990746828848922081394398606529621064161820987560563160060669490433543833964566923349224425724299955680207624937833471999777067371150728311420909138137076058928477236038034259843351952794690509317985178126134767326086692392475444682596095887138848710622807895614285025459077852362133623573283229444350360438865811747312252170894165485301322914364184571191135093537697964656274770754610203047272309793709321068813973400747123286384945828410697493448283146990226540271528023877667421910488922977094022422293495545142122417526658268571061032007674861750612163125631540422664363564764374528347056493491609574958776845816638678420095295877140658140660948822037256241289941438036965824220895621100411698086166681639680974761818481878747858705997535261952333824218560485550420660208236999450560401204836112282375284266770659172114459362050729108531512940513693057677650817140473816048651590223920257071462707313483637222863717544810781478766890118313879343190690487611223630565879938114094788884763125395235927784364484026567112889813690734977064548036505264187129893499635890959194078166495519212042996748686186461140520106322190730915381505121669535256280275003076594198346981913764747007399944635315734162860711172062666787764882639548057514158636830359530876961008783978394983212963203303480920867131454335080433373839410322775302350814941175560087499519391610453546003837910779117749031254786346815827320559503350517011125013687556919411374970079570618203868462802082627512503420604877460250946581873616140832859172235470913241561199855242587528340681873796066547754585255675011382776117182288790801014627436160063516335489578464117545076361723391483135534349333369661609157995209658760481377630231755349065142230828166483498707657611101113640133436137308285733872771935310720764229583379659660998485536472443356463376944528493830218019463988692038753685888018656742925615968470652491455396676663891500786025537529272570948721180478936237518102920739693735150858479250529326611132479986575271434363976826223510671635459272530417121573050127935507183173654335318724429307055769270542166776066332833317098246615820165392617872835288902444362345935848683337742012403143237064448172852664350679945570160956071521232898632520466219532017136535781144234687719653273704686501599023688908830411424934812518444841707149433347305141386000568384889798274743062239982062787670245539190310814705109127256004535521499072799462967790637788177825713510578570474147879159903262008547468253982228538335586752329138880090120660429927628617163005749253199470968864855177245257986851653127479956334150289808024589107270645581228636657249529517251212341493512742432589495620646751472487101666194695008252939235357488255694580155839409831752713186390566152408780204188886514489482083805079374206352089035156787212191988905151679787816679854983444210809288282926252693697366875134747185903553164236890165437526034663962913334897726375314584586978685286867600427029877349208348355792512996588313733289775411534896580914323765666405098969345708466537378588837914869295077088871584436386129109026423279155868988108395906091253636807012316147129067692653215048005950537679421700090012853527104252176764218665987888872216611917035497462493893282129374849923261501823161809303756400872577800232908150340338036721393154582224020397097534658147632253697012175787902753910492729849769168000944695750079558263559996312635407399657301885444780306560734328773437209396871486889913150531982642308022909604920293296915446106952095077316865927216415726322700464061043545314725687003887606839132665184490221580681231898943462302882846373051218960719921291258190943131102563459837960153974292260724392212377173367800756893670684749008974042756656883878615787536745220402620504486314267130700807502825498360307316233275077321548109960498772989859282106531712169715868881813426470539802740999116195091376774528464915598080269189118798746652349603441674882979196061581123717740969968338488799735225154651634814702114604727202733709154344037199003699385307815633155274486827412307856239251419178981692825156440301424922312038880897506428840704426850524986981208823464753480733920248168524619673138932091109341046778250896606496653630427062208562616399182072789682022078869429796326038592556913338807647293519093558478786984062494733337540592924214502561059978252204580726594385915813640288906398195112500178566258088727433439807663874869914482405671592870008645805635188395303921449635695866183669165362177364698653992314955081930833956000047133581377391372799503333174861634915311278648165414207152190141588088373822885615506806502993208624644469931451007403942105705460460610922887335574841708984761825845410131105782571001722263702636482584467985630319908769512103059575433728809342714438879904795796153159492151612597937558100028845872439233996375160078298623732355344278064728705694357364486245593140902473926329099031307286220054907310840052683263673357297692049812798803730619450506830190648218543108341434838168829366203801738691660778259370164704926460201437326101186948799549529459370690230210515177171048802763346384247121300074505467243629019588337849909646785905327313021235146479621509623235858214691788095642046799024202432792830520580628656490438522931604524401077565993488619968784639726587203468291153925252647359130473270254264485958695663179566694652368377143156160870622867226655460777614283243040487391990415452848819663169954582366552512561104455892047707471239597435006568595098001225113329100101534742912902831803125950028119898846449702814683625782786986847230843301703379419829032006106134249071864112876652932107664872093426814629074691067866559067352771692094667187807119360325771297081689025477770884845230675407136129095749934292911637882743224894452422803764280507513021241852416135280072797157487489937817804496078803444264152629799186829603158919548395150351067569791307510440981655140227580185312847597698074256216889286948128973217030824366102322562285147283841994410861458329797265526674812936299828835580907812248853041836582082748657348296049154410684001389412250946421264639705050819204297913228835300893073757079038604675284157201379443248336112593973028658950209488156398931350635749372929027222875881942175045412082346766420657089713358001822344270064577369716292280860427716871344958347549674913147873280597982412026949761211184901264848952624631794917236076313479405598427546053313958718849460315945507274981190826199396947522536897955995265125115504417327430976552469247666740909781509784177831542423653209111350073831524034570031225966944142690979075475708882968954390566345489886713403760358628282497822478204144725685426567051178152616961549692097430700069457175348144208671827562508476426192760319872338622939183053983094712380808513740929815600920089398351962024674404935997682898115813324123036618317282052977371369062943345389059179863835877298702702156216583529014342988143145944168245165782513757058608526977844730002432941942561075526652338121050423063000603228326437775075870547694730586521046570652074750010885829858367200393559658736614412638765064987281231294653556816086840214888258093924239134085559232509899957816811065631063456543818289810524453479445512086466798925929247601762165870630086631619276653894765144579508197723252071224716548410375659432275535037183445808773098288786582576526282527043053964801771382513010478094453314067646506713499497224711492556803282101691991376410424386935865659925781061372383326119663435249821612180365065202173031487979327873137775414423037114434669900070913570963747209688318194862318019613461784084087028107363792767728462529246497538614976668633034934256055865735325006081998870421170978286541346156527525733865235909979259504683542637851675352975929637816926693908181958421596163457421480361321518370180277935094035188159530234587225707323153715939037566248132787544156142042770373115874413238309676952116056413863975743027053565555620568978170976061980178833635628405187445315362191451681267975633413017087030002846276388966629127575667432529410273847188746542217661634357286037707334504492349460229888013379313263220280136335391868343632192246236346536866028937429622099489989525360055482454321257801881031720337874733304909857449585998164530633461775880747974137539801496667771227675373708010371762431352267606708135119005194785438815873122575015787769243178438648178412178465759035869870303688707744973688184301134755288419638261549787735949040984162082421391366584860377808184918443133011945505027533592422082353676105437016602856719737715489257345578639539189418054806179295229707069649327615410715417623750873479344454808568720189081703988614505507274950006429697262083467930150170267137720967100559943393232754020894482752907694947233805327569666339514857462763606758235811137420222193831043744274565377004118440249583480793390735961831359676854957878820146271154039276812921542596301247768550991326467513699142181158693303028920918842824854696124603258301483990679351988875926120573552493261068201661034569894736920678096430704973176797411280687496868129965046531417371815992799009961809068035601194573263212688100124514142630776482082554237960467358270446742282607230782811248510507704992700473823483793724556615946387456057697078377039442989846117136133066487308889119637497709543388259414163000027125181826089280498092051433483634382052140262142243256370975483291024682793280595522224978211219234938813189555803904497282329340751306767141682607051415995151447278788807430339183272626698718950454152730214581939107176711731626487416226002605752120703295904242140779840717742591754113051463112225487109457965236009725689154743318198463697004646708416490023185875748061569026605650452468680077704160723107014601443424171968651865591150927345470888599374549849875790498911898759548184205038762582526277403915451893533813951684564778700482825517742622590316800858599513360438330155339360766815692087511890755686862174446758017749902301448211550349590119789754594541042375817861512723641106087294236119464899399688987548905554737820106084413046537472589560486367373564404955781704040166275068559976775833076535828178350056403830321084667374456830079194372366142803059035028718445350912753691517448021569176788745251523751671011994601330661741794200612947202961501372654661449026226227083376188316213117174645670420849192193151876431116639033660048014926596339090419171496643693390102283731382883752301496269630321462901035924391218343985280361380787713529710399108884711151544442215399785863276189717262285897429602569457274634987194035444988465562312917571603954624420470834582890718026133036838856121954887979198958665113090149635949686126689999626449528612858058575537990638115742516712669981566912708643885054907071754432159236062805681628563138473175695452904338834327203597884137455663050908262043442440132799312928556203800242040680505501049298413197507469711165915669881094525105602804984943847621350477580755797401842368374379363518126382599065409184590502798776619313531148634815827841497649925676836110698405421383036667622851468687966858671650380735397777279671951587130822349328810784793181605144319065974860071045629918259403787804998882208968266528072330489340273888544797441395473228333466405578399180879086172844252082927496130871845844046462270664009913408394856606713400242743506537884172647145239056096200845189359208223955894082141391748120340157609144836797268265524531085559826870757636549801025777221470852349517285832948837090892615996180335547042390271824551714708315619119845060930891346647489634509813677333879599325442441427180744155291166280740160209911437372533539448865646911371414635103647299464180514726730302208391803023218090047535838600930279190251679622933518957231732749453667329755927773566481400205956256500124641712896782644478879091654338419914782803982025758659877563349503103221867604526918451501966326935666542074801552227533737054244017282422361465710301450000139987852291531717616187609939323132866243471038964922139761210458718913522609946144117763202475193351015596797339168498372389304459268785527488193828859534814031568567591715548928678460055363587871916463423717070460242052020919751009257387561392972260776436114140918151814235020310192188574603836412362164907479546209367657120432995595562688545055214865994000244415133767439690673281297715300399973592253872483406729626444086039294269034625410783955519358306297004149868477239784299192453173451013467058943261097477930090687974638687058322369476131387915645712906554626684905102389912807466727512044688369864163873445748537966858161327110780098203255981979354253842316386565622259953499791824438076252396414726154626385959635862730903514136166609385178930642418968990207143628935189326816006009235746648240633119023381924083207387977824808584057346528296054526830745337331332200210476664164822484862700626458577174705405222037287245418319067679472204280451375541440312811487272695226833994330592516164815079370482289504705450164918103023030219369777939701133876872863011267346901637621992183155208658245594558803324801357186806377131562430831941473840645494592928277626691252824707130145046128333014906963002317946871422224006682581844835828078398258158810058166231253480379635448645724089327748127494669802200499408280879427710633199394226249824845923427687577763354234575987833873387839662970224009209539316507241533176580002932732101304565848644195859459126655965252334755327543497367868494647388845906764378982167093338229297194189730440999822447993709332792083227185707344379761774782710495470661818380476494050476315119127962535511593857104410130418713643511947479205394501197112504028945729021431851466867487385476491962201544739570443111951427429701737377335845326790325853374378068651341596201523316107348720348241506329223238854332468321701404444891218994304325798890291834729940616582299435313991628240702461508583777876855000477320259216840964541797869736482504879952263498470227609992123803823813184774737882349182448275400852525057008012912003471147277692094724852034982238877633794021768326121771913903393523281359041731676716745711570022133831535416076343675504905479049448256082107556780155932936174602883881777743506968007730987697313396533890456123099077655826194460129154138884344914890997795715956078132133803261151574768294220269087961086425454338715359666128058916669207663886544910868538721943864798310988886354240838717659466379199891269664189652396731429897642041154137355041123152752764320135448935790305826448872705363942602966630350628405773646620722261806988651510217308283913959053521796252458378061203943208729327322845615168111145841597451135077227568011617889197465555878209373866393834050112664396907659193451747187135970070082125282436757735156500637415713809256292996958452818284888500443805719608816538819970279863327003594097152816478719700400842610257323554236310179486557028891102028251341883802281528515628702951872616705883571548759300533366507096681973309388588088140705491786024007256165417699095889967135320272773352506781049711333286666030800560271134360925112405567604690063036604699760861675709938866697655371447787786661461416578561025599486379331468707623322473417234737480457563653527676951814228870995357307779408734410437347369726620374742396893910051478742954304325929802950629566620165130427149201398708243129738551966388812420122703028875695612872274984584582690349379186704916526214006396175898712224451734230419960205109256741009715975302976112795735341125831165321846817049174194934605608864943130733629071663053694631105241684774779861037356584937870387141087289672396018305412912966108959703855071527121762656601499663103608044982190159263011929527194050887930594822900131401453434742795029840473957131896450973909165252055839009118298413816378223275724584656212212089856636974078703298245987655732959089638099910390560132951814544584787223536694196037835413975046104452908091405652951949967647423109432041980521977291885008585528385715314088181790351704317831341568766484255809765051065198394214403980505128512822623332048834200258808506380712514239133690171418158800416074123288744939557533482924658042912126231710107564674616411104374545042592162224446352536817499713047159359796430854085967080967413121945604509923871171550766911703364682516381852635362385453425026130917669949223313750016558322536473439522581163878894249114011991431262815436812965239885241149630761509781943001814322126051119714710962726734975412480098760256707100724786950733275058346492211632076156174675144492614890246878942419639680373881222069791600106294776284544120458424037931315874250913426615605015100436334115794352914218240496018026592074720891710975513607731063578863047167435629247189302809496423476052699352029563336339753528946091982457313956185194807344883697686756609403852343326335469978425795801903090565509883126246961272435634895123735537536985748977890722296548513812146160824205493005289000795763707121038436565348350990363298270642389099332628560019440766126591460602171113266689426103496832154205275431366388645492950482797403351300283790804571990639191108090229917202568084446334651250370042722866347504252675987604072961640712516197307562457035113559459924637590999063896607609725648316887196318586500039990236170501170852381562705835043616443966918391715618400847417974718369955911269054946265626940594007213760386616438838549389505826249567519206134666570546999253044077545710157601958297237747003483309684382876359024097746273537621984396223578187540547946737430093672860533532044309955659426737437219476631137197748571321488941532790389360627750518363265589705331387032444746166089309977609329871269921373191858626771549171622009367197223179663802940292137873623510229093765162762329870539627308665762841614979818307410334852609698312808199393707025143871142350199008715342810915487558506143992844014921628134029040858491578459912751145393406239842271203686667735145340027897134254654087787729340020446639084073316341280210544116293644691008191065493740574773284627452120569390540579708165081968139749903899872636580157833808605650234021836559855326945825099849707412468430980069434396047295026780356120743111550746199574967075066045746885666544367734243468286418946021849364382452582397011960937881568988950379211990283915340171046586225182421467962717030100500671610203669080858909458371142980423646996571769010088933880908075792562059670095555122280540415851143602303893768992503080915161156316199699986062425278464736064640086121237878300033874033810998387195375592450996171480133893941637245242917772173328864746709629590327121490637295458213524422163590149271852339613513626695500600198839075042969852218408117980942557334347788821773083776429951454647644574715057469322556114907327338492576687378269673570035939984066731889003685365079024674720587471889727126663543129176959596276534882535780697607948307308044996035942040614633814712070773811210308008850411745763717906259477998630669987871104863987793914282272849498021902856418306863433349987256395097873015330038717409940278732047675907851383586743448316853065074632843495989354233156282947390917825262572492800272313119389424226442777935658186366779223217184315070355827768540888426393723642276922638479286771083740899788948410966790558934445130532221109159321781654929278621381288402555193250373180255567236679544072273370712595921424058564507198686255075446269139583315631580762287497799594574651081994762785287315345293758249012189875185412337653015013343579641737260192336394638645486661129182119334215297313386053512344478856941669306793914740469726116236896945831142437957448121237380921978790228619642492052398707393823359655307805780955905577711398544137238555483130204951255748756151889702257367375812148114958940735597506550392194340523714096652614091037260075680030156218713640715332635717401996567289877658606926961801310950868913949487723578342761356310458867640287898135523886502790688312038786082043699130138709758493603786188616297544507196829896022613048462599676223859734660772825243936328541672416411534102964645307588301182195352221010703777916914453140337786122979490847470284487071681479521609345186836739326250856329929394184362755008062996452644465078467075754406227575978515497518076820315701281826577727188995131360048408782413521992460382283678319627474914759453852708248682691257745901899224195692603513467478583184929481582211705278854703684866073981503462545824016304131323522483692494180910331635374915769847846007989431181042836837942979519438913764105499058503865140657414873094693314532746762203075462111976589769211552885069584322771907944257314540881855343035324705554488260130978175462861891016337453665994309430444640843360346931266571904121450232749476107742035241672410319487316076313330566351302881030603313653821161027820559068967280527458188742895073619445208937516308171628822773691339067274957482053875745622826565867619218112396988532323231832817344223892860208322877544774801596673573033064062285548848000531179998599386552064587107604315689651051345703857988484051514485482971542741567498845955652889504373792199504480424074293860535504898664281695639773909875280525946128243937191752790283184798838468289575156188994116736639042236197238773777249604461643330665448911638375067095020003501592653808629476720864964164706124910677478354740102086946348135902514833463834219820306241049448105292678011327288173488323717534341628128646062475999990408466398849724085237603206947892314935516970334826245690542936087497887958329214535044697400505730345684480240282517420036338780752745441637555711695862778568105206716335523333204589101591232419241846674916402823774586590577930693750792222401858206703719624156688078462211536614064417911224077918512553580660664881247701241130629857670580018957495208767600632341899435172020785592599377479423808519724134465993338293701233573567362506853669361771487475938827584238238741664374335262077380130811886668001675687824663201461598238191232570614116051070406683560823697671079849483626367413851319827992927040989070713052256788820876165235494576903583210458044769736565003096396822910344100473263238365981368226237875388750719741162716568534011769425947612125087494165294178156839643785137355676188057904685900975858528223128999982222963981492032263249231889426623051816789300223276740138077678782976836637001808833790116412294962885267548098889120796676306160154552941438993519114441637446164914858197858153036092694323012668935924546217809515249772874599853801088643265224065278362225517464001221714472660450285850011145895482119243874666237818949061224457870997691583473831630686673544748444359582818987248873784940600450405701220327731396191419451447800951564477910484127674583692524544387447221387288015629439809377989318413782682872670971667917490114512022471628767326526290743175259007715443336595351385358431036633930743249623590400806156666713263802366727282456961468919471856508258982157427534935535693222697121365544945375458033833852695116270174289047176514571023970945612104017155650421923163526501193153858938017263409687843018080817809453377953051584746684368425742455405445848234119029647792567962242982281150857966515190552811835113167908175668571443141188266465458545879152648649358001443083748462010381213149538168361452393913064504098511848350886635752386684393295104574834916331457292259956534804888677641744285765925745222055956606650967457297981174362011108983860401089725184117473011512543209907488954122777638490930562104330238850692383046172472937703777723447224780534929411699087962731016509228387097554349633903460331424494366146615462678493385279244019711053269595336579999082761012967294984752528412791510571122406204583954383393506980338676652495144409886135558429824307866915519386732610058607488931356397309754804360229112883549563831008197314966208303607265978532669656263015379613652513129146376443192027454947820144075000394401857618990635388297195049999959437994074697786579088595995123005558598242719230307843063971656497940640316230840312823845953097336203263575310938096897261263460966039660418895544327955107127267144206877065023761183040740025419812955153263356702112348524957817038335633118179009720301204335490849777185821404603154731054059245333582268124249025580899368917051124968616925349100988234441557254798999625018210640496717915164415558372376704766078908423847178338816613573562765968988996975890357773378200424974216265838059718459457753436119300343741802328618251166899774627032595575570145850201236914823295157659264418391218443733595656188346336131164703990722227507367591383996764494119775119223709168033122200135810280791663990006386260038504173652393215036172025979674946450354511110201843563230271551558680843673875447302504328821658312915387476278882538587003857291196104492248155929785486585203059186240468115983150259174399315551340327237141622507969883242084908192440721763096643042025059632251335001862383770808781829919279264881221560296298287329839978786596225202359135784803269598518152872157066603651083217245288350254377552846484162380336882841831276777054766801567474155344700149056159486930810415961798631446489129483618371525012213984806805502577644373707079579365605238672737360807288895950876436292301442435503377312394372333530379073434933766524317989146855611918355956343606520001689501228638543491665408565462656843412984922406098436449322517611634136117254710260709990539394075773959199798867087272983665096164767853239963846912132909975759979796337516752742796356481629318026401138626222014673367159691712661752797139953381316125755525768260611387009690391528642996574201271117086697319918810984063552940262712521251848711856646223830456411748446851358209846741609265339029647129769734305188663972232390444473957511983681375154555623273571645428238250543422183332458034683472214227115421903733311330519056987855979369603177104778733743291585511665785308865848773089283532443170009199840843153730274797536938634384242278914225072875487595943730999633749344135750086248854216206685607436613575825941681240459023016796747669834431589109171525784323414915274119011300964802565228539415753357886294602153861814429446715028042021299738278146406675574336649480827382380064587853498097582081386106647256414313281124552642692770182879237056447380394783843578691327518071022799327992015046224012624095734017768132553736551077294517616554041875169506255231132647520951549302669170996558795280154434231886989785746412965140391783104498867477217766171144054713994440932343163030440892875747476528552770432630124496913974844004421042469029186730698851219892227748490433588531355887192797227562175631703911688589516417123067622178788785588161202927678060985023271842645363799212327611792775848793524310349805933302460103965132574398829965063009261312183819128298692261589831238060490544863665150455092372241911306630422093673623897237000151609830202120005927063377789376608581203110589963641770511362608453505514375016975962403170154084974807279434392267607212610950718498078712680395853340092872146590150519341417398163791259938774888974293733016757056985212534045625251705770013537655228517839552535502140679857992341923816784093523221942454910904762550362184639814587912272118264260179066773407772699827360763805804408140638254767741760763299688989986709299567159330154535323140001292096601454042463815549514721965620294933632599351860258786523457359839357065653601862000833065518133809471553208854218340820299277868904615813135801826801991279403306105889651997221271063580877695365734642195394974227648167027732666352900167339641707085040404900289576518182232392687316723838275250010511407166306807913851633622667684555898792235314518077006447949726951838860393278403444642426122654433201464180389392519192837452098233957040556435231979837874916062586842080427289388952541941437990272777776088328528606435999048461531365427138725101410482901470404116616031019226063073063744672427838497462380323812315662328556777820192179962347911456213066401953971214299015814764356000395714425225221932373188246623807042020535019027497394654761529175353834968793567013880899127598054441787792205841167829423591921882059137382138814792543864626283172078557384789787176689185496668296678612166269933203593275157261794430222514346211880461483777915915032177938801247318832696922037581990952216008229977438120888813264427706498667579542738629116676595587566324582733725654508249977488902591883988302888780258067853360502208368426369124713511159103129724210798992597819652547435227381029615645285439958822829121852998928627862553578626627859352288904718610533581026033061370258303319599860972509272584548471859726797916038346254059514100910408007939501940841627542140562126163307158709755807932390817886124596029787316354120830433440335173249938537810913700617594258454615414611985867447721787254471484450189561457488679342491728971896337272540289869449680150064051260506225759355233499834354413347853884306123137277555823818682099818393056535323391399371121692245939466063269413065604747792758523419722392190269045867508622785165092704652150412171286936373302665072433773846648681787597474939533089051608374258954400923215109864347290946624224191676566256572310390251679947857227594262024534551414636193107423540984926040140531364986994528315401503333239925277127404723241439847663038385907661821296927827334121423366574167806201316944235181710861261067683782565461790600440244283600726906598693627295708463818575313692448129487627843092527594474164514046408703062027974196648595099233807829443773809208325728139875309491055104227979654806644246671856476449482747813020511714592777559494079258671467746741888426491322288729891210217334244495368845738282874908619908744810705237211222947626065090110166586438349114077323819515082917880505643139455866811524793628300472632016084370660647139181988987147471293253252877403722846336121859918300903882451908501293544306542750508642330960683187142097687899071458458382332564271586473441452674810777834695358475851937005980624002725493912940391041881035285774271336997621133008063876611080331494018741617952159252427811517256116180736000260271599730352389129227786031036711693936570828133328039049888814826926336631346068470768937958457384526469736032034974076825485641874245471093909630478862008367713543005490484547217011461409341718931630771366039206117802512220733906212665675243965453400499632750911517688330557555738663352835673510464826450996275641196390646105488458918312202809715921519232861947184486236215631979806193220896900915970436216664306113030085781993197558642281332787031566811501149069505581832296738129354725802959408237429572417107115434921094800520904138905381330282756461467002770788229983713338055674890053646092860249426834676912333479345475726691809626747971162506365056197944652816440226864831753659793399799262915851300124240675309815757889664942532043983266354181525031133710788841138117589137868089449637940348608277080348106553019563931950785857084586194300550192731528480531896736511982510611033582789272712317859427851119532652104898144186291097719715185826802480636842737841550661327314451236134742204285217836484512778873226981264112054467284528249399871983468883951166963485742968415968911613079925089764921396488869596888000425603680259245272689533638647355894269458051714891918578389591101101424182080257400229787224275418209390661233636575343062400296691739079370955480185039056388270075610771320646166496533070081375188796001130620929763354938975942694344511131379362033501315198551245435064012825546490223619503050668379846156154543557859841306482901932597627758028466786537321910417181727041939914202514290850807093525365855285522501593202518905053480732428692229645780288084775071719021073254652111011505142853458967661016493584672059039135488505492708589698964673618448613778312514612654845181130894814893096262464971209744632409922321830294089258655332132484238495555352022384745533276375139953744453404288122224570022001732693410338124997249132657805564496970036109407176072950990294311855628730594786336446620921905999572798958980543466345816679499217730420267523327696692427607330516726073033048592116608611656900115240432961225983071159086645405534961376894039509349518335530961800643646655192734654242159535324792421227611048022713054966303927451162043639571805616568939693325019087569814251099328683342777956854375197310954793357665725710505729942475604059906498600717013774487120873881142689734840201436357326177941581840322425451196106420991287714134217531097752392550814598878003730514007169785502179987587448514977129056694589600164514564030409457119983312910522097603937609278287136767833095759905718095711704311801094003609200216062983478897298098832988025027735063165618503679816077490358430108741383240193809221082355385016073187982215794424384766214252605254780281964391189999063857885133944808903740824158531876882844512761236562188953967298855175476372055785193743691065051353432887955374723485203431054215319842486359907648611841178819669042319754344996647906997706860886449862981808976648663521574910083701241645834905341637643795872345707540556430931116715131221079168186249444330455650559601895053690743527967995520393705615818276685359394735181084759897724230915434951044688688102825665210364567034731959294057684234405111902666363524724840492907652895396346278494157770200538309860627062473740419906178549490444308976221947596102364710113004481143036997364056628052172209257801810672833627066821921371432078991217007885426097929680912990342631881524664958190977746530295007890110800769769456298441291941119940550699206354783445170786878241876964574830557708660129239780678738207235742365076856263211395936994197941641823587287656779860881363648682024238211223346130105892238685856845759128912709198318595036846496278399511705764108799736314702758444684270973618838733186794020603361160620860224092036484905590817181007257346393008640387916874697923794751506557765947028847663256564392024105428155727703670430583436625045920456297603448577545274359539696678390651158077493263995651119891190213426106866400829993250622175273178232737851273085842498077425313819278494406576405098167096833740036889054943184854851277046990778515585260043415527442246400016088832759233977603027868925238313416222223324099422103539858718519810119492355329627295880446678113338919424828681196710326701625317744841147605549073069015801005692984571872452058772008913411459556360853813243700386732055663240298913817901379930317867872719737511656157844216029542758515785861995209591736783445623876095746374584609762493414773342268948201997545516829247259408263054031080505651434561103076793953230344464501175527264281716267501204086982609913492106471765109565782650941973831267731198768825320603469848323741264412009729976550487729293153854566428373367012866959600178152083129303427752373291421045414833854168233019027321244147603066197095940009811776843203682760386332234824957158374226568719010552976112365230064019434120940210120073870670090300061180470152707246262605453902463507264421170671679389439920533959530324462696730026387576141895089154385614250128797180417442037659315401561514650988158497344193942902510496657923824299322831938907589637212700840263511434544749722394219916158728885100536784655561531414984287008284774358204958289361992376959647917621803856096970118476323063808683625882288392413820961799883155370364484851781991209236254937132012544276714783504486284480144306960649187257385231892983461342176593944375815121657445537406087458869300179480155484960375797277656872909162105613993969235836886770493761140762177581873990126484885006821595158540808696820122320460659635685567992079746791935234829903183326149195140398269973355013584631881724489546750034018229467167580241410375771584610098421921224897812175096163400029305885384022105132634755523095400989296643403380943499293889125833905904977860626407665234109913054388918202512074044953710527544556787966619983761763539265255785633984745790315615844142618367621516444609465946969769550393982212925934667094402650689885217545896209314600842390924719024086908623700315825146530923945984509199834763789700571894284457902508443637226451228466314521033383969625449005293193567183868685691125053063558327758497015797891483019926448668242491458241330770471402800460753625181855261427021482089675742967313540045208905519129403508309529947499102592008243305615640248537030506851565515278530483888015866714797366386450979819692053752580365530170562950422215142413660356717932941483999059646046370551898210710627478077829504697023744861782071634218007888919744884147489737965426903669259722748551118785930602715311032334599240921864748232579273926100267213459595090125327682634043502614032352732145188769472180571524905730762224666777000481879904981725279246071421190894270906077908074928385304966616627507309205741439628923304227236258932790907641725705256665441165583043857484893513225229711798465094473295729595268882152546303083127684785988098779090743869766244668763330335213715415441274443382210217032923719929253548419035535844224445309707549148695137513856149444429967649240497460118654604347588326765027913085042563950164435857294839174866063209137828236499180792029259257165885081444760126466472966106160651277165668211152069497595692623376193043040204822080948935304770023122694637636283863127715660039997452622488292467572727625309792367484418923395380214403474516185062222413501650916523919103811309671665565270594003112081410207606401214015972416055924595030102554229709028060928439231693338399214717126138460461599863093900996584264565409615017241812438416039192233236218971732129722267342877471151619441372533499299632347455967018609661715052715809185503695494517076287068205741048468154113958532686053518554659210673625129911686497030747465905573452060839099547617282373400074303941189657692295002152666577670230722721137227155951084117949080549885391106208962101905437124289438339185483785716020828444078253774890481796166571557202631325660911316765940144478980954452355622162556828429660691898570151933062182073954864330375329980180006645642420586371607260819073884585671367506081507860881196126857214317506085741135977487210473814308549387810300036329959014186991512824530634976768673716310831227310684251820743659545955953129343055635955599163985410219650524892443811184098986178738438792721076972327155809535598625799553415035094684609877849242172724476041717623445050693603342121622003410703836306891335949870250211708466999898314716202917046439092054440154147529969042450115516841594139943414824030911715803514628471810389299702450081083052520900896914790369808369236800456349791580690318687478663679651016633909598742303655362519525117038811900889035672854605246647485030938481015274629239082274577284190008557442091464570111549229965266382349906394605997928155146586941125895209526380599663715258634596788460675894700703986948759463510432806756451950025375131458670683445627758732740251043848700316734975975375592651816012327838676865834187728746054883709170864608825801796042025215089537869779600782978160585628608043779173900892989466235649152956784417889546705802774893123607939053177602538216490167657645106820555742159521823660134993671213920401397642295380600699150292336115227919107465065474832521685347642666580823627238671151355306205411330882029137814529402527641865612434208785984015844496718137704092848859252800693314091954363103087504362511436369559175002778086839047180394384090677042033503107876001211219104212712241919401906906492264377435319453363891050304768752265602176401568039047661404645225366919190017552064237189428773961368834541496943746388873986531775205919598022322663504194568623989736736554452282292820827208516187924895343756606355894505915752015839382348908022690183953818956579050246538546880132708377855307179221057958176382349030462904445928893958118787688982046228112366760504316737595436296163470657016037990946061522584359484357286133398741620587770969935222064605207413324932221726447075039006735709505350052628315925972858039082479257203414202487390993613269534571951886069647992436038724417656808176250664714299604089374018276137648823934201923728913012918830412467545156096808306256213263501210483157237302155170619340835321283768982166423253934145840768703278012279120473600427912776001648184523523895881621351289915762809452269957530371717943108369713154014187977924084176631705904534075022981039464922145986518652481152456731077552163601279132467588699021407693073499270006447409548808801445913248696754725431750412615770443796802973199778572737544046171797706015243720546537456478867044258632892135416335753391778720873326725223261445865176931789830897131931081080344410116440784642536708348638258733273112585423360202345708685248051746964581401760854320096631347437707078190114296916792671438192684324299010768276240201076651285874549643560399628997036186466127020770885590151322752702505505012934640338640551266035291781158954431808210185337938189907260857721037754794428271205972106877492627693134167616916766635417185168252569350054993892931040625535087004390596374170616091050660389376285988946784998882953249791661427000512586277203267187819219587699708236990833731665609699070331967012931008716339148491389099004382881376900867339425533934577299092028775245564452460967861841222692994217172187066788189002305402168402797499816620008684116935286008203505471646717347646560265642573051064110538448916774354922500879479918289506922411057855223850910727446878769470395493279111756947890645210938284430213535973148823810919959729936183050941405981203453969172732473067138432348454259652131022974472982712860360792247161158638554984504498127174461084961568255956094250606040347687085113916304329432947850167392268164015095940009957730626829365162783994592632535214731425264895033933310639572408027088798805837533781230272975898542161721150522908474052982683715827301588408924069391505880583506363774067143167951290722277424478491710721250950036568575814494788380061417538147717982473605213274691152469959414348982942230589233877842291557615566991146404247646167489632472533637940778376685304026439590002837866822621477073867861006524091144902751973146653290058712583271685155203576391724203325456668084088984432392925641203311350622780646271905511269109907812693868184453880842730519744206726657510417117279246338098918098417870563746620712567458316514940634224481015011236798594641511430607382912942350411885252557540278935229281750304769849276005203213719788707027779146677466014594168256457474953689762515321757051223766260276144197150029113259171986636543839175486080933706643954759641532231475054972723404868443202390761951386410654679946782147590206105257707268691979940231086741106014594540533195019210087912726341711452223366189182583199946270291714784289953583574052832821602816070057456247194526424695947776270082542119316837528785226593084253741062877478177964855074529288866987853502342555101923591676964255913536811883647749984086140347610463348517313475262732617079908232101741176960222405335558360447668646220173912231662158746041826690945386823388290727832987459286308981355066191405401418685794309705918414913274801198243785996592819177068831643725311228062250933861417403185037382558311519647493492392424942492567626708535211780389320291438007067026864711170400704394578691800457829371319092430718273466167854083183099726628031482466045117490603924529771428168474302306045027203241789303677657107070203034970368523006372729353254431753312139919827055055084896317715705142662573273392536202077746108281781984753287974668306611419764264899766582944938392181418098254728841358360074960401443254257806398280229155763567695654467548294374174410086289411752513595818971197852760847604319097155754410846628926244078171314100625946808028383082329211429971356528383084086437581804365918184116929548187560192543178078956029324656050012240240165806164248983535374060351023976184482058188753693726580124471585377330755294551060189833348093284850412401419716775664559917534921011704705127034684185710138309522760111685459661335051841730386511980007968965601484020861303162341965295795089989030455632216472400498158992541160668237663829556466065194614827102170910810875241635295463761905451604570887741067974800179051754038294946261799357078599246978474670945295357711806012217680115823382529821303625530990498758841123811396911062810902115706164579201640984566608135723738260093770885759034551452919741910687391933399475266585640907171720049912907656350732580393549808008610802174001235800092877830671431388490879272856206720589038068673272100583362388417065832091089724807894007338235546428103173389047749681552386795813129814471394924774824743921142043974414594630713377819291328311954013816429635343640015792898047763675179640237672782662082465441993940284384871204865059050840439394288894551291582970785377336236951350466622419834258935766561332248910154794018943879358991427028099603300148089056434892858698301736931482056070633365529282094819596867404881687631864670330037723615751981157899994501218463423745311017679916261750311584496498743624182409876467636365550968258046841127793292787221067916586425174353086439138198545807657464420632202429028674104012309323119926529711057817372459291152247862562807965897409332559304438711545436890805792719823258353668337651722964276851663843112580115009674027230524735102437215121396749318368939343586104444081804791408034694502341358997560390981906254356634421932240146030441563243269144827231876949211219848305272587147225141381536508465896485014604332350730311290705517449401638607258193831568380867476107784235173389022320530642268226346102885429313606008783902373659657409703425632984712399246614053185068597945081509638007374515642171528265780366514535665053966079503605007219966364914928557938505490422936505315113435990227518972029555266813861307693821958998165759026527457237247464687951757441670362249147556773178582821063944105480320339192574191165292963760707710169809651122818832567398226806991460034692458065877145887365452006221812791628057850822068834126353430461498869702440653636478976844794952333133523986932540637315237615917037482157081261906351066031546200250840944585456846537194837517996417239311545432170920834202401910198428464007177861140460873573321186728791448515369951258608175182288734643712109492441502156469216949805952602010415716107377470574925428979739508850943579417415784825169456086680456173811691834888205627706673239342679117766248445080323968227994884212238522117019994075039708463038126471128310885296267101412772543959444987756970432019738825179008312256128972435711130295843625592913229625196091854143108947087758844246305535912156536005134798829300277064820721241921838833681442458529902899344601639322473213009889220070515623316984719186518376547283267009657937187692017975504788715690902143033924996930351858610234589780304183429355001358898477887405659644503760059233833074482453560445738041538118244135644576760463092532662190695825120566618983684533550602966015655793603664760657263772038720142329143604935328597016424182955491813142188311476558575898986545433148874098006010532110459549769653293230679770170858772505658390913199857752665612913519990651440676530775560225583545375021952905975890792285955697106011291540957286436076769308219668994065197316175543436675734062178524909171813126541497044128706102391451710341666724792206213423847137636810160142804889462878929551110423797240482281351151369163974105743613160766207977445400326359757355472334814265108621512153439247642646651704742917804929382203812319173899247312257957625448665969335675558007938173881711590121107352982798849589682021125030507039138972040265014752615468929005703085832772409083837999613639857522193368863423801842346733818196315952510844901553515452028265421994332528390692483187450013310474503532303162818042830658590474072075494707771582232762064483364105268699032099487304002470186658914957412323321297826920655848655433745815275228191276993624026954762132075106633752174408307812209606835893295003006103382414119257655864821311774775181943208901829990141190759120854360968791555993897821582148006821175653908697167654741950715674666102054983879570760270826730195243020043981434851838819577371614104877101466423529895753297865101153820881732429872644484084630735459541149605140188744560578762458813259881199558463884906213399278533372766703739037033794402931254436204632167759644558669926031169289416668443778889064364519724432892433449161210584876174821750374781917568016474451885125736236727753033085348226777790100553305942435541728101021297155536395676999796937552154716855018066402020293258336876288695983435484725690831514655799096552250501846931890433972957745817372850361078856051848335452965639926666036655549613802900899395702630050584680127992089319201049004659955168739718544482198187832462043746196687042636146373481476434489616066589246762019482862493109715085021949925752385313703781513143048723462417119163312182599431074768031546057236981505832052400021734555347222445301613057005108363204579624531514344205787950856330413708991372168489195919200656560052020436660616992314680775165117897718769328558510648757865007006827162000442665892933586262258164056077288234062066043403760857815205322124334071547947160225529026484337915745854215957378517311455255818966047330319072960488724099866581000818202646082479991865342127825066692350088297245805576276885382296762950793954342119757818962750923073510235919159178773998751639627295579015641787522230418265776015347652615664982360124507065682776861850799366096926272178756895489797648709575725470695780712566183135614387734402272237555409688118342100185535840229561595287875250273866371810624728063138868314881802052829595828874130201790631463367681025650024310350742488238262284879725764716488235289144238738276626140792262263997014119017295462806045131189653583770335477677017346846255367948318326317361264032942451887331918655520364164792505525370443580433538810486389490053802464479411132029838476446577377005655050750420743861900876456228940803994927363576913607418796947035578296606316792694320739437705441088345454430285966933388867445977239393705731567612146929728695961187240628547938005815761610800949100923850151652412152275815644751249669234535090904604533485474350888324058141419788592222837010746396953116085488247722596770761229283463343852940493612649171614929874459973602253928307996080490881226713623218784421397037291242051106708506011460573085307003893668001841988971894878766125640947770213756442860151851241529602488316867017090671522695765174259427905682661916451398519358226897747068946293397893520557360040339747428659715864190952431431764401044666973036960495565692840084513608126889307436991976719890681606244512554069947644060755020737327899652177760298542529502464634415607444631107609061591659668849095920288279283458820169033212630869277011478065403816818273272940560867319757652492050867874165384625618011562150732807172645804188138329837558988954315500563081941492811917354764042758274956376694385230908733088391769046736416125928020278410314918814830476744683035773617530438803219556511249256890022151693877942400826315737058850023627024954914304442733393172824567256076458437418841291884118931371455545410683165424222084039012024277423172674428498895231920354959629838272144361014115846953008020340898336216056629164260732938925295843824735986340842910326779663920571138699378256622836047717064623199199985087003996714605301782269610300777928987869151684966270240739414978051790236876615339845771525148144456609569903545102380302416295936075402658437829721508522187035806971564413094129146769021670128164999099161142674651184510558344448922132316851390277131750093443915803681761321477804241042604620515722297219499891730798911691987795322758620095572288763351314962486329194917342067431390174712867977603176223099755618040454491459415859031850298953362047538666159494330155384095545448429552346635374464664885474585308310274573063468418239737790328628416020468814773622896611230922515430583715058969641853874627805573299835774948515699927750728782581615951286092151104759879037433957629314609237283926643364927191871254074771043801441757896042659796847988183941735673864976802455709072127938499722427434884610230360918976265659184390741982754260765615865945170359799565174108973672669557974197360200530419717818194793587474417620254295432147127940482052602936008610012398009784006789997628211433516037655107572624831681731618246965170836455932225047184826061016353915861569709113339978209905217763538504722673774001808686946876972069901965407404663180327450344419837867649272910233683537523069337051631577724409904125443440391605451533435890140969287795869642895313289877227274399611342841251473555683749144377830943252035592403346672865193499852962017314106825480777333223219355890514068648340106943808230494590923278015619582066718859353620848156913646365713082022281460152478383977181032264008034969083602664178325084717529178023366303482797290987359399972154017280744560089260388951080183378175508353410634415209340448334139675604630081033180389194326403050620167833886636635871465603427208067350120905918260732071669528253772135441742788009427329266938202255676047448645875100583810382067232766369168383804220082446778947738090680623529861160260399517139772123003104099251486330483764198285954272174686200747383965197217961413071441349280219658565606806712520883917180876432404803205734302092376949545672167386468358492279565846300367962430376193432648468113986582632845639219263230397151957464005571053291902022509816439371232774563560905315660838842378545195664597551347872788439538392287053179373482387480381229819402628866075693517938490028461124971372906234736196105526377058152170544832979608223293777620819362063014192789506864658884978504492548626512119421531221437206974068817695470109387011187803700089332060400108430125585360607817876003319706784826070451180969970796718396550285072345422880474633866280675508197033481863664550148277007313946937139306415855739964853486207141526124370603860550985173359704986794593033715484318163037273498968178165072372577047746590037973574400499943722941679619006196851698813574911806327807190765547615193294168380993795058678678459640950747783785656631236332871175334440291895101520900959322441380827276495864893483710335087724568056671616840646980348586409980185720994731900270012042764088181089124983477734734533827562574966438443907542872634408722794931343249685720141686980290485080155581655038142147314896817447560903927986731964710333086748843050870448727230271164340538283830507640158606709378498412544303996186794966853954410614850981608301949316870655068824016064110020591283691484387471176214189142780897236347211915329586914119702987701446786280352907499063242353932919938026238802558621375281997298574767580000388394120073743720198591547691357155345368716952196213542549405382139302869561279795175692503692877523086140268905664011803403432844632615954317153725547555012251949910840193867523270309416825199583451835754986326760220211912944494505154087118871931041672287053193393064408893761738562660508887517258437511191295224589098334437370427663232137811210617971670190445681503735598257567288335831331927824625336691275104276178246831009979900911816379661568968406101515647746690199364094855384935330644180407785975351212787927935620349389819189491625946522633749386839338360689972070692765135507011845201546728595167747071637494172561978133660919546602053124308346747086033328002286767506188444163529109721310455818893304332164267470599024467599612124364086196387353125440500933833384859377164954728190323117382849714760983502143592124645019811699617936236611176052093782932902486041179676617197704368700415326460163122688755158683406441930276810692203958715717416347537960991235386831960311380361482003888940552074006938559851734802661728096695269574432540057731532471027918517807343746729988551710140514012539853735889061533606874043745299977402364550621047765102644882449534323698716254119085411520396548134736068092329939810826855530662093023195617941745500236844444806341773644400647265520897380142472766478715603349775952419496938128487689129545401814628024512814177044955352589057403811443960337417369416422064016036874164678570833894075402841131184242112870959931488415408536822188885582208037024566039239727501825118199884736318195585205607808031133212436148442151614998458520895176922207947407599008808884076328728198487388010930315685433387181370008651779483106345537638781766149796778090440450375679660893451906171537373007131556476716169671643755427863449123553493129632804553058424723308133983845007253654867610178758730430449726303080073700014333017771747980592856976772063989285785004496471409329667217949401960951697024468925073509176906776318511465125345793567314144518052485761407582322656035380798249955210685934277367725626480067332852958576954435344159925399349994278404874123147241862034839572447806649790843730587034678263900651947873977696250516109723634320441503518439100945097497334605302586810805084615854826105560093003747060653903413851954541811665265729685165202035038109230056306507968102147504527844638849905111413572547493451218936836440186755169898566797026797582042035747141113902273383968440374500761119838948331616492288575139098794414972296230646754811695743077797862137258676648137539855436071809307258714714946881154458051249664352756840577766244442789896133525806401438286728918865268660068005816999295604199863155267593026948789530181052305127914284132536507311582631905273383904652802045619295849427980591866334367854042213226609434736593459728658467180015854142144817627695980089636319039089678287745447653071253268023307710717962017509549858751295373292983520092751265711568741344044329565511204654107671143817838602059047081189243516355941629920904682898701513430296678772827533990203898903334703855493616939860599289792544372504871440203255111202441924489255952695303411861579401702688510373562208486439835390548968950086357347387076672062259687994004380994801336997277059914467278405618168325801516618328383579549054196521458742669734506430715275378552697040841435005014299624779301568682537646274295889803071573701592127237047741134850526131860958230414754748976133265314184362195958110550643573601335250671454411849078115125974850804161412105240557642637284498131958500253398305916274836263596930580742928877846447253774498026861425550360916042861276907886390782655618624859151295098502202877942654392923933947368462892559053215044582195938662911283762071371198644025801561064343823904821324582123012389121757225781164962492889609627272286269845727941506490005648826271903767668836915316530289070150117007140266607602312418279442948512382163489807564130050214147359327747820124427876661534342359877310534613481180365446010265454615841331371162485089373950070166716773750566807645759894100318905521250955667015779432330695947244945694962998638371680882222285183656164480197355299445012644642637649894396214028460229021290011154629819308329307992799359600526345018181073959870251090881843051257245223459616875778594476878625429173819359708069635175022671795224675377067870089127261446116659646663745816255885794714022026360484071347244926179804713006304183455359919546630666530961002729162192496337956545482526908781645710052672353813769164660105704550149130611264702445497171986318613728456455224273701531500372726589824017733460670506404245169370847223749009097351257872519936794978123196025364915791911645307887642337486952720561823100238142757212507357643915817684645630102182959949612579339253506106607963959732955914280326278256134019490504904147610741194666279045904636751971067063779575695372179319296265660892777656954663625107101247896439886433754257988706038578959819830376031380528965381316412556280924757473437250303436425822964248705678146770649049451276949032577119990722684250138582177422309364814945647786824119397232012387717743618090030324599554779172266573884503973055758940311623716403825676076341738754370454798438737023261134327395423460621536657236348299937189486222332584984274093320646565723478158610401800100745418024022829118594869321567992868022242309793762426748979604565814656845252950286256998614321885908782621009890533822637559047375768426959565441581201344742150978931301781913374060692130140424838035439590792292425807219453307225248634524201380855035544216263181408643960379038637887067079136947604385242968953795594388973083490997170455259109634070742672134348398343104314589897658754659979482196797605873330674913473901318237924960297130068079123406426372414951878696796303578641291996019882528386879858485633751061324208841919083191647810769254416737635874144917715505769269601866532465239840710544932140320872525622051684020006363053569130746440269955786204129659839771942943133912420428257968084081004362463267174397859355188870831331240772636175713612356697264069807423187246700851711766556348786699155377688057482308660663827904517147543901814506844178158493654198323009003933373489416258856702104336795894685053563236454683564380575035318647619721543570507279400724417090138416355808594819646748538605064669029423063750141954852115928826463107499384383712774467511982991117620113074266760319453620101543482710816887980434784546120003059614671059610688497138604446467925354363213917994475936530242796994013632556241075384163799357851102330105234253126710717088216946683073231231051759304543118447045149305195042560660739520021504465239720639871271290437717561927941386867725113411369729054350581555445034613954955034561339538399813638284622550791913929280257062161213555376242165032530881678807366715138922178597032454023712461774732276056372646472359278879009515541967588246124466303701831038770884292678374040613992072316277518718735528010190616387080509147620845834068637045923253303985359932785939197668789424826112694194803551030220706641757098658255772122619566345388632922963701301131329021604072780871577945739629677603303536697290103372562778509521056931715036073892621972086932018247065944596470293310875784137147895801933241422849317928313436552462418711478652576444738399118763668973258993664654776750884467286422760676254940557565962000471197201973222165315893244115838934547497202833095308928314317725703254612390189104293439724642996801129684876297242273786150976427767517770828053836518803351572088139575285354227173166848959959917995994746164924069363808154813510392090074810655476450858855585678231861561019257620178943699856465128783956304801383168017463443185486225702593765859911648334963269714520856310014954828008137249211035574497531096472360761854491138430792018800403152581859110577949447487155436898645239804988534366542282278639274148958783796525390348606758232950727352526445726196318171680790945186558092742926544178295817831621710455036919619301599069479648724566004760554338429603048893652385440606722934317588691039850801003551256262591648760264135657259247962300597871835277599121801068559702208055045560947369266671472250472303857568822487139170248102163566693902927229903603969085808801048761192364788490380560675990188102771085428510088723819795202805620390298368692649412644839912514177970986867116586400496961648833306338620084530527704217835692010741484488846734459843692337412685118388424261930611384896921004556888392456996250319548605266081917078207226184466733599940778562820959773094149691451923930567807931927981299183763372258775412056196728534187817065309312115938363475500593211228580493663722886705302979397511378097298969092481711394924172858591024462562977119000851211202660858799848490545968370247264962362823890824915792310826262437685014272234487454180658868101015682359538488146739765185051752108147336361114451491133570958330035569411424666783636986192184636455165965212690078321615610156954316929946501277553197619895474160458157864506328981943494819412274372534423733255586537227584614187196954564667502496612517926148861851064877210690314097487930757415348390950943941627367298045029036693167974058083321645993918422005940891745443032933299003257891078257529921624392172850876323934447473773167235381231847675980252592254016127437740891329728600719338305405034921039437463852483542933900316055062397425308877528253999007663002111072627457083659038104533594319601520414694586153246917014413768484473265527747013983036346239131215932787467019765654636848987732270879628955263627654247408307288649114026592825031331872941706202970746145826343245402750081141296172942670103168564790856740793691954020638071872600581695532349189621248939439128144312592603242029346716556195992893690309865645197166960269365163126479206788388133594166585683941923651327566488326585625205040068766801838965200388522518431796235028560548685711620594893944269958219135361664409053943405309285555077539565498593610527049629468533342890821111945155565764817567137506680780355049547476772681552942515930236567755971964509107070346998497419988719707817765510041186245311765416141728115695646539396273590303436947470563548990561535227944635549483738525360123104420591347749469186677803983273600684337926988863497898960709621363877317378980740719843072408344055145131941784654430790142396620978145672378227916583600984936559182347246668654404528021891300238451298425543596082090167112804328781614728207420188302937769047897680733527122253464822467557384364620448064052287418534646589126963434944589823513273827254126340184492643227808015835474941798560616250463798329029569910764216039500430358537956289529394457883770054761918982394449353832908388883011556406964616147336900352849658435656593660906748926049493312558773346841504933364677687044951821693005552026145823634488292328342562681117798059191203869223457595300445540707793935941296387651384689928940966886324289250869816608995221477618837901278399495152126931637824903961473776205051517331556882943405768599584663274017350287786009465193862639620511560548333068706447594129647302971983866926594021256447494537065440363278518709337686544246531377192944136436654065356031928289800069591917884994341544079617792886729055517231143160239428670087328141698292130627022240574062668403885226567003765003898180329932360502845732740099454317889881404823999543498487885762119097843742292744707769522501064526025707312806958420683924348461145134110848784752352553970312647846805773881092095089815601613516701982589081904858804958693463448051862211179297784495429254087943477855095211812850562993302729978485280617249538946497892503119452257303019382094422208981005243075342777900035247319262488894478766217704861753209251077872140720624495094625792899201745924186008963506009136493920242237507784299035418816104406682642102310619876895853679077839355447025684841363750689619762090467832068106145020325749359644568342357307817658098255016644393471626938763204846012584712493673691008702067540305909512041969070054168367649796416098486371328571366399191479526678146118109250348114435428175608500521968743776100082769796009848716440053511971183095555114991748781465626851751153057815512205215343010308320428010451405885582846037728329828741795815959115246808310229121888629215882522516464428560959869689927645607212689835783720128944153665003449850855631672511455414094632405842059554206704647199005943370052434119502267529073695327031976417515309687895254033193245278549039672751642329714135138143284611960383674729323187540406197047232942896220002820943529046892065075104893248840068468065522060034212360468064172223457558956358967968139838774426618476465595987024156605323575085640951848346130778893535594836417826093578823804858326525355166056277228430354712822919655636453445442746168497540824981317128411232311628623878969251945680243429830022927171983967365545203753132544376965114873904445677374882446958928634732007028270264738713600724449651194407621869884371634832593991788814651459282285399036504498823052008746810615763814032828548262253127235224453908916872944509551550651682957656533707498116726073083989698764309330979608096758173943646957573828601113983224590835980083448227396246634061788812954328348450006305980044923704345214056746180551373425352334528142248970634657414158285968714154245330190459954609943588070870400152239003802257472869220156054116496519686991463568576567045144885874681748098853513317425159203100948271974483274899729542514143298103742200260844179890601233226625819632192264416139294551042024596614936826935439364039971588915939031614755553169828048295622824675532692982025452414467972686392501934554251419067026743561459355023546608159766463639041663776086855153365354774203715721027173510826113479723092683400857018222207047339068336924389297814849839344218077872454259110656772628986387124902928873347574688336316717048257167740504954614205757481205569637327001670686206144502599251845446710079165078444075170777775417909965420766082239602638948855751421270521686825144192674982966932318802393351025826506055025483209951759893733033411966625580399749124158314981456599947441939405602540300059905537762271634196666856225495183423140107419548782649511674725914903618220005942034199335581815748079377608139321525921601882462895531370865524891886647955264721251089423156951720463621786169845024569128971867068442922691566512711026341906701628829359394693708313443233259011741051643565458057765104760881274867753788449021922372122717131019427092449548002596869268625479031710792345398334698386787289925232630859956238089160058074625083000748519161842481887803403848905511142933961380363639358014008693393376130271281729210011268687444538617031898012491956728975819756944961913316473559762820702940552571015952520760746550706358685145420835575142118792431454359492361058322337446265008967607870394053951967899839640754845359601473517973679121425219121059120013262767247444874018264863763411770111132953538104312702585961712406371393672133403025761600527291734244410793587099658927708105557783389415845742530805866042655691912524943533606900708061939233206708013273345873254332756937993442307610625212987101214799488962795253960672467542199494379735221508872597917757461480529586948488191570976921504498635406053999487015597143018001303244760888867438085015428486870094030247622455462645069045968760066374952069869888238735435722122563738332173451900787188095456670272722923523095680214825182466784548806858650171973062552904189025332981270035897620809908151613557973065306627512774794767250252350243407129873524829657880389862383426417498230134041583138411031366613265281315706195705823579618770488812389909225993110805209747130564346109635255238527338560835423805082093855738655869540505609716769825881423035317239355228829770741441544606607671533246864005766390378622632728726543970387230925339898806466783630031195455172263219309839849326873533623033113395655465237612805117432396053124539246720456685283671404516088154318969628047598806663391867182212742120324077078849820930113238847282795102759832684100842866961939213081206876306574841860841099418927934651655730838992515801444942707006821207137618748162339095197085400904749316635295081565983522761830907845212845761146899031675971362027787596038285066308089713664939119961774853132923758922362571010708385361669577231472188447524204129460021185369781174889944309740396902823778008738307474335324867560818185019281688761448930591026044972575515637568430968296758041767964958163509959028430699872891713614032820511266455610130997443730931820234034671272785918282662952663029837625207289067528016467630794815760205818936148274371873508116769742201025033989956504771827068031230634733123843506689185424744075825832521255958855347966953805021096916634920665640171011843591449453804583231208740116693057607243664627756838133416188461646278833861859705121231246486064232005644018976819545255929401269666890635453570524151981784683793215866478414640875177803001588175908469486023956496219514713685245798524221291264653484249891764906837972413034428980285191809042380352390125923434115855667197350561603991120446783792796670648968532673118541867051401888752127441556803728754653341811417766387553570593706693880853535502691935817116594215489153216302659609425844664866566682678720647614935786573980409817974982292615079480010561479307722363772623448474387232871665097106753176942505264119514185501780668550836816157590654916444677201087617835815227486909884143591075544636800648987368069805819042273166655859808829194121685222987082830980449438793600232420296484283964414009050289429450812442787071048220496227503130465640149973572731137019807024786438787833934910308993021973164909590105750437661752816622372638184707074245141355289961905714119148237030589120999356551221001842367018245502770667346366217720537211587312589310670559339463123593183810343417736876444065422289457292404138266738116575875454113453289465094616268039042392684594880374848592508193860311716553698464758632362463302943115758909745070553919557169078740701247265787979099147271235569276012145739119947735827781834124147524390977033402706828146823129789589242051838307626781780326955287536078034373754814156955969404905862440707722148205936870143225348139202983123043727176031350196729955230641760393230280968339880596989386734536319577168173657240796156667100726412732484578172398236874520845886011880349290870632950289915244218300550161309695375371827412366418511108545450767389940959002420942226227925111887167270708965056061066278404799795514119603421644050314692968736455955000935157900825811334309348819486704027987589425804069129700446239738868460291273209139411336104014080083855867511520285338201176988035670376465462426199646075917624536387087065441185992397869483917019761787344493940456536749044562997405339623824075029767148510652805432515134842617560765461272391892098475189090211327664277022986213063128688101130290865634612277172787762392073265633462708553700306173988002281164941509879459787733538247660438351972187294501344093227172796933039076771247580832535858940590863016264530574947865381298229369427050907997848703647472612435307606147423220999030034127106213817866191742306452804170778141947603243061598572113727349634297903549639865624349829549479720863957517244894628492265630005055245403304493552399165424696937382705349131293144780836366825516809479257094508504736621917049720002329744827557320180341539071741633235642667813153568239336540370375829769269459347592246658648753127331606045735202889356144537349866175977756879327443742004859715996631250192258583827562065421665767057451887042238769499764338432087858202224279551128962632858192812132102040045997428864487143576101738373431815764820432076597990267255009844832995634271248096789739380303569471858813456656510295997661652385708013398425823611119257347910890283366265012153922528285597188955474862534276907346226107564057220558360573182182520326067475980309045620176089749916132786369802956720017241723737760855068498024508299451499413736385409991893948424434516755344562384913652091058514181613388179192874665095316596355268493287851541177159432741142667098502535393674331739767470479923696942152173208563556528131483675806829306406656550964991867939038232751982732339981791641920659706768232838870650648639416668482743279641825740121719731870906841092735634284290039846340943636220948870841482813134091144944964396103540552666381503622189569339787019658228436829667961767671875706052776367532152940722988873564545826465182304385741010974248937316989896092047986456661067422064799890558842015724825340209367994266836091864003170821224980223006942954525178917917940212201525700324962247575801340806566650353981035096051729086570884403381003609937624454772927063456031237074362727127421204245856509821576598545232097144523840079710415898610085299942861455365029229061953363822341545205177466643036587864106927879167735401949797792765324339489785823694055221563753643918908970357334006117769476097394668313425346964587514614847000935160865469425698351020370933621501222715784843884659394180068261186656370162435316525442127391115523661208091749158614636214228155179598273456382453399319507841637553644263119127880573204849193185900600134953420658399691685990616723552825945397839498736933705665436009363964918103399029220793089605917239432212031891648588995930649657265808848995556214719321238432314821210420871262304956845799256279557026327522332523219569906827093091071073675155396983803582123689235728706927469219591961964954521189094568518761299182089722467339387831071667296511874799473897718357967810355369900893568411947246991906238356453525871704216567275862897275334072866346057414198571847900030622437935257471522366634254040925513416849665973102485747019342971211046620469264355024511975710258990953696213517785626058788088310707968081572194802513799537572583703179669796681687273814889388285562751602379158366300702876124310314758401700783484183582128554737441573442554963275416280768852723766326028278611391756634552751468981157956930183875753930966463510996783975445543878292855853613801347120881990237903449377549158669725719812367235201082794661093755408132015581355523356456310770794126378716145887661362811318201633472577976678139147725409986626347301997924221099258484444690752196902695822625384911407119737701286121349147306139122596253222913258907804787004359676924408305910530778475060774619902705153334539480032004821972414517097110882238541022198432292811891759269925077773449162109537914798652283888932442408660790943660877022342300060199903175399998048337924531451000495658054333274682045867236855902680777041635235837957454456467968694640449260161884013192373576398361664619906290392338763864917048483838440400746189064955610147077567144701130395819868650337598171215449906916856146176092905870164664014480243107905759843126660029353015703477110084239707112738140092969670945849206842167239264609774241880691242056993049132932811635633836378454323954931832101443549941622977774103944496560215334298897205792822151483085567768924408115802857135367478644525443829806206946480502469064960869089368606599980521226340041626469470977547568011585209934626493911950305251417963646518061274511477702722196057352231716005737199719735206771951038310452801429328801370647047116846507732512191079500235032255891975943800073810303786046010392407053017135241275721255922408814307744169273044882397200671833857576782137573907946089825348262008066469675284295086957044868786973903565927403219262961271569679326758820684174299120032158666631774109022142081094741291637282417378673846958937200609843783691591640638907770206670267495725163385806043553118229445423899260525864679627216764436235182710380360042384656502730140744807345703036660108978421602850078564897193807897315554893993183847399810124640561183984773631498099018361163533612327538483084296584433644372531812909674749960953797331724599224064028637468376563684446499413843070103401181160309252089296750271284624604594502374903076755569637717423069493513199365607280084420013024640996778772691537867204680211551256557899652248196614203895475215889655984045298094858780537251073266296660035332801159674385154026527173948548676727969771544638099118342651562842699857532059099034930700710586903144827635360856203074474468342459313288620576388398453455933179546188709869408506214558497782507023512152630562358287944752838360896587120943493978205253738487383017349142504344602858724437437399024293048198572738547494464509880509591794728903253067543245012405748069454000647274693197686118895363809263530134316622912821937880136750194596759509409931602178347872180155655821798277627204423873485627959910745573113409975997621279990420210180653405749705515278856953616213236210928915597157449602903632473793382011155028710014653136766200292458522963757557354700175817443600530295364998735015511063337928910904421697279861571625077203819493578251154839666513753387143505959274219934641014957573350149241657424386441508934495873325363949283323219012943456337608557442660016382521665719444616532923389283704465678050752585929548840643054809518114501424261619211925671767452371028728280684214744231381504611625414030949476804267577703849867748107935504437806329158724131791954018259957727987707678375869971566850336967549031290348178069294642676463217108543982219013796239134532820653434798390645706158463425294181469532583028842663590149647337566351895484818814083728845501703942166041306822851817591723853483055253119710653493912013521016651310531870837415822613415229739483767914084807237930372133992400472177062847463096188889049637777874401614390923362639658499007352604969495270827728968009844713886915234047341562212827371337574892069954559057700249021441820271646379577349037936413487762899152989472155744046221443263493700378302557969964155560068783559152834636563331019799963363352440458633901926428084815935803974870483334572653673021273546991062930508614080495859933166704228226973662607462394979110014671810873480439634267600765206981173452755380072769172221558859374658823688532476004985606636420488507610640792133327374866940916165523488186914489920803306535125117104976683869873533694714525845817368579126932470987951723639507646791389511259236443464366557451359273872958875455704229154025479363582148134609599374078361265087224804769773536111974428280717097874200444724067399710811910145886478799297979964233251293980486200002151340290654986323599825041125890128877867137439714420780426774138958653066938810817053295189294123286110731825095069295045738047137341424607954693062060626055238340496920777872938739123787280571167016772080795536733803018486954469176252457619929959117658918332556935080523308668953719620914608418707037612406492312914819144524210110390968100987683971606673505586710709542307321621645957613191261069036160559987349554138247479091789752449640573643464919023173641253313805212107127396242158373863129726844892466425290020038066394417522662643706025363012507828513659125535372430682501840879079860571395921705807088834651388234777012533411063500607388755686837399693479517485492657700714987934304655971843992254624558627480774114683737967839088438188213686887422516847023673894065361931999781332726003701806698755064378915018391381827666929460471625836081024949964936299861550956369549688069443344199922222219624906224814016293071861308242107083746038952686795019877556283748257754248740563486051608387734143779126773315737118552406185779233852382024044277599062756067193507389501553441866194345627958300855218135723482885982234287772273972565283661440423420474923790597945821102450906494146867423559277002942595221186057391247975514751340084245485475966851278153017361662114777635172126714793622374992235160707581231493559384538442651228378648741521392822838058050373806094437453563291097281622573175838532990229854122999253244025575621029460468670146194222959200631617004088458035012339621311046647456747473866891178117900232727545605080179690172618975928235480235735371504654815506064739333083128953806125884178867919814505969701231233041965139354283708872606499179213091351344653911227843463345452589922897396205972348124920758014926191976327579586769015018360077810453416819176018997788257736129356764741184873285088778977007434561632860897465995574711809898457212522217743208291176733026806811640645920392514219561859717491005380060675427427038667905110598351978128606354719940118295944865246480272710345886892141673756814396720141112229407554819729205963735072962448775560748888151663191200982639596542263247127004927589510894843482520084832955378104060198900986355017797463833063190994370667714913180435164227485088812857965233232418481157011909727490682277890619231860275555117858837733148053623074002666237612025890192590571565122630738383781689484081659921998344865724642507212810928971701920898158876682464345895335809520549104947593579130373032245663412870908763041683031931706628104197605191194395889415786970838104014670108957608364956780192657873108502787471090570989543328689741091690312882423781802294323761268212929785140121858343068728766873483808544427763953526787924539654875552755392696652798006916498351034639440573704555744104030261536772995939826333116826588144075307251546104190292307062728113747503610909632079901848022951082163205940691052666944215994276189562035014878875155327006734881502690684623990734693875467942941253386678906045916291217486807261281386633234980003054052400422947789570597846265005268507912376416617555643070131425135694505667201461343848120120490539599489456331164909828525529920968507648352357432302389448652511604604727886063925934535178195460044943740945964674530104639605287911315452933320611844109230083941149815918058036274750796281714023461603665330781398683366963295367139747669222084470710769943392798245604918385619797793360444489211510318675897177316643796123280999854941256872021672943635072849381999520202662682912341833423829142295660527040572187952475814874303388174901675827224338048212312524322255232172540601901349389652714745274302330848488781571051770685019354865315613504463141933059254144322264922684019942845097393815749580831249810998287742900085094621513466880672722477270395743519750922805283470999440158691291749177985432376140012214575456558188379847060442982234162055854144260256979368856415649052617152222009862512939937875019810991843667336808590392057658174814904317223226506329333872397819230008913239360037222821910883555675718014332307786644608834778369695133958557982207258472944720342439536634213155063426908237073381758577338625786338422575272915696450195115462481136385817321176975290623849707775754593802068958930442142964065497559579374919977263216285754958311538828708727976391550322575922877403501800226337601005122659228752195806958338186949711388898727672966273043748990750436306007620459613498815626947804956004964882515038996356936985535335849470848631154641202829333761498712337327359612391440283199739238646362264047231506781361277229739121196092285968276509009907647406225389290535170911961485860198612481526537159715418431597760275560734489357524395189545614411241158598723993846504706889750922757651710752685038269322744602205308647688585740945523264080507640001315781599589957096392512894341263187681711540834536881951738149366436238481924978912598613893273085919389255802466485859489874069194814816939694071657385117816909656231779668328640767541280643964904752286352907558720705436671216567957144780121944354780135369500391459608803081537671002660066702490471509546231699608730844388266558405035065320949178601890750575292193722515548185181240095336533386388636972045327213899751810461201743781339351243992963036598825547748034661144531515512446126443200682501065750346584554097098499905406601837924432220984124699505531168067233116542203769275722585689657801255056917317304855804097021275415622548933065840732878925828615847498559728492360179716773704724968743664093885007201333693294142869843165921380873297819703134260182311318217929008606589226742574495702380336596201717620179793325215662042400157286672124979715888725822449874971791825448728702278074095335462220200603114441091802300447246762767073382259686174776853737972364681048936650508219081042752983064040226804221399684578931555610158981766614285276221929507088663502162122827544244421985230954093706445229508525951769569143092742966687660116553027300580820616979659623894423193352019548070506656858154002015249664607797847872172110412918636936291656417270431828108253438559967168058780932208030075052294962739556161169882476162513261468907442322833969989948242691569943274894830284875387105456214924862672179027783214803493872924503356569573761605435817113792464745991187203443650370503823034646680726767922109220167956656792268763638552010044572908467930816340934746761718188115012344418631590427242324990762528918360554403116657059409694352776464414141379543236687042317253072516732719964258099717816930733195251942885644776965161407739972998957052887147863673094897514486766871238353323986951221144577685416011819276968961140209118159216323969915523535168797105787106687244468170378999757413106576483506570970583102136434629402991812248285972403624120699892116896866614092919114281387405680798557959556694713310723847618342283251686235842440255582996264459785703698717316087115703535554196341873724245586057093357124516988272699442248819377432112362112666382698399875268882451118918794576496344466332451531414858496769859448526910846547119340198677082973152977617575921725655471931588026877708190583837770701738536504673053041219939228043732355630532994785104305614567001224783038929731939565274182310097411311031952841375517991861419170695536601956550249616203292313940843489050304769710680366254970356572058702457584948519274908003585073424413937655857135527904405505929187401305844532429685261320950498522683257813973082558431838301782059747543098993281275290335147370414724370297112120214137223851733430656993063712416697622460226512760845598978886946118925272474597355329630743628365528037268892360976076832760566177903699760985627097675778328942686169236318053207995327719668646897729395291616824670694129001785494368994722382944870115943955866027439084209228136343341474249791480713795172634039777461267563804715286365514520501980606037987847487960453594741160295605330682082684870776951467596654499103728752886508210118363145388633581169127568610958554066665113378453782866653351425378716184778020190858861682853793740878969567502545591854778970973358906120350210518368538865573097149917318525870858544956751361417188101234258291588642018823517391722006541547228405149071349864027894689230646943571177760269284979226363131926827952701859667258097637933921879339700748856626564148870264400333658366895956338583571315115602096276908768516186952057881185053331160726859625552265222860937648552804262098702472840362585444748121231667590503650820414059587447593389599297843897502593771374360854858637782172444607086105106865948696377123032136458973527409411200748835779690210410529167120528172737116482543423687040023536535139593662018860400995605881112328287040518459128544335646882094762023746318182018885906528696817895368562061932259054184720386862383159054999759911875084304070381056894942539318499981188987191450578980758242986981516501969920322888806615535240205419075337080680356981331680065623461713376453242043768633882170279098197819660562334037618451669294169711873852469088875935437169504021416049478829868769652598953569740056640109527101698654971675797049193592895799269611145091676676531407072199425578811087318908632086461982016733087368860461840957130014604065210923609399058609181067947006613329574841726279073454658500958206976462476530026145334223805767711543404615026715560447863386516456358121257865594104837093616523149997846245346045856691028567152151015262013763260161275932692537391565353180807718952373383762681154533928792765388376148758512762156146622356875483332587523289117553135754832565046645357220357938466449949292375502493380480982576424697818855827815441720999254725956902937255374512305850444133056089870143327994023757928562302836889618243974812900468553887123534648979637158315522540979675940765772742180253581777042097517720919240750094869067951412479736430249816586667892681599991789787332185652726827885638462738272754301171949589689572067573487476210912601053796501818928750713569100761369772056195200203775621305961490831825620367255295970002873383885040671652722984706720759084506443246353982034523984447988564905458012152976739380892387619791047675974482564013453962845204376284627172869867905522868528210336433777852327387570261536761956293230717448194679240775831235050681163723439287140401056577539127016062114677382383400871821818386753940698960672224201968051978932032243003388424145361147635959031874378751674164894081734160110396017423151974949103560886823250193541138191871452405301967324996286714387224857146984648695695085634593801704513950453132489243801915604521775649563563789624308396536849112547532821622660090042519215726002115562891111006216143065191815281473946315760867073251054587007639013366102666877951694571351616485624966091484983032505064299328584412744754482740590648737078744823002561350494205167345164312167207864990654571427037219341132682899815578919320084856297871593276716890353073252265955962944041560312334852142469701199852584569456775719022048752077191035332181052220409512535474726198830534964164929554956008791100328443133176234419758105544224199991869712291747736880586790382492238476622036433697977700253202175209943599393663509704975243970393248047164823844439087486905780841049109570651247047102451161336453142608285575816112994668137071928429771576059529810834301809357249369243491379168880324399677145935230152750656120332902403859224687485485149007468260368236106494300926574806500317301838375354509343402840858262104726951538198310062907669807258271592966756726475893572663590142674487165104136114142631628616879226260707744252706393219768481051727856680222008681156743903900119546952123018279623561601100930581009747423209874744424825376397883411328944673384301932283849604492892616577388858301166204474200760241505543784780884475752438502128637194998976357801333583346169074204753500058310291023464812559001592790075391177681445347968004727456790397356230267600093783322942250175449764485396700924862508229932627902662806099878686469961252493121596681768379307050311765480336631094024423763122499217163469827419640715523981720801441473298961864002861403085863464134887408513019521581677598868231991006916475391043079613726589562044535191437673346593826370982583463167095765578050255811232921971793995875254431273833178681276147332555625464756030946362136293933871370095874253779365362161257185585995632675240039283112865873399550773196175369755814041025632614466724377931896517404720715659427423861111448566919439600762181779498409737581357442669338726325618562017044839003138763512298910920181668141086340948518207313777641799734447009636582835611823779362188647952645431721208064129835374110350282414968438554277612636237690273814851063342929126773520540710283646037423820639458447927137645449921705008004746330413713096548597516165004163450205646495994064518766312965923126597076091787447716258507666231629484329242688682174608460513109127208904782077228893667265903510913420797064062439473629144631558427274426265331874270427521452763542319528060632922556874565892612464116517719726392135536466970729434157219513257220202866684007484626736896790241183777740663528797911479276547575347573535962830279964901810364331943696065529700025529314476178311271713025305087880919329159658325794685635862799039548277969313446876176026475244859765067745145987554176164682401045434082292433859545478380229443672407968737359331935704249670558602023368883985070595797593896335588429118818936601903792062398795458768688988445391478779456799902087514945593349784647686012064374750174254443992778959590022351355295386680162161749801193883102446859876445421482706167511802675785873572920534699272291948059887118247785607728185328649594727274394522210775047816827586276691011619594576280226325225675607037163124024222056237144376895859309502236589829538276935490482883561374722605811550746703669787411400845529131519914044257960010116612891839600759224647675835401456471372165209328721169619232993046987202661125818269127390734327011452511610986159846706591668232735555010357557366668246108663118580117666168776296211117633714046306935628540686228720646734042432368556286893239487849225673297247223140636712964087677601602078440417007789364556370939439364776479498172202262810410606271810201300853146435956470986214620187037852719636766021625627535629643012775765536320843703372024728404915357801743453813853134656204237803468627146703630048453593941962021798215676130780902958801083019525543445783417787582612521971888815030620549103186216388400267653917718953301317514034985200937982964628936767467974677357990498459690738954359874700038035756893102604011344372965330397450678668276997709808161712183708652020226995161552832950850735506651313783853934520913257056918626712313368537409247630047776732204261640484807265308540000364933829993872716141615234212733561081511402413105979843361043409685348785154841151466848518246793841687813032055084354964538073752065019911751133354268431674180802518278214026512526705405663371231596980471820243709341360426461492535371421533062295697343488671941747971663512804291522517676895548843873596950671276202502105545758734513578162926140105422158666046170365360877116657491292120540963604215345313491535520863861872492596826121888500123680795733730104062587888733887817919964793344781722775527100173123152418815669207649849154100104395969360317096569414700004873427626655566638235150356336915728486510549999715671602073245428098827225394307878923719312089440081686579287021434039056710581811198338819014276683544876489717003442458825919409476018985108914803889484759161219092100935211536714781499974892208386470101946913540579686510516586132484696968574089123270579778531151314887352383772931430756095840605220987596962477349919420574350200689200666014145011890822972912044002645857110005572518535085741038645816351825934915089514497439072131858958787194831512819772268442129320437821121293342667150533310168987242382767238176665826865467709287282230706286457314093708531516432551084201527721396147197818698862922537135798201556534599417067023588539799025002151158401990159022552376499412964635686970255862057171595194532214470225490555538031634018838330436383433186770635485543325965410063949955650242731162059759560309274391818377228988215906942233840762759141572379679653127141774041095580261684089620317538678853719760347919138754734007195854183449587461814464839307808663815521777942870325015398097049571950945274870221641017064683308889530744842883752931627421577954334601384884455747700371722766789549286539233607095872317424448248202773965200515770446917342579077527007933064627549371383816811741515610752057146012332397878277632756037545295112188709328908764116702642030246096658161185044256416304865898072788822517829371154957136330965670861692706274730976028485328290044855272586872034081877524800537015297816351571333044264859826860849356360472248412640447994356664401135146672776845220025212942029380266927300428672467970604019145239971466045167419400491897367226213484832961596566881652216466986186808698352961057860824507157352963263423134943989075818750615073339989560429434096259176022099507423837246629988326218931362729217290483608957704246256257869331535820481136014177236471524632293115518132749633754919624075263662906708325405731564909512052056608266054492576878568508215755771999726753616831922634254404514213936705506642150769333655055128651363622085621101125625536565821447107987074810348737897474447044588119016377554386468750143167961974203962902049892939527530365347565752519301081817637373949429731453644768985303997157894270936694301661408065718918330014362934025745453290760951822991520599499204138937885169193533124532950481523692623775207733223366673586355181022469834201088935393402126884233603852009127969388696675609813226448002074329842665239861401635590183800611186934233182366065162273241023063737429834634559974759797270413984063703537069659893224038595700062226780284997872170116880224263235961643106530291697981552118184179221297364726058231859688231008788063932383618668274255088996054875034001072460655218815488664827236267401882749853029982844376678415631700423161628179379165562618671495907967193653079024296309670675445030587689974091237908310907777957265764052177374132514005501984956571649979880015626161990914814099276566893146381471476382611785223748099130600032438684808470936272975742469861550738579098294445973268274506785168679270923428478787067578067029083778079512947798170813695415612522451860440535097947145689635090667831069542957207995220669885616550899590988615339723493374724188837896690466295156935552177467660479682762038826849508736557178128453712445606602166306723919364107821772089920160257283455054191719295756371545420698596207567813134242316533078963843318921675287251316129092851212531976302869734678611580920365977166972620887794547685819087298315896987559502454988335726911322767669618359644004011315455829366823854117482806083301148514579270889666880043922327894604420559048044110916116296299326042314644161419240776740446966211631355813920546046494399127271334192667976230766781072538307558220892373049187350008871623104259245033520794116655153198429622623050807888106407105048770182257229039382287733030364539647795707465545381562436623403220570875186138866616863605112465831781105760467443498786027160941053655159454871632057681315681391056669411445898455287075205193592457075485066435311012236916160589364528573986207174238004948109310593293397042451025735688466975457652010946677212632575322123669655940879210471600500632355474408530539538345104761087332770018889886573182890609874531545432080269502437722765129563443297758479758327198245797149714325549859365899058039682367146144977232497365230170789151784237840962264025991625794104345288687278356464078004869011851614966315743964308158229397823860227956667274574222350008787590714845367122530949395350113162295366622873403849641372611983769632870200707950401992636208168975491785233002407455469855966192534795048056385618093384721374350100453744843753431117829002385855652504742551149685756390982196877878212043682605096562962166283494621427149430993295987183632681003091974451989374500674071249502204344997124764365038097837523689721122827950244447525586744688778723899823522166477660284356682045913831007464245493981600827001851290417416017463135128593664864184483879903787469524071438751960670151486810841930513266014559808112073610163693107289897486911464423477111417687045805305776088993045574988547784563304937420333740042451455946400889160957994402035403270679163264927663456515213671420683416373527063337397162286913758964260739477382441856186064842112527899888183683799492843533512580132315858475759596896149180802612009664806552011320702397689793376098003791357971693304620508149038311953266616294883430376450507840399967655419723427996965948272661160499640446113434211309346913008712126533107398646344543382519080658301815507488737358997478769594759077402410571751573412153215869283621105187685346529989914439177964020128697144278409228178918764501483565713159356869930899637952829062774727514467081580423387191436006034067358308662203367144758682431791721052643137021683145507601344672843944642990640269011427894255075918215367355262760890391724413944812672845039111433202552648876663247338389868653860749646692702147564413465004356789640226571528759293644992159752540514797912337013692193724608617627658095011485868227299883376701163677841247292881097995544098248187304362733245687680668505468235879220376175668604847400691155117089938124689101008577745515073502855095815711261012472245470115480086997981258302577187979251802975795656833869944818049181701811335727614452719008565479045723776320361250584100813909846921170692025574840378395000677940875504734389578942676459021281288113903752804014639374488751406173017386584777009265064090154260458892448854912266602550832366987793204287712351204237998478604675932044908256424881640063626979659180368164652771633181445749250873684819505621436331543567312599784601112526177598232358395155794964903825186495445778081055451294838894690396941788837628246736093416554183893512202575849574424327728742661168079874716981562921130782275209042925881192477289724405217783348798295618445942244580468289830148502716982325056855668441385457181811606697535202642004932306799548482189386270209835260657660373628727656896034465409110790652606736464983151349429123399432987443758829750866187479759124975561369776166814096980909659339357988299983377356472210176888954596979877978033385228442686605306327819994209566675683256256664735802728411906966819554709966273237193592726997425081458566196376318959126108930802283082332355004909611833840963856685930595046973651955729391556037925459744255681044048124615003042807097565717797498481801442924133959082399925279560523012445443333450349679138997193063063479161106523893714678578079123420681821116372091945641778764235383680805314103874496243629158941510224272577474735523111290881647009986455222492353180056876664989852938765468658674260922752932787208050866682216461446204253428253853230610373529747189779360037782321539070727092243034431446522604080940846747843607066933413835963765402544638055001368267900342414218981870280885122635854191020623959337869113868203672038832636788605578596102304403096431969283422102045226968636596750686873217775928408665923749212375472805115712398998575450358934918683983421946172941526426202761407769925363613568705150641499013842503569482722131138835627621056204686245369349363175275237126415216285590243174309621469134842681046035060639986987615290708822360887493309832027252870898943862996965567714022742767306239356891200100713370460754750541681187511644825584741058033998579208708721388213288747094562412549295656370620859857974524073815791942019299012969303072862265326500754946823232972202453800954019862230627030050375613217715788288591319022857779164623827488598913076850026948612270356890001614941760221891214860322416236899834251319267001960803586896929465193008951064829219150678390898208423050308978920461635466006681801968175332975390428484133046004618310810631585886668604914841034359117000836425077156077005980449054162478046115377650739336574372542110903632107734985967358061051716922519576658522520541457857672576978007824187693761471128786320424185663059985025901339218494545610899300748559762933198182473178783410953892636059328019715477608547434691143054924825570602766230324983953847018489366817361036660489198331249029528981411449954867605437869334456057470146433057871030981144677090656807085543652533060206199616759982834912695203835951580674895274923502329853164174464333116216105101251152042142453304561769451909442252893642339009695557189315869173029964691215885207265439970438036081790016082204755507153084637956992165709957612638614312803120851253087015974633689639589227384753960667179947545019554458921252299350823499952504775740768328902074887793602068807655752702781460170494055015927842978556421801397217520931080193888714554138123992595595390764043379435997484874742916031613456378904919423875439943677790334299051076643559700978032255356356180366461953849244564525447742343660009474474219135232739016244080961971790005073191085504807982962423449418999027178844509829350145799069113387617999760666147339144402396264860397509796606579238411153360105813088783862897134364341942942804266318808631263013011466291117540100909243096426218339308516472205672090664738257943853391845808017691330981447373455684000287854260392071544499299369054541350161822723484233848756196493604648274657435908715692681091890530879304459762798151503054291422501796815542501123273327507286217061703748103253549367534011787897615963229565148061778956277227605364907644288432194647677006549240786478945363943261130166004349731563225091428264924322030259087049883695060405338042048207314330883603864894141267455986509219991539549051387673162356803263836168107420605718452029794731099427643915786821702256378412752797617020245796289728988854675041217988270050479702688331490693487826156526094310665105836952485222985605845996346064727172176588792915148346025704198833319838337749275093448075951878776266062049585070751229597995937328113186059152982347762955577761303875905838783487767998254479173127937850584002046332511760766412503719376790457231736445795809697174096707438844677969617662924649037231932236708985271041067167380081562514069143132342112717601099140255883284108371063236887398148874345106537011682436881761588840029291586362434216219672560309670184685433667390150278589981333107718126444867239445647395917280683958388571347339044878395910644857043973163555437585819040091288482449657650202207385671256154942815406647900866010367279911247557663686445121140458304900845414940356204141771686564099466899023911772830811664002180292216053098722568951593855643136831070038463202861297113024638769913786799781791704788981369874702885760954774303417961746502587631750789226587485695477404081511823776092914117195655706832499143221348111312503093796476224337137842589824779295942730545097283689702577140977750575194568490448781833290008664819100195203348306360348951747989160392421387812052716092071001488222378106018871401384480548484952081701477293788081844266164753879851644849143602023747125376493700304478965310082365705103231850276068840953854391947982241466088180194989564916078834919883356207682185998478702095643921091291462691470840866426672130633275601282532430409240290386757361410299054668281714268441328855864023952488656529624541839405015569021983223138093577472767310523957755095198144709115218443004444278870212542386616506415582822475140341165912561244411425700686354311547996514195002820343276900632156469939356162667956925066943045202529637290803582927947775616398716361678132616350859499790804730039158097839344442176383851246613915410259120613838991202637017263755289010270376042534285397666312574983403177299023223117480991459835646073116951980785187654231657465563239349502990694060468999074802657723353148226265340453094092113084571836474888473488154420729151530501410969312946864599559056417419197873026991599969278185331987919514138349176757475515329794687983927332014390769743263569788853039524406022114881576032074005397523321825140108465432736127382913492416289848033772492290408637376978571241412531218167300255704803956087290463780373025316252358260260972540224293582237823436154337309267692511537927788755057616148812184738559577223978425749994577037887279860387095937688935558821135166191238339117996152972029124960254627499020880925098794806555819238266521857322311516478263576644214673497029039810178657155870778974760147695079186712544454744699919572102213243182095769895513740767820216104849863861539812465627438436844404306248270079682076328766043387632105817962097465681457530242719619489784323857570305785963259719561018914821741610578832939384820503376392345993800911567733896739548638292132020329336432883956569931925134400058137941884505339161206853981241365815348986799021561465268462598141102970771615873131581524346612230547335127295185372632138159500264477923522098458556313268372101678616783406925657429650064984929456536213283193208611860534354573774088458722189078501413446720644812093848162793544127114488138869677727557650157941576854999195917056174981568388569902425279949773603171905166756912702053032268654847860209180043846431298695587613245788335219361226011787570683025311211435570435821281041173806806025790563126327347666264581370014566185520063800623057421379266309143305824376676575781554444592903102526228167662986121394308496332308214035127463773338778502997944810831656697532502857777802380362307834790470542488095082413285545826159217121253933002441868864441751719628786987494334637601183576557054017187829339769717027147934758690554415446420066129725958595833710408168752331251701569928722595831068374281215206344001762122182065623868840083303721043120231799501680621521367554861894954113344361154242922964479674936684353366145423999155934618885483771493674068399132674388438552664693525744884401418544334910647865110047908606390647671808003175820610619581092886957936613391064017414246136035075437807027288375566597252935013369061177756509232895392196332114315656411333210215198017246940633324868094537908567509583192225460538799890931877435863472204966460340643415208996146839963534749515918465083400959933256057437056745981849899080690932378669877586067089409341932157693113479462287320321999382785131556916891428132333988756805311688388023288079140605310155138308096896833119911093760218356061234928668500656754689471111603707964163876983464930615507603626997514595123580830988999444596782968170807770624222672473688919295776717165514578727792343510487865880556093942300975266542609949946487452041841629582047785339513246764301336407946922286788471125467498498505288561411604393329397601274753537038151958180476652428924608884118794429670985390733703039423756927698047741757935594055835814872682659603557439192441335916691094220725818579634325195575661667909391924421550409532602232661504090803043842838002081760122479199811177998299240336489363348022781003363333988380732631753126563774743670503905921662099790169376829187115051150713029611279469383077885556509083760805966277810796372709507456331187612148330963625732633069088492828136147833971974567435221099293318661938643811194588756364849787484316506545657092344664845992393190580481530187448770903582311540528641275853713255715701268505786554958882611268240532706394656023432393956293558032708081570210357009476925397410053522975146453859592046674908066830826556272050068542877215684161157389632741284483602790258005778042587048232654096485792957825908867058264571724439799850921727078148294924492687701300148895797823464473144449780482089454811140766450010849813723724254046596401968004969742942719923490727465698076648744883516814627812023152308650163762466416040233949859223939493489593278724297028663437735762827062303043332141439503265814655073981033787041638862026514446424353866622873469746586372230359673723197808744978287532071215857577480284491908474101176691504788787868556622483734345398379535368977605010960462193597234343419302076793397892220854080902650696996265291349344407127279128181746292320756173746506834765672857774973928353612538970015692511337188069006861240619583183576753198067869868981868751977944987066029619162143904216139646157139128960920064768564131414073896822215822808385522244903616798735007277152673754907225466878010831645612016163269726166008776708899999037273961000971694704231480461723724250822718227229608682632018923621654355314634886116177278749119577109775073634909670329226459581496713661206124213566750701772735519360476261631316470939515407639074841402539740556351074759583040215418033798999024627217498575128349019477128534801852738983416536487773054501414741393861478037435576351221370866995026142406926930851493569205343463323262319773454860530305988125262511172517316869268255160120995393076275460269311834076105671085920283057576610989547236036820740060021107193048606256687453519566168272845907413941868104066306404036489044393511112513284460533461792560446848604802387374276856798143268226694158113132571509672957599202634166553140093738146964195470698788796198597300467246939158849196853402492988517087000151766131435553939525327695615060167079991120464477837228437827881108990714289830859124268468310871529632108837276817345071027172181791525582341283914058329535875338976480572940572925980628630119401171416636220176798889049617264170922745482447963491905167139666792087537889396334092639542073854333095809018932913555378688754157133795530527736174754190794799690557692994805330701479966975366965405438782307571042657273246325656745773213069250271867828243736260123826439182772082473655290774591424596039293428402709259379069739689112225835007724486142743238977091573610374029330960923984058186315869798960088724310005144288727460501414942242347791562037294206451421492165231668431409535622981280631382515036228157359565076976257330512977923028471618335506191456868512222006941839092540880732909688127507257718266968931048022179234125423459900933487635228646332195035572514377595622523156300800404919596045458593768382321285643580733906663958755913114197876802747805240144672060340823088028288910197731847385624758606000888170238090416067020942754723413126581588949371503403656476690964019779587933174169315476257547698297904049224109530597422194644143634682115564621501490055770498094292983066990545429605103241234312601580302231294897284890433155608659086564624233094160416769899383948474114972227037968777586020081645161521691002605793984537149983300580766799485245056727196589287761198464109538750193059340702153988693307388673530137896170770075091755548885473018123917205553731364935245551145224908020731456159385422377604266011399949111171834888220247163596652514959649274748143636950574514887279199058706715337834806439933540624256566035588245135766552392829183636724983431642695367396266785840874257220125512689830395028595905934474923746057561885492130552991376707701643522959939714836402557880715888177635981715220444869259516245112025299037362392524854292947560033798565644007113486845837277371104728138139168173076252405132421320911735546674040083107197592092706066254200860615140914831806141738582465456107407614721857091498692954923263142212253018125692834024128133736756704741794049538207802550595763055123857538466750191034988580185098942650119792613210885480745804372377844914923292835944313861288575203709380358764329661024377003704379366227091915103885155901484581693418320190618335214171702078613305037417735920223960897082297357770568712810375738200240507915200851763159342257077548191011792112666812234649254586907360991941531643390071538470986201364818418889551193500222002783328774528822115044196893491421966177470946349303119361547988324848527052735994988271638449587200627762126050369971096246757656755851298507409958742464213669758625150863110925652207359298054188174770399746963967766872516770650033958710629307378990799628104656344624249273686102526846135485680297141976790477818764429032440845386179247285318052063334948051910896792720528473030556365101244757935506189942452469918973285684568225325552093371621305194204747393947644686003052317778031075752077523408958439653532206246118535843434166395823700718737217125123083046409151326322767295772198205420972397636530607444160747358235984931559612883237964286176798999801391226360743676813116700948594387308382637667106728831532460717169557511660307565152797362979126805150704601474929458326774284730075796322390048013945679667206295647085043750461209726118301245159637601362089599169838445259340939445724083708371442774352715785465956514668403654131140375758592236633846615165062847935287744434666748139343218916318826130745463492319739583292483407117396340063984164504908608860622654528596234616677931183879427497152767620880980979919104228351669925025151340560024450202024756520953635587308679257526544516265599007601171670666055132671539853055083297709058237620993700714149257407786295479385928115860456529294845450265857463376918468430582206818309433813539175174893968475457996214739274546284296609505071167426849948206966552509495132899063536873096942828937456478955947186117849149638269455602104902996356640204137627985077031095906440486593975960050559884042285703543450134257506941522975985673481067272179545383517581240583804285721325502752476980835825501933622204457074716470317108848563898461664865798652913453209139052689600694605585633084050948028508216276306886956028517515123719303662631942613619073855545005525935258571183203782385537922262727941736544532762629870184532479236324853706436243309517476859986577892205762241460910264091693374855385056506385157349194495752174057799974044852965327803957300448951529289420439439235210335274009793054311934746343326288909267767813457191333374553412602976483052622719146065450408311918615826073017167040861658034118293791510904418765969857949929765464408784576514549134094980647562048046900597671023150199474666983071097490086088553970451675212517468458270973970347902804615423943020958975900362844794669732125574089339761068123267924079823368951436953587768379822808381245042540924711064795427164799411790776930873102210814875255615749462614036015433231987228334662271313813380963326008054930187751427246464640918175397026237135132485001346011838451461759288357605822469724496221999110526652635697204404364261220155934634498698554774119213159415623347902000588156042241959684662549337229235337012172277929353568422380086255744648777315679738627874861132633174971305780184088522254496059293031177663270020492366601430636645315899799997171562057956083901726504966909991094581429286098442961420021262023854699665660422633169470615747012011189607406261515048764705116751993330560265055029641570863817556036700864750662438217302731441937491355689701846692084579277698692484497145360371869672762053176866288474169866615499501894772372979661556400273715354863044833648342547566953902232249532651052997403683442175147406392765400274534208496628278751814887100229117950196115006434393199039386179192764455403353565655337068279425221436033317220958084483881501888619428732595542254680110465117994837566289065432171048206681471841349905671726632208357018125457009148637344676313889058207905108104091745189990928073823382483165437668220183543856843431079185658696710326880513633784893352535886128896495544259059498068377026327789086957881154168171062741427677000150841369573433495077077701264921875042555258906968303636076550374406769189566102775974179027093649697005866242392023975376426755787105008636312035204783979820073426017110354168242455330196030731988234137061603747030426533732452227605220732547926618750310973789075698828411791525810606099641328894584165920307423252983279238167179644917207553989583949705771109004699536888001894558462946590506585839458161813057467844556354808868107165309918077200345955013345645614053905664180098901251204092049215544039408384090349934757067213823810395226077679516362716261220052444476986182512519092993842460891171065924978554888456245136311068729445005193451689670130940816146115990885870616104430644380302825336226698449662977490271093837099164655320501221954229970730654726861072971180867806903005797166458259992649968542395465750149839144101669156546454230287776852652614945390926274644112934079976961894705963270829934560067752882562638301250432991168463057693809539039174764051966658611992335437805317510907756499793774547234648154352338534419395385277214807872539803066404676467374706391366688771728326561307957133238613095933372009450982451558868637666431161440167591543885822328213586476656530275786442074254042515649833737065917591860119713471162531504199987375928682290530880804322526685932498652013380007809812986283492711529022611134611224912429036014410308969083283353960228720420443123185318781620976201398213877104022398844557040445338860190467824676041184271205235000857908203989469688155912707567530159325739276436562459930616792990852697783695653398082984494911653832180335848533881675338419553020031757408657440026843574360569058892025850716681076471734190539712724577050911279704463471168951872683617547813194023872088491531332875588415861725440253217268718375307494409624698353777913296007822795339692751716600300365459482489295103143751875472309944969279955230313337212373568872731046340777995192623428628138164063776083022338487018692491788062821136215570395035375955724149662665926974812443264285564087704898098802161367857726531382782156566355202971874696227999828831302251264777213508758198691552915522964034726801110852273748333757145962042222427173573136000812878789634157456103403372211592934636105511839471442781763037003044323550385783242830554674061052389361320597128275007805091164491561827352099597409651655909333142148554080963419338077725699983130400773285335257418590162863998369772305303051774127129307202978214535360554698776555395774951703615743802904446356214581605071072951940977152543560310411373029272678688812662533990570603704611222981840960972545561307088898889279763680791710476211957641852193476228115968343066233218089847807990336674911552788005453535510499935997268703064977624446521236220149137721790252812747912065278910254701603320158289453291986230691637651697070531114591070918015538062879360452925055330523408884881892182726435666866695659403253963696155948329586915468828888059539382018134101277323117516295488701866908360047546323898571133852671362535185824133250770970097966517874143520427232869582202287858315036835696361204553800048362785834946816179999752648904862676800390146868049252720047934316162607593254553008608940023185278038150797858060732097622978671463968177832393183031198346162598705566249947257168055969935065137632719425629050366066832373734942904074926603717408525688770086369970361670508057247600265187355748360510822571068474400216191622288495616711780046868364768660702060040358427879678026173876068104887642080237040868955127542866422567194683365012005772896557468233128396087798165005015842211953246943084691898312570926119145043879122328301445846160474970648321001184562333531687283339053295001487451188421234921672855031942935448371495498457194518319221298617533618415986082352876304769684580234008277996511629156143008967840037594207082890390126546649738013048810099687707639117452251450479978124204446121143974526813897854896856489383577125510234197707543649867984932920490619290516786097776827084499725916902259341615066339615093864599759938209111066058791639047035936730575548822824422104048377869651809557311630782745438059629346881388542572245746442089132597739046897061159494947798457519439080389504830756775349982485052561864992512756147165684853298235559135291108483781719548210052372431078135963055572914572412110305203099057166782650542343041302911617268084662414905748659750761277021120889493514956236537029126418783972316096934233728078573572172763139254870935381222177459088825922009853909684885066727256097076843326363679604377398196437609647303639220562706863345171461430114189193233193324497640268746462373660392321449955383742110751407193851885942205201360554498969845826771406077314895661105937827180450522283612242071488373990931092430314725062068350435113377224704595960732204071420623243682685582214213627865122736035129216851846329208277067242480091450873533121800988376237749704196215750276117198436290908519437684934565804278440264188493395122927814148877999073928540332371135233308920785625033742227486397168638519978964189641695689888169659530776941482894010920333759206527847397845434370417690712030859490184834791570234578925397375333869026322759584804007185373851774274817794025026996603372351562977989469343421469470076761636144681879383822505424868133860292035425732626869543225344886276261144440864987998426474862549588600991011856905326874190795532708643328680229784519912453403331620105484341736819611499643599190793374489618835057237021059328744023566565625292132556574480973933999176846855510687940176640210044144873158988941591053378780125085225650595205127064910825319110290032368155526445927133953799087195255774681160301232992723896083407829301931944749321443439852087138643592034840820649810733195278293321586525402705300963868012687509152321321888504248319939304933620089362031389365060836563581003781702548883169079010542351041200025590612292288346873288944258034426121550730227168701335577413751712062676963473810980308498939334744460922142558984045228739597685775565405002443017272545904692248867388967331796487166327313184971267378218106249008859429099640588527417539927721700063894154232149449509201517102232069437545019660874256323352057281139116607092892063981959219154124253515203942225719582187705682729548483371302855567049518572144519251860471055773302011512908731194417924122293556004571477233092634465002866488226630939371055599190369298213344845131283773891735817538682434634972332580455373081926302877030773440056594618034295809251594759263903585090116026885800160813414052874904447753441111136934584095615602037443300051845800146297916167642241929323462194049898484503940937691184715350707814133015476279849674844121310621612923422275731702322039540868990111212802550197090000210528945235916757652078677133248257444288420227298862247079231030394102657562619530356025905513628012300370984960539273065188783557193914736221569655978538951186586338138329351350785948011101596003342596131117451952597296304906355326904848121962996141442107438020401900811958542054695299695137672369578940909536248335413720268510794007278777647665118219793045059800532252616721980442911329987359568383604930672594220710464781451231785233239692944065361797644749006771008439400176898948111678727900700560926719871981273448275355267910222652911278883620522723473654624985490795798249520617811806396560230689472745705894097999671577798292258130128822806557915307085796249007087147025547930068016059091046442782816933769582394509938591770164266358623759183765550288267126555785772945499878558356130089286235054466768882889363961777573888963431609935868548480758594167061404215364971152839049479362638679754332438725683259235942259550498550193389035382081750672905438781735660976075981627086603186717207015781259384022213133772773548006181239106243574425073420963613721234360211369704172602271345901601160878663861988526127287672185356484731303903435089753584664923144585185045049452604612756171984523285976853842044792753248691408196556664302257484030027694402593428976078372463162800157932393084347122973312199256455911981101451804600171286537725246836114795096666065154715145122929015610728583170481821532479390791343926636584993718635970652660983286662604170449569684366005871142746550506192590251238350185777076654902740668911110336277841851593875530594686459771022821604111264839174086688009674897238182430253035147833058651235139932844860133534861776568426303441803004963648777094371009521881374125223716569194206280619763213546636035337428017942351874554936961078328436260572794525791397327514489627436815342627757878439026383491645057942569637742150052394728569635822572122031467525950040075466546641139465354090302191006189084034700672861704890234740459382327967714732983613317700913157414151817351573267510693016594349886867394683275246738833996371575503916225754829378698918718126397747287262078202084976802799611128571844739549356622995710126204555687537036912172661032166572444817872125418909759416165053446236067748852522005040174655188216116530007787902927164791475310202307246585196332503616111037221763364660080681549572494344093955965210064498674623216296432707817285414123970810258345385966046295214734640836243864503354858740091967769040362873291934039529760909353861920731682740066390482345551700366120113326544970772747713758801174815303513056729905524897500944492245448684473317278359418572322289908606489519936155225732596401183422250555165694671850832672956877378953580325320838980929614907118647855972313901880428238295102753036140558506293968855282821060221291990532200709660562439467819516422193095630878066467146522131737971066486485405232031401254680981851119486323142957961667986463818595141654379739592142422184763763914917145637026013619144325184182285803145671353537901232747470832322761662962467108960724546300798883793573992812839875689186644539617715595909671180394900505307965847735046827007543837539597520121600772465081402955028086937015629800644534752415563434342299986549988768059766242806890606373237516531484872003496093832668282815412281930715045450430549249435356161621818902124518270205774776440647439795947883705446687569257329674077316242872613660044815579545184083727289450099002063475566867600845172401354151658022358949014249707214993050847406137303186498982411655589613914890986648214294414781670448026064545756749230134295757399938146499614414369213779563019730913149807776262227204934328457315975515723965032598897211256834264990018886510775599754072821847027560485534291813943857882195013241751654825842928732928768855752082349786941141467352098950914265288858901391428819368999524884600070125974172937467365451299223951758939962067401276580038314118693766203741488662460903623937902260346500982093475326613021049118039208541607140457521391023262825114390645408883771841664689668332797531758177996082842261139052444339618243500960351981217200352238773363904243316850412473480627186960265708855352632640003174759909652776645091734567488745333217241417814271994416981967999641101107511073769523362717733119121646133492451485708247644459347836033404475012964155471286998456710110973401584613792286444160632947379324391130763023798453101994234263292682170782712422781447755457720107833054495557729107407807952360166923045901756212922562681056875504365883241024398222008706894853674346163050147893645518260800980729557633241271239637134404794148309463601910217129907161072109933264171033838000779336073495898067271715799544103457529234507769206191600891588903964084174822118666593135372314562467606272401348523236499692700283714632709132824514857778805835582706104067442367742205527678265040561428321890292749292409625862307266920666939337726387166276805884217994121617667536363575501575349170758153059627917885143931074323119323783871681259073569464735489829064208659355014384298558619187220883051776094543453677293101949867875436282922650225845575546783600581070596279363543532407914707999075255255882128588230222780212185241953546191703147564609504320963386195237708926688817598462117658231914285157903922967501921581868875949196364797306823735237333464459260848361966551992931475604841450872430960336550970325866034710285079748014409536132022034435104513956633731541100763121280673804016868029075319281177432621652805106119976603271660461588534566145284960112841277538031344911110851341295979350542123029849598218788916351935697647826760487491264142182942628436711263488737623462291118932599927846025752933237322169527926738486324442541321014965981677395418274787508664692976194948140422325265921829866943748034511353557434503901568921493427669549183664338954487720110579112178685578692721468478357783454454652386557335644779297840369386592055934999183355493597238155895177264186871128096707451631368267654600164071576548321175644118113974427460718838094878063604044958026526044759437028279369776756385014485992760719147881320888513982127506422630899645272848942008571107080276176540227605498914574180897175668260759441162645098805452565721215541830697293698932451309672931551934524859536838345174702353581112815803191585833316345855329757392968557607935119997110347089512586334832343301904650776042244554617916585045111871685018055340521647514406349074079608781021269029792760707005307139700677774239059473587680223211755676292444258199221943720526594483610601947765672121343625251934937708414753450438803556874903063737572139995954144459062752512449297263669730847752129574529308924633135392162425813937621194886084561815335999589510187221856841722263364961694813654014475079243579623098564989948657125978806308272571346985911731698332892637988626913767313140558016357358371944084100550491246765631819049122936781998127278637093098251618005561056677297276279250728170817517132373077133351026816639499406542914608356530261825427321358770437096741934282580568180674159276232809155240388062859654955663296892119036694833839506302708325686236402159629794002680771130276154165094397454853464119099335186314603205087672431904592659624122819888897203418670232631883631581830811271214699987014262866351649549730320520171438122411836299987048416371490609023660028044954949218850086398975875694370737208452227731470082399696623446302790922849643719476780318045820347114927418110756267534955028343148362895796944536433237048857332315513825361268325346569747603354348957783836810675397102039698000893209490116494335905450778770367903750870723904575013912983566294872749328088238535168836486126948744128051194295283811705046425358699860171390858179973722241209730568187050468861314193102501720240578309707268822384244396165019834211155786818709999256217902636784464388527719485340388389158342084803117859162849178024402798859390190464926327194416438360625502916176952728566919196552445741573204952297973883322880392848616068890557199516781552772773603214909820601550454228482782199313409253967012270921369892604884853966612227367335734957936576727478050746170808125201217524460329752884842270314345326299258432120536624396743056380878904940131918494048387328657825443139300416229282826420918219753319853883803047458125994085504878637542539869187290325258934333792341730260436295268038755336192702546949940549839543006667041562849085874738502756929693003875070523655687569261277538211638734789293150610983363423242944311656550863685011387100900382881991859784902027030678690294174891319556814597977764699062529004835574862281175957063637143929118125203199541953555246736298371259784944963587231873541114884219329842073691025840928494748672695983614890738747338288875483606056769653557946892716248568934684693087475623509097394252103864888557361163128248353376289385946181210944249969615964510348687502575657770234857309942580751814539711820972397336391158204279933056450594700888116735859284263036986331506701594615060356622662763022644478776813585961849581565579440754103851595689671376037146256346968503111703962625504220761072526973210212435414938455892932730610564313306968665489532969764733297499084829004403820696117344608110660664350727482297878022098805939366179564518287630690966264073243146983251349466731525452568371109292373535876585976536952496120829560581015959403393695911151026431596387582473074263951490329394266088261112621947173438467875023109934382301692369164445499319163146824315106076100574468279487674056207202292279054407218689236933854220795110810474954795193769314111487775258074586287180254076736724591077307176404458226930003272257536493687600719423877475211929050972672249026601022889017877726261654085538543767645641227682735028162339663135390984585145334743695083292043563289079996186925595077709650181935001024716519566693256694155170225095717858521797023416333095450007343159327166615622128699863921679943510155491787489243227560360245438039708501732408781465463600157722713319036026920628284903882008098464144400262725527975722449922080808556833625406438722758556140830430099709970754183904421359722385415394152530902283833502614256353875722016566920270003218347454608991473678532130049407581455069693502712751156826447756899705292475509457403029988478454834285797644508962946381006718855895642702075336347213483421083613431707937913695146454142705211290785781541480930235698560651660594296428865606220032652406579567950224931230960024184548665852319436640998961589679205550659790402384233926539580245978252389052600374035246438866966751599563384740146747122122237952029505853820499763728246424830746977446815940903717760602864811922943204432638586543875814128244897879104789104677872459324268217255840302132438891819045564535816323475550024315506695229972565488625258960526315767941722665450955985891860475156791325662391455404443811625589509527354692470068427754464223498562208656205467387528631292313790496118987184265939400254299369290278499112206902787225898494159245033730183167393040637261642879509148900634522409143698060508567786197819111785651385551064028725894313229452399383410326859035129155724329187307693743060461932566909081711292808809915208010703206623019209528378750709673530158672014397552758940010423647619059184147319649261688068842192315389301898706662743212988523194955393444360455643074342165408217678030275911504044761434011648074125613179792107350698543886721392866422114486198874305424494189090162210879497938519246867000555097396982435746387307717560270390377596997030039898090187498897348046364835805666107276265512904709200578400604529979344884907123742527070133356199168848844155664148529246713618837902780280012259615736235456730692398256755089647925363805702525485050537631035932104960116778791242665691769043234781463414025952698666975881711505831087861015719863792783299949992538622575591528531137709300074557661087149843712150264766550728489181234372616531630901655874312165617563095189200339388380228774983598761253529099075815876813530372522681045879927134156844219330648480428756128704463139840077371316997425871920380527238937519783115330697420194060863439271042241637436630687651982722607686255725377388364288676736781867108375959743912511415733730995762746552575138516620620878669507857808801757291907386526734972871789074162103609496983562674412440649454567460994869366441781393229711841974633141611220594864419365818512085634816564020638835519088114705821734577182932648226620155260866753943768618868002340742541348416415641829928045989237269425885915788551456424007804723441413025730291053636184193928182574331077199445613121507961589458792369760277754449858177314269162052689749166399099236804679472409723121031290461353300893631708742454377218551790020096827490920995842102314420369835916213005882446256436112975976593910122135905094422144499266777049900616522331255920697926612260818645087922155859333645932620162788707146106589660159538586743372176017294978394197811894654353587364897115159343253113702931543170353480451753168644479578089649803035911729501880028604528004195183415192340459529743213386168668378683671814051656490486274242278971986296066471933547519243794819759111260251411869516314489550808196935262365837316522940143194429586024941506366580367945206955757607534381532896517559619709360733337108959452441699979725997703915075273401571992901848471608256481794004012564614713622297248421641538396311368561801408662976510717667245291161744635120756328309364219976352746470710044751745845663148828521197917244560270006371430734362683108378460179169021998961100848919604537908260359037646860261840293456707429370400153612076184195070706776046861900568251818605756452852899625455375026201458021552013710748584593761390994679526531124418509502048039335995545620913570103090734032820668030314606248958800165479330486213761617925427001822238690298311446065957553991782735521630991340367808121447333097750364360885688542750476358770019374321706470661399745246598716896536251526408451670409613618126010228651749769930773841902337598717322585178401650720720816546597453006987140860966062769673461316232138554449083317246626801867537550450748465577166968273247021578085578625135733385275274876499694565089958589466493178951046513328504233916995525782607065590299971193396004199229870572444822210169229003538681140826309949288751253233248604584918213182491768613400465643277981369111604393038116329676123744810648465868451960084009147117386753501802288396561281621440151122069524555686878689495931779623906019676894354373958372559211576121675649938058872804563855042598361692045487165008390136501975385070752497705613518290561696931151335816649526510316401010939825438748020419418873046010301310198318643572131342446688383660464204571371836048080148399778273427960762089645259600020634359697124471788090020513263596073590979137915350957604414412395153686118844005364461962052718045985945221902093404438660023573730868985776386260513702702402635243703619592520482014609928621407619036083968949025508254377254709596955898712661301382140322715181750102514631090952676633617721762179348793048025045865920400435559757765894467162461967031415702166921740029174389491924141021366355762133087183876674820186091013028030838358055424765619237188427766750502412538817333684082635101844771431991659228881376345674885723801910996629550239968364910160312477691175043509654272179297553281052596915653532259341764327674490398551168110648267778768440814333158941935460247869655390861954446258370118345440011014579601073219172963290891863837463771645845200328179636062531738133919506952147595886530582999438126385530074560274587756518822063358002244988303705817622079322275515848024027174876977098164220358358416413706118573248525193820784457757222168896687146057501563791631465068374038550432899612096139092848884548083841206754991483416347637039166404644886276668504311116034738206649351541318537594666472157127908633895767553469170799607538810656534160821931564702382242387484283493786841309443665520238798545035071098931017654533132258919339424225825450438635713272440353300828675252796630411219924193457857223033286979209069358506643125351488051236255739690180645331866944262063611174278031048111757633788592764609746715973007670081866296288595306280893954350677464101855756026797456636371381205952867589419738128616813050623636109547342422980618595588217197521903118435102232812873848336743637257888996563720710285592309614178340757873369686434342617057914764584900589381686228209963166574769709282657210567387360801142041756268857583188820711738586774547882743920510344577424123497464013306740909717057531990059947931944963529205594226291511870279189425824966953925256913078090941827789749471185508108896814292020859579305742947661785431646619944511031627051133412739542434028102243735896362667410294954339994220650672696472398159322871579715741605218437252921772889403123057254549502976150645763560708894352298580038744583576516703136109248601315546421563732478514387290951295434198890335256512189103214205768546488819724561977472232685960467469853386023127324175108310906063559787496268822329042746924945564702938283321759654480891515899339410782456470611342780059618748407993053717434139585123617503506267390125698480760268988277274194210426983613847246155280212670772504326849959670201589409890641266733196669594954432659401924086058934882680746570492878797030010921155066021287335393078456299990709707133492992244101354001719092592469171718677488118018547734610332349176832925164326291066402929147894201450968685651877125914881139956058773703857100061031554561541290827403569098427361614102227113927472934251615052726235827559697102872033674359174194703875914311944735550624540261407483533131119355709381910025492154285567106690666658885595964362891585629347780259578405314016189753613930718139633344308387376763793416666377310960541116032893344541807951424403590401234410657995776289441087603554334522479731151097790982307361794746595808592403717864227622314813540846510363719302703007430606428264858575067958245663106964947539053017124682155968350365175652941883741371491406005795383096328896685254944992101166286260637322457356987163928672760333269252137356612151386792141648481530811876017142849089870234841353620138963404259708306201620913315715798849862993150614220446606299116637805277153786048651041376121271518726401695603013214640468122557115735998933029298642326236734841094598769061135663117252191899524193370097855606480554240005523519994067110215971669256750758224942027730828199387086751170826458490753711920196720186142406441922790998011252790342477650602363255025279587831178830472267804034301770683257325475240421788902492141430902970702438825057698257043227315524871606658784163076875659162502967628181800398748347831760251724058056995987461267117323957014358650212396733944097981787116827087869073596261728138458552085870017024627345246882736195713682443329552938783765611344737949734888686661218072183603691274212902545240600955292069401618931613556028417497175682065369721138787448073525261411905330523162105509741295303596725033885167204705964108378612706254969006375875327639087273553883367006766682906647507709546920835870215931429532162641266405993158457894430355444777335516240338167334896916591125982901865587200243529571117401671066853948521267404079089734807084802622740473679360393236029584963886855145758175589807500575864241079122739789085817786588386862091501783372383693725434981922818449270531367105607926611070945206736386555326911467106899194255217443015477494102598967330738502997864626641287642054418159133048017294028025920350187679883829416393191909709693637331993755189095631872764046359423480537904500371127567357746211257632245491990408817980265955477098297843740683572682005485540936979733678292497923578972035758622280232061102357436009656092538535362874879852885669759139801988318844488811960366569246855134028604451926005090658270334662643474345214045158644775759138603741042664269063198431520325964410291918054461247737571643506086102702066469190902185554906811471660903208402159020419050311856458283935001559730709699111264718215130575048887269129794893396842106084301192174441970269876183298945178972880897250165923343729638278440359981869937334622352373619335192291616827416160053358556520779422220887787173741920114664883000687468888903291297287665060969499382155873026437954746562254959137706187605104344810439740527993602246962774572448381666561847140928486737406462628133784644914118737146974011772543044398408654179258669402851494139869259072978088765198121559397325200381658042641352627677304348823448860973212822797796628100837162649492599489659960382594631407241103470160496288451170841887073453044014111953784182656890661458697521986822734640640816638078150117587399504153888787705297312611650531218585962966064106288757747600862064379498639639791450694150138101629901704787461359928666099576263468936129514513961392446469011106069357359371567969076663709327913395852906705075979251479404773236826149850331768931429191804388981160368184356794004750687941161045872412727531079764548819242677793763116788403475276605854583013933071952328797712237283451810496333121158068912575435683566431960716393663142759286340814923314222807988964764653094383381668656112657373370766895599084739348989814278549353150174088818990232690769720854734117233496740387817343591951641403626110170742740707170238972754156485785933655821599464385627256275098575413319480355839700585228681448194736120885868519137500427967236950215164741290296366758665565922453846820037435403165931516187750175274508477770472066937277423764183591335078320011839374765707551141994086053799050696225394695034250097292425096706675911477608702699292057237314877921127672057389004107765363714278701982750072400551881495786721391002085106617631553125287940698201929333400428300583879624518940362707777681903369963369551832136973771602014783106136066757312872211800295572494823555314989324877556862219620058501015551563695494949699717346627740751991262929184583129100436358747195099371003613954158703182238516393417621957120929059748140968937502690960031800439871941116896783314697327584550332404505635765255720610414732898596567563033861364114424015379201240584941439387930056060349262349741566938602147078846514979603056766010611485656073630808094301918562891427459551855263029537418453639762614859028613106131212776603551430543168775772356410511390137015676713222802977365970434945905325909110173083618221044357311393619908783244455010611081639708762228459234549356348514106180719288610938016007797394252015039206819860449221866448651408007361658587942097387226888857729034164486928911688892037593981486142453428607776110305895562418727551155751266582496250838356600488775383091071791932525259473791942330303541110098019183541507874682020920418706359360681345001646253368987752020908134205987581670927776273348419430253733766878261937326991491674698017777037718229281484715551047784374908067899338820568273764800728877768116922980229211385554620598294285857533690630420739354051382376410533085922392088988019436544447914691618871082108813482010659653797072168434616650628855727912322185058027888714629821793071741529785224757354849177055096121475543800671117772696487732652194957191471510450411951674672555267324914566477343459332908276551950840930566579137403369406160360849722093009554080463534151556405981249146180249209735349529765994701990486817755609922677319304293559605182513753512459647524846904808472107897874075362928270664999909581592272564451944757710975289764821654549142494598407967263469652121341915892314591926961717308484434672407222374231565106048811972565523490938014168166717057274530957257934008873872658649596543725740784666062946262350821772933043998775197760716132966497289560833845127898637600231040335048621173106111512761978643992099266176993279796484721330631773168201576426108670899309380105521367238521032719059526489766049700299121059991815381210613920332293388677130282063745617716548535586620365237988857071809370864384256993890307792482831487001785121313940290624685011457650241217284949317678866690549960545874608737301817403902668420181922090330292209394540046627475078217380615575744962269938605064066862306914622001184060488009960193538138047134179379367948799847288455842198592515280889455987325318005444171722587894068282505205426283386472867108089166710982582547293569163734815166183411536829593529569588711845910319540065623239385801554187906455064321412086701033120434851243244134397831383137646071177367226253590341996086455780310526897731210791520373274590698084408808412364711333843189148526821562196182282671113856426111360859944565035418902935411387856589169299019589256343699508869614244171084175450758037494880528008052291128219744101435790582054568636467864744097928014710329205039917708657686466682512807334435371315193189766009481161989020943455074620939834458593458833673495592996149919187878396360445847946786226603209686394107055308022824833611197790096499891960175813464338123481615994680996030739308347374744541708758896867011811653331830151258324690290814347685827043729808136764167958939567222457665965457600302035828668906708791452109222375797052584921827117440937928083225520606832878039159329248004778432795279645475937539535312464028288177912854988115613900908104652889689254564046867353553433004553436749653000069893952250090101190829797580369132986408414895313543826402087954760028849773653766748072820108868469641000657239325322505712595559744929612552504329856755133186229710013484545736705704212443222116493203694148228319572910961390072980143744368360579739890713790611707912941171143039035524005487529139022548612214879203761787660482794382009213865405420809208344681414689627556310808022975268355498247769820837598341417824478800427711213127962409903044271139381621490055122113975043671763180317742376247423033357301991038875805456358926442216038145200490390444653167647612684150362267371525033059627434551878354045731193102964368763067357636678859129965612066889745361992622666475034159110271468751261168725401129627918349004467793338212584289958852887958331246076227813650221002875192372042380125536548999803674390165486569757594140226000622323238726282205495426541979127409116060100949906162092063466709344143167341478166067952876606234935401693116910288281710131645402482830217212317946361875962752012744561081298090391786908613491770025140136764399633720013307170243120434395953208406594459818014370740575348044541902053609343134988715440063510484167462823378098258862792315089567547395171333363752785371392750262538755667864825976406783820884632384045906792449010250232318913687293152361117026836451363513577603461669500991115265830508591767613885543653233575325745822223335970451043264528794938892473901079810063735524373714767061648983150087201399332145645336310399734725663909107385906598054260595321300171359795249282850267272925267935219379309199628741411700564225166402151192094374980950580084329190190417014005326350573281492078897745000226569930373149485643828964581717665223952977013560082085069567290148345221920171684706451472832597895580796272654398562793679851451911439631767151168146558977006427640370683536557566314903660958805636984147777352224759005486454586421373735384551070167129650298556357368346580613388908589016760982185931290128756113263627718734767203412517186085641609077407790777926257212624559507535885898189114419021882010009020613540360653452872968319936836212581678451231154019020655842568268132417850190498274679602660857467078466554142761741955566640605475717708338323865762904291668284795404708183080670996693477904983543187374472011800369206985166063257568627338947300246837241863779703499036656044580913492849360193393188300541026617176372862565826044311967101425721364338239150450978989433950670668462542838964030737603372485846738362277035512930684866642551848491506119194743285348943231499919280107094374792054337029616447509627270703372910405753794107163200434712946630210892391758825000464482238318622852805922432921515122213822075729756257705511224733903366461450512739556482404292280520339047545887516535390639792945269122087706254852999897223397499367411968698673679182785674051852816776763812256562716380014517351354007488441878840122862619803263880110294860346213733716191334422738569191529861583802678583622175192322989835945260093489397399009648402268202247660656668522440016140107838500411208398728827300690938145674899972110561349858305895328497071429467569513453232146163062249576056766728042572881741073096356431236819427236628417112248580792571172140559384048009070247030483107313853333640701838381687950231563407646391224406973534586827369706044240329434683892934146030414298113824356011117398569187230041650040329364466711095166391223394258240589376857780935876129919498003610481604704508619296944285760421109112435981206030091203277859129923995965716571068258769981503746526854459610945139084864690578777622723572890599920689110146905121406341649226317759715297600918019838482402568733948746636521325324710751241682172791580576949416398541766492957534479108368259902429215393980779814013748195881753587200198218787815732945138057370635659132765976575116204304485002276359636261132145317224972946215103884548635517021881265771244086235590689222231375755726172401039398163479682835572158217558461676239604153528009018343300084023873976567925863705636012451462560471647649683011341843425056085878464102180930298674099207921911840086996414124147734324743554827992869866196372838239162137054178266160142341186855379796624608611546207029618910087340615811169042239002992329822601211308182542594373033031110881763995154423974739741567072670948561262934052445566574960046794129392939027876379510391351794962442095859799074883238572368354688282885872569507795589663163343088726731275975367975178593382836936109469201472380142103394786374054245788273409678283748909362876008410767426057911669053883849553867101801290087142924361126066753852947119744714371235617551732137992394145816972753801342528140540485334187324392021747385356634390231924926772426127411405886012357816815827175017233439461428073347874926700594830892748378292748979825311216998029082830018391541168918740464839475385730697780867185586250568966638782169465359153827802708580544740954334208665915606971625904767667703768945084021507446835868633056228618994575530164410013824676005531002810360365806410627252846730662195994601710294485961408389091116603921371758106729511801776965089578483032696504284219470135423808269736558996461085926081521120999682946471562989487911623976595012874360947996963290543372046430330030064051066408741582205824290461856511174612915886529631081112586147750651432233870472111249147288835226755775684488360760016555329100043342127724807516944950153685319207202250451931585284973714934020580303309976854189494748937500036620512665543567068431501525593556631611859224920337505222980712469208863197459583061134291946796916845330542411681181405125165347942150730371095129163965234146539568234291132798341630293338449092103137289568739980701938460694362337273882217369490116692004282410765432024817625102009596455533256810178523825885013442141433814231836161213590396563991895437045280703663633207174453449083899517030585037602216751733937952579560336091123037907908613444938333388344344388417966989663243524477116516096867835942285555444328090240407071563691275945971414256192062123394142669311136941931323837780456790252846151088758572857019400255411147270398079903660089689507055329858918408980658933229689468089522193072267330208101180609829262501161632011641131980056152617239480358779251864307918053211476477717006215564184032146564537453320151517453441029953366233232617540373402204913513421537433879296365703881979623054851900973335819649652147508441767804794066938944596902646321674488002339406140881120448424886510305685961397724345942038461975970313973629046484790395505752927230497286700196266895542849890460412752210833176949487428756578938245005018408376237831282428833414017827894560238763799207640620600060601397301927443607955536443289591939440103064057568574958470513556240577257971137415054076853116990877594193939644072283719690211394278167098142080339787635658657715207151898977157132724369010082454415559960513233118644544976141383766342418773030736008653064824622057094938295049235843763143771476840983517476535782148836862199219212235919847595140963615566495323025662069226707293346769695568245606233171067955980722501958027315064964958387114509965428848269091341223151860543068531741432326481494436291055573602568520813829527082568935624260363366104984300315248915291299465067288232171598403156286551797975347107274093027252508437700602082135271543344938715042235752699081725418901128913230002000462005474361388633839560047598496891659015302294637343200951008419299521785222698785919670593950895239626355824620797063616498179288908881479599116611250177858131735156647387582055344662423621504446684369005109232490621581807551488128129438694970731383983751191060665542598149049873734919856509827553387038733001178309676885111151231555162398564689502099844737910827807735820397037929342222656288603715682811830661292779640290974468468196165449159468164307374578651246571733333856007148035699056854810635885384463608914945528557044395228142079043002776065851816164819369410777415435067102908374047341630756522032937338875558953442933993693953393040180316191464728768726788758750448351260473645775691761718653301574688450475695432831494989333501281897895393242859490268537031760121363793334191940370249524549262581908643014075963783190410506290429414311642554121097233044090757029658221038426567827248749579998523345172476319575728505162715904753828382383117439120077930415569306613464710514828377127704708155978464903804967708010208520506860062719890520617485831046055969462944931230208083829828637188857586727381844341087640740108042902081982787277803111886013588659595508735659554441885899780281824910775783982762306211876884416635098714548073799383313162833574482918726764258511631827112353420476859289056406803782833792055867124960522118102349591097646580213595893296055801757371754925539844067938107997710071464442319642272867925371703173810254844766149450769491688676536254349936944136383932926466995229820964877459302111328785463608796603841569955125155644418011099893342687249041741223903633380130253130215497544678557067978095282874354189168111072257701488771265068108358857174751532948555618853782264491973378954196835262234677185151034505183760876396526298821574254516997096184411642099313734377468069924206666132453498919659784127886954381728819433121576398556537379550824314348492970961450952351345906959467551315555629311503709849911495141434046616609385287798637573369420102801073346063012421300735218763393401751955380342155959750882139504518301152441499006909350233822897626695101551242801799906612016841767909394760749750501806817410955304956404175996671205773597324429987454748044647047076296180496627139876199145688111574584373323265871003122237867139615026221714852252643983724878617467072390728426366990483482527824781322680680977498244272360881962026003465187818586458302878740685613624448569883083392347310230334752522633400706689874826011889501906449907124977473254928940211736722020704386874357090473147674840637491657271173366963303022558284474212961317494494226955983115104921188238410966216712075192049437771381563783707871754050893575546302389276839915197669619638704168247343078107965817876663485850693254831838686035206930794079944634087805194271713456536472224351923030340956062123652394670508342750654058167739771851051833427379658841478439104637079035222555218025866795357773127790441862759330883989703633759856852989503479047415567128691673154076614964691198462765532692025871552191068423797780892783239934351913443192568198597291081979621001117769844685500377032770633999270114602804037016501532802573857359732912476491335883665975957810937956667457203409529439302766224816829672426462041382357329424448133232442924357724897929249952507590390439187178410585583402764472028746711747344668814805478493019181724464811507169552217927890211492828606204867164747858123656071583501905115890294064791973839013848941985258546185775820163018882519100786113056835777036147073536561736752940600173317126191356097945741840190602473785866074770967383175214676861645415072340596128836272646513821911032230523462606811171224449688575239867707468549218733562655635703083754487779382592673240803032945657898785639788236613910640387178941849754256115461981319862732954660402728728242348095447312487980575316052906608349241175404313220282219181872206848818103117711972211293171089858466500923228239252135803718910597164051101266905880124157809471458146560948404138254781951480079848855296292859628276037560267321897184111166689392697794893555266266761894581797333500696409527197239631739287278587185460867830215489000708384260785123183598911523552083033808703767276689558273820373306166879042477946203911198894794552875553940242259275922842501680432269714407365210398816043680572722709440222499983006504419840517030657521976581516623658747844373091716270707923445632459961522323808303544861792459879763264476452303081153429095284203991579467741502721879609860412196933860590866248131963869833991616561550639198481158674900291633020388887682175157191528401995591587232152067391214459095452277462579859116160585833114246209533125401089565999236092117754105677783842804936418803172662106449033254847703113116974686162012267072932186186886942341488852546932182466066570296478469021039820841288290617951263306271386728673094943412907252776316029648345354593744128963746674781016308396065814854796227767026291104057788259189106806309604785827410265131896880742917710815120417070935117504731110353098511481260196003180188678977771223365530318703969343940093564718297630960835887126103637411464867654894609254355077953341398234889908503516132351267174870751447173194065310629358034643096254770552775611397171096448352452156179736731624101632712630328315633853510020730692325318521878251338713301151150493080118201366740771589338536677652028465235981472538410981291013966213631959285178893065579508184926698930644555596903506851232462293367235957473741826760479846477272390559761663119478004758064391340029431118491272124700736861062305414248055087032323662613623932555518556257384061348323250720877220091330460844740487957198839106355496782025449284962104102314481004711001719464762781165271520240093098618411194213539725668887544552428884537648532448415149335297710333846208408637882203041357155831901399384932939531257090514017636219185018465696531876957052287331844601810341203708744680671591976911363667138473498491699447464684026423128414820635305936795709472804296034158868760584634528251320908031828257486845809569968377865800490714595027278877360460317524113698080871174223762305030900886424272319366581926559047176277800517498897175350865838190866205197119944269982801148422504605213528091810618900906171093863049745278745974404562881022111598357572542151535420845993957010440952207959736859856572175008429379438577725335214106778446253751267142055956276494642304487016293608326552400260555103280425490043202060052994246607403156468663417466192206742362271659095665545771582056382374895943363543230000226953713536246278944583838769928140812062765640441725246416058451825593459155492582211814041867891024265540799047252525797912998671517591636908710045891525448695368114655968997133806127957259581538994617909582439152776607681674260870995893153361564307421434081495009897985725071928117863381422146049293795241112827198070861753682827731517154988146172005843381730198805312819878089234632447684513372488389053893732512507253095043092127089648528265762437124231674476722576320646404801953709159567619622990238678474767538338354300946581284506289502460925404741940308345319520187850127507435879835123208041675781957926896520942893291059094714751213099556350402909746183980131207123131464618639235708222620404039496225803852454376898247605529645454738690107948202548999841466262300482903276744362702052347675992451319126078228645077176873149885136223775859688174330231370450461225102066149968408888440769946580174397759946854396500524345921998746505236712315009585387225132612014508028824986511627134624625619937276926346961257035802674174542884751166058425484896195437937020006036118865688248719758423012933483411205063225111347451852847263589555426138371826388388935331936427790083362362416153239586354327900204801546493532793362256412063121092212175153184101083670222518305173623894481069753247757003774563927215018643403451901617741404741613245006294005436076746775554835149000195685997648900000504673751338095469450686123154563516831964055083732392187801559651541280430327532986443790918011186789379778268482214473070313435574548913671590903757618585102629561431691357722833247565228488668092161639102454492033747660015666522889220458484853491243369440592234040812884741313390344535330328295959838249056667674356025758790242941904871590684579214937235348234571906626343464412992587624155674639495041002746874915156513596558500721956587527266057978385265493795599006446687032473923327171835558468307846510339608443681436335158926308364640099878061383973116330423554350426304020133078753446042472276455504086331926710973664870403929548102109689264240210705369412066719549096019907487448986951507258565966682242377014444470493224748125929361009886784422570343786862408021712304222389885854222944048241833935840058661585727290058266095049453744087528552580452935940970148969701300047921157361228275440902462553372144267685252048931740803673008836098476166632924029175077423972326036294995544357016350224645221515242552943028694875063887504381098607723812978213185496378844818802698690410502137652676471212492574850672283064130988747676359996625331551288258152101825507654385465433943724726148151783574867412860467857976761944758477633002092708947866947146096165303241440393940338235079526780625254504346230267201987158554515703536699741711475766872772844976742762589046804964263802099188022432992238612763420622372189721733386896224773367233264139460781230302701520805780131539142859010333044873265615733042028155178272055781378209246441869614780995557783241703201645931193877160787660304214877732751057652926425206813204482224934893223417659880188269101519212720324587621278297530630461481537803175467500049493170315529639325888840054777353833319017144837283733722173663521447467052831626327927386795048507643327528055728998088011793672488227083590285586316600726245779982279501526835268369769608770561310806482871943839041795474548199337745834059595100307241444115779425907220804585678877106604844414816522421723207940314484549177842569997116155215197735925826109756689624172048361151514920494210034567093507148058462054489092347077468425139556624765919421366702466793133034244070492282657593200184246490637369824153862889252409285799587207119562111771183796821836186033485256636595006063045359713704613884380966471102848593206206495332780982214821023438561794127197163972034516653113957930382781689327301751871806706302254487052501383570314287814182242209336956072621531587252691193994937681757739550097190623503272886935034475184503826591607142674117777954288314536220579130080432587349586746764720780036073750056389314588848324820260419449209495515014876638050386551825963992829340100562990089743309922213710067997700767646294112781108648623665586378417104100343647845413305530712965475294571792870864631846157134243212938721936265362728196319308776284075953410890966392458786142882659427168110432123518298579065940557164467643111777267990532328738528072218243995513135485702160008362755106704859527995794958566673376469849107204141745439139002129151831737012631998859685054903440937731360874953741472671354957334902672847386471536954944810427261465241777697062961231578711134342936076152346195793702931279637810787783910220404008292096499250260358413120198760857198932160858168982227803824848178544877313153039373622541438432895624651093979617112116837116428965769403452917649996354442204916981760556682953348383432565808055306545101795800730740266596875096936057032872800503189315767935247845224528350111730128217944790703663385628504386138939647944450730882905755622290859020312667619745018701878958264538318222201960531706019331182899506789268705401251750781077417330053273666453091795413806815661591810675160423430431792530012139711607197037875433487599767873731745306932509550340262488101606747237516453936749270331434567744851642241233536609272166775171594801696079060368050155223381147180173091438770610593119307599336090525143555840573795293953263878153603901377946970110862778416284097876858311608029619864138352859550671263359770937478776055538552979473025105958804301856140674919231795103883513647410426608964349772768496778516023250807663434949024888619631226186774615839685048591925587148181225612283874674122885878866056513687141827581276133206831212396192158470149605829642231363345779098898523915008786148927538586214742449178981558714345066238403307682919314766619403153412118844690554310013566126183705108848294023339282255821409667878209467867191808291990335412954635704562551119845363429531906786659979214982882681575140596909033322321176043216642677557121410735623035158879188555829308997999769797151252715662827304707521215145541768485173421383567119061427502136244083810750191141223655726795440954554704558665190016612800615483364999002256272060137849148600502381720640069935582466182209921144453553942498549695317110815333740288759206983190778995095411597193784809796686053479240518523136545068452428277085614823673734254677592405827753474397657206903492833022506234842160017126437162319390262672488279681387656585338387260828159114424917584703556233143860814565517789728511415468215927495834562868078456458964875722735073278364709978632254830535999491540654328888395530040828109001520005143039499510435148128291501653229460006127197305398320878460808204432109656394335041902506643148468819278147507840490558709873385747615029341293267208130577787621047314888907830898093305203147802014179104010633589180641865411450895125958841962199227257049459201952280077808098104313712502651522653424378828246769909870521788014180021087650166459744123600855987215725139337833866792487276306584935455967194854171967984326703391245585510074201283684252506723349611960081957543152629929155968329839614181572503671104705727491122283936187723869257844514345788515726864776616601641367717961528021962332632042012351652834808256553115486443417730211294216503223422669807079108496173354141435908863091488429986541785059251676527697111795479147318510259283260205252098286254650133448814306949630851196357460051489704363263279585844146765570139211543292385905650773515734733985784179693708751198510710168443875139929456039259480593891468191288818043556765535277065260747063108148759986983338395917980031303248547283602846448144057743499188061206842392351446799054387435908982691381745633744888668579711170248268856380156127118899609201858871795559645781896950763614884858218488684345757683105512487316940944516368321677575175719338101335765894916690673143164103072532014641674338569939073063082737132537145427527116371738476471535273960890831212065201518680923822901204872334464347027239903024582136595682331997238346571275108379893141135583920268128311556728778657335566376243691628093380334757132095119754183512830854873547297900807814254030197816014872980220650938601804625316210764744828841678264080270490836479408531948589294105954955818894077629845004528613228158162106565414992563319129490611198390422142644034998004403608730909770163832316149862020918363165467613936812608406250599527878710982939027939423257871764995867302811772734077212443746158012464889333013233372271685098386201537819036559783782328786071606948575915936298416227908465799899802458037937961725254018252080136359694951227917227029761579205308688314860015946226187419962591662284606678905201026396624958456704467457525067473924140398523245948279890656886496967779276944348404912756772229649912769362015641878275595996665482648593690922388841158229449110547275707306912466674118971867401336141458996066265071032229285376106069315939976695654707538984671311601196081936718555056586737918762643900789337949716875778215506155236184135304142773397317179925565196584031878848053506307179100396370537794807992821883562501789464178216425120964542466333252656401959315037071164214585657621506943089458850558150499259309438898718395868339364205033521660444303901152130615905293426212119876631699816985006606534728795025132458513332411328805648863649579162205264963156515616810302429946824711811372424178838448152787331129473028278934208244190538137334185857452226003080209885205651209925943585531409733638520823675418604264971030221187443259184655223638417835120872834219781733659790174905890583331454512879214823484169430339567028168469412134062311067545462258549086312688490374698558270550040824491658815689345407948634612014280876101791029444214424240819366691535772660618670026668391318709497182094382474208251392457490705406510563295678586612894728757696465276824672475691266840163614604280257672224818654361357873835325844876357745887803984432099812025694817521294034474745936699761908921107287652063802113032577191914777277362645656559996520810174751590609276850961698056095738606429528834065454065537181498497751250675561916763981958380577992555534293243109754903601749449938159736008995719371224800930729258849628652761627511532667726798607619551296906176210051881269951282466090388736359481492670828052387948994593749656446991617781837600097804444530879532820967736663882815483561657513416809093483011270899980281604549684566517505489474386271021310950818770106762558751534506341313566779407928883361116388372790147244178758270328529171171935000766389441664776416170923032582710752199741985118339344701045643919555438200375278974618204118490945490307959677162841007801123608925658328452586825882895894734950139952090363368166502700718430765944341078574348235760228964177950665200337558299894065809965029839595093540249772723333977737719367286668375690121850114658316782135786365418814355280686516054255262714203829343345668942645630087944061048995053247255513394737507740882604756813430113190614071868570504160411565879929039261880783525499308580284595489461663618120884156589786067471195849051246327359410060275032440083710600286318418818618491014405060861075261079954930296500462790626447563361823243768318528647672394389851221480067516117484668012610173956372313651567126542739201313930939128412834878628606571894085537958317324716794453503769430285263260104129843642718494554167506326034779446681901578624533881117558532293382677848296074204451587818860073068115295477581178514431032130315035325640331179818045522041184717085667371007312996645859699879459697433170614025143428243341417947081809921581730293023621864773217832132111696443272144096442522958099075886040470928907579324033712396659709467097692800765609292806432321871501110643740340395202275859716971550871509817464324688104718070553349948979803495666701544236387659613636909346183566349378460370087117338753853880489705670589816259995434023321365794800328013191481191948007883874128479192540836965471393889504161907499759500065638067263492270792392924590233878502807658948962737861977681728347074615159669513305348264913106409570426029796216784559540901437889275173896645817796370841557482203684313370965104439754780449863345612087649017798488991897823921497555016188542763521449815336909909979633742110872575444280048991929360645646100682648461117833293398377324906480749460727751963222143301404619872881305431900219896469398927828723496757575140818310287364394208113696001112415925500185726709700268240037904860120541722612569763081258409500575969144629046015940528348179035878586554521364003027142034825500567399297312972214962649950358439472190480386534244511395095828223944135533490971379340090257540984657911265036092466329385948455034320255248695774218394488526229915111026139928329657198677105610459029773911639286098934716417425202030916854257016405732065395112117104192877025677255396591089740061000094767498127839035751477552491347156438907767033911194146079996732425681532108320899166811789718473375387959423264519787813190670811899167267358119482507670277386104045888200340694566841189371971926358882068229320015370797315398214892535447441666000911511714703350134207247998322721428927996745356563881789357498250472359718537068088252449614763160569824280807609841097061894968977982390205114052542469795852712974153718952571961086810630347501138542837549483201998041824125295283702629155374949981484579715570073322884527970687839340965529234893258072416721426935542785270848919873706573178971610519737923660425704073317723210310866429832846318653331101265857521142390303990959810983929078876526239058654539466376381572977087971095349363276850781018952155183793703355045882894198302880577203641137117088418766009915565480631829043954932370895358135916791763619170923440248910751295381051016558950561971892650425037154133614409429550067435735021012856469614464035528805418525789429501571305694028080933205280289845442285307193756904468260425231596666024230896124975174989261379448655942497469514725481497919457650119956637241797455801309875691248585824261401433134797076266805646691706453023277479923341792702139424472644261178655682875300284784683050466130907236959249235969321008431580813412918715730565291861892993265871501352681095851164999019023784003964403525251920233523412104250955747036598650579935211995080025889207939581336364734917855223486024328294989399790997187495362059557596198975174530502401706202120134389760410673317278301218373553698857699689646695128162498329406088762157521552797332771172810125594943980515412418569379142041028773395859342911627131028543117211681288930348175458121596123944533454072261731248907075483229018421592423731113011557261931401735143905567342939232923382221820278266890935252962070689446827459586167310239736142569166507448302309204216476469397050588636721962356963334206256686563352014338253152839959326566530562536543433307103306272908710005705000089098477448969971003312472233430979385351902587704120147753005330165575655343054284331682854160393763369310272585748159148851319476132479989780318055330526696558214246170681757562094179984472322880894003696568714514008395047352522217473477283856700724627943704847536701086572118990140451378159374713894175967858507413200656146098446724627136302532312613153289816583229784250254017183628153040921586128290883584688865826907465685122607994611691395759945091298960526016203026412117136483819476500723513693822988360474340841901027709466432455095269403522549645794702642513650467893235826359701155299729575507347988188524720878402526630850093455177235345457351078267074891314492216186452214648242064042001256272924075915108268996011655327883642892074421694720796335656675480085369207101262193644061087436112521876440808634835809902269381615412948612955153571896142961865354560570547824359501451562907528744030039198592460159207803546455014183937975640027188412071910854548774549061683307607238892109669265035533396212295351827726476103485451524921652321178429738814186373200606704033531757438220206508809923721063585416719655127967662793645035401289126526592634743009884993401475703517277324439951252554957846717515698513788750078911663510734569662142355881080294525692384089387271812721438211394685415671619257892984674524891954298698446362251548001434828749271673250014196509276595140417668382216126094525890174458854572838450547749716108111324063901984755187476112270506268747751802616581720110724345031174843768810025107632389213835945662180094851287875597561147780422689485301034393304572582833939053442697017882552825652261327237384478012756733204225314785183360777070505401352518695136751885384470691529965318168771235411456956013623376030179639049185995506599730214869311167449280600720178644962195355393049403570504448194788897394832560134098614310486505239518890415870503562656778257417082457733412501360601387873049005063200653037401261022696199440216557255757440791171466763027819140220410329208680506904273208587676815615217427236714129150636587555058570248670486281845428992211343922162807198200032951099408095473159261126402730479435525334615470082967529219286762138411885971351318898000770082212028531225302861953115874026781945025177448732052874686121290410314967009196613743686843400031229692254666314242439385678373469584613084962831413405364198703068190749695197004661772122536348046136347758388963110337258790803882081616169740078856208949039412847894032913902928542612467569270983782370792225092883056316655035221768884763842288062815333797439579671018206428124795669393379495020542720798866663662432228202982022930993876580112520459994748490237595822323337495667825527915413817525138074384999133589252632740142363478746472293227335658407024731253621280003177203172044340674741927434264883820580813845375057254210747672489660785899021199671637800164423932860196556760883069361748346289802027704739473914662276440312144292491783366509650650000411471963378745040616091654908065315819123016351844535967572048803016942120151406307178369172548846356821809562848164746676511839934027544626856731281134983549010843240664036228984158469136216031484501521049733405900696668260413568558103082853913425943661066694054295498432631800468171252038178320170103787831342564823780932224962205187435958237162174219686493607935795373771991774764948799007259556363486268106172985237459367631959810803629272072959836617500613367499122382647470838294040554194283107552775059090213651601695900987189957156370143904431761765131406408310849883690239902760177453114500385135336511232189900267303794731610912965427157211861622704431083026735301709669212280794489481237025396464349249989058284934897901582970356215141636615063151756671858036620332681182898616348352007390982802261207982717114511293008112881693463021233929658767379246369974914627804525129454977752926599032427098685466175245109517260215969324791230187862781404349138990470174116157118982284536774119765079170231308741835684646217283600748846611107101199120979780793405012860023082300849233801329290732452984390047112205069610315906205975102428312922189673247172784007942368822179984193970083724229458017480384808332091518531175939244415508687433510621151107015780118123569737780402710851509432305131645518066088401591679532813740821667259500392647174739660787269581537891760338566199941238160300412576333017666631745145459560378039194187799931239623609076025731143427508997328644946423458121612133013425454015042394795592119757158160587490288499072809828150057650517146792524345504280887681485957603770445550898066636109447957372655657911322951288181666665253583220453748040141301289396032370455507288758593859041179548819514134030515786075208276528856693605824222941884811610315075908073127242731862093459642453748860120190580955418751650570988742418176124143923338122967763951197261811880875432571061544629947254121238357049544951039046359281590832280229024302821608904332139861227576998982483050513842689204999749787776210993686291366293550029389918964593010556691689938058179367656400716630659531409054514500533290587038070809904718995306477016816089934643309074949258483314188169675338861246099522840139071028643333339750071579665172045476512489560563962092886960597270267293792395239209120152278226815895769698733127900219210775413942947044800488427081106582496639465847682645347543132289018446326736773506552455698078493243762916396307175993843589276801641131227801547769615673956587442390109228815688354873377674811178592431511478167357102239167317359137264888556142575506476121056691531359500834373092556403113386705682397346538670630236228374434069766048238471910501524277225920155489024775180875910266642597335042351178200402296963929803978370912648327330649160805917415582109506653164197695900310818878744957064733627789968199766295932700441331905252273503531608541482143703836639692067951627969362478573975056105375619534618460256350139564618725472934403708491786758145461546695819894689686772633686521070418052456169359367489821881388396233455904969449286062411340804121905510881238473656449198641520819503958221841285703397449976621381452238839302394929975279839301985143197322114780502602542389256649984766434192005421188481262454580487069321300638085012348245281948930715340900273196251918781921275416830273230612168355846904979339072652137503330634377920118508879927198500962542774375650189925435588956293240824606459293549929112962272953273384786188970556318809896895585393750576720292760418889566486209674012729692950556874421113208201481231976051775417687321164521071299042846210626288188287259653990089309630435833224554345076398206085655862445843196734653441866140062414616331610525448171092391464611674579750363225879620253888498253263469358828065352224816350444358933091550886472601842758368298184648716536501235044305043106979797368365815853689215466224661225189918819133834696832710297440078550677794910424842828665946334252258742642011737881854657541750940288223600666207909442455033452920820460423015724071623785571213721377977080664865985124424092613198062157277737304107479540845977217927045701293544411182520403491901656428615097769183897604036529274342885894217063001897961987989126499283597151687876190817562407048550306119033978050450376316086646980600358996047396331485290973345853668665302104622426542624293387248577241777283600103458001907341196210886397816906002485761017552239233911564875403377807902843547082503946759476392171157295975609664309273185460209446955191001661538447625683100730397207291381562997250227962276416253880500745386364403954265615248767135497184520905179452684970972461575687142032794275171327303073433467421815893132930175935583533281343209990036238030499554233614589714477677168654576834770385551126645062452869641220272422482226439440386535903208401523159415499810380654390462114167243137806898557487353887017055552654932235533624245164714621739924187716527886668764216816770873743537357636041259814126050918966110754826184887937113637723344501605923896961651940028768889474775762060036773340862040127723703954437603384474746839897350050511460502400722443276403928716552986693244619139121680925909393998220970486630520431593615441365999536987900716920056471926917253951159631935830761129887195065229852757221779510613138670393375996419866384439686924672424752661318141959870024094767587725766491630317868235740968272566572616733656062856216522779593372285846029674735851950268461398821772883603907687824764162137748668896481673669214157228372715009703740505182600783044696071472542234205339845038746491013666377516990054274624987966176518751213076164614472310095890102773323544430329905346712526995855795825388612401879541909204440037545491819381871938267113353746981980917372867392795048963513318584423044816712519198644089607756898166348069186539622144407021018584065306115659341019982453615567823817960704272642363445309950997567491785254296897477403494148053009372792965668888946383033637554290675635701926131705266005244701117162492198867163939119058231057309976105704984579471883724443715091146435703846588773205030814324981184216362699854192321035079010761077914704004102611287742903508582798786040335362641584751170164938018846809646993503203781903230542276733108159468834991890706901641951694510062386570388787741636979584225715066676544583891007950580271760164458720708280104200291620393669851679665999747960980733869978363885464378304748848500158355002674910279679469764975670290130380957821533835873804943640753421153609573875022879255157851452242904363567077046844600656810762167294307005630801548845731339742727032990748648398923660227120915343694034636030637961662994457608871770325346702326079888989736210434201099956277943935663254360098486531517015819043854906353019722067427304345116578785633197778743489470111685144059364421796970223276019714625256375682776709177528319487348815530935748340272918588624803905777115171374771828410868866495864368099330465715789379970653727386588547836751394744910041679788585379561320336278316028733810780370822347169074857691218947327965565715356136810981411895318164124378417942383667954107005411012473427772010447805673600478426716312895899685097308901403617146082856487611319774121443012883951634077206573038182931791573314188633218643371688204485528643903402805087210917347745331438036834076526544992347497263784719923028230951881011827939376208704119173981154438335572179598006768207261524232094419475807473700823974495803903521362188139631112955233620304218820012338320621344581306126530396715013117666866897377141369413958770169616171422189020020082690340733957019820638111294692100126307397829979940408801193650806157431426233855649775307986357080570030279539011537842617793183039670189784380050323745311270710959685238507232224436576908752107467344218662428658248540220881154000314345916072236838940264222381915673605252119543451285913762992654071271814198485850714453771989127443532764147691077802808118080957124838916223495620768084480898655715247854411062114045474498937678940296345975387100476199843842725838870826085517843523353996309900388162572019770597322107646205248056393600398175615254730949579626513681260752715687944106970887913183796140142908567487683255228112892272658411143519654134643772352444322624267175808573133181226034745480027517779671698836069051726569930090709844300172941741186176231430789376725087511738827042459957326849582192962077298269774737710081962755993108335800631351571627541567025353350192126652809184380493026797554847712582923873204245475132072329837890083431489683566634088675640970606645792843238404326671005183103757185721836765195902201862708858230980576321878562503900052388589304546710566059459658568328355898990336990626162098542411467922773859720015259661541869773941375110687303533071235076774625043316958220564783741262190737430751386638333295702184583057653351080482623181582634769017546816892507292984719109195241932177616308572532908482333305340797656397606409665209542942099390594164979271275784157178374637086373195450642133364110207802126052401309555128382391633261483449631753936967808528333873064992174684308120790441645011482664983563608510670251709322293138609662400804674371179066889648787383277850315533489768491235620506720420819471967004263254094749351877082174699553832856674970157988550842272912851528376072991457032490581780723030174673931210725217033411260330065100680440430884234726437505504370660487128044700645919324311190776359849606752888356533138483871047021526445219029809006418302174512592792893068977138325712377192966034321360970709433015209355688647257857448602202694697048518258329180445328525803086828724662640066722538408143700342281817369004497278614397772212723165544769402245652898501893275058317017301878156455113808292811664019567574376778103360858007252802478936682524603679315992119597708951216539840624063518707079827817928362479294192034454431936262873259080201916225623217213622890065773543136476044014290107455478677856127521685080966822319318837587392632967804722117500725925377668740412892802912948136049650563605200242438790184314372932840892602352685685936945690684190120550138382566561145979729593679009439276843253642602279565497382067921494017151876189060345751274630531848288869729548527147725695802663341328586471052860414811251836827501926153101135411015230850174483522406248704926215936326976513406249173012710710643957537342279256064145339891845073088137244118119889796422086336586739922833419879941508012013105778404574455560053786805011505988802939464360125622589037868434432888211024366111462485559720343457539913314725808888716043336421199528705418747233062629890128438641102108301578721415316203428928080074337018430641577971496244686868624654955341069445194730477745922575445083675585641507428942276389494148721264300042610252255734077727605927490919585902046352200925333874204991781583746013417077405856021349320693207800027546386658327018366908040759461541947745659384393773542441534968721024352070614978921962588892149352435997060310481212083201707673572011029907601187849081835029165116369125115467519338223597864044050042987540179849211269471741607860362105681120078324513537231195394106386863436779808519853833493499128074629849816573468232627339831688316146541424854522372364392675722667360118003085279525725155228813797224004807302906451565140461596092704481009623955559088081842739840287542657533120935817636732928566550419671863342149000165791256501809175136889293015503550724763781035270429999023062718004295565806362361016533541113352602218891520575192788561959658221083678152620385373657398435167340772611547179162218508267776800882643305927344609524772888182106379043597626463083524513422704635445543484759759822751828551963652121006135088370163963007675729456642872965697384791023280766654772866670979758209331726147120440076905355081457567207314950996223053925796925710194972475178048303274414314033540612842612902207874168522675954078891425964179375091218333382035047133243733066331027621628358159804973522208455108464824127617677857862337478780562355452182407912200030418352613636437600538323533283857788327102644125170338047939905686768920253806413279967341227117033011822381022125934854463427992280468069649842160763755647698738738999740986862363102160724679134896664439079862922666020844123687841879478101426372040968584430104473410776323346157840069278965812746827976406724569402025330752017497036542977654571762074685308536008104227187768510499621733552009451439575948913247981387599511212370738544024108161937665088099897612475204077154265203832032275446019465728794338537948721778653377378121673724345816118253797310483107449352089196499133232311618240194316287381253947404840336761234773874797292770541478562293182302211100930419998870997794025844857237799487063657471826366403346190817558982207428109511997869620057916928787567717202866688670368965048701372851117566387644409238174751566712008008851093692075009474260748786664952127806181868104080897174412829903814734311863368017324972459305503398466454856482295648379900030054827225563046279354267880080482078326424439379722953507908484200728413429054199534525243041930379514822094447285926710549828239432371870690120079791948409459969820225447657208223590762433572298029076041201993448637666748206476304678138970385094300307419635138209425604625667979969427050225119148334132179813984156371204634733090973668644424348213120306422773470756661961385190113400336117714422594633535621127093478167012759146257954816165004831219342584891981243983282007735594272073792002672309384142937747403413335178122003919256138134183043740226450647894086980106824195134126645953303201115547806160729192021754049261923839442761776632050245685102432686812433848556023384873621471509666092957872265735520938728778504158034340833581855391666665476711095837364272128800536146894568005749911550470686216145487625903051201432969684275576415537556073372915153980915385223199226449436282728107481370574886519769542334000995818679828618830410065758285417242176740978451199637285547461118198959051021967722638566249504040990836698734439568448234238260212290776658434513720029770970706441475482275086113545221299152927500992440680484258795276068902686945366303127124154898835032775331257005660435727596132213725266532873718485088918878735044143714944673182024643666698723449213032154985255450569296185741862470714962063760749444519096134109466567557515540596763338109986362003504118757397336117413184314155135839618503567585104888792042947959592891489825978488301474424574186519748344905827364368643913428505125705543414058052279958124427574996311489568112453568847183728351855842013477131662535481972112155816917891248724993834417724802853569450800150471946719432962032256685428926077594856598075764657999790540897218401445755747165439180559802519532457977929975276551079692622444622923886548032389702947202111351743159604111195818767947571963830614066279687385944863819380794000995508107608397635784583960919152091013058600065915782224853049149981709427349302571605509129709133048133878180152276431978713705501968867732733864876756498202753346418437748081853268038671904322886741267653921288021257512598407883181351604899717471204324464226721840166238110549355188544543546050931834885371720525375423222256635457103076610876961218323612759241884862415726707886341073238895471651915490140733424890288471818903078000109092365257050601882427091315081128999407141820092361229862279051533698817135217161201009922805426399356076150524755394301356253110693701485855401691281651011676708127905256421120682726232434950686970526295036970304857001422329948045786355189664392994408526730604659892278935229453778223703662083273670597664465199096600879084264659487229492282773045705402673327646585035880592392123248482596246393501535955643977289694680012988050337947085283801779399312689150089534450268328917774071539853592744264944014438786914837013174620555030293941601038688473372064946166792564063635223875273751426412963813055914962270653009049191068441341798460030531769994422757782872182189574431994891151604524148183272765248189515020581822219209464436685955323686300179544941707404311920098151724625628185522984585559192886074669469373052404083519426364054993259441719634186451461951355630508197918360876006367789237608183634745300340579390109271615377930608794760412368739504128764484215893389988626130301209628716621718341779772018175811253665787413081351594861618251965983043435958402966487130744315986590126248806727785582225948349653048482169231864844661025959584650475391790073289039719247958761538607029863921446302813230224355540762822157174256323673011344538964331360160801861910056924241947975471902208934114071548849216854864689231211099005647211779011153794677666718627070579350564844417527846843725595820626095166905401177853986421774671293592293236293114363087173302655958508557977024357263074992052810341376342562912385413748988023887933186093793499001431360780568779999304344609636884822556760162888018391217544606268948433554993896640130351033471449625507222589713505429733085361969428371244977774205767638215100487521603252229535419651084548824609670236678795037576804374152152080013350316553258832318246187654565289360430215556223985221351461573821384460601581128820103515653689771046852448810520353150215145021848568588883036155421019677700803438709104535619723660656363080529355950665339702225523756231223617423140665609893410628075203553147256028508669245781585054223351557455236934362056388702926186499810308375611271858778993693159123372174540035486858676331297426785697414313452102644974189145928029434667214939515916300868603471347399937698987222173743473068072139354538396698880779189979420297141419246394733137243188564981930611284571477055942088775370576486110724438957360517029054440543563179869309272466065394404742440393320745318120498137380782818931217989233161497475918055639102943271632283488873775533680821695971954725310546892690834825690519056989334207577366298484782256595583538999381301897053886532555860608037001521501648643601593046483396024138224047855732305997545578553999558452530882932723921218495155201557872062671690147765499705750377808864340809307356376609603634439393177683604493833304297380546422173541537503535015957005767165446588736740777460383510516807626768101287216355501012534409052525066755629434211196527696139853867324878618777550031931320359341354945092666931538039500205094470189276234232160842456848525800790528264544627977312601989854875407381054230798785557199971450453435515620182273560891864650611778457373560551235052001500809696567456926645692662953783607189360665571020784328599295101781941994915262332948346405651333029793706703100015933461210700345990620305731462385772893785752568202380843119027151906146006548907959698447572902357991180921234330264030150304605381986683703770224599044286058392424067843783102494194553829311741160630988836208004223452665349946811522115973710742936569288244763963054218051758238998624133696467071422685449373426323954967552788972136835450878032854766186908274060322196635551194574649268092853837236273977508042803999347915056661735426412290362063853073382993262160235491626773802584116157858077255973532380688247160497612570490812234157777747356242560724606166817695851301154237588378942575053827619484689363869209704160481823675349500300625382394277640127571266670125182681904407349426729584304305302844419829132516470313112367068628799437446331699957090740678698186254591049296493904314395051739395110574900310958002336426082679629886320539738991029450795230351521258936344698966806752519302330117898266821457025537277188227731548195388680610176418019008567141410812684183517675224070824084582869828912396770884586227564180910192001911722584525596079316433640366698741136852439792662851912682555645851949674049385897327919311854416162685732256000786864912826939201187296326856153246037508534073738018337962937733049840319736625729938235633350155962237010059361822334623018490852338255494904126357180264604763758268064594831589638527940353447093429482531476025880667512351655338368526458095772969506866769131216691492956383209804580582680048685132136155305927662737424199862938336347727840837597350290173046874891475107747243871431713678755897965412360706421874564313702504957370245121781690553645627797075330407392757351218634059766418468634335273083785913921343693747160797212424578473423009600114354085997794550346720794294430347587824047181048941259230924239379270930135566597794758792843499077092293949563346693964090160518119638454442338480058495033432268640071098922090758053042815755419953159377264085490934214342090223708409094184614153650419019787153107824126044231181687134744850611710792970821537887449402475072006737353744727264487929708092664576552236047422692462703541292880451016575535978995653947887783340253281500916985248022563198614401889781943463212854890952648859495790332573853052049723525253362835940290689296907887527540189772542727167620579829904907979663040448353581915946794643552125247786737362745435158100742334883721392959563636053302574484175112702147640341075865926039620838062424219263224264984265301418735037204755707029602051374247724639529330544222915514446902191573871821245716444243036883913677380537750121002374002203781588630925127083160223956925671824500422241238842262833245397452110286184620947012211020463689077860935309438696578149955885051143876932372141551861606638569426475466029746017034967229039503797029212537510059495713554090963678858074322929978324359406665517847848543008074280227661024991597505188201284924916621425876832449073057276858195444074848080261630091559148375904704336789233174277610068702094656002846081668335617708266501293682178839368475442011089255499431871634445793852177101360930451145497538185858537758855286731226949703263608189423730007571321480577473372691919625138330693888044847948383303773225052632173337966083772179436080738729775515924327429091779768458917372620576099387463968668303655927725340916053652795490287750498363886915405658405389073324885406274398622936693842764837300576704380887676748745116575549930831855257447971192555985625307638550403594210423328300282769195601912872012817827216566012816844397094543334821956621633727863313567337914389615837725635151608926455890806184331607200097370106555977845665218902867762901268552326235217878919719755388060721493896026238386773768056871377332876687520084001314288642650461171150721388185547405158630196552778650536620391650531564809826328896585317549110386281862744727293058395888447253238595227738636573149732102850272289901843963070536205435661987634674310978009040810119614868429006381204181956778383710169745867685910668562800582852086793406129556967789485729221458141784371400834058700160193810505345101377753656717543425898290965067135015914971404408624671260011548881721515078858957845466502205536651414690645189105908079498811701087037936394406191194153208095784873713847641071441651395129248597077630151409024455997496305370100234739617612385653533118641418588577722076579424016054435652937398861622318597865511601239313013101089089658972119860708225794125920786245146725419208760961928522549996967579111027165538679517978304500662773404570372367822170220150057498260175608771302179618511470089004481185365979897725017550722882383368002650746316624050349711906560749981132061693163149958500846320860118062081390822636984119569077985433335795365230457180267340206683062879092887304161058676713762760572902840112308528849736371050148068803128280295330989371686478506077066768526756459696671091092760867236378301898932791327282168102072218596789305136378791496970675405715456174709262311207484968033083995071978977066684121569671552920591777125545768005028496757185063692713593406828576305631652054124273320230274732839838461753223923372637477204314514527469849493716755037017584829690963215803883933459733332944993639801452140020943401299368005843758755012329710072871261320272997962275108283996522613635241518042711121947046015243513081345498151136233885246815681219173271473872140685890446120769936196446812328258407718543260004106121168765167922560977112638408695055594210342799761752239008460271629293154314335290269935762312224850833850933457920897939235450014909979686298535561031420368461258769861496757326316046656631909160575081090565341947626429569886353813179498472217764737686656837202045451250089590866632086285756986521423078498313538807378627262086817902391687747323948394045796427117690043328170356104286315356075879318136688863015071220074414262262706680845898465390223594295353215442859945214948606419000727388213753705299350883629332139096402325570802509046362647748602468551092180374043461092741334946251441324441298546476827028959403306679124869777521532921548826671924766228344548504656985303577579019023792899691753896620610681537049908853020580279683225468601977926728062652065879542381045465845403946421223689248914065904254679512339451884539072622090900180670408945762752482851891551615715225223379888083117073533656825162249080524303242582580177425966254281975669077617316849863711379393356371411997273373411710956984219258148351662064516348589677517733012035187382148652446460662055269741180822547701037952948257913900317206693661958285886545067905040793487009757055400646422521568676168113061038191558954677838708641938421148520878370507653873475460141422164114494441969495486677241278197613733796123596750757738623443875407051162198835625938247156811037751557369042751600946052894170999320726098599111763252969887066839668716039439404147611643976426996761845067063731111187105351128853784579766778703435531849505792725985020296512982862241955040563664648362418766162879191657608623480882309147581885765063644030427236435746990942832181356080724595613957198815464951091090951553189639149775550414960396417783129030948829244625600888329801938787666540419853811723405781152817139822275852004466491078695528454272871153089416733396075246134963730048891553871286044685657188529541038525166177075888397079021177621782572642549120574586567001815498146944426645849994952183870096466462658885406386492769138050686718346737438048238585330303000894059436728728553670390011638748367878508219084288074597004863412581805675570338222807449034689216651979550485283358171898671018758953036553842832096950878230940607980843120870876194134332663139065127773411546874921268393132680193484679361593368863873686641062731947191492107794123384276602767032418261254389930246685004304772689395055262325048184954064685206404820252378014588685372817081913216402880388023044022652508643079808817480665971935206109648901972415640603846739545281224307495466615931294435942268901399053234525688287982160655621683649034616702139213326455066603973024888878928396063580092835431418693495263588923766187845398241611653812569295608341573336950173477938570192296409997329558741264264552617717664781915302761687450971387753894972735124199951985785737209652784592142498359738930549363060732163267484923546672082843634327034244517591872708891274795421524017418410203307418296170254266600639381123803570162995734298124983772534071416128978236008341399226975676552405186283824156317855919849196695213635126942892076311378204421405930113156369558851703095411867165555875360117022717646692104815287182048037193044158886973355640810580505672515652576592628345881103972005067683413193660769293761579219678310229897318903170755134299031720965362612690921316069765226129204020000511271999818273365197965322446336259415896509278943736806219648117685247902048267232509106193364663693263872403067869120441977306893739307624809582203368724178565454022167429554196007384962334443171155103880903015413615185972735615748927156310400385207614348730213509652153792804951251429540425000704066370982245240408943225879896375648671330425484689022192300858215414064888606674253593251947482653122934472400315270979844214761137633611962826531198616866142400540197207024600313118253033682154672618102749170053051776273459003550840829738861032239742196819769395529070988089317251719424120385619110824136640324107779116806669959831642086928551606658420011289047842090521039794174135566739992127991298047397874324682223389890501143832841133847344945864465915184487524329825110106809653980694444825664124261278026909220713002427628071785555829138512351647854526400096246766462133421540766503734555679820582995265162871382115643072074031891020027101229600625198843078997995778399029293092487368164807420943625311356867787367012812082327838281799975032679557257410287364194076307119151201503293931711800364800015064229780489808915305043490441174925809285815585830181700021676337081043867812858476432727930141937004335539550772049846972544617953572873372928262662475423287184163101742621966952833304626501309414737837122714977563386948741123546588704174754192481116503580236431687178160977543868694320774437249875227411301498990705775234770615647327637915274363628429240022619753371313562147611253947152207736604571535379494424136991479995428258056255575669632221953538779554255574698543358587050422742458886529191689528404537958787661832385491736141391368290582991630939076317597756499823197783156244293296299670490346463382996631692974112034318970615775992964145671278196133052024533871402409222184725714204191955306967906975153912989020012448699040880368379694116597040610856477732436918876287603597402715121821713895227721118999869795628156613490174033716281088961964127286802683233420666062328107677878461414630305889045507048183784170852210839129912804686853290784694433106265034553386796990052730408912399715790926853066684513583098387076895172206092390916907629853015805381344523711684494217503205159259258071865745565864552540912836655621605138221398507641399684187756571797433511310675020005624814533163751579852356676981537438116041361338318225799459915781459420257321741640727535760388974078263449699667637297461114866555140937488918077095813369720805388719312357737703360194817916476678429475661748374543779643297768035459744745369739239564153628317848834765218453067836900361646173437555819773263140188768313250037229611852282482560929494769327954619243293090284514124951594412185136924664440050907927377352263501504413227523095623005772305175815342053765454037515319360596130277071598744384276247849918072640013526911517912484235568958452025630010125121445169498086588393236745566751496437175608201548096810539668611083128852979100084012168353025644800327187472695634818693139159596852902788779746611648322659366536123982480526066389805110217431670485499059775021594944419226515712939626362045354159239198356469960269829591300931797903728830816401139063743968860993296611800951150337061518190385328351403885164602642304331065462261956788121365269058852629969972385329081579737029530667319430412831271592207638968936188996284149746766556799941429817521990106819404218038022280598777709869797425300225011163206259280846691339656867924405932041671630984379205103411763486785999579235058500104219274531249093773018952055426774597839768945412333571306670685368226306398212712345612151386986703316714048266942399119338337586540274973670040389989373645657948959058406199449849233247241358628463023986911059889719025701857049677820100784765112344360355670076587986023965629219573688675455563886094652558488281931276240487874065639795801711331358985094314062023363652618474864860797719416301500168501083580669695651878812850083376681568815923186550650773001099217643151637590336705827600831551111714749070215519114626901787547075991312017231587404263335585799565062760968525439927814566872276192447016347438275204874521845734462869194037256540989168093094467693132344899979312554611578775449632016618364051582405531194457362705421457803548944318652798990438789433048347577606542099574305791794468852991215595437251226202350346308351619340788713778240948772160457605464914776156701572292629964706889461318771011073454652769527603501453975064417346185975358356716909852487593157386082036093483162707504210809071196746896860421264367058526471860208956854005718917672121307382701669066379477064734419931140198361773195975364589189068915855860299929951699063400100601595771476366283939945958655254474053418090210235538456609730225763203616039045273198882159342794209697212745911045515143032820547081104849266264237418332659783898369547371383826882792007206313835674372329129256637642231360191195118288119333789057134554537735001550273795888945674611688071494148010095624380226529358101677508918170574735807566658064065531573392873377572489619773303854288764565549493530197485858979773003786597542913217344966264882284743272798190071275803023552288362886261914107250791098859299692293576803110901818543102265008806239841176911233098833949745730838963915526725906949041209492518095701621923122272041912494171006027508051764540465606438555484003815554236145493665117172803840796596439607747901436458313323613253970746262624607718733034633921277753735202588249038018106946741004553783427341042745669491129166724202884480490038158499830133680898953024169312926352876878808992358877722159135393750436859450443037826859857661652331365501783926275711458283768864021414170135970115662448037785001262291836504598965249404773779404031489831428710075649965337228317822772666677532154279603946318658679773155967084435399977452152287714291795792069312238819767339537507501204410563129641852583280350118183113194643825299588782786474059145677691081598669432924306314843984117099864225532691428344278776583005552813906222712223905787081611393375063958195181347984895184180917842050708233182771115347023723864640078180536376553202765796483539356549514701641902647449296378157117739699254476494426214897990302946416550454946421577431587970682843984006309903324949078330730058883893504250125907848345511585200390796693289605610406592440645433635822454110098519613222973562877203755938863213789410060836012958576476531875033858928255244248802428377512404328058028456687525830819832064094570774804730624818257797451144493233208693698984451404601037604350868304642961935055688840132691073476124132851579628283001932896611215371455365021386489401133932055001260961231073317133136514289525995650414712312669441809644680307324198877473114333586488679088225138392882497636646481575810868617958753776982408414154439728886537784802006995676977518148003680093496842987889066883805321748146120188605502517144559075276061498480966142386795504982661557539744873225300270368184086728545723138134588506691871009328299892970340346515662393907804850670252443089032052935597776964956529477449810095959591598483202894223208889771259902666162018113242177777021159766058745694276872922836441472778271034451335905961175823767224436502915810889144614905806272106582101745216269028643585035315443789487278061116065072129335499515116711559927818161882209144295855419173810045892301901285344878076710005995579845427631450581596189253573662180121144642462054817794071758296795059285205430901307902491207694435620593570323093425665720121841927931533394991402848393514964382956475181091548530100590842269090148191894188028946268851363504785834275476559653872899951045030933009187047167188869138341048330185216910734761773086551397259434597234505711757945778180447462326850813350273924413566184534402820480305511431147941844202684131285706781535967540329017135054546724065432954775192049842592784765850091593114423277315546991869195845924354964366739113400492498774450830752669681471703176437339206785734646606655150229713779423514146313852146261441778425623985615939020079804909749283558356966337551500454280149250585436486545144128556951844600004879305039928236667049702230386734780452813447464121781571816625712026171690482794305203949273193816172392576804992434811746998484593837621504881633506669695018301549225875807338873060830784118016722822718324124959076905041083027744253211622137430982163929766536306480294698681298535696510493344009159696722229962310266994143865942870556292433300584713266474323239124910166454241398602098535355841576522629793076116049639458889929922488493500721256993607527160394477900875027537393776236581943224617220825864436678618307222583467337167213408254893539746185352565980730029907146055747588301896728141455348190448689541606403899184285099834409352404855808234925956534307580644840190938211094319787029335281205038769457382025451450025618081145763365065242227296381425711849683150687772256130993160810693576372460192192279138398977633259936039684786440729429166734286281796511227921883252113098160155671129964613354798336807664449885632122156473250053222066406852221554178408909239541443986304241171769772259116367905519947505328262873019240287422866494153255433514201554707947765822323539921829945102639193288441447785838574998485682843704815743116340155541275904481146153709448891521345156663053464831799089093646208189991380231739207513000931253808078629693630804092839978337122261698014761055918610506713158288786884658722385717299089225498033940877968139176187490356724555282431602906438551169842585627388643124572109477905972393257213202597698581980368408489619358484037222388101525779738163042389070557504526955857904381516818455794664204626574272163492371389246060938482143821113187272518797439576483997680188178446947064598752518851613510537936457369463954590959559661798966311342823454449989611550167547060216462048556415489937042547786228559234649286389795779597925815416575173148551837810267134854569831927169453723950614264887827071544013233304053142439848820114521580312891913137635549107888386648468648616908905768785783762269492048497141699221818762687062413570903966278375573460777851402927370389642917690201280148572386409601349915436628749106510372533142454714706002094608946403403973558507986143388861174028669270927773593757376741964771427716461413415480139585101529213674112695603021999975279290675930827489815864053023202668270476181152644491860523414961705281716820494066020776372033338083962188479577989756173549957692576722917920624465983781878533359657716112063900328472552328015369475150122110441805242792331742483653798936815377492103172463164490132606837365544729628053158664592823406964284927058279873982329781076807343895328276849225547225765764698225162640944870194213822630609665785777589133955923209065638631052734400450199729208233037948615665504254748717087305588784159873311039996611574927714781736340818292072028494965835715367592195230060124026373471052706410476756469967296574868013803139930362730126468303270046594957657343957622560151780930790651126400710567102492365962412618175515352746045474777533628305370586470845139644465173966949073052639390144144352778294914613986089141623073380124454660595835904741837586827885368514016764225472420198416036433986118512327110713966096520675941036438277886626511713753249115273554729756219965647177841832857122444381561772304153942603545088721757122069103995313007418975044883067216761637499417549241498014158368291315747023938090194388962739437605531140907970998359115780830758069038582685606403689996412822556850018344817996004525000089312815443450016476283265001752082195757480978950788120359806069642643434040834554501426516719735510572062240681123816181717040374640492599994007306004558615034972358937138936794455863904121506137895578864712454666070035360018041458686357413066183016470794478775949591763203347035023912060022735551607487747366705254316746904133249268278314748766115271120311638287009527241830932131459411685168785761588394058385694506762299555625745590044514264507813435498921788558921523482524043397484838407353276715711680299548791130031528401577772960522458981829652546846303957475342023078244395677842399193266046355396677120916517048072572999906748378630188813907044534395505934326118328649498793534792223319631536184150638078568957244991171865370249693068114955495680845371836647646077420438991874173488755327819770879880599445857321272231276650860200475163421055632804440471022754481781853423356757385373111861272394319392897882054972864699839982875082154311383283482690168007708363412788706096886419495209288613641120101504074923298519907672379443869791562549939820088759780336157643952207291749569141095470930167424947908677282892554227864277738630925326724270614120764735845323376662570774195020721358487706580494560490713759065622128470124494699290984923335172411592301608276351517715207767702600404584588888677898408556209577702402206096819789319149565718716226036367167407495914100602629749776649136565163597706269259173324010412954881009942055100680224586289299464056865078856055727901424157565270812024708868197327943038522206913658054253405940572556733270156427696081920026304896875929013719955780163906584942554878887959102891881424369181273760537883570300708565129902027127562462627475984563281876792559044338642562389659213857139600144689224269669978261825219462896481973321901224633568558664922739255014946025625793960268855487079517076715884205892736911557273125004642190455553570830948200441312918105360807093132165167913806912405583081112722669598481075131057194327935372676618909196603686279193309031133943946843704596928849802474993063306591789402149330762751669612651435353664022861136794873583265708122015449713635958624092371979843468923459026401989546363158196786934093487078037267955749165953477963799692060766268109952171726866101063076278357764986528391672081297833838575708968373370857954496262001128829690016253054746827635244431351599442041441270004266791866783944852883771916045167655674335674045607084916254857519829206494239722890071029146470808816168136153189616006063980314013586410670936428167403283362663373381636787640494522520300185940598498936963110435887988409928922716056979602189201527344491454423356060832015114076293841963983978164238049088180575911991277543218510473980816044704904033822983668445490746709101702352634776545149550940004960552549592044970299471270828856409056511524615261369246648549146049003566851155726289253376911344771371833568305442582269300154938722780816939330957542185265021886503566962696102623747958445070664320039317331837853413780737934603714677369899470379791198505831480167556444284182940738129133901991972837337677427840344848755056652906003270277549218707720175678506103135278335400851868882107948178020331024604137448810296126026186810583361668745431270042114168792051894824780416135541348355600565930933562093683925422654336885021451738537700515145792640061922647831817897899957220934254415764579346400714337445141204762099974095643159379211643127192270475372221147256493092185218684790481639100487393596532905609627935875612154152129927814719199985179791566725391611616045490734428618833844210879228820739899126832487874841711231632187832177321349020236417635500083101380114474338581912910447676902238563581046693454112263640988320930227638616155761934878643216085786739399819207516608866782150252406717165826693849976179076421164512262491907349201635043864281038099346700105640355521787623775767411343433094621407316757992323461176976341919565149849314514959551036123002860874641514415801214133172184459087069205586447386317464636184194154935323751272367486883993787018182898396678226524688853670216812758100939601637524472097739297366125912372028041534568147201638054135433845680759251867896275517190822279787112343156831690583075321816652012798429449015354786011548983723430454030476298457327297621645276174816310030317780503602921163202190886845370371759500853719666708030264417799567949699398912438665214436570914202474820117252843619735003200417011022859259118368719134286486168467505078882999314461188373263636338697371678451947525970726023008069383335741988708499318366082885730209707006820542206466396369152238141074203210875598962109136638592687104900036421106519700523032760368006357383672634606571063608494773278264449623440828834325828543927202902356441980648473109870529899335133439126945854707679054876624721111597663972687485611778193785123739581541648255676202483163762374476807758394226846871811721191700683481226217075098210303602357380918852254347435716182983600470820404027859568277878832340285472877712260314550286758898179101222908765605171435261372727657839615761185358014277111718647961035805640306060201723456566115387339812058093219431164190286164349456143124254643278352566887574546687627106208018153642850669321463242348341402357652664551000578382177082603430852520040732705945737545683333777176053130590084527343775332500554533979228476621020687687448392367135688619947395919166990293892164298631520178463639686108428924437176333131656786542805850942652758272665658443780592626525163789856687451520711119935050417978716278451303848245793167854228079587066552523856427801481409890713216361600017141324102629774848767621399493979218479567487118083802708249345604743516052323270521107579950048297241089755412612952290053626933683934391594688061813493969183208395781637681561838864832721665728465006654570086233776798362324550781908356188878532194672639144687001464109228990244705287722006510967095471266163542169325459774048008933589873473569346227952838317558608575988194104012651704091364794774391965309351311387823370564620381323265518242216954542906381181800969589997038592321799373926305284944189180280135344107801470358582281799370507938155524515201032311588019633098105570947961889482954692084176175417812391774353120800715175966756027065542548799954748932423066742285139153625776005766136173919831448079287847976511450586342589938280801284433276999417218351736891759044450205807446264773299445492204463917942240298835767701885550310837194230965052687141311373119593862043690719791166613429801903937984453620436782173869603262693525073281357311418370674394826077186770055272776045454834091403352932072926839984837353466722427590958636397797033285380025631141101614586466190449112811422944351503302393924854588831381650259387446044396222051599365448889006464147792328817332292263380849427435065709290370455218296101633696142890912524781133675700491173319725967076446213959688521066936503634586049145989523519236572885565312275280010996620001608492163038055649230173856280265167482235005824270063954296844785655971681844423929870859371369729513445963211061352967599092782102358318246702004764277707054840834399995329872025405171573475949154932564114268044454754561045823015898679710186576812116345634136350322357170565192955953783264024334833000769125018368302996202156767440704390063697804017760315790306403589790967445110342181803229713902487274323018152188012790333416884090194562483740696845943748644969033949777543400483429674489472974912100819351171301076184801935502327266434904706899682656639433632397533054208226192654852739811698269533861385359270831857726893701055181863083109390933672397149079063019539360346141550498292292912323927386477063245862931522848062414621748293092930357872442721890603545643261298382434845039065318818369500427409906166557829242995515256461029797947712447606670206758563215082864398545026101284130515304932919813984009178321876819606456641381749181342669770228014907088821702048663051780411549424984050351353321335445734324444928958129044084616501389957650673738925917498507380306588881694145733134554862492098843235461258279829002026432065751305976295985938883857765440609092351233730234577197759285323619759861825154682839360797031015267755193435731946415618937591036488619766461176033233365922061471391556640318861645827340191978954466576373429461182026282853016524020839387404566700141698713621617403913228627165779603894297892993349552114885112360010442444867239194897138927336451799391211415413299460927163619102918253977921380238652793299849404573563553065106770310682888120605695356166559414977741688861173891354603589697395658728278516731675665938536467689918684320885396932948100016601072336585336911398151354637273443217891355692726575738426969478633157610482086795949152955622824252320474965416938079022127783753112067345128271173969499259439620141287558719931829179560779060701437948521718210079452061077220535379868693242506096003223417968921017350207054100023779389094052475277963164649074273888596057397793159611406632304140602445389868487696969380067673019074993586511178014527331852208273265626655947087110066953402931100196078549694067317788229149192621682437755656558595897418644598925807978249641393841374068391287162073806554300990837838310822072777059970579609851294880662993216324020156259989377914497304600894395210187918772834243477187086398450703612687472589776348630057257672642688674217031021237715214628860022246109715460503616191023122055298219440675871060838741448779383777307187515494511679301393575549468285902897395135012123427303125350932255532049499207440496282670842980461832239719477436647906438936949657584779149104868252678324345789145134326974876278123245359112026345205224727978301203013483298581228132139836956025046968863493947026768961725211420339494216258027510642705146695767019439999440324023446893409710005719820920904918237917977420234518221080670946786098588916658260911039050897251672737894408939511779864780943173528020717388159162471863744464018987481001348837857851409913823653056536428927792590808144312308525168941319238875645036494745632821825330654949785487898120851410723467025080237307683183499702202143430539654640207665961372251680592855697618231608934908920884928042672268374857523044061079381345554094512010476142373474286147159083626102765661226075572429605289488760097121118489369336295243144785418216981971221229357811647883373711436366993922198111491695283655112145546075034235135204596787431093686168465465882685912325473689426619300631898320188411687277231869914624214589963263776037739823169384571605831610763482515952053804187935907737555161440845870543079780522253420198377413753940600305223909140234976076910671700081501813890075680980510481804800373533188003987086909601097045037668375720850362725793293164853507255896691196885377899098686824840992841409555313192866050711730170183545821983872356604541310815109880401505780139874258136687020241494572016750035687644301871674228708241592062670345007237212466798444821237096766047017295325099644233914182310731112065488495204813205299504983788615566725431261919665760477623031356754958077319090429311130275406670215589626081695215041702620128105059746742210651814421504669212876747802653940254176963922216498692056944526707904939278858717707404799906275832460199322629056173663766281591055486784459568939616244936922139153719852578350086730129936734156637717559866307824488622385263043890229650728521572629537292703056631736261241210558255890343598125132877801639801457651337493898933228661026190903520001026096694469734853785652763712043410279827086342180850762042090947196239092117883773570158039952629818911324824914539818198927053417626381898159194336015690238080646749705673242240235545219149708154712191878462842763727489783162933016298581783827906616954689533008584691169721475703063045405365202443812326472987302799251094428183288170603805369107096781083150200580819746978354654005850847979911018910370778470731499220015687829873319904962164232380939345097653917531867582345064456814043858157048222601861845554383451826625618863932451751685050949827743544186437090156424611818634469256019502817052803366577799449614574354040365851408347154147390249368354216371026706201666958231547989608105333806997552279535482136938309416299663511321032164358003389884020470340004806716637497769572469400964911379109749317576569129951089704758199459419355134015680163922490136509717791988957002231910023761053044883898970129270227685452727586769018180513828697823782137716971826474944457242618052141763146410135498378525063611078929082511132629147187386758553183207334498205005117951332645313443723884749823674546199873965513121156980145729507945406396464461792788680440294014213638468240834998461679247787088491295322489862108334531378060210559663089256506432445135165307764856324827747569505884691244169466437219057246702348173257887254443290141868074683932211206315667494585256124914340954094480316343832219539847595794153396314698625852211012467422111975732724914017434306145138054913299420693037154319504434108356210339834699838100295968003684703671583709575757660274769980988832495700755983094061319527961266164608879640265525139953142501849716050510235712518741530318157432645086699116934153338329211083496740248014429322856182101508301869772819249857403870535905947204742379115003767046839287057154481156369304981942932496535201796352910524042658971660450469072328535368104620857653977493897308592969034318854931345189100275107942066078839260068789210333852395300882357261719179472669554692402133396495851773410088238764024529902845244150509120987259170632829818417639311195984671009335012547817516866059408866707116716661541862294257108344030000215725980429556513219518761900731846766323146207201469007070400271995388577021176080418488178915290024072732981898125480624777695382982643268294216827894043933933745124737193981564160842564115148477141947165656070075626314339137869661951210739714686739631371710361526419221986136530189066118776615588272835906148135246329835692280336227256541892937051942274403439649863880172188004226726659124407939117884114142360425283358321073147243450209424038237931031533867934523388270479825190696417763664671190423903442016153528273955929306766064935645281173566579512370535772596552730786254731213846852001376695922553378707466093607659026513920166938276932075577030538002534998389295640548813996606910966773439598480367320172184409416550035643243891153787841145178660732656764577659595756411599580109805544112088735474181811810919858991914860921682319504005510526827373263590987545464127450095277121680379070942778219381950161605788209273706424116948996878347524649610713967663477188836780466189457904848249835900646177336300927689367634340616801103225354349697265936477258907848257301630633936910975314809839715812258650045218758247876536521328135277892508529536872268222365702311175119943717300631150485347142264117145526294492035608301019150971161957010535912584354630156209863982399848846056955423055377952106246984866087479707615413907223157517819705327664353636571737901946575814958005441675997292884288525972747035911466730104829388973287247549620696378924611934787966853514117003594495293364555779169197442517740301383618737539956430659875972771284496818878048142407331513212952155951716017906435623468652614663198100802381670342862884804843147368412965387721854804715760860946711145792687606604583433137735834483207137349478657063912381713948378304931186732543067064870509344304462586617432202511748516343037269384221756440505158446642393816004762314051818735355365276668416371130689786446394087766846560739266037068744626416349335283048039438919552601027006445165100078741649596125018444397361786446191492564220743059049665571210057207391396408305609939178643890186810844832214269942094265315948555971576250300176359251758615379872340105151401087533666450388521189716327582402793038429305593642635044447498303560901296980566334676676980382599239051078295288773009024883561594242173162857147458786091804497532419110668610414921791707021696152943205639616151405799591449351529473299720630392363895999081056477081441865689807138283584663089766750757979277123414197463208646243362402239379937203030780191595710062167257082716397674978126034632107595338355350212384552874754584792762315422824736419173089187171612909665620225374007879839458495993169690744353341923644160906713240528363798575771860253908183195380816621582725183940102516566954139829103520400060895160848421333891491195663703406710036821977556431170178680337626837688546117210588844879705018113138904379900592126172831991153463611340073776832197953904844283644273308819052210801541293556301276799168768716524572419695641025908556925849688999581535895756830651810352503725022933567766095890915184800836771657909991312510946520747490843092669187183227989693310033906750550075139592460284444212370808253619588575815651229905246740194691978671608672780912405340487661647423152337108958002955544077409658992052955133093658851523273636552392233038203424902844833228605939818201383287200325277321517341989781343846898298081548926615933542267701219835063695860731362367634464507403999028624359688623859051535275323168929500049424638958547148471373947495325036942922053931936409597120964558241911310419788749997100384170723207685776502337637692155792645729143780650464246785983616419625225742027436650738655087483457728105314899710845784983961333424962259940747672537321203864508120019561164354876239578730309992051232108917197468279175958591079875799312937325020868593246062210413751177701148693814791125787246730580214094891871905635888959596645892369970600392599078878193210622182120447699780686150845951712243936794082809159867725784438069159816868500281395652686595448911771204320297851808024303961607468378314293758396792223793273042976317562614924648779167833275158600186774505734171167501806886394757298327029188049006712770669329468654679238617716470881734241421797067271186925920860221022608361860332306211970370603099608529041828866633901120833436090494597919658373457549474500074969471111359139382751986819048681282429039227255537163968467264465313079217199738778738109568193251622088473819430633637518425841796980817205652089073092270633033294004189687681283580234931020947285231175152893740310990862300317422716808741329695367425631718085844795035257306417204898458579153921492595223799197472611579273229973813512574313709297135118969600502170093732198539174126742147486852552407933945182431332303387796651139751019370369046520788238727729811973105532793033908002824169432465441739171502677505663545971058506459088527875290261054038667413214794865721293274003597189410511426137387741195568280030598977154278247710882350323835251642436718380384613801988080353846908187401492169689526340339037171786704083847386410542891228238935165850621423242745495386412306315564866291668216475084734253673445597522123587977639144742401455984243678666281291938392313388084252844542835882845765856566839872162608098986302108125095920024572126158326016604766992014523902311733574769604881956989989637396565673792803945378100558313465647531453104627016413073350526135962409362880021871855055938090684666706723182884010622173618157666737353724965030612728632330118376624266001041847807221173844305025132488904735986994720325972667070795115104747266970603320064330787826310953644166144473212347350838444917345435647938892912018864194648225432482613144736087864790782754913039273966670534807033730670971499932887931804300192127250025866415492102917359996969378674782813239925375807412605197189649918011570707476606550908388856073867430295954500346863917493707419394027288845217243809908750461785273771499941918791253261266271296231080330575583487063308698888017433270406391330859517623110710315808833572910574257032020539183304597466684051824017436089173464556517466506529200657561580909936326031272741819386834317469734962068872494642839402602258613977956766716480799147932143319158219048005992639052237634831595047918010465311095675254668367598929665146489252618836311074531730878441824483341867957841366759128850722676900673918107026831581514740435001350763985790993838659217440649312734944035719658041519195424082549650506803912912171012330085978644746732500832649660073591035877892158057704076173283152869555910538678537236159623650932193156526302028224882617696665787438739697135947355182101631868255152360646611119126408344524747653242669930472147999635009830765636477708311168062499851451311430803732174401379773136352676444299011753675066931149342912564485396857022526152272344468955941260490508436350092842905859457827099177618434382511581484561325690118724301715812361815843305829610883317905846896242378418229169625269941717893345316861607233637567981273878458257393235362072675582931222096276641566702782062020602248223122863463077534966533102350330066714704382061291890806074177366634429021864940656517705078618188460623441694584221470770415931673383331672580678467354385450903958869585054258501895141076564582397005367359897084572871223258578008129160721259063356579771584284820541363942360318837047312231714969706042645245130076616374922154362912319816468816047952000964488697155528356953191651008835542629236025050039036992341957564420191946054012949878076697437866381811556591088022634875199848166877415025801848122190482205170471939900033350101120752006171429347869825127559013930874393555854985660627297024104309344544894134053225515961597898391267631597037313211106079220933030487625135765263080589616673802452538071433963941128931893954393580991285845823998742737809695248550849361506455844039844153518810885647868105414822855932154943636083397105690506191188482547718496176756643625047049614678748817119008493043234061259765119815628054230656934056617917847091551824368890825885815179906957961746585130193142311132392594479444703252388144890102335024283234885192095982078966083501234623040318500604789293173492284094710496096839388287616990232533645345902632826487154385465930979133022451151753124855808888709504548344723810992086331064827040731975253254958117960295887019226904741625791843355409771808861676913054338793016222485296587889041777433783547621241564933754114204760260745218405768117092028287529213296333844990928593287392281512320434421724251857175958037373491652390365061451951447271264548104406339499575910616150819383370249056073319628911218035573768845617807957042718895636200536590966477070381385340073364355278130043348532816250401053050179363833557431263248175580722924706702758401202923818835824541849034999956400439407162179572735769426047975903841741160101530290396852125916657756368312405454083805417348955086372078193564596181519669499795406099482586895382793027261887802027908349180610709556594715639415748107992881445229146093068065621895618694591974183255093675268551135490046847396772560536094791169058892452566009560233188433279710683129462057493087325161347672759736888642570064604954558280710064219799010681518295436176221627560478396952839307350019622167740462560572194167056905469023205323952465528245572126006684053613213213779019505886362192936270141107678051429475438472613484435386327542714690328031341491077033779511790582877398158136435283793040836615159459298971617282682671311979799022347625858332074136636605936533490816779629954859308325551341909129335909091477006680968210506068418167676345717525960790944135158515263652194401511748158969230062940555530547410372351303033940160445897727436607235067514278402878999669505523442144439376443942059818953527153011599826220952659314560999270754444169723043518545990514768514924974101987574606660348825150437931050190236651290839881378020622090866694831797471073898051413426003707962895965659324340298234363080446387787016272044117763751720218495543323462929957002390314267107900650077056742775666082270085713008789142167975340219697613052677982937537869622902605532387157455762120284813407815187085367704024501600061507318572078942242859036243990219877693827431729160990907694874817545729547783084002528035193538825123522654006783902462256384534069954036961080810192453753560057225146752251268160724077760882157877809939274677627365339561590247147157993463074539356447090949695431603064590936097625392576634085726687956921229340326828368776803783279357085404122799918080507394961372949734190503784265713572522644562893086896736556975514527097405895072009952425865439899173741518766696789110533072381977385140746529696373072027070991762148309108310261030485035720703812095661605158078814546541365770942844804462497637769595800850309289320742020065741335267963189695604037779268877392031439938786961344626355560915570093286088472501616361550198776191662959677095690462225789977579302728431669986324822653146968845810557696570306464326994791743160791685488088253672703477871987439138624388409961187918552245609998871977573806133216689280545156104040762212394684544567776710112714835528598979318766491484735639674080580215787768706635704043689277067537124377861514643317189076547359533670500289939177661315691151526440595172597633690151933711379566391221940058654841181979542823044289066606804096168273474660193672391013747438639848059849978909795239831911212576645472153954115649332640659868149859472663957864407139367506607645378181077955898455034403908876587132783892043019023149689386882112522670018269520977915382310596931769710544592249883757804055682531648660574809329709171070935600968449863082345655292374858548339692138571026191638672775934430480821616127917011827490709459997569443558152318462451008408787018657736561822674586914274353564629607791313399457259982139200256015578317551588055343217132803077696319066087631019299333435888206396543843013132706396112176091327148148559862553434923328140187555104493713815979139064280442800633721959112003980128847774342926652735274736120647654384570360729991139439291481766678439750046477253309574967332497154521276752803999873401656937460830643650135483448029208154288838740651011363062479476667508360059907253068199438662462008149669841033325032199321354413433056360824129786945855003995777856978356050378364201435282185100368925427237013721565263236546776827992445562972164633147748946870940538862792772166236088340237124077473102608486417765588462669253830184490185131884728316734201833632733438867614753995491404745472590117864969155080760752104013639055973050711297239111296198698373600600923463987138257767375084449758465813431390352996606999759593513759672527977678717507443036849606636847659268380977790923987099716013913822632297539732566441073173833905148933895385073275990449225966735160612806826686807085985686930366615151189300371013582335197123593530407228471180184620541267281826180794803107232997496300903305453556788479337039883913284970665834915924558186052045961626706037168656594437907013263433928933909544678601221785665517262306357378653073849004302301859376535086439580137433344505845291113514337848875747184323744403560934914313027621822250217942767738699334271120453926998703958169350543462400593177621361366012535293320657764264213532504913549163463739126475448970959894122729663691285887929771058846767640693939583919231695792548928129764708984895675425313795256915219230666815444014163588559886603527528517972393800557334573604510332931634762800045174437952881776354237466863796464942198447276720684388741798845366308457257244081236531130832086672342970508489166965969658643166743079689777650569631312189398231125564821688938732711202679257592086460025357339385844102551754073342649485585686385259878516706964536310325367404437134359016195364964413026319733480488230232104258653797044180728022043687917513910669177505486855189208889973321550922364143406497348693007023988987235361632344076842317262625676101509640706743671628253646986515477452397253192938051783224521886613767273688858529490873352209731771667520182157972430142075377321530691979893374515473591492350566647506794792454732900697235381513393321590403100013044973143820676915753704956251342296967583736395218853957751128624189219780829808039586233972766507988202321089073466141833886391797464238043352527213926440413171160193910454082986331210497437688986438179764960771688778401214318789645922331650073180436655853925154131643230983695841499338998208611472994562121796293230474354211625800002880236832320704911517380166967105780223422845241919778842938503120909106466377074635288664515499889911847539181886683061305846718457930580328859729974950467912420240171424572947788226553476648498248839739280200940279563330494824179563747537714538518587117384054405329948352593488768568343595348990746861650821757740023473593145073179688744231221483868697904558629338251012180447101097234614511346857516796633567485384721058738888016580294346116890175257034473101928243155641858264954591834169508176102647886779535218663798362938236969455344552171592609372876120133866746605337265522350872871073049423136417180054738139037696984493921615262804568986795763440289568193457103859949083195794031101755995265135664427367607932592019087751746533090916207300133770344147712468704269841774832379101816837682866735017399560039372981943976794914527030790924468408949448801121321523258286622358342589183043155474218686520082189984671027796187436134608544512587523691952117316685992250107371286843389769314567480294060381802748180958964531831795654867003468835706280452449052356172896206084517336186349700427703441087524614865154201464152980334095141238657767899225296793006830595990648370657783486974734881016304418847108182421769293471340692149154304217071547245205462873588130090541992917233714309155672327202013596268315156551751038219399083872430964199642417702365140439627610656841166924183461222339431111817252575733832547017315783467549853859398178807522988747569863187474011483381208673825796908809745609105074647202002507293534797519520583855964391927758927288224186343477567204443448288091612706009757785145051479734852552916891639216666455487918615191807442276823084097672928087640215004097982242088474050867003972438768894359154410991127806623830246640526123465198697558239593801124056125108044622072784540726042697315028565810203244373500618084782905880533634051774060223504309964416288621392833923770991444899929270415641355310042725421005340921112944426513776328363996219238782631543406456227889398693540774039534380345889562154862325999188439753867599493995697039349790207842871450896428117529017231413918187250855996915352014869162588729566284542148780686401499778654684110794699592793887424506334168195261627408657539835957763551140553422326894172721654807934159348088654938500788581685490828096844633156232643924212571718333059773920177699970553233907007483614979853021150259029832759831079985717003143198371216419225041574200348764734728500049642485255301963496869592650207772691222262531322810648677863707045608769159516164948275050075882820728505759821438050131641455788007358841094927792408615709759827278477485384434846431888659314963286590042447929867984422877859521357037276095865598163776306792779417856749946100255091820987518522295129746228272036839052515364969371525598845574319344350612978458238400067452061641069818151490531929877200318998931156173311397631125554005019240891768002928801517857734975354464394504527862360115066999892046433529567304345456365501682609111064584988616991590324732049989549696132375172333705483231944183218232255209364938008514784558275210984163186667421593441903265878654447559146876036550189622400799414540703293735058452593244253214586971953064066631307930460615260916938624111775438787279230296021265248219904622628350696932489482834789914024431677659964859654805987508586909959606527998698952588475028989680264361708114190772900622415955640759510900283272354947641410078277373925394682473119125270626494105016716157492661969290908246117112166202300060941841060864523280071660264620199229721906719571150526017854060744528106645725345361941534605454263298132284222571599622112514932641285385138812361992228077012926604080059409815458098171239881211698732100768116677975422711982477964722120299837648088492332268153481599756464085747539823251144097856289724583344052823148917441098759822227272821747896225751938740629124891558247351998532388601003606965341017787138720932626594315322323450502426996098742155956768363773143368935637432422974075410843998698385581185506723798698283024394612074743143278747833369160635494277146247200118781610978450236706918540698370516949875061351727267644678348607582627215277313510168765683511344411907375281829368559924108858565712734993394637144188769561194485882141917153353383234208160489855485287125999611588383692843230594681821017749815290031878763914169692624164811540395795678278806580399972576293005642233200323451920169821026477444369270965057970827212626726469342449693737043997467253153376219902325089110777326065630413668583450015580512754471590477868173568704072574022123034005977490583458394670942009335198425284209068485144426591452899966094121652609126010080729611169840674221433555220770778523933829184569266594219575931467686824381069484838921898796431788865207725009218081270139519545829354153820900894432152331419101649695664953752708866353609300719853711973053294485157718427035722160593084080350849568458163660820302154751648615003172710352081256831941173029118062828104250603009929497701982802306411962783601553868596950219642911376495742110010383826224240327838142887455217429895298538279147396287554906396126315616433142174153334746758863390868365671042438028670320701255158853702403748248071868727290195879491086464778024480086464550202800049281805526685665783143700309034406814608789744458236473812170111315953825021379761527614404089579332911648343539790212070611419599705999272590228163996721556042510267788310266287073062557808819155630217105972053136132577633320145766470058767869521051052445038184404910195798828658262258897862683513426310921588063001062508572271022396020187127562292793540931355973039506669978899048003848284164904086820274760496341749397953328931069092675220733665698891514305650423367040322657957370603735941349873528319574729911505119141311277526578855681928104381010885933690950881920398215399917392654592198465577714938706486224578017544900452966057882979986515300105419103182293945516354933229763078300056521960564517091398768730937316020493182617787590530712623755415738955293327411773926236731033025159845413659860656922516051809217157361546332337876391299560483157406269032807632003767994265012779223578811788615628427254455626942399668526508199524515852515468937174123489433339781651870741559950998370298830641649685268874635869090299365001014063096290602339134372622463178788259760664092859518638792168761161188358129309973460387887362688323975749596233625864458407334759500951646700598036008066919143922608814791988825484234167774785076765037786960859274551570281246128784539259430121187816518567881297744605697045319277646052975337058314502022835958065932395237709368029442616224773160140094549169735783717599989211447220094787639126283445679960332817730937739286305811390314765429058175480388619550613462648895970889830284798002773666090518714832483815277786464076492541715490499820215477748678430679827894306296809793412764234903166223180691401663067818926221974215239500879526080256475453427134664981333610980325880848435784132266873022162356878026189735934018953953159321952676734229365109994846709573649552515369104882659882026176993421597710139225676216268986241525318776913862239369134070176183414938039304520106264800453121067493035350761526716098763370167290176461155615495541109383601224362854455850008291025075593089348408199962516604539437865105432688868297980296854282097968767477513805323340588830257293849376751706758998632994084265376410721258618481165479862680211330707149288456034910604248494922261322640527008457551143711666806343237074795103519063206917424816605854372489987686570704851972913914645724255999428058264687967957535783440436235538635846480527784124285981496112236098784505487236166736137310797781183747623435558871688494234684538851412137974361110564896957964413039072152249361729332102891132496511176251752216063317221089478172023199473611278038317456724723178308159491275496807037600671821121194281247658078485699615288785992343368055851778204313079443344234972254626867626086088541382898531448276677838577503743539162061850593651945390026404252661856092828999470144458943742416385152814815969807346296401748333538076814856504813317492320952944541504212753680635389541938654468921265186073227021211358854546351801759118759653164669969095566443947142866460615327765348102230672410173532389512085917317955751128993356995053775995674862999503637485315938203103465770543704611932790095976149510768803296541626516688570647188200971433663049435040229078568731862408754821326381970399796354298630606872973306951297381213910970596896302075805388433151741842479590766644354704954543573083567788770467207119547105157125201307095568902936052180359966643144844295476705740817494055343560545551172572252993821724693952591742853393031867209355038247112127277731183747110551013662535650968552265256436235739608926922953464277645510256951983490114182275039382565790021610047552213574268507501819740347189349171356573740192863336638501901402204302048312623367983795916878781468150722996851004412255812138243269549703192882668677596411448852384532620971855640371100949221929210853862802498901846317813114630691799032362693060955476074319370898544405591289312711065013702280460005175544792102470670191941123916202407200158540116561795187960488278731043817397756662547409323987806488079778504620358779178033706322758629837473307330824096714851751239339092732431873526058518232434225598559782047948827722351606343980529625950447581907871504401385115885172299948910075980575574450745548965652791261485737407194555647725428979466534156831460294984732931819609645433770854692636653282670055124428863467016753210910631758261887779076973452670668639266534075222104517586845838709456476936911042379006659996852189997384132713604572926854600483029640463753141031835113114588069615834571081421828672667144664347699605698152305730269562559769417560712735877069150326525049241600074956841293229397988240261496986357339497404384331828010018407440933272293666805879564892151091600550286570664243342976485038688764331795281696301649496327147034916322950614130857040021888025504287868901858097409233363436086332005877461406031536709434367746446109453758957641188839892443852722002777242735973228543795143289839704960864833090646383301949471543756310181309768914699803400228896681469845519345446238133013731124307773094304721672738214099046253527731226967994220222245436357511426412552714073948407525844695598995428615680010059337812594435266211426277487032185094986053450141720634402159500700999104228758434939074005350743016035688193076274942950451918881766610991293436651996861583135116553266953726331257103885309214162406778600207014027176856515254857268313014010352755544068961127573993418601147544613250321958404180418246863809690283354043462572610057353371414386878976638148075350290979487032041417458780993531667119536774515917660164808433439605575725903228545954808058705519889303672489941552281477125204418706558786955169647263393596601061362938228241872787754289245666565913549719798318177387101122442428863167287438745978160235513786547741048973865919016584266105915518493250910541076235473893875260987575493163413939487553020417577893579076887145218787696784150246509923880064723136329098233306955922208293823996543921262097540449763027913900010305474306408046826546133530666484372214911447479833080886591938709675469108502312771971968268772886237550982554660727240321800947580675828327319219863616071090104331783117591395645722071945532014168971856088406831825659828270257532336759301525758479808727362154157246824630674662939491227410141212333668258602017266804186933503785042978075964374602351861909062898771824561473727996285796735385283559276493591505911764179694449395185075667503678007383953726637211873789908967181957566538461569465754597339022799517959196386005315100343830686218168017583453278057724947494241174357108970480993272957484278496259687703814917711921384212110966087143520232513194519792106228908297551050292959388221991262540976863850960444335005847888583606062859889469348465470199527186803380873899380875341486768495135223699102964899310218350822324142252320954569937733282616103457432752764793078969648311509939170154245057763176728945631299539725125241032682502437848185615734163947765224573426533742122781263358224677914265461909091947435279828597693656923501272329445242228549499012549617094978651278924074419844649087683130192186350784443761516592485862377152464628840438786470569618606906608167132295684811057737962229635261393770134831158490143217876123573449740961394840614016387780819143361093157050994330768153453642021567313667291203594571410672375322869960331587170124961628546725664181377365715244577109490679230245502653132582091645164806691782493444414785997316392609948334071581354575854764708377440137962556104917554670127456186236318908012042766643348343598394052581056338006845850871941924780376580606208840594936341394202538501505013981648751807911144992864324956928772471602160655465117477624008298512531276672311726522995675975758523377941190663685411585694026170441361690813127834449736024017168506207489981274694463712591254183540097415162944513270020411354035577929769341081047458583683132591574307898791517567482187288816678158502757186520876285490597186390842222846918224248983271086098923314550257459415854539751555288590729238083751243358184870204889769149480622963570141563855442924719358742187391781018153447038456309987205271555268357025938424567443910129586339687133947072110238834290580802522276193059680665557859447177237302341285359097102129183450939579032162117002762314707686280134250932812327956787468805791399808279020497102722147145100447507435621635730438049297499568774081780669017703808230082529873566606760343800063834293451514234130276041280448907413432518997625941113347771875519488256805741582689808198800673796858934937156459193624020619181242386956687274646708026130499783448378865217690990352407430037389573584724773994065188780853596695455453934649645321317783052303670196666912429762543797833009633687254973838540431853200618572691508682538704785652741119812100331914733001049270479535042544262153212895513507145442691553516394003599415466384977327703415011120998691005080517928936988639233801312033863105053285378221941480816004712733629541121769307896587274883827106284204001283536462149516875683591396149141874689154922987931768105874829055427082179259338398672039081690089459694252950841957873985645891405446119327331076496684067264449572964696096464800115543235931162078162695416271639925941527946439819068883062705839421601744691416562253032522407004532925889221978530607682630587604927236255246137454977980634005301316166533967152605091543915548300420191887557087676940263061488750530709135277450441262140829188467943186214271988650572839681050320775907639838487449769300558446105845436421988130164602844739259425983654591921245647368683466311051060407763891925108340858317736249885604439957319320590071431047656815864495217908978774130668840317406066395236868663635828755792130843976248483145755899714604565560489148428687212774603970230631878078870060211981621362426448399820057847871830579946342017652238121930649732817849556033454514288235136445218665704213463722311273619890871241532797463126127145867179511333636358794007082872321232021315969260198244276328183504483688066833164649570354254404722646431878350146057847188334915357158567279502297367115562845781822359483784426039714704228811675560057726536746706239729146522427524439034787563716731336905464315345663062217014266550104723496185214899229406493681422430069408542814496057277199884539329341944310516131506063382096244833734313684947713016177664522474550039995066255117797559221326124521323794352481470298264406232126790340829106131961392512297541737762575319463343025376202706755839387832197772967545979539875619397206744956017307205998158936730231578918845044104017572878474943659821277838123299322219777678049679051971613960872419734343991296171914443790161375087336026515991513174478890794284061822228092183688526259419913185816520661307003591555243652058200504170479148073155181802686590390430122450462090329351663360150506414312731986117836499879439012373588732271435054901083793343692942682914570564111120348281876632817016209249436670124010588599066966377239982302603931426663566391178933319382018288035520386195135432961954637270565914208974194998866976021699472939288973027117628272688150357540399840062881157766705170757544097322907360173072713040249538320114169014165110124080172788387092582592214485977663698830824238176425225560697954087117319915911366565490637122839799806903844582001792728574787080320310219776040471701401833921520748183608200527891941621959673750410371747473363668053832562469625530681428726175340767065571115579057392209053851097528581274229809228852755735843798222936531248705432317151280117591615244635973366079938873783289308331558684775580042378677629390284895067010665803214646464186243829745491596733990225399616200867879879809777174172607022777444986483211319541097171071850447042868887964820698565151038562870427608944066150173125707243209137947763890428739559700361122317554773700199731845598394092656047852722971781865320950464761887043699660384452927371084175784922831145126076027859533699241837360810179359983314333766722832949965844674973268686621655048207993689032322714014816076688973377196662939908895522176452505857383044147945429520159085891398835208625435883568686653342341413165175839591804262768478752958878206688100094273526977156131482519573673219611468792665994314345550925809562663972508346315488636156937627439196193859865914369298195161760123560960452168034234508270336975128627032690819172240898319247669196315555954135296431765306961031281907375129800611455407617502098077451593254669243891126792092701385407995404759256922492277760181169610852965268182506451658055898123641408080214289813495939238144931608882069210251026669672198371415561432469523704673445967625894838457921175536836943490828026519430118885991867459763315262511458030536556418241323803159977003493407937016686965578426731548683707458585692313556948690993901097799088836004274076960846679248820743277086808496358661042143740145164063166575730468365142830994889607993842950299076251388851611880669335655906229698878265296767132697305076762437115538378574990245062794398351265932017689218206388002777010515821094654566122045030860828998590417299602552114038427688006783485421546940832971827472503576693977278637910528463140028759208374959845414814164253707698631861047073492658960036663327353121868271756542742366957813863757892801071368833135321236427056302921234099369107262093989847012903495876674798571498121584398039815557424893412596216718854301392518577904325967409240611456249615218969495725789819104543287511262719565122154260274777809412167353685895068096350352468343918424521644422826450339426500896966364496607270964304009435935717066847920792381430627123159299462567226265750251928570245886129301041858487306371697180783841040539653825106965353771092053965541097161039792260763822672285622826373304505712430436363392781061279962813240387741150672311799953398828971179688579081917615027472462591951673698324935685717333297595272753159322666073858456674653100371623414503529338159956455678803763672503010069362258112192355377200777182751046426776530723154028760016996903137129918361587477570671348036541774417919592999999034373875869629038337967865931722335749237272311703564717726610576669360447760783840802717877879246383615208941395003818973880925300564735563870871622380563253484784861796726329688914101355477054911560753023850380844512058703426219744521783113963920197543528839880209333261042176930577107207363808034199645983906751411066814925270754172729595925625596965058184645801535023647148824841545608162158777744252496929884415564046915732855539480410754438611355363928112807803809459556075600809221542557428954552847449853775302562251354146795325768682763541401614759178768392763242956112520082472914112059912048356625526672306594540901724999279486737897556646676566718424270155115058356276577749540709751094696274093516886825809306503024087269591721418587726206202971448993896753880115346132233970308342530318110063611385429231888696195163901968323804282122479863583635889286841015180689403202285198084901916982110109832439051809002531435650174199513343004058216779621785341441887335901739350717174777788163045037653076500116022901503997731772586776310792251527880879345498672255408176753070124236155254306751912240270614155861050627558538136033702145739419598907437619568120386410132916403133479031749363489433473299065387728626875910490817019944749178839882812942631586793696047400297194639810863775850720906273141272741566868647184839746835574253103649675160114247260389518338095619099773339396544084508287950313012397705330177390599425046610559809473880903350287118483190413111639907852232614501323536345732072879856058921125236506533122009448310564621107009919462569428833114658904853482966545018437776372492894326815868236911725367948841820872960159302075226715795833246717682323571704592168806455793395867415316377829286489692840822083442457331739472285170804983553680953705244409692303101007906772326550482133164127627239434321611148566211552785094262256582091597130322218869943254978426621349725586576191791778742160358171626746831780534797264687135775637953467965558100481820386905927986518605188575576827376222416148873002042800547929272324898356045263308396188543556541103048635780116261472521134064485206221299118395879837349238845291588673751774257239034414269989212905986119590037478859101673172836062669316055351331562182129264415769204917774447451940133507101489584253173632166180972151584850777677180174948634155568512113740594489044441654637244732587129766483149275635490855429346811687179961157903830930495809272113531651129183881743621720347522891625753593231866094665366341044022996281534747649877309892375248725899967274276631960116197801903112065540197500222785168140640679682074922027338346247533069052293505162676500684323371159346823339618850218713398284368848308622878214525507000753897558470068718576662081979228810673681915266148463320411672583809295536632745919276226055556395571095227101992588528221012311700514928112704524746431367498553033674862021417577366338448022946702906703047900074214415338101287481535123370459391141633580680454348906773460812389025611340265283943960665757405034234709269137929153352344533215919453214657197566364982132396771297827340040385067218909647155065274042913525160579771137008541008397629882033529643739104781051627409975091412199120352641810879912051982303258908634882227485877790310644609392435478965806028768154439886466351691083981848902837867984990850438463686788261615870917362976780613780468677722846147872584955939155322801023949442061646877760433301073288773409671709199950012102811588067942879809440192867968821939552614963297413335448648297919256029072155901817433489507382733064692389540195683755818747602936568649265855340704999358061268789923710061019609747268703298108214860481600043021856478665767440141866163051700230350966064507716461040066021096570413259096817699766737310905235081642637435274662485610224318054915514177719781086098666687128745268909044309334834070565510504708756897151506735214608792895526681864499197599187028493030495570178000191813291964073964422719862757883614116716297773615164959538398551419860614289632327847645558663978150240460266164978426688651772652048356230121417521013801919229612194370576193193622355427430833829943003272219361994548527557100504532436324225170845044796305878173534398688290659107168549753953921759130662964119192020055812242995561670601585804834788729366027331082921291310021292551161244000071624256796388565810710673925328156399733112039508993215470341919645605466477996836250817335410282706477008352978726025800945289277792197726290021893141709801250488163529676279383884491532265539831284931712958102689079377422219155035881730567555883994953701481826329704018366911896202472445590858563428559177979238819488167096589253802346249679569289828497970247795720223720258492738166522537808027961873960741457146885956725524236494253721576527415776734943734987281795631629302882153125532674013987839043635887865229777006221984631962814482474482608422970725751331717002700042835165976496323556751473422610643163079758109728557680134757576990670349684945632781817926512394783623367828303299655000594339951841377607137987912713386201854866534911441341090098722209932584220878278430134384272054239370951478516221637052302716106846781780528161631489869553248700407954235382354087484454288523914576187660708944364112934233534778633045939756315370265061538778732903613533758214861538148985526638087330675341545020554357345874795183453895302880912085300236959851776665492898010719304523138462704994166088522898581026685548914013705239590221994338270354333438924444744085775393863257378010183036907097640102626505396456450858170419003994672802650397017126627669170366132126368511764613242089849512740218501941401168125817649959733292029103478555922684755557489196743748695218149071325383873641491698864561846445193907994574132959998136492614656408110560046615584823897500684317364875411483164559707963663953385237610674698349746284695337810674353761338964860775368050511514659132428065658560324716336065882477046693687726026979973459774182805166346434709726523170621163173526221173370062410278930717917296482343081534403033946232073404287460149560131334569033723114563211515992599328148787981673912853314454850670139871276346339123691589570328597743463354350518531140101246940381776655518553825371250875473161936355465812103543173220440707572819000115686082434596171386345337762728886933547237370808806212904553987187490140051933278350003967713495959244485845366426565276102526111479234736222962827538305105332099565173622063389843201474796631516075945551350580472643439317943074582687167890798992335660488213354635466785253736098616991407181197338297067626946181098413995996044619628027670246303827982302952947441549301983354741504833830509189318029255264434250892906946543441963650337388558697418983593198092777929164816044546670796796498566932064210489744183236235199654219033924589637770489547405397878646853481186741372514412951274523865018190518621191817623540820363198736231032387159786130738270015742485959972533903845021094516415901020089364720397129032935312110184328207509060900769751417254711085264828625998676624525517330637513643054685266252516906756921575809033283408899129809332017984523433168353633659809084162952296569384935670583525665567931990587597336080130620815411073533008790205970718266347628287005252779464564760009897511533072781172813080226296859963966516075796913291136081820932026174601443271414172886982915426917140211018484740210262924626834843408910727619288697857558946389132578773937401521623890331326748078481361575985664189284898366735646497863831275274219296770179473972109991206404548814313324910041061556130796704025185393319497560650550013827471623878734718801096849045159967688075409439143360080343861283340827544895051727289700410881199637716274275945625108258956071768633798852554838649475426296402625505540238299424973242814821385060413329318828904006288468118153994693924140908679901612614287113848519400996830092320451328004858278372465413316700995474888816055607465739595589867757866920118911464255130210180002751524210977850017900625816485784666597948098132637038063998907727611092840133621268831722749575602566328965095976166401449875932768103611104732139104414802867579197316271920964478338325303829170423635575549672875849751493427403463161489169605371605609425209278919145433016238997027206649258560360279136068817527405551014733737241359180981462398072303887052547688051696857447486104016103347424516495725269333307238656635537373373260480038697265320251947828000555321009776388583532533993717552261395391576226464145994191614560210591946504599298594972085112444355589086884465593446989587238316978296449275081314214240639860916607360446280545105057718213103103400224063306339114908756790448910423907367186871360873493398048074281400865615261816659418392212790130034684846082343576541041078821593390886872831480729692473174080205551634297902696983797299274217175693604078964789788780490590132401745558720221041237344736096028766748793947203423667729243843568425506099009776069468110972297357109093501827620002885062964419457234975370841279467650733487908359493227664762340336591259407346285794808649402554534140755081729131046116889648380712464746950507813686995720675334277609940997986131010339860295923338924093237305622679964932956235609521549599137881380238670934048213003200898191986042606464359359120651691218940446744099050032973077000209532626741898448241852739379762719817830714603703272777113549117485179680258388923672063110870107218516508295208504956807466151180241663337381537713186432999495497536131394371437313363270131941497108895060094763355523779686616751591553340836609516408812286061369192269970096368241659606260990085223856123394083809741998594821711170173546062786594614399110683954830305675657838652942626906817378341183570712835436995009300770846145145656343196623890329066107766619130781791076172136066182667565770938977092261125356565143115285598752195539218669338261949981255983601013795762524124264569400666794861758079914094923749045844658654259931707326990080958178284126694687542525020218165440667130741311841160101469594025569333287880459669079290840590122920811511580231524006404894878719458769914920476909594374594871337575222737382329254478305655506715162341215588577502364292544491297845488584175837162441111561975791637284829387707908477039032819209572531061930890003533729787109790835482510773568022448800974362245795011578067907427786607259983403381126698952607436583041672799045868469400372113739075570756231285392800899124592058387271887327715921372672492237692397185155738630604803603766457187758937010582055863600317111416138085193869588981887117366741800325749626916241024325502767759921261688247586863330568304112612870989765094973390969956108838571739523694738768395210027717717030058902855572230858648738003856455254854580499612106582625880077028527133994329468163943999123334686421479116368510129546604431513050974958204336542116513035101062963465665453654600044082572562357150841901287144213634112019461112407194664097115481950444213870169797889669422138873554432902559680729587530966178983800138244751924580562213707156879265449182354553970671474108621918124457739806745524570904085494268238224388450486927452612215196506716078698692845288315975973874584785639574549061212562940980621869847103641624202595310167516891542280579580718075229204160045828002074077970948371812987596041789060149737638383430953054569082105113455093610487491675619808475003580460204216031803482857104078228714338435798919147995393762779849456357225420060002995693354710422854683190784848590739837639320161824372169681604649877947768450916920890743073782700612569988947678464465891265823277333536331689508530071939093449629717202446034677517409484375583879430237834666963083513520600145182226179939834306531065758666590717478550649898391566619054053176066742152246156743122436461212919539434160277660660564796912354646478969389642992506240066970590881323789230100140640850917908063506025747182365022862313480457873927024496271546669859468560121174209290422590217186670125407349891827274564925868287244225398748794706556381394088020340771388556844027998110947895338033914420363353355335139262866516673527986663471875464955577410601173661400213097445081676278500192694035480760959873800807173500604706308662410398440310447596303262740527836773553423447792110177985063692043597169232669107688624540358246987972839615485123671270096862420436287344784133713875471246693861325383233411593282295539468613339822637633701817637272314694219192094277360093546284495258972490531093812288059052910960324877524723235100496760686666184141575364147978758156370255866845549738376334426104442183000410058179199437157484519739172336961776503122782285126745771794402495817946851209049440983945618916049239935666734619344223640670236102700127544269649794177656343521514798787844446143346534448129989369317189885721240061229565719656745433719780699936206742062374376792354815619418903397673929362508378563101272808180810918638604752503337416978793113690775223921683264368008192136890890950498704518225937218263417772333399706695222647158605922380896239974766763866306892904653575645971764101388204333696841410170179148355302749956533437659172135423739699817050946758035246842258848101656954664408993187035208840653282091614542831528617084615374328171929608295696427245154680648212866448395947294062621289098531760180812131487337124657581108340501880841460062409871615334410769047494514932891210123875642536909257297107862650731208989810400040851219167410220564124148943248926045591339504061160918119514050979285870512970083271614815711342581995651884526212925717944640386770361597315819088055757231082329273236376522323116655085325089008042651537742596742004003595194939230844371662118674761995845773483473257285505250954535746096997684410628170170158447706370216970889964394958421539186651512732899265639737753243502943344556684022644944075100334988036689397449153083327382948759872127595984784140055366261792207955478465012911938883522747051095526278963147385580405463406938736098953612951160292372005087457432159559915200646648114492936033525908486229219806103198908955336894031340777335942602132558264685491346558254117494652978240717805139955953862529926864190759575561197619766395410070823971993785694761110308877678592977294532768331413185486192034562914734714552058767495196839612496123997627668333819972554742721639760433808342217961694953968744504258248332428862495085932189586885284358187215942653562008594198037315512763324600540870195470335480711428331788538709981848800260080534236155370906022175073452619184412473585802112491461072550558442953043811682489094563522553416745606766131480112508878344773510367357000752324352032802714560762187972455609330996687820308837470789397378077782342556660884432959959281403907497430316168575239709474191352101342486653928286242961998808736166471988786391533700014270247214004344899687866590659691256790186869564775183669356885014053400450977111880669435746195123080687776647697034150289969833475179800640177772913420542687616446431666461068417459320464770968347348353437422172014317831641825222296980920496518196320186608084914051848858904603469807168038203761791993957676701995019111512304281685909202079905077508416888364718487768163206784673110393898485951712872440162642677192642164036064607869569032082893397628293963017145464874646803257734806278397430358529962543052582738410766351007001865788432762147984469296554828395100985510762173560965541245751738359472113902771289563007955672172850025827779923358941694323057971853607006095584803928559349847637072630658079811465211539696424339126671755422467489385038938416066967708703104591997164608034949027475656102908958357269628288170110243710258936558209686716169100867560271114175782112583388336228374874158603071932682843783189009410384255903677206819061896067053936489516716000499650839754919805670732334998708873022983617082730584231368299900752124621004717606266049847672056924035415676034599399020831914145565209575514303584082301212863214523741150272670059456428908264338769954839392471447512847716619382690775616055795230135339996745137702342285574588998303428907466951079396296505641144246839180282740391496827446465704956330718600370568808109353501861183958042147962940419952097032746130941614475750978805862855004801683072129218110388026126631417546197252108903517943456589507376557280194426469016765801315264421204548566798345374409747928413960054075642278680953959918184050561556084835051803226835489549011912085424889038806666215698657420551622568604726262352876535400231735399697790036694407174864868156519269403745463843568825425524663144436467723781086345083561829888875104729229733224727378694991658755749671693452546480816606339927366625663446862585154345441170261696164777464088373320940488402065526995761281298756597430523157375734327830226900374815804948082799174128368788632537631575600189810302868698695551756542241667971724594914392397091501930250993159153316072141231929698541381945898652874049431082535075356829765927330984100901246226403717051701009443696939366453078614543134174391660431735739470215356062861044522593410645781209242432649198698929636892855334369662166894489492262199510556341010610156840724328709336876945255179427216023009007138606177639491204426853564073915830135939835030940473703704381018790675585002681421139275954187223803014699342224984274139971402132809534865033151271197407417883082553192029419193070708963530355090875322659478587845677414300880193639742197214623102769673156440290454739284721793000601002000313579896069004934749942714037947384735635701349893211725483684459954743115234799965956918842909453773632981983604941491176516024189486852735575468233891794119126725143261067816811741513478875930608062806082075749727885861634990850610423617698483480657493883441644223011643806550012036217801429650923351486809638860379865369165399608195939334882429567186599696509592324552449092358599826327087246548586534206714012432407443382068182540286960210060677847120124594939855380578978219484182466935302422067192221376332023156869082511185185053218733337588561279051477952290783953760119695891259613440679848814817730146662801633761597264764905801596073903001438426398819748519355913654653463473548585700885452647866213835465283863868101397057297266009496890189020583224247691550064291276803058107302181610587966144721924193657147167232552334447469730311116734628441478475106547270814451219321410255449829582348029578561684745550596044696009396444889210773370677127179885085925816015829018868967579713854708233521477742269671348214009996923196980308561110735003588597589778066400332863743335943917942576696292449864150388020549106371542507136315612282873873261006527554628309104932480189519398699022578645927791932267828542086381201307460237053945743918954453092420119772730309116053955516229448376000446200956204621481438887290566191478963206331544555292597790789440119030602295720202766218778170963564159321420603347662829640554887304813820027143488466699878340046832641353917327534393576001944976246407470561668301616400627131126610088164394922438126206481742722242857142129124234777766388878009143212797644185719855673129769084422936180919826678530749749194244274349220376234245278671743865386085928532916731887120002334500010423885679089539918217709224073460385686674044879406488812749815764159931995267294456734167229929160621827657325025642507884356277386281741312078717740497167822600900705166468430369611035849713037943853279696499143211338487968545245787917272032816107888173763001769405134225575144993553992729254746972408197674983527485945691422304518621995969839348994945758277815203928324852294842252805472686158393182118616128062401816881644889181677501425575153110878485296394865018262469419222003403129999216424541627174993309953103096008470644202283175617482956320598551453316339623879308627577058380601473008306278516965531782770386625879968420112044116563156909084078043949046403394107896342676352728334829449660651347510517735107319560656101636910304040528518538601170392769620071995401658263514667049217043822599970394901140774790665861972603425544903481041066897371620363098875201876784800389403606262062067941673445295458160354538941552134209402614775226547899998387223878807996521517732304515307238291497750097722745458998643979716240593808785514149799163960334073813076933943748164952179218117724568359364174524386860488492383894254371920191947444623102202529867332167800711424092712421398882443743282232793754525439228182252271240365953907909354933741372048952780771418947386051226448282939923124027229288250845717126375508259199169520535775392671794008620789905908252068106056973229271430526066141337712929724035400539098451117560816606517844140948807788587650666135327864285284972596620454001901513370016118625052570922382285024352525652764817711373680663834034506348681150230965663145487039259863854193698319061379740899929567135978035961455362727677468449842831609914357913757145625574382078913338438347413002605510398280904159881480601594320101068557895621414196295206077505960593629553804439208237857071111048986489127805009445351555900434634667861140777495242095711606820060237255327889697283576932701247542484718348797091907528117985824533974812769723859737773487973377966951508335067475451843034459064735751040772083113545689279319381146504298217059976854360514176832759328962302336008130148045949714174731514318189532898665979634044965949791252115280668036624284389377004031260155669043928517556035281831694634494835468709711907854564082460095724113080506995767435667449173161166641579742282166591219001345635415574942598724584393394256807019200644587634129450397902337656308330661333421513922966460421712276867831921684711292110468342084750473001771559173661232530910211730479351100177665998323676197055721052636319385312537538956635130897903575487004376158353267191834462973977414217197642540274495695973340770069282440333044433866814607503533572128253082339577557311352826263169342234539513425953668675669769631841492386051631837321730730774432951133203964052135199801854085025024226542591369669746429970873239496531511748323014328397650970579591808936039357950701410413754674339820320212333964787436919362531491209381599424841746036227589634048764861812254320401452416260753518650623100428166349816122584483977147574327194960579715562579596143456712254698126846079544459160806588658750738674450560382049933042706135257371110167736814170795296483352864109747601475146556030425706812321017676903331619994350775388052772629731718766916247418264256304550033914436414321212898606071386782736852096266638232672241266229879330694961373050803330938621855355021245338378929084582231945555782990365229060062576423397109490046204470466971175301114684199088149809247986968215041634190099817066655880287042194522305151678293319162178835077253906507806739590211723722276339264042168100088945753482301632604724350639819362497751973188049297558580394317521165358335339071473592881095831293369386628064373573095251059998720418356835974660852843929393689342332868107897751971379738255050083531653873695150304501198285035819396350782249291151505014709290782774869338184357907388378850522004898797134841284918498616125112508086002833692319946171980491430140026191284142166657348436860475997414852392086362265791004052046169382614130866456568388505402359462585494167769553978701053733647250678235129655159647761785106437818738348157182359349121886483791680649399988247476727771096738306849275826159487090030426087549790143384043888601712255214643386684671637376260035849050171231081518050259514703041597106207653188935097410157871714293806501350726169710511408747560091147675391550051015771786607151754413651225139785892560564090741703728278830047842423526104403972048695133115100913928683373068715766087841441468419097989529869438760675709572271959572654067349759037264908114432621778005249539586106074869643666594543064781639225754337443780004291816110867448789191824506452485570065240339154701260102764271391672525622049628553078049979615194334604855734905595863941695990567755621784737638348889380477498281439960593168928396487314457415510296131300404509173421807018981531966097877929688560495566966626394459214652539636824512011093197089292333500246454476010976378600338537873471339567533991894761910849238275385291115528061439896859394221920510913406569165260830604163353718467362124783671177604279714226107264952739202542527782928601937200530406600268930112528735852840226284197213765849113974459570824919300460886832342221745969336791179276091572778646015446982642992521034310374891053876376880369850788695162216704021519045718999029683307654993273771092006867704053145336472909856419927363506022346415831320442210218663194802886534087370580108297597921776987823869742139575076424561308554216039301890259308798144415348521510413377732525381488888384263626449797661380429187669775959079799140223798417139700440349518792081607971544477469041164702542720177738803378064944109842242311852215865213767539161162551586976375859264890849971893499613015990541078503295836491020417570928038195906423902165265779882118813937968152246621772383340879137911402686272811026974562389114466630105667540239639780187215724361455617966493754273988897147915828386718874425969666770494783448971698762792429150381501751100711200874071229545965553463777792631262685425230676245055460940324290036908745785638599016885208842311953268192668535097318070501740575475070113678523863142218871727600129276262109109176423844694782192158933487554395883275071423872077135594526742418763025354396575193024021053981756998846678380938266212371168248641338138981255335704349328606771372356861788974700728064540758721566262383374760601106144794142190377507886681436462301229863970251848726258265189724468561224478338517069164233097120935964902754856949787250501773627738537693815393773300634612558102330625585966571389614208813771816376803645071450525407815008625155307520739712631484226181131971946216879915048710988113976162933360542166909026779573109871400028079862717450483004198785003015769064726519655670790749954147172296494294442492346737216788923423945646094050332195564658469800730824748909731275730607856512965442632296986370847868789440559674061491357132786295162341712846132813713740996139561055350058246567147000677610431333492093872101857093550978086535948596925293814082472901321855001688987809927357279970966093736410965555065353083800597548967633159790298152173292157190585485661552475581444925062795699589320947256778089064877914668481053291397418021561727097673816762314745114055163801774394947408631749759640595496584909817972210072550823406899902687235705325039121922771811854692342878232705505401430227556131781407349324479591802415825340619428167088803973631958057756938497403268603013342357637598956394200544076491467605631625360122539632579211833627080402299518163316110311866942745333999616781298060219294912984929603555669618112234187228403092701077693605012636822968969371359873363011055890954400672501989699379868641516864585122153078345208554101678064255172445100263748385274472833603436956783543144433740633582812235267407121474226972466730415362062543030100420700872829374421111264593568058003115905265403833026624476106172831426219706530451701342771809647307422900538784833183682618311736525093659511145881723588919040678477891927756164799345014652324616786608508602095994217634187935185642708228819209963607697091569740854375291944140139269331058541330665864916641215798772644087423278288858270557510217465535842860176312415681497111100751376552710252159004850141615789008831650138400061110065384646456649356824743232753719547895959610862111856694515792869676794815022679709809453419310070836455641904517532468110932214909497570044219126289358531657069173590250912057132742980029501123346252488771280675752032875814074659367946313542969780520135539250516858396030936581538959186838731325152023932297957773667549327414715508968044186178874470370428182142733998485141594497185542095788982520945472899831748795889008702562469894184016150130702552000170902460811969666313019608859497332838604320870233175502724345399018598885753618773948869923750414688325079156375242627927209600293081763149275149555252157771327869610070186539665336649248382350908269012160844195039977644946945764320977865209268759951439664601206187403053286398007249868496335784005627286573770413733621921869538426575272833976597285267282349143641502835868192090748167202873378002602101675824956457278672914016643805170352460820428768002080276929850120324147304820258233441972587950802997891733262500399135350715841372112163903623562476836350318327931470838580436762302319363233635913501049538332846309949252744274804535928102591257064808305755873406879432131780496771562772989195000574699059600552115283347340218676479137206529399688313196356561813932087772991916398887039875444373178601400976825709831793084157172737292846779591757898575546476197787614837457824928626860184010093032431361136810951767226589898404520920688244323660548622997552554129505032257025952405830812131207002370851134706474507562723293756226404006998090962385419945963320334429405027668716635765296638581245965482416890818960271196680479714598880443549417805270344524410900637333719313519303568362511700340769497433297490017865293141130778893031564946190753034643452357793223672424814556662999126220526292847581672851297622336548524077411303344732411968320216635115551185133956894005120156574458569824310812520901478020290440262375276326646750116372264396859530962524363699178999954514093626569681266358808352847068562909870900413664151462841517131480644796793400151012441364599316038329199058964025376788938045112582977745362419467381848819669364394775162042489456902741350352584371312495223910019709484743182301899493390192187970244885077497254462363493399316649660194586730163163040844515339666886557891470742163432144545860363466815934584255905134138448025692317097322563603845716567489088479395756814384108190322896917511291863158561372846106316511479700755978995513607194642585133996800169717999262465672193666631549694565615852798243986268954659817368566000088270927528083297672820612392870140866049849912318705397454877836223007576380085624351432494753941424528299234869746653227327137804224527246684634377648755453080204923211509106419458087545628587110257741611004403888755639830965585431052295921451676467118630810422892090426984254918954551920133862645232844033441920546035908542188820962726248716276300190081683878560690088320260802001278630096096190116666022116231643527983780701146574790362667702079364786682725576564919005849987734207417886861877260050799958690555311406341612686544393927831560072422028641572060720269164035707429099817080495578908973297035792256541980818603202008198703832468130142882832253533762184275511377885768995399250383204069230405591516694321634868448187709299426305340313283980950830579515729430204477693712722943801935091657207440689788826926185609618869002593309144701291529697632541823084400230165786266836103344611046190828283762857966293160219986657374923037459643228653662853815267109216209529259416403360274845817963397128426058910989368882660343931529658568019102993651104851680932410356600550301695764036921012869203824260020585593221283349284553017354533865836664878116269360190898764340448254360657999011580664232091730046747856580755265785773014523406287502377804991326805470274857094057063250345500992785780606827257315138573985094030631147797514088731760494450620486823780845226381289590995624312605536223844013638653872222703213579414049897192774660878502847056430816256766484016824342879190750034546738047768121127412874164273212444735067456396427628723003370341150420834661144304040777263609459917722729812725549557721802495918746020058726142493933425613607628385117493587155154823360255024881874491903637433594397139425892010637790766784708605570453865406002450787421029032525412372140444575683553837440072366212293382882539976728016495465530572274805151089453356085397518144273580901375793537215044909175007075941770430686554457220412403997172671554563684578902651326286083234439333498300128630699271638879778658417109939725632984132231703824345458237132090754867162033053461850768124772389130865155916573595895539672356822424515311382282711043392395430433731973738490570290021104260483593768194391852448346651464998874374664236455341704952844129524715762078998515268967038386271228403535152302732637655741775822338148829153534776668477469794499524381004398058568920120634286780477993339873344095431440248737842010346747534657039816720957121316709816137368192585980479369131275056694146365318935674481433645875716665447638406270058254679861877700486033280230089081460226382951969234317722405411480457851637320919676597371830694585477310662464499425260266524796699301874475984364577910800963031000354240392811465467600553312655108512544096940580944763377040841495300871007155651984138913643292905798071954083719476552948348416068243563660815460333859161104224588569097782015486414129265212081356316777193144797742817232236599352018216369418261377071865348123795770171075739070782542704334361850704675639577356589005806306969463335241031058481737863171780379378438823102286284662610548816975066881322503041202044053549374267864894868058650662022109366905033914233287821747643195478114784470284400130530141923401390891068179051287602176165685996905139964340888209391268365060734506852871837071243383860888974377959764747329451673473860577993507491254884623432908606138528143896326676217486609501384566747570725811490596156006777705840792803008320199254633898517095523879797873759423812633012744244271915943443600460524479436701349079118815830634228272270421467607463458628063960595776496068514582881952322110895504840029319165799299376945365206513867645101712432477313050419177853929040786940498746211764142392486421755617307390512068086346407309789309572576853693145028447813491140425810344069849896838365921674472526251032892006601737393140717257848345252728119622892316656116866688707542549633466494145613034578041022862318517839490249910892924252643108721151389499650685960797690370081980624105942361619350507721448095795411915011064648867040415828688315074253245768299027013634218279098699936708159180044169904105792908480287736645916241584646371316919018817893533886191788534830947023515435753374140973677358755033315902162478780467455274807159703046816330204798976768974815883841594636083760006211474167600052877131087724024791990028521903536761028950131593375592632813055180896078432009449555006012712644405342330982638639757713261789898402162967170886958434476683771434407850799250852596328093686010034522374146901146162641545233555875328305311301887584446828365922273058204317743888841875879489900873136488026716670869348694472560657516330501357986870991558084901682576639939470259477476982864299079842349726793905690152232585962775176504687008176817274747174042478251456507327226208711230826655652435475247017891036839459409227495493965970460537508357707598872654889645110164201035087929658285281238012964177855070290684497322890202297121281475585082822275896163990909451181061430380965894559423430394249427929493466194792254828355542047611579116813951980388066595374933556762917202407182074439084446021875904230854058629409994160565605974478420701049180976668270418805966155638489518894179803490798933855799405509080415450630865296866316373697199709223534942701748963959210646273628451349888842467830719588741539449504505345620922202160453961852907667823229036212548958063446650355457339847999202793082895036568980642049633869614923406921873992703778029755318612260222573501028381702992217723129619591950884265004632982241994455434888575293404958692962635224322917912339828962079222137165005497943254948404056165777033409656909014912787857036373411522972844775567204764941591257968454697865780873956795642707687920090546122704000098913759000080137590377171954575508965884499412995141214064976003342063331183846503897360773184741825732302057235681835114496258294114953145080918796006485291204670630567522099835202700393799414310353036368732282987936054301251772650897627505508445054593671318742131234176248504346129776903267024739843207201959284811233510956881056174085262322039789246380635504089484205627898161239810442181137994263638213872411854765228339226251827702940055267446033311992594942651974119977000256718541850727215992926926660848138546542863725582570193390463389058458957875248254098429286647070812888555187690243636274516719572280174745273560849612468641935893329255429915552627793496539727013026865885699180173989624715776565948308408138971632677742689677664842667885228401236751531974346852984509991066813527799582035404932384645745043608398734798634048396993268078078539655229593735123237531115254598109865018432583803276446479368240228978767084323561960093243340927252374906304872331518389288217111324243064293601880869573283547482409463007150707556814842245727187639847747998748187039576763511144650119358740361756079367738228311465678012941179766138073056239490974688011988061389770645186482146476460792578049029516036858362283325262334944615227256928608107377636715879510077415501116161284978785347585672925461192032185423002782836014987107300330631391711672986546097439061721265693015256221984339125527918062176580925883992323022381061157998460788619533584723320720902996525119223975640586207136042162979477794355779850082577966688884333819425039729702733512886444921511042202749817256972189000819223696646104663487619196267286257719098782411070981865040432968428298242461175047639331008127784839040908386546522603102563937441576276537789660708271886605763061426000995586768236954885487722135585997286273944200508474506400914245114912723868081429034357418330480424848554166270429690858947556781177925828453631903517196251479071315517435863287518471715377697790082131108094881185132501725711612364058185461467025797794934144481589232326197394130784140033200063995348952544629890921019864741851283140114314819601324835220895047112515411548575261125005706749247023859096081844689880549158789861730471756800411376006385894625683550329621400576709333924101210286751378851884339651073501052714735930576023674229392100186255885651482452011504503783866862254157557272949787515799414450769056663914223699642034538834047964895370842573556743095478178699153919855591427487817932397569991201820563680800015309343208709523184524541505495043636098248306844115195892913935691791141605530252383154607879143037327738667530774680183931505110934502153634956586108275963243176710166764097933489999887943568930366518130542236424576216260767657293287841314809528346889357158457927911634771526493457720889508000128948985473798723443344679032053516849814580511814511009510695686885563116008879334505870234446786185322319120231479560355503742684488074954775864655781302100733779944136758856479163294257114614815053282141199640870582050741270715396899934712218670623356307755227841088254186178008237408929179466428180886356363524986547074753150139739597756319960231865154209555884029695768594549466759121198853074631936697698658932056352529709719166461246563356818840074210431559909028831449437331570513143631346554372216594908747000300354789313005572969019564247333321455372548439358472954240540274489424500431547782551027140202818277381475577520951618822308831575833269265740714427951184799866178335418282776071402835541673670874076731469822731057138067933240201141597011260422260626122960720817572374347801808841527212963732696857125227391234203656902163224035136334082941861874441248025249930749493066034507011694432838155268086801597353140534305301539805006189638914212564293064322044138725065027233675693979291909933676995081385556010565579246321249220293553895429533509679399057991035264074560127965224925573352280036030734665971062472994012558054581870960194520891737943501047029320222747074544042546403173977903017709168215266905034730563447861965045528449992086052636418858039291902546978376135993727871302238081185549466958001438756766619509708087738333947296520909423861308640765693289756698020094993049950056476184082017832694776294879859127865456734424505960345369531251187727559441557965243897145622972451657281937067071301567488358642105502268650427601790120997608118084890643164359943327244915743242292747833941424179617601116102044521447080405452702241927539204739935103905992447998764580106311847496729916638430513492711030827236901517691796876364134190093331754515249872220522577248379332603423789276640596637699712518670795733730733584461920403960422948609930307556859344380927479126948881046950397261004807216401057154851589064578050782468531604143074992402388905245782897101670372210321320442771950161183692888899269942920411184483721819226568374065111855051920641998434393912310853300717446166818872591286535519733248576120701441323116432561132705760131639162119616426889895678342394797723822173991349219232124220807775264741778433603852224145574490312374235214166531165594984967460481971003880798736374103978779288780279138261855117518574072421217823508314608472961415670387225032423972856157678275153623512822787814659763880107518285364316417661514756569377814967262814267913888262259404727242892123244581572284137367944297265809150209496013146843424225825683668434955747814196578724599956914174364378254867688678625979062503632484961406632073062208444966972294553322142300440524315249180407876888455800625178933267719700942296190457849885913097849177282068005119187490474198900214838232711904538993044315612511498892425120322060372217045153509755935173535997548875423657196022698602489854229547574782421445267849414845167556479203364279867199531580635680000499420054775312962779878158955736493343837371708321284621139074994795592043881582446479337822694714133286795878308292373760639152897626763305694233042284585756288325296483670403715209195466639523627538245872237301941412057702424595646466585774648776966989688493046478955506808139072441583427359772256755626430383133208340577465176497368767906539617124941972413366009006799998580144489598312318652089499556049188435652787004646102361967991446310542038008679416953566044522035790027539271472582025624608705704374660675273902061604826164012865083016919210354723538972874545999675597335465547938462537630386303117211898901945781304446148173708892069393178460376002024439919413311550442099364947984536572332538400578955148290548670767108840474087920097771194511083843868003685166417844172079239523870162010488167363151099755385504263098509645335614420712257318249518789935353099295614088809446248919786526528403513104998115533580014813354529408720945118547903803548306402444917290888703144367702289157660221861609425340860928765019151688176191213376336217675212936902483123370938642245477673938347270277884708958540692018814888790503693620264499029515699579172591778143587040451759579011867525484232822809287016454426393475578936387303007976336576056581006666161074375017120142149514935494728758189044258907447794616144084098549355422902546395450802799337367907992760166355135523640100168835484126125198938776470533802510421995977527191556806979809868185418143292104232253460681573319373646584038785766494692268676631583929118292427851133081690232307891108228939835976947156757070368266796860808449994322817406656311056733221594590144175386874568362861659403605689136771250782121072453686884103821886114088929294130195822062598861236549376740177987042443077252721303006596914888795153295934771177604795941766493011101133268305776512457723166303996945652667026750587700416921722137160505203461219894399748274447980387238706924476936749624032482138122641258030318110333261392936214796954045472637539923603635574602984421544222901725667890297653568842516660520824620609102438624931581017712623600026257332532345064177288286390105543288111137354625971524868988934047184776551714577852592578884775074342874929168152402803090547090267552537963281669497987699966327921557095381580664219249820690465445481352861050108086908934435395877027215801160261231153782068650105956312860404204122298864980715493982279646606924183974378851927447357042376850755496633373456215161779132820350483424277930160705253688235560380610903069945814625408411517155852496591543685090532304201362197835846879513533864286795306379443949426991932397323453226811573023886739906586871222166633820113470161370545803178850610517567290016438724236028631412341986661169617521045397549952961691084171358664749940968194788952699911049370978998895448781198518070762937357579823393492704660782186660290512864171807561850323168060136960740620626041883667796080586276508882288273816193658805899463598156816882238875950509665958715241850372731630899323100412968104375797363280928891445138667841484613586584466548050922339961289722056752094440296118866881106688101367890192592167223892558179436613108308144978244768844410666939749512575593065254636138388565557202933139165870148019277477724812450343922763185613262026748442057814249011043802404572572659354082503370524299266064348420915206087086397897045944236500542831633369478187223747783466960743930631770220786211889325541861896812908814849785773012029941286911805725329019491591003547159859346961965886417072207524136495579238734847505280182378328302385973436618820754406272882262194828014323792579999898661443558677293870563561223883271760388235701380185186054659175596622470101370693371457991870359502547394704993265872947934429908148863575628313295843613789365136690383174424261965898773043437658850171398730868055741369409048292930615034685527763462027570992424649829290819758207346501563562363573205239424452841156627030160492358981071590682517804903364436388333226778695848289849948283857071984714535219134292352064706831321174676355521156159701764858609668463317018467066681890510145206469873745022263546693159076919868921080141052324940677647287434101511729042456823652501189292698782945419447599845208617048410569361002807223838921952616110668606862265876306795710093989853222062334862281042047960865299004184485939577839518006645401276379001925783285435684242719087720984079295299855791341373607243728371227769963564242373116216096617271526148835702545465732274832148630633403336196564357480695969208430772774297477042350163726855145012263399899794303109538890348182072339686099136232102692088181968415231891140665736631365823410510508549345080122398594888761082638648695924732370791179268099314940921613228161081468019430928529075546018991046416286582253427968097402345727365496880923051956799927097563642750325963723306671598165059265776802424756201910433275761239728882394566963677173743474272094136366076673956433299554709544369923364348272334322852237362487714982103342961590321052004926946511252704212170855471069902132610566480237065796817895978505487451486800131273161961445275097201373322897383316711408453005993811482666401524808919634161685625281640383997584397263975951496089819364704355797133390490310547158269154481893239517132513392448133150893695645609941210538289801225287502211096431770936214260981040977876291404474806842432313015008563990438702811729064405735135736572473527996755439629613640102274944794153130631488450931412488092856281821249332953469401653600738853958332697113712012742569157288001111160482088966164179766319046625206726539935792561021201801387967769963871689833466523565811849606949692964548665381576087899916238115043448615549712985503024276522649987544533485555658202412395999312496909106238455457962218888443010670247498997360400054028101638690895621187802064893053791552921142523290355589602734590383868014551578796092796335990997347547447075721323879124891029777462931836700936171795400036715726687480012148736344359915780709751360045925365912752045216512029829431389082986374058903307128457831215316358344955924018285118873113884231119318480655308632607173984294951712642828398455875793222599187985792285925464180828549039859801944143227362892489421938024982757049426378297554761069991077147705114517628791718718743065463734467333006691307310364150193075820650541748586424326868446376672501910008319052185037149893264863826014548659710560518284037938324413964254299591913108979468080015760282365265531517403116424149433964345729278024307002860560890288813885012304881161080071285757069540127262182590533171506238357798255071400174218447504382058192004060725328430579639755218601260802037376583543527750268399126475671483231813545998517590916858537039379317644091768138894587268882667801718666235812823121918612032815176118257574743800311334195810531235115095575151354786929286639977379498669342954946820412580641252461161572635507500336759242502533321091504651014179028003710251412928079349391164576661336621991436738234264122714558901916496410997391342078119342962280546007780902815891591547279526649530673251454055978986037166005031140875055848030625396562560595451866434289150172046845382980793645556960602798432606590817207112612987279826691451244469709962587751655373999200649545791915833432489820361270171664007370372790083645380371844269327827753192662576018967082866686426350321335940445395448762413349810329274956705121312355692127042155615505610356796494917810602385468765448015557633387695751125896688644614608011275991203503022487856798771336803673442334554080633438168237742294291212581920808264782558354361050482519033171942109293672304527546516492158671137095935784719015222843851516816694449208353804329683757967398645872986320222591470703120603465847651861785729079240991248497351648246233960317313210535694001405837053610300748186019826557982901862625804056499454166679083987110865463149751205881077934709325194642249262995509520523432053987093606469882261178406473256661521508126385027132571777835008469132236944918774224784522274984406861476126360929752720512707195384772609874872570326222241054751313263705273635149946077028752319759049244101036763551342965433914769234890034859409599502747599348223348907308572288672524757104934506413059051448658237230219662708150229300973778112975609634778126334920339086092164135833610491397482242254909589136984460316599343495104394541460517489686421684533075516209140265477734731385269819984761126620836859335387711370536195490023632283837970018923492644541305479290029318928192111399864378220128260354773273765155924505119900788000723346185272457827104988206449091383535045721999002769380205715800203412978087066412189824246492761526460838497610086244328070031080773055859718733980711955289730375105557691497736351365266873737482713758016084460376746052274268468457007952985440242516093718372822562286901142163882112329972118073504943632061804377098255748252771496621284472076142488909923154158744319065113459259691019915260919368717229350364371900853833348142010378389230418970581268442790930873960687813878530257664290978862236257365363171644163370367674300095861085509956545219066695666670613924973377925571460576111029080755451517189047620890811334667039289918863133460007771943929011430506986994382349462964474929043721791729247353131934141748274234408993301179344623586878972949779805626905019959360681399208712732699680842080157828122617243722954232290488782438272032388482195583573216456972187355052354032579645502330610146797125763682371868209158225858363162558491571758216727272399705313226383900758672445666091411037676064452441752715722481790726516286871291927115196564262185979043413699928559339618844240820752199772222957135940399800993180246576770401735769245239081987307377821578616518610113617039528124546507675457553015859717335375644247999142321569729514080153023760649413002484959648509881098501550472701302840080753973693160089249030489807720398146812545938321065477529110925583333697018633034929163063481539874170214794645028471698926474063513912689400765489054337460280731901396594654769671728130836880658558433674862834131378140567416857653607540754386028179631994987969589776073069992343449141551837859063339435321876866208191659052317062576921196819088779266109212626643940294516977283780198350446175375234281012589950006373275536200717490588616976676361043490035359201318642124600468748404457254158862724460173433657912064505991030599545413375166890054710601550560211370294389831417792089806396441098407862319037364920194551893959242871993956153698582646734038536701358662381744563177776003291130574789451253115789880421397121513038001288536886489599281227505498488403338684906744821459913258092115135790857803042249713636263061179053890092453914315718384307181616124321990667649783572190701418921119880064801610742873929358184716607822175281668845304124061359285607505824218002531739371104844028197671531358063538114246244887900199309435025371821301970337876895740751780433485066092196068197772411217990935351618982872966464419479938519260215315328460888814729069645035040881650496917773540418955514568105123056029791588366325860225134729010214703494807340928019953781578414430075058035520637073850627624701774543282846836332729218631565273858601182861298768630190423149294133174290413957628090574314087365045285559583519379163301892674408472239941526500634533222486002083648000446136654141026431815293995837037199569539205081873551342263109522189789135880776143236295281757780387475573094547727684656616630534394996963403844491087897910838264838708240851168851637265905793538282413488245457244802313393562532609190495395674604193231963490117530435350880373599717983663165917829859088043217576382814195904210290414042261172344731592904477967365246144656831251657232813633923601801049464340819695216489409935529372852494484595032428455608727387538720304913763062842743752290766576493470212096189530625619403476133387934977453153005833122596600218662968973082326747624945170059415135836837141873696076548333894575281291883263769935855309693166728502676164805410894187495911202333386300456451548022882751250995879505853156342373484326898821153413589502405151134566206181711574245801595357423726552662908996188815909723309895391186130274565832602345002927695449004658100295653215072684364105336577101711523273106539868387403249134496363994846413826516825895054789284185402590748009496614249081524369446763959427372169002856500205659672004818361004711882929686504830121545880766577677941595669132117606091667548364646837737229232439498248264646198547685670266985634916790753959943168957670308960821595258628400518657384789802717190526967531413594557352026543594499879218929235333154314488683790228324838869268794722977993116823433011873991467182730474478417761251999218700130381947697988002809461841988300384878974789238823586329155974138829261729045761778664747506279816177299558228697150970011277950163455756922824522041823583825747370053044217191483446011232917414555177586273349569065191203221330982541814086017680436320907584376833202731060153389347493305021018352203114590401951858097808268603454210601032532307961248857331173367961620845650759317500567996025236286153502990517544480830686983327780380537291658870331301164528665233354599473744492945752936505271088695003208256839768327564649158591609677035772855701906397958666281035254204143989535590643904118703962061272470275216621134652317337492641328338300580404181288327037175462053203995971692473460347367865805425251552306248536086162013410459742740413329373261954861185675668884192045678171067728655942244603366857665698588309977841283245937173823297606414196816526961814468900115535558398068228888621076893937507881665746738094490159053548552356433577274536367013212328025823327982096106206773931497607707813887759145197893028720885358779848122410826025887181201659598006653919503424130992684977630417999481567432924007315856327852965733132352643760494950492711172828102552746922396700198574146272106683384503468466973034411576729767009266818552043021166275502698946589965591137624444204441728176517978544412032536072751786043547598347004257742205530825181721058993192336726598626717446814397882895850182641133009212162288207009892604266055693769773558586243099926023816921437322609337362068576319670074293961776475691156610296536749063912851068353823736774438732738850796280210409163196603865881113716946926452292593601005634200669290436004444815421788747450755629502417570396221234303484511012432827200811798427535152017024532523277538605536834256969393201340504221021673289461659973302114390173146435390608100529650729081824717142249832567875808671219378869549493565597929426892818756422621612575755315451717270349577643516016791975423607128601894673494234691200162099359753896130189882161122905387474215658217010279827629092761732622878934715106130453174847557470387198383655097275159487854005270863489877064660460967449457884631922651663635964450074414870803666019651386518368604419117854899642809406786754799048489947546519828364446869330052603929118400614930769515969814536325961295941807749253596561607842468831917913675272196800706825398643188478634974821595021658389100680145737063941274759130122491351334095010200361765711610112146304856364966654281508524149352371910354975632605923144323472956700335938114796705400260268250917504785229094525236800204505780734148829743768361641395657814695078616195987870751583526383513480668014066616947862070988676994823775747964451778660087469508969026769975180015125705417641562830422821497769307361593598702954507156178508036421126886153466153480436930722210295929895254660207368082705342343540108475528262987727522209084869619717854732995859895383808220372286516063045071848892942571197328003134510933402013533795154142302029854843186933330629382139400484009990423829487432109316351656115286629379842114032139990021966705652826201481799732771087871713730668640910429475220683561945473477847205952984423537665564266872958109685694610567118965845904845971569271804726230545656875844419845101625823961803038691408603967814326656016956869172314477190058409892514589764155072380077828531634040354998708518647843799936608168438552874898490155271230444400306535184228214580241047646414479157757069496764495397176792274796887045997867683146012421415187153511118293583465351831802258136171654985298934617889968194692789754841166275607904673915730069310496597233013632930681651273175499216431973289460317325268693524408214126156856084847988640194271854902341574151542753954861455871579699488653708353045416253845560608044710752559497942047387179040933082221591864845452847744146344839970677920695405666871468487882737010665430361314937013900021140499274302217349125675479847151396615034658553411382672953503049475241063417531339663513584730798327554558972639694941149419484630589628920965500234065803611379891566361571678236688024392387414092644809687705124621224350200308911349373900988067604679501824643201131898455157734765027720089676665831299109548000580056015231409538160155443824411070831661702730600412979033418592266280822000076093567721231133131140135120161165441834736077419914568084376855951557182559110417066567038788780090129715103991454408783303888782762689417514407367026642027408815987837289209730235344512107016550350250216392897415935465052321318753287106246201240624000785650833549278533952479486848772361203359566030111004136488038445752429253609043389439265251899541061494092203451354372795484623430995482131894550987864730532657399512240240000335367040838814060723505702197596124156317707389370121327033135054386837034089153081803009148054117489779443958053770635146694535092460016389110035719358553220936219342161825078758736652153813266300137560384630155565829513562474468029725294057320750739367817989588221856926473420600315122228978780079291734956112625030518583425732312375982300076499318601246510949438492833241370637887085176257110631195146159391084217934496539336942597538425008155716932756378994295007863170629084742350522183765207394850237475879188426216455185589061196300651475358255251386573378307634376906611211827126663460359566892815006134971255671620132016324536495423352382205896942796884038613788741402366729999647621706195813151220869012727406517676240755402608828319405665952477240620375512467606002023782091606101685629390453229696707438548819192466297710126144617839162084029078505094009943414481861644449254676395614861025185195821962701243556518911595637274187061291809101361352036964625018772164870132868699482756493200618904629897648635849138273063155537764400919362060086598561792313306989690335015591725134294916676924215544474744847482264273975952424071992653770925470304334176433215363356304789525392452674588049198095147327216758603358476745041080034933330742311239153139795919642014043072826217419356042795290371465163148675889601583919621567851409815308576381227203426586874167020786959458137952856680286665262080640445337536677666647906409007634337322413660542317974465336564949520253103573788468070594428186548941848823086297637404941590805212089142881710280077957486496051491753044856997847131511431164833608658166297404375436052066532833791591256514310896047213073148855948972532478028292913523576727280825959565013140493795827566667146468596272672605746075347184103104122866465634902618540855754911704091983212581459242666256673443842796303775279814680268737738548824899410906157374482237933962513006259048865060295089106412980605028067595537980981635367314723430200103275282918521373697860466364997257717282255576931224360282732869145133334193776922925044362432807591184674830936053516516405682867133940940500063201319014451029731141467806395828476420630236594393548668060110899917336394635495437723855136675919470129909301599080809307587883505924269590551335757917352196568543891421799214030949932302174343045553922165807745592864947016460369680053746999807156081368836921206780243176782180522135038331985991286095441149940890348454268074575655309882513561940237980108068677995960286382979099406535596160554256473476868452632369415554476083351743586399960675726932869034338661574417675065831926993840681924167827970526132779519087021739157446363922833787196848627759849303409571328697709490568631684256207811618027765440537754346575580173924620960433678183140230180632496143891637759616556618185300061744695551304891673218168283923594158925350732377613863941706528272926488794868934986407866324322683225775314682656156186786579545531066049797213799503126378928290029355001230422511421473296230593280297276891534850011552355414767084152251618965700601855482325346376689734457496887645595800629766744073354675581178990004492945545870701433459979428197875719169750351214349242075647745072932113306075957583835187507789218106594288958766748334286468047233092557462802271062811409570972038907650700260626637288777241056854352737559906152294277068738333206906313378506049406657030890794131209594367558451128085145475774455970287912671906024583082616004392181640839884220540470403663435835715681076178901198221891389749679813383385019784391919573265272748687211197187560006563306724734220369054188984855643937165886675551250208795301707055119370067455418395769691832639835773427727313485489484033174367909683300295522068496175893480292368583598981106394337613778041813693311925540155456677372476539920763761384507692176753941503463293839148944949964610842471495967562399188863148648189852918784836278245075304184376725508629530966530020913282374045200938612082291210977068448096666967206412877565671528476488689733648249544942132667822366909234694839311189270569315444217323058390557495132644153286810042159670509212569726844749181149381430451063042380321106605516688762030509014375042227585551365521112309179668010897047981303718078725087605664683983282309337369030418462974819423062958770791731161235202724041120200297185802558703369380101313964073186420500665952622771165026991755165387218415957264952708866655280626469650248030385777299854472704004975859618482043184930217616817992898265163419938121968611987606636556331156180849923761342742080535366171108437815712852007237642107921199248012397364435012769154790554478091753376992368622348125337742930795470552837012502450065308548785687033751749825608811013942540568271170768849416331058200944289445609806803373178297231901753704347432209994868857817651825057192268148179229721294145454314956793832900194715934091458907770553833766346208504734350287938170825613040087813377648583020342773025938388206345882499362290136932070642951437519828479451761449266213354404404593470752955220377109817415476557551559564265345489216392323380926434589260982900487313724644621214452279728607108852430571867523654002345091370356209060402579631694082635794701342801392560721529246546703857878632952158576324611094828283481323865738413849142391618632660533335313398602103108219915792600081016798712444473185934846054221099210467223798698286143749826127320958286060691964091260302284288670920249829717025478528496729010844987314056886414899096865245294277451054746605744697819927874035168808272825213611588983438768406663236904349033604743785564810049090571402593521498692435302500025373795386757130698460485603608581782123157686154919254687438314689094323225878123853864875482683182033929816982789391721625951527829663890155210645621688020857145616173392380010342376361532261401105074292499018683478378223190113795013219546055004439655104016454408962065861662302648847865778651363298823603327436377810221964610493441353957144202802860321423170859064794668823010627002010102378411956077787697838662450103642472651129942375441449742923404670174287825952091499367544560365926572083857263551539342116729457019710470787994968295246648099591064665330010185449780843551106437405206692482090329395175424273164293940806738272098398444009630517111057721147754002449927483404086623990072800256024623758163579558332123430893866097389538754285497975076513099068800642678270260803676546548036289661574576145109570981676574142901329315294954486785347391989199536123942214767079605237152148158538086395572902874544017302549451740792318855541439461352347034207113796130717983994678721360710429920065620036583522799292313940010011061160082826186447776680484459923365759237698302204213520739425772313047133127387478159908673485213723628816084212441103826086059107651558281053881439951034498585607699655148935187838777085253405821088894431263263398197866491794091879652560095382989531226538933454161428000602383877836189885460577325943855495576725371492062069321655688090592857188015383284798777641356426064214689193584381993107289294423281474446894923857158576936848103149579761199664647294479410822848766183570754180182209735381788443716651517442913191515646026044723583340527832827687601934113185857350962124331776600016728241995726573586454657721939930406373355391779908945767969626974350806462563448516062588336520426023620685959961587366230350013603702390526416533924487053317380199623253566364793131652635866906835943532136559898594356460552532096027494407804457155409746702809380124015749152253890995596199075742747870922884263928547917205964804242647005446760558130245606709927351731454542835118495763378405244646440895862288501260026085187425432120627539184154223318015177376819527969082598700749865632937332729891082864021546048312310574374701726941830600747031606035998742389752580963423229906094099671896708379125507109611415022784207070834691517940499310282440253596691657039330161803057762042045679375205214875685841863410341115032875568128426025878171582036538631503682396612877246779673074041617799105010357398514555306933719037385368325699693843675732374796782998493116701574452381439750180017798191137969959209655202251494946050354003614853204068735592765712618645490013117219696697462708665044045795045753992409092523196557397117953658560981622798848782449507755460402486087460125505779729195570574106340773691019084571487325377987793642579070010153802207060805650863986617697424229272821077778832929331465631304021756712900090590798769147065942609410001374934888547787540937124168510336794750559006856246059768716710959650739900761847110866872473741635476540776971112567197704054936516460384318571627277622422636820958143135293931490976987185510946819731419670275926745969072946099046432119645287411068562228830674801653540107071678425664106575258360514153181652385994791203214377590321601569840817862817484517107264751286238847374242404034737487755947369661391808433846727859792046936420556187541111901620528717681722996928441540234662356471378395453087592458397296594799836965002153776772750464386720239870241797017362842752739844158183445450539386025062135285885274421398651315884281621030811723956147594119009066541386261547465798191750582543667784060516064711282278307914385034573157233357440870391255971778974416327290716043684680417635627244434414839923707954264929152888725327164563966768929173028856385782355414513847937903607253371733954221194567101098292094963879363192407694035586109357405154359694435686219374205890484148292768326618960803608528291561389802984692022570690740329420154451103949181515590118364183840074485971952818642633376073081116026529125326541635647498634270995117194069908171298124245842251509649993360305385745071893978906690570178186516428710019466445556060887342148327818359067773203961778301213318486200010468732697977150933426661351989225078676489747401137762431761311772490879589232974258335127095973670085926747787073760379911596990679522832406987961034247568431766035544686777355850721030065072876562342329821129599240836220890190309746218303194173966303573610946376499008248389716110758664961862185903385791358700423424673049549963040843189044794558964959877109398578821763612723672548678165377906116755612210692828371971746467659683583054885111060623013241244000736952698100490607454835918174904203124388538105959014045034943762511202734182508338143319376725898857632827834483498616301792540416437081298717740291468433438395938921302516216812927828619251070171057301575361858008624305380141756344726507512255962962472077340182242304143919579111933475888699009557614757232085230643031714260380401290996041118551174883008512777948236712773846131911306970981760601335543938134400213745859141102559195739383170886459153308022188094227218388386602088941331601333044609881091516860612314399348789035211982495637151122534916472845401833888942280036365783389957071909320097631968720732237883383208403089610823928012508147078866506384543997035406795038307957069239548087842765257950308350312696676177869595317669744057849262558312563223756423153695895438700884569228209789989722040732909023862212199247494653533835418119894968505262949980518500761418425921538515854202967724402499824034729008355404249206216459249396539418083687119672950170292593390592453920560711123772273729301700592103839622006136926138667173361689417953077597940570015958880521606144049141253580040412988932724134143615982645080631282820402592372258907417551869794111804358215343911911801736651509410103835963069258341951249928811160615509374613159802047873988005043746407986991773134688360006660397834238055043013480819499336061583876503530437589771491642416726550125413023988455769537386290322806512159945931978310925692569413892106260356095905464774223009349834599549005188134604803997255083335630791113197181010424161336581860196306696120626595666364143134746966115020028525400015704788215704396291640919098644465529065305900572712103336505768347706826165974176721903162241526212316596794501978220603550938372139199444620475724451693489628236184034170349150501763695171880117795216100566951823963405867014431874984595703537554997128308931509258248156041325117343521714486870114300344809674184035352733946834607079886529046464208652056891590229673502966565617389011853091679018024286307073103223490532564237592966090557552812109595811826962127808007339160611099547797918779554759169633858984905835207200875318043541269274876279285140067443020904941139349956042966488848135049199247116947654396812668595164676046408705022358906814416775825806528588349585422235572468012361269697105321317862563358997526941748327946307047377847249885057259822110718614114568363803705931342193364654592416944804941287634846779182870629150949698403791067212438601816289949516743556590931211910872930302342065127897209134195982461354108989983244855950407224694933235002362219620026219129611717565404690322320694854653551708772918077948708789439589724690089194217841360322551391072590158760247113344249153559661671246483081960302786236793087608545753214174279720279669687532919770504879684310436528821104513168703884533964324131673347228654064234291141797491336062185884839401590483660174441004580257950869991633410323096002199566655806820579131138703905869011419361024110544363036551661244402840698352843992182471011795870788873063484081773243800690077291887199186570001430664755686152489306770122491881165934208621204272007757383828390633560663891142324059260518303430102976903446308969203456432055515008034744545240734058989145591012634160919563067295265349928114743833289738675423243200481320904390040266173132962848685286764753741188650664818626796885267093019741881755792567003441923270864631946436263170174460045914329558909090590831159876608889629276598753827246751606667270942899079214861494172493125627594869267774196072380553841626051857859070269584215378935307515793961007885109308168101700432433850163047024802007068388079196903984993038009776572772187557274199349550539795835842800774505549193317955652360829612413641287461038713441009616658242799558132264391705268206624138936353331816601160573042729062933364722058281441626166074895929214577967491663046561128947175066615381053462542309830090869048235211973836294383393491831027277029853535607389380100143453142799539073558468499966456566519017929672053387025532082778424742838527158156360415696444415439368288176045327695509005547368276138775782397814270871160427699022376200390160597527123539000053750721494892833258411180733111658545358122161408406464434880297639733963457811629523269185188409630580763522097069196587693299270371757304953798807799683455597033087390756130954885707886611789293460739309766563945978478056126289806893956934377176603743854394375807917190183771368046019071018243109688759428755816709696380154880441930703030993177643995381882351468863805571114565376681054200788093291261460478644675673018750720180705339362452839359532771485297656607464608143568007216959118710239719515832161658757587145445632653373201799615437409114887027193259906258808489251614677561649966545202220023037898940164558754765211415057360226359633770073936520502746074497373487855121127473167177852842241188817563929825587698305055568675064463135461969458231323942128046699746983698515843502456854620571319793512792695495769708404434866007929325279896019318485945749385280745700491304181641344487248219296949077277698054524174558455360641780772808207659548659208578755961448225630270856353258980806316146935468618802155267016187666222761067259513818654348210209658678619031968570202496291052867084460868694818226635741393880041809522748169284311112207316296444274484496881545686134535331495161633062127592439883201023232558802259086638895006494535522127670480135974324107630403712250319071882499919401730490191814181928597087631411246033309565646085864563395982108867379315877955877253618469910346160520120059211440766759692165604302422650629008438149759446720697883069394273185657693202005342492277444829950841544759056593225439924673545119274495345937745500624664218138974041892907900396531249528811505125414495885792616789235011870869125474629792221880039963626000550813540748574281504404797454087081422902654147653710222188362512187854708340382227515764749462801539872857321950952333730376614225726790873685696681498132438493340350478363470918147736857553623184582661444834229511307825089483954533658004159123134667707436612177509362228422124674012223544564252756160295248023461127929671370056674243229007290564980722032307017904439293590117645146737367876799861661364447718181286909185904690346425994626203144113292482661851985286994332967553068926885818996354978021378391167017872253342260750720788754079508504436073949429225490350816827805958153582434252366519401337832765315090781607928111178889981655982456057877888250113945304589219869801529633771030214598138703396566346955603102525083495080900140299940400516847000831174833557579023694990289994115537517110859242458764268275777433784312088869199955040955765948600678875901081020418838766732943937876930596739745393331867434194189767470206755079696309469159331281749679884695042479027312407523773538934965405508819498801102004669269238926767928430040300598091365503298676511219169960333759359150747572566341886322980342415646123429335129133933191697562159232405670063998928649016097881888709056097653654095841682034698507662518844961477368564887698807049671527735525053450756450735577788739107469354101069988719031532493012102086084929574635585763666601186141500463150955978460357151581591768319591141502074022682721182345292055396731175004855612547631831383763679292073157869102822189183645475194970540207666520978702412043997461791305772545148523542922161796949669057146154498531531419486567935390638014956594135419423393585210564426646007926410851767498626426936421668166993997270627633446405993406847544002033597380401808604090021151502285480280008153571332738290329662763616626398363194277584972851688774945616977569175335893080644724195274582721141964256570792352768336807758982776355335323385201798600672833884873100909853489214886317050096740803596354919977352630759469386534084637272241200554746218590258678443134524125150424159142018722594308168381506441905075561855892157395843504910765386859131576359627688167609049823523649390559599648174290537885883606650627424100339429668374883907434185220210629492096130976281060924859605727688208783452760370000061964418965624227407045089890467189867297556550334859170392759997602221240207052825112402888707574284514817346089881634937853063854016395124630842757520188475933519787818147099201694626002178958186813840237940775189836808557859448160277547812230637458837465111171576062843102897184277222243292035304891120898725992874285686902818893992837995622320244761932102859182962983159211615805116890622008016894901549762401839159374424420528478870543120848237426332627216094577362292147222335771763868038357510146761487257284398910992377508882388522830535787445523368091472235089700395676784738239536029492617594945700521838065389648699522203388296594731554992949290832367736300601529965768744181473774618662544085767945674510102736706645669891018295701096497571553416881771133422148015357702632776860064506760714615327092611889720196610677883104831378856824974979229683789953844106603310536447625518563945686529299019535714535645539509472730908055351874809966732127578631021938538159349341335780524748206309438674798141028969810852511931025810163777462989998296177190466369238410061503957887161107815061900207204683548922976139763320254950177349318916114363303192925208591891276574465706424418765281975081341980265328069222948329086571553039869136051748235605928497281084760580666984826666427277925874939498778790654022981968868201404372214339394894472088977104533868010262751603912350434388096361099522348269986025859531817927142063715993936113924456343785819647045964076418213103677019708274509291370101283427552045865051953850474538357724400717112559280825182244079185568436508915894386279702785261475241611436429052000593986003088957660730525867559540478891433086585055787307926796423291761071024423155192881592551026694985670118040139863641884334900027524134558561715708272017478431628656057513785475808218537960160004556338944132937539394250317163887041409484970342798217584632891243350736443493311330803267616117330088806619432557203252228434017223423348741247627173093512421854603955618299876951547911892568791667046499762695653950625952245252087625425203924164798408720066768904824673201426152990283642761330861622145173290089561316705357946361404571072578848879751001717352618941917258089948982068274798480256251657754286465039536205304436111823765675924806279716798833131671866708869925511198987352668341113679217999826057081928133352282252755682827855133530215033761734586333050660685032937789694081478342634231560030785486675256384406440184886877929649193660429073602191581691300836908930213859057825564322574571334555726722782810065732751174817996766248383405179289740157915125955886510782032591094143068553312190391786331412015315480616048705144245879114967696492668977274420125006632062915051369740760983261731796821883326238065019940086098425365514328600099656354912092031290843391855401082105242068191221569797062205433065872546412566344764847453823740384993893924181239785269942389765451110294760318573566491590860444336755790612385057988073164971415811225527252547010188494564438546324530350392242171733440525991099862922852185241143482996120305396632701663371708287683582287320242846507365710284445616742369335128884802662898364898493315414434329997295701609273431978968168925315434593090683248067534100390773964205148225482402151405261111474849785402087051987228964433973356624149496028931226130931751984356497235446714641679798808068940385849933643745146802633213119574189349049398771510641730516561424331714117951509849228195691081780031720394261842716922504260813112186062714582093625595673198936750173680440946298384902827900346452919693758211782289233000797250962693394916337811867005962681612645975757263778273914932047271724870464733854707206081419891569303451747585321002964798952175030702192325164537347617999457000316562797065406425722222444371640446003867214673675923143939011463572026958924715029929288557663792298429549601187795705345541915739942993810549836729043827676477952124586352672451346794299365501911793438892563032821665057416951342555423176889289621051009862172745216562271789834767136662638469463204173007565387289252392394692969234178092080613890101584400050601368320778951339713646637570448931679835206747830599696733572829507173273630684014383517259790113223482546399679759125240287238234796236009761910179015873624205566939806503239357898266341090393693580649054650798022417620383834321442835509543297082805045815837874369617191182485796095032168338092744369413714410472869576276081653065249795502706425763032286576082165718146575863304799857005130493445057153380539027854406710498765716341021746177347429738288598834813739616818389459182496897606488409677137192813107325047180742968209624876704582829587532903467877267869325273382725552450092739408921981790336001467780246512076102783384051568600540287817040387548263691049484313271212376657064899933441398530388188028289823255443685716943930875710755435648314975614064138940470724541754194285045937123688858138608886324300959489092182293837062382979203679450803498792489066311930498773848051430803728505902028887352189271446648461394269743658478333670147126684286695347239239341049556899909627455762595808611372612491548105858993864602467819395553990407264364524985286229315711094488701306589233841501191282164212092887313248741866943589088712157665785960020245560516066652126525918822564136489373701675897572262972288694857444584142121355661204762443893780035434318627136323973943176862983893133681833018313445992600975603576508822066154619895683250345024792607345975693697993301459502965569675598517735284544356060285041872072969427469507309639203360926024289348873682066386001255016882107219686404136362230721149732888050070167422073250744414614309493001559925227433371574343639743310662715340951340621249600385849731125346236607561708079020208468617920812300458373373035208404561382638133974862801716869489454787331455146234526836381997758743289145526906106503373282075016851055159740731102607499204098202941495609984603875333274576595548674066757784499052376866304335512152141918562061210386296016462443317108917234541682258012801898938328703190774917665970602252764420267839924751100555402631041959983729771591250229520913042311486764856107199757871850364405201154020348561082243384494020522984146340183667397541511860754326458539077712422658162322640589533459799364747848640001989439128120292962966493264040021496993168243804191402734456053839505747678634136006651432054578984895912401139474129532984743288985219617911444086595030328353998716645655669658771376606558674185436301947090495559500767387533760438914831455558396857070217973515828122792856967708565945389850242428089601374256416988624377965530942205166071220119876755102919427497868761007486920659663767215971945422554069974317691569896987125502787750438712389411664450515272704164549312447733502444463391427684511052237925834117700632817821836859285105269176744836953717105910652147498377375161981408385104502049089180764687876357369314290275934413064269054681084015089620068995919347951871449129172352864295992363573569670469710508034605474488966434104897552357074477665028121144838356851313580058128525551859145795181745283794949561518726581630760168302780950405093598266114865297647917533312245774582869265318576228030530718930081981148773867326069894841582808140637740225732917135122247233280914814661182654118007579911982242911357768915893465808967694924875826673463719695182539149299335994085833702981905356325650808284484988908763139361300275969263516959165821237926778541225549118323423771308436118556592547857273552647631926188652600249599240032750792482063095401954312594530684362293205869158030323485827918988318513301992870753404039312015699831778419118483683942087522001973063083083763950882239563427469596869934514748497464599584437466814144339747983497440298250980226380368587906012526830006119694985962671700489834420030290695246593288106631976351123579237384257406874837785806022764293323051562813662008084185174437594241083625481099138286972384729500817423685957242063599804310374589321651778193860978666812273905749459810595123267746210121668083037608730812652669669650377858205890870766085447005550391983978281176785822094368196521334292052299427672192165318886211589395946164475507104656125509047177097424355584819543597945161917068241391642592351987891765079581247913452163823830924652963021897940402601059856133702987555902302646863246253516862361767285088279270736402986275841370073212667262887151103335267198323571013243068862079232603182915877134047319781336388470443109596304605940893884933078017544822346245533535045904586716501417856351468963387151902396412905666246218185121179091387556186392488697683748648353258693306463730176319445447321751476749979606212039769535730826563057489338259734757299345668398868394217674552395392916665234499476683174114023405076960421987622569753973568175021187424472285860635525093698478551210225919491908974492138867290476007857350976508254881073639687527785394060162345364600577306443613483257843984121533051603207578014443664100268937980430910840671728779270118565008143052719077086027230148357470588230432667423476283349830209731950463629304012287287935656058725710834778714172531801667547443542682377565289905237164166538859813119248506033615299882639924050842956672792525247394786558041883744570701473586241572336344487359620014417005962636093442156689635524570115926655513508711416820619659351894492150934615599609033201586715590940458134064565484694303422878876599105137857927711272598601652660855851510379041757115194357609002691528060153140321667565185210517057699747993683756069621480396337626459640406974986980875389554668943752522626281161382740175737563996417250270369885886818174511756411127677651123781792322985770079112760907714753725475053693422055109568268824118435739603503244059780042222343653933422536707649825989963430353507230764870973884410514500455112340422168361063205124564107840889514066404894025429666375129939190848786879209547894789548450484958379573635235541472572766514743943538390699159062001790555213473428539224305116047683147082046570662512179374491231805050197740193271889278550586346314978601511369047173210945040050501314157104040680029775670210972481271751095656067326322563249090826417154323044299623405021987345645560829359015679564010806377271012295158813041994314269441440311792015368685802032450153837012714542236045339237661949619696549843078075183398081288707025104812853610364848981636986179852823919414821821945635428525680559415977209670338819094686141681474915603969135487672921630958982688897684717700144925350864828436823818158476179908401665077323047689231194055940182440607979378697243010053724433462244801590145346168517499279113694857272116802354345933800591259013891730032342574011261637607797989875832506363487432476259584259311253018565868485950400947758838971825908822256387103993673784004082128996768643671007926777936866666490657031763132449922273712045968832273854478464319565165286116691961262327763152896540367761593849975716633994378448774576631810230642316474993866340558464870690173570408607300347520969544154233991467387789026287881386934551503131380590932371113724001783750713538536916267179374930271679118167827482136325223708995468500680812232028816021194367478512117938697720468882021781861684897462147766223034026394870852966456317866156980181046380447343940145925599656645367422528593987113230556267817370683078322961214126552979548118189668782691695887961402641564522940478273270285824336946480718349813202596748564521626148629978825810415147340798128435637074075635956857686051950039231393631359957829958930799395309730051742049674475144318010187775744772597717408176970642120233156763937524117217682889557804948152065691332908346346996777921642325487130451778503275312202120551415173403090043123976604325106855787759333105658568918035950376018518328857203423767696472236709311642610057395315828613305835374146631565125037322459250565486572380346068540655168927264120487398671109906137328719052893160557490047490462061959951248637521290654485579426385607805957657944024839717759436387280579931020108020241968409876904302906993174606200144911150467446747303645986200893394446439550143200874863860359477849796308943423128029306602914323323021970533917142268617692645792070962176060136366005937745119207739139575013295878202702218678484583572989679905435834594389904636307714282323195705342116150079084227616003230276223400222218214796924356159143043585381327787085963413471677013700137117302882585510545603384529553396669131346600812394411884554620873599519305631070497314253359756740322196306948827934193336117923870647529579530394046579323868312622094865077074856324929161315554506583387952095726267847130112715196704566538815428452330866868848509037046114681410222845463456854654180873488993208901440060986632824747469804824460704331939241025407643950157037844428778874448267725774643855755993883268356259566509326453191228713439823113184406443670662878816542385270272132870803677323063278353960321645639999849947960460764014895217799732016593663261326221413332298772348761772225031104263533843169074953910997939053277254204576763241560428111659376655938659398648835920537104418380011691765512073639992531385576931817012358547601294341510594805116734290588980231774933544264050963637852985951905815930756868022736908902214502370435626114035670730656817234010417356764361296324368312358002207219332857106897581357982422914731191914540223595625545665688575334866952413316494100255544586931047433728312458032793869028236290723338942626863624966253566770129388787010780666081729948461137515245302693851444266052989174944187355463678137817084273530599087142822173847393568398643592998189454874461633200791362928930767328968906818331589649331140761624117021324328842740825608844365925030524908543154055783272382925349304845715091540245478835539879159117478384041128875819519363278692397024098697519916254305484703273373875926216419900504852064686241517269265634690030239136128049251783795881455377873497315802243818437221776464223009460528528170862262246443545431436991705338100067910238773263782688170291953078178971887309178293410128225763871761556001293734581604650212285077235434365882599433803076062305572761457866298633251533121669479004731976451070235335552208858010783594625313007492206478491783911126795952806633590894457616367106132298047157816380037244164263299803509180356920358059745511373580289184200793923472220151290603532151758666428249438971531210148055410396404356145875909411490033374341963584940145921634975948833947676680779129232722438002210436641155109626654383698431550767603403079544996383384954047530138860415509802335173422855418995978569024465639956203277437687242120471272663004545556769819997547256777325450979856023361516571730555784863618727310792611930649354961709738373182335301457122698362998614474117192673955217313135676186639175766926129297501508252219300196643364119200938438198450887569495104587040277577045425732757837210635438853283757652944685908866185365745440999868454721646487021713040173997356613528213323198477912415336897195612538091834917074075187460439180171414537330207744580420596324558208202425030018855655746154659809159552412332122751850463308020266645869178112325261311759939173001774871308160823354722661768979261219625050219858808426759897463224343163219417552357024235717796044670090774609928955605238310008356204077799806874894394550520143493395018855635946981046261976203573180453213457126717744156737051695911848659388182542860038406968985910095563587021849138855472985847068271152823231094855154537265717817094113538737931181014337136903303934894886376885241540441658930763861482553859802203910008435948063167522896042433491222886296008149927304181863088359434322995630004563527937922363009020599640992230568412595642109775186022938274637843003088346012381433976405427598578951244838262057830719979212424375755490826131654767357804623630771694115446074233602627659700510607042960697486499558484091854583462290361399847886541462265802518832030244294083432424745863954414422436943302112841208918396817946192228386395604751129432099689705144656893384550907765233491303843798183760641917122572011226800257816692065292965529475400998547367967318078600617299414097571173851413887086998267455774204829540778600006501499802465936442693142125921075454655538185753738684127175820777996950879961453906403463950673801469374761334184230478970968532241934062260018659367048962221669350111513137801057728637996033960125944696989698151978086087403894109916197407418148209766247955036903521523838782346506954359005070533661045556952182743331579216526762036344514072250076956447376551675101745443840749565648289646492412559477127914630600102128636930203055513738679403267359436127482186613942179374229936540947391052430146676769883193692419448569734223281671791398056788943132529993122730612641702835313609220967515293643339028047068510903292673595683623286399055413488903682432340835105755258574383139451013667607215236712587355108114510912620558287083605970885255167458924644243427153947471533571048975123625488721336382118634537558554476155410966471888875164186196712490044625409831290793503021853468856494067094289606836442159170768461209111675840754940980890552961840650809750502003572306507162639025313088661315876453200275367214086707589784667753321973557361496537967737138783842405330513659079311950769277595226027991274058988732301846842701152807068639459392584466845254141385564097424632224854207699361803818310700034271159169614647524970376286252069964633560990072454989309465541004724874472430636369981807173655828003364540925324869873021362732078472000910814465258645904649572628671428210310458820552724964017961250434208579954436398393411170526333176982754733000080654159447809361085091083198249472014942549376952695075630810699343510541819628105470115528610305214964216369500814662044390650158303390314403134461996201557313420604952245328583232690900619071003985498293504844052261200324943980731142833488383592008652967276221191177990214692245215466931576857801521539365792662824560479232290734137856397801183486116846550869552914441630702129978709485626655171241068598868617866617189039896330453012856032701256217596131790121123420926349367902846328617389724699610651730257738679788184548829968497184059701136790076575764260707477666908816818468103451874768100364100798599988654234527629261320752275516121645412823095708270012959027397950622392681554876363117206422900693913097799820499457906242914187238315307935969574927085423757474232072696932270138248528587548116728403229393496177850393097117424430255646922655725117772567980413431984402562009161342808485045168579546538163446494541735695458131526123850555826525797419098479955404445978022715939522582198472636418912595840855346761402419201255368851163038290704602655805550560478092607138485655441013683927639969845651221009207994191163496964830323650415680448834686734310140087581218254541171279473551334377148499771496305293007760974174630960340352322349280664429893864454522237130600902995138529281973846347237001873765598737607491364871821846811646811304416213727489315282199745578538090024958854386162112184157589404925016805259957679150365986190044641387765450494686520676825720728917122836271148003147924272009181937228068302368719486990065547938257409302622319799431349338460807194281907933416992941699843293902084569902233855121362731425656449521425893152427091031858994356323992024060614648553742314231013212555741445004030474527426682902317074268663843476063224233692430001989219416675802929787066543958073752730806157617204920458210095965472421133247379186040388386228947882746599105205102668042460928681577099572426625273641475609659408026116933366809741181640385989525134253339015596604843606998332364741821383972538679554614446573590840204538349380207231146387155185037797904347935314531057630557042290049914270091036718499316757287156768606960693298180224812445214944426471624534837599004714252897707955587476931428215482120651085721616263209319840547443616810840305338588438488501837914111265635993836643402133371306453550034448038185016877928246068097068397185978238400149005710162777171814282925926654648985914013257959207876549069370099572774806196619393432588167718644567814953343375897911008795689898151781768804214928791863447844082771972548965139503588508692785897479801001688665705105696804814173927252771634206674032906943442118202370537136337313261411502216237071533669048964734282305032241428569718309679443744107891344640698099790502078831511603725394702389616707127225053504959466982253979476762896572595592456252937803716989351043436919142494506089528057238574089581531218246670797174241317663601419544152392715016325077170538396119246437038582703740126514165379317805806910928385825252052903655534932633309426862862040499590989835237704363777498896080570168106090071034400213723592806614877665452902413854011517598386288490819094750230646878954282151493465474791846087000594204220273586827345407846290493233310642668496388058497515984378095906084477962706691600631296651966188613958416275655150460808840497198403358559736724748528434613342183861300691384434400426784914315624094975161436544322030636507490369736867946403520393084660867457350729438106711441554739787420385172431808099765025097534097341246248612314009051474435550611953419922931189121461569981397834055905228893235315050542457836521155547685658731504078167664473645738186281135769298520575429738221046593325836103337180849407353141073803706462754279458504472306910708085906262820445725477476747942436216057358131528250175135900144589712424157628527750594716535830957021623160331783596112576578377676956234340045443490549098547186278091973250842907126359750316071489248792501011051852644901971309893884935143514112980230675599227711184451220191035251224907216532657483465271971396566710121214007338194314877233155282010964541324505388704582135137144759844098726369068857520863164417651094974232219960704129659283072112352411428829947897158167853843007898260655358878219270721425608080572960652827273567414634784826576815316802653957484696602691510397601408255767332627752461022127325670674849864487910602608828060769677551405209991417856947378563966803719793636792717114923028440689198008233520976257291302573401423775061223765536030982529532476230194211911137774625070207532642099395107061777528758743199614482470393638419041002790565840734364506745687225275467692571762894342392049305825158689431905175131981558114852861524183249870402155611986366096129960881267396318690336105182153988176696271159130384453017859158706686057198948910059427366529440894421373898354736626609060646050180797056245651576040390340420987497510130155283904684590974089882577371706960777787982435444700150767297493665180130393252056318550939130368944471177882929388154738064839684971620006549060514144438304087626421879817656063564678888277969965293582677795937171798519225734189180424173706626372057431583242723175210785283672070094993430687606191476456087070658455154839223944391781882341203512887972378529960545633269596501116508273760151702228386757571022648741100691092583180075360876487100802721885815393681728095406472559799509336763723982159049418329230934906050848369794133339994889994965526910979449814628901486058548561168854055489086030239303179317508567875116917477126505745724291295793513924347714662884522977937760575623348540951911414408715738085978123143685817158316877178348751636931704410202733232253042280268588811330623282662121946907842599392414273232594100028280723620854836043943417911249386278132586037154553405284610621022803393177438481177892437231190082037546704747135840520706671846469739750912128844048583120059217184384631654118044843252430376502685512676958599548165240202555121966484140753515292161338479973940095262360669835413259219618848262877815619980435934777708689280673224361149543267375136427184189325576219261517450220634461915637411167852521675043597509470442081910744448568718299878711641902731350414678938910756005645875725840264965058498503348364574759795813374445104489505992160336670066535051055796339474218648762989994640657966786356711161512063874401187855917501728554202626203232143781894433905252072489371870154591037535135050846784736572031089429823270764709654808416672232249693712164262372750845849336535757803084684723709014924587838904080270156234148841380722174989176245620484297380895472676886018699852319124015219149048832585622261092929149953792177981929853690753025943216585419074509535782441847995203901296800581177495203930889275099452670681178392913106814627562707228391634220034036691333995576904163215544946003344289331685563567426151855198345453325242078805715856302697920646212491536508547235397718209065343497651295436366979964469113663692821833932811497149124895472281650407215519060180089943766632712554433734268064296013792793197876256144777605349926876795486165687821374192453194804414744337864939185607009186952489986046462295489077527615728751104036690617511145415680633403988326930663908647650913885145118697357992832518710574831968129817713757993017631106741111031595644270546139664559379076470888172797376765697421389959642173829080070355724170008637357858134170132746361803452751273334227769816330152071269639827012751362610450776404895731557626130475809631923614728820172862498869763300647729443837750569546634135517816202204040156621818127460277397436135364934375019829949188961379462869341858547075893835982228473179991228417420920007916956370880602233426159409897080108128705612780753380711418661298861910953236702892072536284545780145216561104209978784265837650867501447011298004741128970397141675732520739026358011901743540117098595477501383745337952308803944106611557104031871796867105405301984514684656087099808327795129661822390048601662762017802643414076259888774088555025783602844181316430611771284094402977655689810033155824517152205613714020660868647943585493161768141929708252576612411508096738288153477710046637531883830023717677539948838770420854596022033689273343546448485801888752500975975871236749537291797741374677632199886201929778398025387045425823836450695609144548724023542023332208127480635703461285386697498578192259900570162898636005012215765216574750751746139744964673466249029444626691000267583180455224158304145997006877038852033077264422568568622998452298492967620068662631408775440276276847184517918377325818735196258947807496039908929315081687382032749253281114853256757130895062380312195477794606042744660499728291133531853553596819690610685545806826573757248272564301765401162169657417685125271553418728773064270929222177528833636615583986168185375672070110765828472944482815660035868860592768553786515595135445709855688818865125076917002058191326414791731187167271258338292514633700953860575299808010676113338529039988259791830816745057740972575232655559487383982718900516507224124839899612100719624986399234073760055262534813066199311191779181473689799259681793527492596472329715789729403264404446248892297038283320566433887740895434448213579102691104429270370889623082411284587686434399518799985082547514752697124340768884784571641183478818365022618182907725107958114006289808173458090273036273334199364030162919351335778251076465883990089888460427785746920588527568141927658492381169134532783751065739715449923625187097334284313263249815446154205596296459355802073245356786653051363266364174474158219544355480260067100448019139151993274840791181748880041138575135494428782261375161247315082023283554140375642484816994764721487829844535106383673503448825224434941179732970732029065514389170630801064706122870007235442140358209383183754526046903489746242758278135433763776962459920946556707471276890568755837714453752399941936180719463016784816308865483338350735772988385870547791003023445975237217573337424219211972922234797270666843582833977420392148519570629757192944417043975133392136631354681468561464790148066991878671170985703268713907349721179762718511918805349394222766098730443747597907172890998057761729376364914909243238610308833606589972787922103562417234392056614159307498132952518393325503460673734289684949659934430833406065083151779062746159551282183385340216001462522268387419464470090921320439002498746133933610591238060450136608488067401422415840605257002288032366053461132217300652845495696504502852806087831425148567009007292425471710475447611421776882313836047242880303110574643567098763172618298265371241418293490262419187924935326551760554975887297095657237250725301016127375337233510006164611030807208739547228060822435756791860308248133605590122579594080332464904331241338898570289719028252029645759541910637741295479843491076745053373070091551698286107508484096896611537866059174565241223963357096497019681023305652997894363849932258292912098506538507648555256238040105854719508281830170282756924790127176753708853372129527973264794900978507707929857911573833566767971450037072537129698183534848750562684630897323356982960102585632871536748749241224670529404846154570710905769152572110224985969526814565363590801199097587140360522844156210175600095398642292220412581719563577353797447018612879090669124242987827844304255008477473023131192952005811267240108885485740591213505614050955195516528795132893577609788274631088028403050230441548551516541505091451788374664197091064425549723646450508262376555571297900002539279660819791618496503322098011646543325114541724890390130544118343655628540365149234620236932315602541862657854105900663670504792643580113745534030959404122582426949087475940075585159741682820559128224244153127630504795717907224554618885476909911943856210572331361433593987786311114998571075732095628718680446999920703310463036316436343849361343651035470604784486824664535798520366268769067345340799231370647691916589809474116145799558482859073772343573242346508356675705683466058551736707382288385146234820461780749683774658359059073489948549383774354500576205665747370708428614670280798166158215309267268145077519382872810053120091250374572146774610999815227382429479835911602309663769597495333603691698306590777537726289566391744474151027845233512789848038167412563532881618510284698707335638987906377599847948005808997359433859509460861724575266229066987230993034869607423102015071128673474009948526886109056504404955661535000933703404140392599063381842517565829884823469172027203918903401421957160047494646331344389003540752201978882373996014375160324112259510174879703838161695320559050259806777960479683029420073922738493103694944189546840131547877682826085475184881241289893861437596309500664150775010166980091954773651417965734865975160482945280094368440610917899040373416393548439763744601694253003363872092909866910003247866593117751443183176589197777671807928363460355553035438542284757704906071600854998562434234062731985620192764777023385809898103029375068255003636453781791308954806800617595727640748550787639544033843834341756963089651053025210843952679102676857178053909960450523230930491547463912733273320185260948285081556107347912403478599095318011589051236175268430707200121339538200227519422936455020707878629944701537323582619706486173334278608148567601046925212068389528567316704728355984302081967094335767074645440112846872234985968144211484273938658609943931016745729110472674828946281749597540484999436907239629194018562573945479774115594592925019449111360645105688515357237720386382396322032658898101794347766482165771843963573838377889436598588905684797960301603854720942483935166752418873347133262311871865203761121648759049068765604507047036138426920880837204646082031692452120960639547175582064858690690783911180961413758128964626918359113133474258249394728628436158806968463589262259835580094729243593010572415931790866102956763070581786104939436846835294876742595292053008681876817918376316823189104796165146990406777131162873117271954802081537393551629716746611424701436194726063303680118820623744170125501594598124807793388621665920182794480404471190706293180626716586244485553670392990236782914496670139557385005498273759841672292843941629037623144996425207826854674931828204260371893370476621603618535958954361808870950812298333837096783664335655172117002738149786256937257465956788753766480082861538655873399605335969465403263245743329257761297044366351932451534892731554850900924066572419610803081986180264059413546975858230452381171421871344408240260728316021825108607174902999765609936821705018673422683928862472089745182599080967363958743565660261712177305208869940417894202883261516148906071648891452139963333884143901010912625926472604027629694059846634422010247988656339244756644569774445215544138141629528922679142595234299695127878399688573639471331042692126613910803495169631775932562153423528921881212198504761564722048436244663817855392468514890497562030834838148849020091185085165909146382881843236182924708996633403440001388704422177150961642552253878461474878614373997922056770416399294363036203435912413254099753953965910008362417742853144830449072289330743022856356308032355468508145980960410789188099036072206658491063717398929052908584834089050921157066333255040827288311981230866067382113751617355516915305898717186143259360465550885287188646005058198406939412378716566079662553174676215041596840655279300039097874959656811337543544451130077611169941127735703937542803199957083936622823175362900372402790984239131206276198942972685263982734962404885130515333318765102193949828993668307263632284750075304020518943443953757352315848270586715744558502046552628922627291069659555182143127173769928532984600089477273587456676503609234878512167347329738919870217214885934668921739096360148170787728993705132679810710782325267010702990572084334356792095654226850759872877939308318007437097683791123871283686830568815450352640114203911118604787551774551869804679300758870552948845325829594498670656938738743120195355371190502620968332135765761018884217718105006307050764160844672970836407634394113860746235333203964593264115941722384634768984492373727603220603762800198653210511820818907615893068151268227777693547854979971095232195503597710632876335663467984340668004169782209027220082054999788852728476355446894088294543744755304935454242625152232421664897585751008988963402688824658084186907473619052839032865498148322436651911445526111201387608878250499161946217473327090039488848007944816694037531822342757722967047885243324987921200015287328284569072174374895338806715101667386561709586846605136734710439527655154902170792459888394497981414978592936959577134720738545715850296132472424775066727480280765644165442448933603176297028281338949698491524824630107913408601010315039330076232052867166266194824955994056529168391120072561422756726291312870724284416222007938422690981920832334536566943065524926136125249932594379015943559722082366068929905124715938802740583027809483973298869373740443342071118144383108780061782551822345177563913044881989899872398116709652248336850608860888128457706581567102733958729274161680926696531057967257673823145154143904024126461307350587313337815716947437206333915946472456394571157691849576150227883957789679526036355044235256680857695083003169994416842226056239551383666963761998052187761139847633510726483390614504579242398570938826313052443495433743600512218917520594091054897054053814175082281077301417164823213625552809479120955623801965339774913185332491571177843414807825025326943052543622598519009419455920048525836492377501760749218279506012651306008487998838597540691605310285995194569131262353058362138689898992778180067719411158789910771561011733717482570611162848859712604391885809418507299934459886565123184085940718023566721765356735117614255139706382734390566139182793467660641415273656038749605142944877781692370593235137877280515407279425503324832096490544468700456410095456110317800207971078189663610707526659279602556717273210234332257507451114363287438711045783737257129301325718962415990368203825595440219517064689681898596238039499248524719145606246580920918821381936702046940691867710360469272630633899303910732401503540737092440542610574280042434420681622551581328064638116048835370822993014633055662779758049351951964337046354549757484769636151716100976019289273137349920913797286660431770413381297432246678678301051145346505450707002260816025451952245093838080716561490619416807659663731946175912403705975365251259737114863094818980578339450279845281106150467870901754592147736928982037273725487393310089780380335429806388662312251051016030090966183955258099854183118404354410018885262368923708699688447382887464322216901420006512986622066330026800064212888215632020194870179687873191874121067045833355864570219903447237945387301058108679711249185944604029382947195906275684569432047641344388364769282737651113301535965551759762823979148115403869063140643755039507840454726106217496076912320803759927583487697551409477895481609433993311296089305027297307373962754754253243860036619503247371935785532933332650574980484998932119154083140549476926624081107200047709600824606909476170050925871830779558961770402937574639684391416982811990078623903777999398258625389705576895291945395256229843993663244486550050085516867700505171308379148399060466840386969741223336813551395132627659579010038417215674118806426946951562057247481985539307436372231017686913881747888980014282226430846968963596618956144009750932272622395251543274080858185126224777378179155427100027366357429482265120105100492550984093396622295453321490010836156644959968523664946654158366264264402476266422128948442094963582578398997181559627864151147823826680877770852724013394567959277391169918567260746121624419599171313637058544039847481009718184411922995381220256600303670336478254814196244567067583693472391273282549487804114005651929019575459212634990325296124354821077046363174789192678223740786544232881563089292202436903038073888563922058223380932879123923495357084238268248256017996361662372355731081629428688584735181035040160283757542518549305167754868658629398189768809922202569774030560897224365009355280452080427337035298997569372422949191885423024212611727132970759047224684502133622740134204361228986240112491932477738767017345383176676385094494043970310183347700488108608694368262901739435081853649118412435282032018400093022764182329320224539622685710167077010600422639405175023592096485466308464522318417069054834396954284760130822732434754727309972211783799441230206498480864495830277920697695736517348181056000687492218477653071640586320991070444923065630676318318912618644744586921111746162027006496359599427237548719015838808203587645020266033112110192255615732029553131112523570655914534197771179594428790696506182922674646605698198972716703382960003182405261677087020673802441825275350574879520126767611082752121067665206054015325047656552441873025702585281106257142968144604405113149944881190333685583844284942583095044368730650096882500502814783210007670099680829928523619644514751157292967288745338901357515069414960565714462705983048069283559072643669626365832038787474462606574857731143984147948471025032534847503619985448368801376784349201040713153207041215496822882365607802651088273574997708681632827690596978061941995070549414935294232458069734442849717800718612707317471461667856656792174142901534898190476215816546210437059879718708326528830823224067247301252962810857758509413743171348078255821798139992959817060259748249177641832002283374209676020404872341625743720972140318171041398552677012691134446651220278095149420736855466764325428342310621137689354238477937380556595274303524427272076013384376694654553806386250919486089465283480741001131353228604218135648517409428004896297802761723076174463191858496542939272007762549765569538605526752946492915951931890628398958660241470752543597053964554265260626935052440930202586844383465294936139774545329028561149970710066446457284524987057054955525160595751243184222554889687654161248013419689535455602161164188884451876178188276210591335339660004793515573174264003037313293053158255853261612194353605935736607232389796425900289925881224049589642057551617370050842940965898442022477931077305881933051535825688825795613732439399337987557541968305297467866193279359548421276741728452086121195392731288766264693274996445120640572639205878828074154492514438288219238270785670401720129827075967631055023155067933118670383375936227577073865576780262441009061644968667875804898002770009960544851969336004826256826799623631037786577819968788769966815010594323362363702519094415551465428651878198774512632712842326632197933152118721869664777518879187147461436317323260573702642506974730920291173593381792932494486824615327275159963937315308194997362883820890676658543207470974738558169015724755063729953274269580855569907985745228336182614518497332709042202925278117164031815628105951059928783915167395207776454497225866077151606985709425933865326959602752738092787423388267540556604706441682885468259133422286559723017714825925953809821162769496364984915634486370193813908384585225878624356809143413601623223549242175408967877805411244026602015043681885085437440023470326468855016376240209014707147231893075375325596448637672725643900442273727986078086294028185226483462909251268653239660805250593568119426581916967401732089791245420023324147793506951018142294083971983992833432137239164100344031787318910120528658288705104904555193504426062914474601683380302845881661740083326999605261049525369440142544579186723717670248516540374117789462545698814711523755229449069417260228005349268810636299828523891410725208076603569354535750408444645620086143845395678919247209180522211207705128601848319546971836125223339008347775853559741666690019521743962910430937329701397141226110679434795927635691350050324516332088405954518703743880722590428083899043664349710222240545120291738377655583761998653558275893239101333816588210232636811434524615654813445232614359149498175090268076856086332285835612842731320808197321834727888174403519807841009003896470684618983255770997616885531989075776484224001009991458715963535253156019731192676093402939445922469504012643976629904933589297868806850747897837068639733054816968790897618799440185076908689325236447075748179573399275854170479640716193760786719857991740692606796667353181031822273844791651329550416550704921953178211477360276840739908163438395800082967251853355145651109707370392867607737383913990671955391126107447558372791301178548799221243927450891851996204570230838427900250251512995263763349434499032724259808103894630810227932444463910022233688191447311768243626378192232515205578259781500860571445975942241956337586802208190008884025815189930907893243404932443548179963809302990688904633065097223546824935273662953239083174587913794782848297753094167185557986944451090321090831334833433756245182609861425736580983541131395667174725972702868444398063853356360177126307135894184314897615486549608772425102656786630165500130384818288747768688158226118459166548663095119487795120839278834435462000072580836172363959405752815902243265441313236865933843151022973507031000137871473680748116633834931495601574731485771012950218916927844967258306221951473236177519628466520878966216615521831070458756732589483254375765766105856956657097637266534343710037646282764593266540106163132749869212981453208486360581785188253975626954565849463306021298698687690245077614641767824334936582999700905994162934291951778470836340201177297701859019708694382927374738216758747574823726436385736123058570949171846195002794645659466840943124831238383376242936657590091678457490497317611981723428847063684261567283894660243495362787794202328373400567740635877519497494894681601694774501488818389643983613729748909033903780486596447996919785059808615353798884248649720800154779379939659528489844920172675973342136919989260967615953972683326204121871042101779045870190596990036800713273844404287281268896489382311313840706840496593694213883467089127758239424075540392166291262339880731935581219612353356630450314817015849538503323034409023716051996901654738007594977325714474697007691570173375919177288480878397415356117227993785848819745434662545558570273605190393449100197384956281378504576854345979668496606846222099782264737769593163105131785241375742906954816651739181287251431112352514092846408610267253805269419307549194639211968778406190765976430549962367225745036104613925236302925285146144696538955788889096527880394130145147709859431890922824603287894888642181436155631733299570277674365161161078670254399254196918619734712025940780429716120078969865686266147106523438952795579842518976773546867475888867906629785619774237730514132296596012971444871776559795280345639297378940941256009937112769111609355828662338155245067924608038876709679905795706652796378807632013408411176133591856013254561698401881940510827234419543664134491920977978848330130561941345639612306819557816553060421477987252144705734856756415259087471108367367801629233701020868011161642903044017236985403542528497004495925146165485108517432779736611462905927333355695376926518350204266439033981679817429303028800116236794180830296306176456655691126349067976202860098667481409219906220189355559923789510307833121104560852431290068427042996441922058825328608873222659643753150383725324213449787082554581080377718470112493221253695219022257408624286196988855014644440449542311982600164355562406468972012852602252936411901435697520400634825576554883848010874424353469015346900054149014043054368874634935066344719053084841800806162324590953550854933677452952138575825882294194240749618364701157508437003672907215385965377415710469268487056464534377477975078859570883645363814300006851025718794120305178804832319761967207223621991502188089442042881062529273628585321297569794102691356949652056903879202224523620831177297175186840666764917548160042637541012711943023061749472552899918328680113309429241089958400603723010997241440545981128514602158965969331138922721445715719963685676712781341784186227650849075960703058854695783275029331841960926051253424211880808260805573249923550802841454077500278578351627169356679709642449453277344310235966849443717789113267657089191412133898961559302197439056025748121745762656901622505094623643984209927660951667897508638512515409292316479666199463993235048339194144966974436756498247928711776992932798945727695379603999465969627231491410786715977832893264658639635336403598805137996190319222107837923954079087624330281858944299120288006279749135718623887438413295514252171350481545105276633699910304399401750925031639588824066826289153431442800160289615095219956387751452422085689185134505976068770319217577861774112725128948595217774984916349291810924980403775105242535328224340545551761394328369764696711256299213927415153822844881876336976938717519664015267634162439552587635627190729873974865493513601025557828760109345374182392525712360083430941675461676393100570178405932788548218796198579961314129844444595583299393941188172894958906655421858198258602247632914002070847808110908634707908311298390904735847247025525050159977508983653035655676168679894504183751587003665021165219591063517176094204870916502509289752199847587627339177162758425675711285366782326131567830581885646637496149530032030874326666404736340311272911970555159258377108472955950588949404991338690037308647108827429591627612946674877659763846144516393224146826921901403717407970370057658425626546324636949055673931123196788623702363642216744706701602889103889467172328091761428685306527907940097218161160980154838102649474228747838663568771878239026904435600668552235155495692406037321930117282834560047332902462718623664816287011965593394403042979071640185395515400643713610369696207755555359401116582183182697140859776831405456017702627212761418283106654125076680205113763607802208193336685392988681848607538496788307889454011951141684227025486756808546437127866884231105738171266283945098130521976358650775064626518910604270213336893262073255938387265261914282895178773406299111833400515922531198220935763213415757231101160638560970405759505936119657347860061030725442714662074490505332372598765098654729068127587307565571727510173211972343100203660573045601285679299894687095923649187842651911818653563439248740536427727026071680131582526870754089034173285683224911502485519442672017903483590031819855011026245866677559407854258536674388561301410776151186631050584629734232948460393865022933064070776569181512909311434428633712809765262626718602214060220668271088271633381603198064674573785048017996524851338758193797407516113319759482422905425699217116235224956040334305097265812329719905056318853392845786021925914772287875326582795766665110804012622390100356054981129372140008196061213515692652035186014532896762341193851004550278037254459922696887905018265460862399198616130489053394092516404472960223381917497603498837236522619128161200303662444316197366748347634136542505907442820255852031767046929321149957482861789732494272370385316547324365267443516496118718782919984068504492877401413170301388416515259604327082288008396009625567439503689348015632664946706966761415874280230403923481109772613629540241115636775803163660266352744441890405704122167741824103805532137694098371881047405925085109850934198670973175348126262620489866993246582544517242316681242954999291023683579968673598462345252127165764424654278115567551275080955614981953335182733464547800705576352913025769581403891031139543624040151589860556572996950743001655123465224461903045430484760216283571576040147612795661054921606185350870636454201158323388882509327307351511511478297696890960470058288147060021132660143589680467632874672123920580214620004721895731622243801903355093374172172309832272298850941662967549820988567788103480478278784498246406097965520624414960746848738694568588765923451321334268064626038041332237517388102798137994300743490080645805256344407580355407476572448836610574120345653417294791028404882704100581561670950223211607795822646662619601326567851552365347039332364068401745516700098646110084510799800947548184437839657201693185653680109470173472056954470378045122451282864789883340218097046268830535406930773290356511653478719650194836729577841775051973010045685757432751777554255784386489247433086280663914351832344036279785391994680542713146763271148117645031180972998693568120319316796642796806196377522456841834954448217887119398150304464862026760479712211863584164615658171934749421802512813846535301200039415682969037388397357301136788773263688360018527710934049559569683387145427070667860566895828163928276833080059965951347058069319907312676450766444123465326946727371240791416334301653922685288880026545322125914602851984976159736580463995736666229206049652895582025678388001196208310145302619764633173369057327455405034070232848944950946278877584867511550014485863519034860748497271916992266336529581435808892074977298218589243710562163984208486965981709131881100136666907955156454617766494217846307605660550523811237323283313364589888028454304039185647681543601746227211315816475064642573563581414319377807752867101571528405770717874985089874481508433381029292334028547080931430984696178636648047039737530731145116972418962657331586745360988051166467853646542969331286788842695863850192710229183202140485067398680046127360102622997941876100730109834143892939064773475735843077962390717067445729794019166247993356871240740251420556880414485265915390768973127785683313295257778587945948708995125989036490582552607040757252645430463184626310407266584264026352595704347143824349922830468404008856048300594739635764713956379246763585883687816780587938491210428245627990035861398860030730313640892820846753039210380323622273118717903803973776458395055628471347342688606651482284305646551768492027624166711432632139453293269252367145969997185818978146257034401479726284460386709512217714876570599616513110909385164760335890781659881684045669246658906777260037219709819375148813332538397268635467429031584648609235638119606079598585464532147577639172097892264372533656891733223386671557680554317574978000366285323288568507238254054653200607224554847163548343170895734734336825091794651511519248119097030533410379075947871275487658564809782179334547139794865135226085161675967228441900854656007624692766247065844680318180989705464806560311600103924412866630182719962267119617211528619991641714915925588262845792931479940641174010674351406634521466320875679306383128334217371390097542927678703525807522341100296031637701470416725808622626953480068028278468634264650693643163853058231765999995877323651279364051526212826195636604422992235501825858549716591875628620142999907831825179461503769972786361322481891753894904324940559324615291504968403323334888057402014105059124361297566627155698691369745727338781599196259820167076316066787418256603576381606276903354309618432155014020830530466632003137453475646600382213920007853368827594131763025679639003121140712020221299943066037228275352935578209826983324984429633805462425328226195156819207929181402143691567021923463087555551754883182030725857200090600984316521365218992363333327263995395316377628695360201074385101992587470118200649276787519027617860849671166154032123810685222200192777476901397239601813224341956981942837137214133843809133778013063622869226131424893852695808673120339855699573583639141518983255250482661106728829919528763125786535348678573129707256088597133698002589833708150519444551277797159407564304107356654170600339665050310733114538603570090645838879977688838708729504459585270490708779429945057280203074397346679826932687505670711560588610856515689875528199318338691389903766332709365918378964482712747209267460073925358118423637533354612378745506519726374685259983496898741005380946322323975368053679861310433846187652710656445149548854331029109333313379303145061889276617613471166631034181949644977940181579210367102482320854469949734048549535551320531061024468055919655363613130489938492729258512983985001099945959756332036263720222650625133842070382332882460723379070377629949999537472200678178581125990384189902872943365769098547588100311304620281915678946629891058094274615382774862796945889378064587193070521906427521269566286758709718780169532537302639885121572401480589842873047832521117244212268531506259798172286494523129461900995462238433246184811069999813853187128730226144768719121771157528640896584789045978419927474180356076223766257822176826557748842511156731380819234203712737381902135676457093824594592485371153592836721492540027921543271112442477667245338702725321777248194774989028532123136872177630086156801968434904859775848288013526143699440919726437744091751132730935113722148815399005442198617397827829036562886609671029051743042795074414187010365515271550923609357962968055158552627332687464633998891602282863535808654267555251839595206170206808267314126629234775802259359294383488896219751470742832458232992157187420495925181302404019177384369939965744471941099189012954678449025743663049055998270651152047275790753434358403969371542629637096718345693857309499472504920302204380100123412404333390781755452804766585870494071866573862914713004585042175081379438994269451922650734801826577100662275385257285872308851125997803243880596975293987159546629417199575434568026996716749797504759443203225194904863682629563171409016572494147591945076623899143483761249687969286661681836959080629407847426124626515470375539856051681530910245098587070434119469326147662567274210661504830208003670271726178529090022993371696265853173700232849723539515130665615011225258253045808213338592965258305454138288635469992708471467583365747467763416531373186262051964088125966180510145426445793692771891639302202107761909870561564959999440723219495088193319974000570028302549464417316893950190572136747078123078801901312262543578253825033323099975842115555691261405207826613002489805923160381350705792642578081255563981839521260273994759286037763415314150271912871753482280196212048647410340184688301937305064890529830698400082668755495592437332122762695337985650770532934857256343696281652875160197123605878434874043585976905425432125327378747147114720032557524252945105831996685702451961269662859596523884595894582972395323132623193634817214550904665903560108200089319902324773522305328041023221281099455950477257170070039931856213959951916849469216884780237520651113623547976328318347467477260840977248335909444868655064264223602028927765472238122245216539057248783347849949705514199745104126218505458283940512407801972470629478455652007313441358147723261917673807008009251570295306544953421518378494286272329347493669147041122791336362273955334970066894333665835958937518105213889570465882650907443860056210596751768850377865972214322706032546586899211775966342572138945659422300417123942648993787042367086834168068185858173296228234887715343326655237258865915374926817193981164791547910064475241251351741060754837447776610863739321142435204346229247087199942342341531385554836948189216477400070893174257621723535521094743449028821019670515678108560030564739695596842770865483208265799748724686555998647446584196219147988072907076544367686756568538489185703795404292381038796802802159668525200804859924837801147200817441707653847669633689973440229781535652477239308924139529862092849000163170822398716023277911516575895560140877343156667106505893585758205538664869762379906648749308660344313614243047698463880383339016849721253515681084693019160781681107344005157847866170420571464909969750481013053497586278136499538091232764612621413734650861450260214905261358174894664277885315687588498825826503272969065919181455230011492776680704295905371746482754333927394306331960869719142483934200452768261984565787910564094103472929720375061206729092819561421502340255899642386104745616993412599195323979894792766138305309053144887792156320666000946613550814607816818325943823121339410844625077480434843457818947719181362411465276415351185217821361190382446106558227673613566676721528284317253451578227232356527732906941379484619078631681891663638676914654102170526106769149907989248733692185206582446158056381714473171823558240820118091497158927570370088965607346038845208454116222783389000989675315451413603628129352143870342299320301750193816147117183956554897943971976222785498386201210458833776095770374350578676669906821702429189027293789211024836945013301992579086890859037949273727825584344403877660924843881999723397237907358484284247403978392392242534435718350152145223116079170287062447058410019128703241893311013067650829584254440089493994312136902868129549626201529314383207214199934710844173698529646401200746548245360830393828988117767865468410924502315115790414356041027806710350591911599684859251438417251944672757228490169976135372972156112389756088343742215369193307894038916133218267214331608750687574736097129143874224573237592306190680885879591180506613904270688041072653644519243077927781339469352760218047733218759635509301500170150148156162374364628106107611447828908093085420848744937204072066916278908729174104880869913896273651205407145377528223751158424122441551177798230223697593702556862964066626873122835652979960377848364734602008538961603315332813453824735485379788129475939068881261975502237720353014254637719902921088490651939561291303726748532974981653721102575845929444649677771373430957765573683330799501766401431075992247595634776676719241055889038689235919935242273653765135366564825678539206000302205511842745575479500260120590246567200463642362530850534887671263918449155511014468425656245429762192440790848423575589457225151701036731644741067264827291224869299494143849191233620284292500361296560711772559756768074993062568635671101314267549340108539232815660488311232907541604432882726227008240432007314403860826687706505431309633807506942148260578614381745127978776060711598215425888107016557573721492341635334839488539968234234926468759450684531299485682562823035526888966296844695892730211476866768053561655614581672081964823092125715431905240467097532516770517351821327303582617540329645768749288116200437393092816967089895158954274455575990983965618840984374202660502517293370063828829679724030685342878863794270138483858693562173744206128435158240369848762741437249453944977693064775083728389470067255292685912190056940308268760660819765317361424126133496532020592723564761178254277675861931768544070357055655349078174854576613609182197752995937173194806300091596223084032295288312482279489408782647798799031174283080486704546726845296135140754510594310100707335159841113628232351674744071227723024768904756027399413814977508588916858650660124107412525252966378433365493753460531449595121048807512144191974829588623925350557202672464776190555148046656725312331725921097537936560374402466994909122272164070254624330134259146347353389166841279484094664157466617900552004772752703884857708722668532981602132988168634421216584433948618493314690542348594847198789724914152924996487487064832213137430293172713638627291222738603257831870467581652693632685130020230869943863451313522400178438621128175373844903245463998837672833613418664918880131580420018689236274732587789338724415085856969427967472952492086902029790867648380833071408908312710352085121870155190484389670528998161914606395193292825793011274512852703627758331334368087337617229955344615486047644516626042673679727332293749232344049099591464032376633190191305100156065346183561950614186388529699602624690251994112309294212205999404954122592347950568908908137891527835614846504541330983719074613827545128347130822966225363101033995735802550519624040938310412077372745972729913880971950910320080491673774557039483984974327099633416656698123659600384657404539557715902562549056911088156021129587695872001217455331135233050496502929992929887754265323235290698043724326874685596971184094051646621811328337547984617418595764202004037567049245553228025332564608452533484517464373948914256685118250508318031570573642557543753111053531336728515187300616601946131905144835713955788496467272053032502681778533978335621530442487567998122151226866019299486343580451512881860557765843640901930059324517039516920778417280303183849394595637623139843117605742525558987638340914995767936062288274149645871525576837846527254978787579396499525808899771622016866000045171768845497579897011995970188400103625838591941146621611724195700177269594006910905590749697230097539229695620207539830821458050391313446263288919533130171670039439070133228862885458805769137083874685012056738205967127206287155744513989943460576267921590568531010003444236287544428285294538215694095028924037251708618562480962047073010575598879199928828606107974062393503190773000679652755391857423196252412210272533912656057111752409774559169590152156851590811791787809804938649530564763197563872954459595255612482304308739974977208841147936937871925634305671277618253509328862639528408703852670260545745360888405356587192674207347349370216213191932121702779885333419044089854101810054742598649666143519511947540084109290989696938721857637526813623528749065624032117320330769093693589490797702326937853565464809107525189051644663986230943428221163069085067613678339747840043781578340595478848689487111350704019259465570844151132495431944482514169204969912062580000636796073744536225851745197389350098257650497759125328738231466155722070955279686635152481604453829075263878527560216058502585492696482414758455610734208537547248957327420397957554237167368948619085948460484625664614084383475846025313071142830541189967414649929095389921003828764918929107328292695420653003145191933396060616340069311904468969783406218859694593003320743738609744470331400496264784065117895840352417515945199897263282571546275980860040652896717011440133856448856870066809821889217958675033807063163402666503030038353955199660533784975901470426383713866506625157439509524549236211426698415458803952109839456413050901646584661676239302761144080536212324559479436220194107043057241379400777864372436184841229093330869031850559398503661702494540253386781521732281666311250460523936193246661273232380569974654219833743057945867503229775758979667670363609601679062308856213912616135287792257987862250311854838055075543388440212790029049121727564242876234674958777939440807016487966219991933404630355035294608577774020139433738032541573155005413938831136553695094325337241594109141645582770481909196735212212612892455233472696310273511187755337861156396642746702656543302242926486300761387144969876174238739047827848867305680926264715015233679932642152288474516647373852014228681747592411020152605331265585939511430895933990858763802752104611991373606663205461980351377327067685154576383512921964486850822465663958523052607273151577677269243977170845671469238045988976533970154415241562201424375373527207259071603768989315883459352969158951990555450744096669045989099216754358173236600315304921332574429820294619568515092580357201706652038370460831186035818267574512166124759081122803693379871621373866614035227114472242896279549288186445317100794483462222980312421621187770135791481407737837779426082462969122823466679044394642196423913359305700018269883822721464903506095397815767570772027245792575580261692693678202914340480710519309739226047775868064467785383104831579240254844177138568210024374665330227828392799579978615113300736274497617921742266864873249515236312854002487033089721011105550669972150150368682619299037761203531675059207835441298380992560831669969706221714032656772097193580852327235997642723675025048395923612332265388237681867604603833065828945404804497295713826009412766158099499790074015473465768296815008921308320234250016674335631221987248067351140139635382212483405549980354498078977703037725670363364209719383196655983071635396360790940160440772102518262924753246756756748876627556126678418322408402869782565575054819887474010514936740714677599818941171469095191205150050454426729429130876299240386927541679380255446916761193357819969298458630772700307822899773833391563451826935928845442412139028237535176480809177804044402085529882833243915465402402919651764897617139926135089995460489093999669918885538798285800327762051967889503145463868792552557180483927019763583951670791092134079116867720569915668782808269965513901868467761200746522829035587933889484121912711167202816167764672105330622347376223947345839161952186040517455290162150691424818457242235675040385052673633511416063049278813222374345835727549887786151227736486085054194892594884906040562015995171978258293675654526449432928703928034956721092306028787346713136707245531610168263873833462959795238121701629654666755843483509230377139595256315222899492217091956859901282667906767172581154527837479829127024628770374601609557411235407178491841172118378806164874750418344560207380237569359637151839479931186117875767078571964419889118249373484524763814031181981569300270826158567177673710221848128771304311942326143958731367216627117849416540565015093602708441420164576298879704992113101382449848941809863050856716695585902849410510241168967367067570505176290974356185378677691256845289789248483982582770008778071251365274396791729497395100198355554004084956613945396358167148779104821070408029220080775792127034680524790501438059862215880215907379663903254317462210349247105427248839834573921770314888423360708275335390775061752048991482126539105174638743037372216279149836310054040940923160387230492791724669525797477123045809873953478912475337087642422764445641820747641567559247393123921302605916810736649688960641279480035008786838690563843070316630744504860364673606020552536864410099689101825571300745833861673787835738593302127828407402669082109285742639570864138431028237913035037590536175095649695016920706412456781145222753339199659641637507004587966693309977810021480476125741840793408236634306539020934141532697093777929289984053361048950879912389770745734566524352191203000856199793034736415954558249990509587713410789301723223977889020848518632908864835455492215873299412609859480067792115439034154768464245603813233689279022540332772308095052027501167498027379025968052240921935078893256759578795529879625882027911123859531588319161506537862558429340485057631061965819967857004857684599082415019601892825853673152746203059403061352126467769752282435538445871895437918760556204549949031947914927969815368926063321174235308947571569943822565704431708852487011951057705915860275864624143936681536850511037042201541006109857708387264479038681086035456235977236985930862008237046915913433998613147518046143017453010396520780850230455047019530266089969630099048998359810775564837561208735407816798265084919336325022767343431310060608861826877923949324540974063686790591956956266828250864726942047166339469970531233146633887168249007841328883114429097481882353889367432258886190649991158391429984683139716731175955987019831696265445224004157125942056371941594167033533515687903632301941163828661738731472160110821737834507208622678319460090781411881565273895586568397952121477525826712948308002591534258155372567641963266139059227302800127837598832135525379069009140509533764625004996952425241417008393751602471502025511125576753989676493644421213408811998968933642722836945051075581846526447262190345891673758940723914874446381443905560040437622418409646361442646411895482263855159496402906515916862698474776666870629448707226914333395217184647070962530465194692068523549773144205187119252063409255389013470854278568368746138899941070152901319327721480387211479039154359967470142065704529968128182299639337422055802025390507618871367048709808263370178912334625408913747066568024390496198426257385409236343368540759480558646463624926986389200590204501932356771615129590830149756267541338754940731582270659040272480792477403216721660565051993146531057971833488570128108759033546208497224152514988134698704043650248035575855444876545031678479793577976483442341834536755586440863430895899096179947207630426266846636843338562315597100030187841511186376532698294016894242527014286439717158329220681496374188277435743859301127851074665921329673290597736774696225617258037334282651746355202402958755465525107536481366829877039943014004715243878676352305331239262615363055922878179978816326475682547517472425835279116030968950051764853466047574194542372072456075953698596985041388649556125957210463770543906295197912163104053462634851238441205945264675341565072036434985039720423511487310232943355978720612319141252495259914013293694124931578072302237113047005467360827420432319039409187370173209835397780205287288194459165257602773672628069258626911889042953658272058948826759834037024162170466619121262944356123934415581980887326394781202502579243569363960609165184811335507898361153183706745522584149032979744020023247056841505240587842542559143296660442401054264172966239436758100079321948692620270919346586874085699330067140486713666654354221198588094533695348938327857672655917078288703466727943914392559484245860544719627262159205075132382558131937547814994344559240910634437367147591087179237033148663450000255216856696555015327707296687823668844240576183776374147644421194257829209687398447157175889654809523116964061523196695388274517501584926940893087281552445084308665769728190904877496688087056273397014317260441908179294689439572011135425823257958987631483327982978414165996440386756686738819788954327902534198598966134207134521658003132688020748060824340218257574801008156772105508193546274322392783288558005417004456706521655084375326771524114998505902163235247093997873741524758847283527229156271368031846307029383771600031331239287379968640312405532576585735206486410045228088362135866006521547726565716230783117231490767352752728153568599456943153827573743540784407203464296433542555421587838882266369117691415245744618732355618687828795540795715696831464758941865408124572600934610300407235481821691049514849963244256807001645516324206254277320323891486623750921625457415046121650351239041207407023532156654539084480965720862012340216844450642916372690366090519858408189119511280938207034672259559842783885506803367788469200761444573884820844384414407755535968834729345644818849898916619771453733305827318925870538810110903220894101704797026339706244948968509498412078041500019937747396529464372039944047352669144291417014051459385953945792199574630760171131246391827852732403973492079772474399792818922757020061973725061404485982373305354893780029077838029684374728806819429944990759506565864954413275665386401527596302050554881001990864264332885105768683028488605127135883894228519140149271805480350465372998192725503933157954981659176961828832551248788516787852959179562146133364589027750344130305110874447496311802185359238529485568248566057928539975046942484305872422636632979219637863592394312556711058684601090865529301902705990570268347357286638409714455376106753993225633913571631863347696572992405101681481416358220206580072309260311070060054488409556386665755656674553787461545463510933961190580584048393412881440296727421122997675020571579124910720626742871617614264942818503118567031425612915430646968340244272458908432978823421561199860227310051791771541875112474283272616195637038071697214820228225170424976601864777210379468429960606569244131887654254992768547340335509410796759028186464468233999920634125921558920062606840395727703402341120960165264156522878949007953343247957986818075659674048552575767521460918388231953943224041152543219747838185532692317345107776008953255192709441649120924257359630857887954531445751952021156972886783763872771487948879290760754968196323078102203344013362264124961901148345844208436833195939476091221038897638601629891098558374908415904383008629288371979867978023470747820024052427535586987214235353822635801750571457227120901934317792635316036468887536895396862384703172646267305704247373935007916515844308344702943255012986797119338846532973485675423650616975321468146458175726054172908132960026985289788464683569554754157015415025029902567002556792705111360176314307735479933467191018450296385851299480636013960848592762759565980234936661517111400143126864974198378391638895292069675184062915698225663818767081254865655357103251487454407870529977919097563446729443235383603054664999118807418450101347004453011057467084309307260571225311423964339395449588698764095302308310444724298051946594005254191710541150016336285195040408892871822506884062751213946654899497969273884980000502247375129607878277324041948208777610867469660187198730196676435569234317343585198506516045760012012139551661802493208950695662473748934558598945395055813878057556738127360124659544754455126509294202128739939585623075890168399171894273067706749523667505314319564570242193386579810357117236292913108748938823535796668407196488419068671942048764023667662185475000240940228541638049987112791323412728467743802395039238025815424840541193470253746339628369361677233288179171923525126875851438496041067481820245958829949151506101407802776353380530849218672932095846477463449206482489500536604284144577411331949059007726080508733899767114621556334153339199039151775989953469831428127401246958796472056791255021137491505634022507117153456336084576744507960326672129629426726377521045736421394065885094333179193736462176943002581632658876999846715164249253979616289395542917547012670536068603527982110964274682972215321215242708928502492107189628870077621273328789719588813818875098892430842792860943348735631591677259599601778443629389375125672273603021227680436118222206838363921315554823068056386944136400522872475600087509760309499245814833873581803386849920912377360983383663386311194832510509651250267807551578169649499879471382841736036735196830890029873260227427920132165889749957718002288900025068710929400617643374345686998238191173097852244279166172289608932134276571387980956605803288887775371115502379819705745036326938512528184478996851733949561749906931780654965812934161244903995509812453635265724552274054504281338359245626939702466021369891558453383776454398071973132513126353885759544140582049004297589819628231843744680230549395989643750830347983371109123611852552633126132105975982249411059490635992242336338278776094521575408652756602095531859706281590931696543053011303050239097077837577060562305767862668549158342711033672014762685156736545113703255711115827459664651884821118171922464159418010044438574043826920364637671575091195703608153421578424038008842603860040317051371278060105279249840871007546473809372608183359603932425175241856666356603282799479941364461102491441361179433037706830318853003885901369538632649961605391198552531407058563425540261029023865783361447286925752582430386546449380834159417724002544441016496617149347619358161793055522583104908085467211407662123223947390446904461382152939652175129581494140123398075709294960167682457222892649420526431723267315454511068243635491900033721985090927651015857244184211505794059855340647143389682396549887111720498938098945789507459720720496482240107123772447713972932969805151717927761132676436756689800270037757106237434308782732265468555766352555392464012313336888847539324124254050779509140438683659279953387046268435052930583708761323855301764374137505676187803807628347115932452410159734705910375773417529555629182409279986665273943586009996287530655265933002527249782616274802186397152011953797539980221025211497126953807779347246980083903269147504460314389975523416728805239188046507300958750681691064427684635061051131689929342975952475165988876939384043445305685627366809508755347693781210980807380984000850442947650673731098920117539292032765442089485350599678491106342802257044358323793911780029188908006200427954673293927641010703289402536580783347103686255679558359299796827089450489381809698246606592915868144761302802846165243826563863267914322447963682367423505615452432407185830989265972399524534148199793921807506536408449210406683723329129300919013304944617805548897974411376800154028791189978903427798371262976220291895278214068415780834704561782917840440602810986007440933598785409699552496403218571121843818084432901800615459429770345642692219524746333821994879294967898282051010375687445266102070334347015402644797966510676363835240098928342287660032617986720366832719443527674298845850987058186373333302152630863494784226339340189602322917504349058259972049258332925666097529067976500873700206152869227945049215128697455874094782504833963724849532237699480475432087252070572084739973802097889316678109442580110394201247066871281035939765650196068758539577098078633658724438602117327896141459161858790124696611589514098081552572053634961968496198095714230928251624956558418473805842732859013729084881293650827317184227680834053681258255603983383944114468860402792500752646449025364984982565147608772558492377545564438148877904061532652831686839995954869907519814228983639017527402950049883428716971078310464537572970824058058912328269666362141299940249287855622459877500295599085317190521546188770877404036578343593044638394925616253771972878362784159841474089354423232459026438867234832439004523586110600462580945215546099833306397795168991162870284320914968666244921065894273066592986003660513110008905113428764531552320046114708346529411777921858296340155783054454856133675267435462276764180306195517415794981004275477693261757639121248180971491147949809829058682837507929841649877043133154274074712089284186822649969551964849825314306093885310075916473649660641348393836594228364066024302654088522199710023060648281334935731105557908178601994339235243197674773146413483232697863285582407066994174186626320564629256895119763071839113857137243797794400189530882673858958344552186381806524914999427220720146971671237449977403363424043378690907791201394765473991189856299270009455864518481194691965706524264157860034788452904583588372312194315541892201022336795674844965363822798469179179752444548060346105499545486764023444361869886599441908665793946708573500161970118133876268396627015636502548580152347707486320365423286268146963902442509519705370870937064838355486700445417859968413119240529743597838154580852717709946023276041279178716104223348509708147923183192053585128254390047243676655702147231308894773812839209028206353659063357395214412861611691913432593203637289186226892617417041978996197450957639182634305392544393924515266800586798628911672883823955969977212938515262404898638473069679379003967290939227309290423999644686004918021377379382578943263940316399590704300691158451908123726990296048516556553628108541563187594891590816365318767049188099420413290284524849943854128252815733933737629770720165103179156152801081690189052151744107368905105181294182291133376672456662073766163045934716719972241972276731462449573367342570933569595644554697521327168609405377066028760761015212318268233930819553352729604633430878669221362092182880899670492394570923168504802545565932850682278102957044228664308853554817807054945203858040559860425722793977469180307419079812020684325511977726457692278499481334197913864491737295783367845336083461008869996221897967992882258887081844337458251748515906248200574888519333130433386680995273099889249770201695749629185360190202686287238536006007372989273271264544593698529448280266481925479212553402882358258098980287347156810621165514656858853901120065376752505027011904653911116917867750908422409406469369337097854524220634093019426344357743272415944492075462929469632782652341549465774811775908277709853267714277399694067797660042993353266254135568779347834540452351217605964999866646848678412253503621332579044927132744196039053831862030328763642242150980654428695452328166439866940013616871576070480738184592970847447363127628363221562450435303303600548349498434586162520409384488399598889820789433278875889715752421780508974754973843223522638322080144214902130587790785873772417778222395848719875332119869248049424711778950899708383547786550110909142923882060288013124802884746730818195207976916875158897987250336922595963437308811179257341643350480855749721290606602263546128229248647377307635326374489109377156435883541416069638726294708614499988412366678158473848513381345602528303979714867877646361020200560094950531617757504096887074834697019024817125394322825820859380725567690425615402645751835610531158930911859657965350109263304432460256913252392066173173300081122589171805674525012095068562617463764117918471023544901163444437801885544502268123871064295268489687435143902263957762595243208629936159743590974891407581424106433140231895625568894817844298674170397600591260344295461097179819098419527008640258934972602298223378009210490516395125766097434855466055674481912499842065115540835723542045218093771402591806013857323953876012962627475756423740027860355086144332456908055808896481970634487804090862636304407061776145506551516225263738032605933179902332036839191298140061516739705249326980885067989220981834394942765520799728906628310043933368173029653925362471850372730823848194298376411551334881218947035857492996308984715960070756421877712862625187775137021161747662522190495863371250842761932039169340491073845754492116258298942357080464796743333538700843062851393894401857767983956533775844918614059029161854591442132854651695981914841386454291843320468813350929800519378499019259033402436574100535165845153476891460689305542586237326752819005865234503722249906290224155390381946525981664873005488399490322583543511307890339424960227050194772455427807247415048358085346800095822784659051679502527632383780407266555811044624078045554784735884678650905512260478860219122910159078367949604585753021469651997484010086038182676563830844387217393581751845598091060377252851336856709612419976842098679365220254854456137656479337403466317404678486447039975502255287944326062488799965114598593531906364551830980712925623742158573513549771526358157611197015209797335992001104609894611951195633115413273420598272886965756339717684180059379426822120890734451626509329642403757461745511474010763928397418101541040538804175506907635448888467620362685216188414041269839368573877745792842902159984505360032501032737192708370994846303952366904232380588627471956075604176464027239527586046497889776026321315817928131297659669503383524388864832280437749611850485904431287386901551034121261920800947732973146132260130341956250684406334496214495012456285126064754633347408830171011779226755168895293677004828443438178455475009014393688531105201646895158716713641910427406731662933665633858846003960722116021104689045573187755897086079938519975973499154434515652215047181096840365507407023560191341580563931613417663871529722702685740664270916261322024527169005050755984323487141687792430447951563082537189522305850753379358465081359221165098422962514806641305735143992631667069389811906793071421324236721775796083831518815950281382660857775204955192300648277101639631392268247635164721418512170896067036768654754805024672754171977963462265136429380229719620511352311068651195897903625240789794081536626533512038418187977527243649797967821117945467039392659814162701522020236236646186974751266546811719885962644402566294417259753818203840821288036957549052266339233664599758679954788168831106351979293987137390695205216534876527092594507665449109414267818997978601138167884501663443345754074343632076915667142802648858652717412403595244709285073957569809670400420780071938636200605793302721417184810339718768433835762438130545512399006002614448301551951209885845326544257235846758455087637667717355157539965790866648789249232996763917865043395169448842494845667656607645775838252602402454274308522805867419739782714338183278771690437863515216867766335150826920639070614183396457796042138112930433009295247484687392771587734937704225789212181206509410504626796252473972872301678285166257902776680059064971174686647922590966000897470391101887540520619334288070389686504181660541258736579810659847471846521419705805944132743965593893315819456553912970810828063101757687749585257333018857896086325139962021199416058317292636878540137426726642150252613387141986266210928514726969716689448398290827022095585860851459646408036506803191946108191184969477155604095840138277772703355812573687690674690825715462116655905384593758469596931700612329317460046353587720377346682619747965667379070746725025924919517311817561511780428896401533137346758115630721865914470985111556930473156950085982231334937453303128440198341842933327434768600726751469406816745237424480318113538080313022083320167755543924966193109670233657725567792047963745816943465316545071656112727757370207452200938085306087383918468933122312897729906172278715357780300559838979801976052157166717390832193917558656428316805318958874551334993901009782761115042778770940834368457309094166828111991935593045157240929546096972953694077538609258142623812541985587406397561990643998848553169410190793301279838592926106966308262895320804250545813925878588252817749291187218870619631373034696915950497025012784838847201889898135454507307435808002925497790304395085732496092749355070298474098105369230277035911487864090583157125168277779265429994825524933051585517790483912714533378414462518841654931261932034260323595087542243017782601360761087507829267550482276458467276164727881951068284069212735002591733135218511584049716840193451333364047157141460881711098344168874356304853305734430437637284289683017294399071059670944724561729073100562658667060981277645737783236046796989069587664674156563138422718765443904839961595709065240459650798620733140831091388402741145707933584365380891052706737740940882799789698847072044418098123311873613552037828069000653836840655419055748159377359620249988541502957636618179278609258296722659383286555876144664074052116859596905116336027606636105920241536632599013898831460785875395698583653537335519775324107585882410110864716919164252129781766036131889883171413678972287623585850089172068780178959420043897836670047780740309829862760238987455291640776204475900311404282571521087622206693977549220485575537257795157733145782852939223333037755321742912548444121497866821740106132679800609373510940417328795605066950514572658328773672918523016120312718539623555413222399800306019449022839850764255943209972636042365309627539422926415565151431043608028342902348532719252690518930826026382618608443855229342510424571055664878654188168130355779868394262063935585743943201144261846548870487646337778891125293640232134405238721177341948532562478749921764378448868789367316347973356028704065397601337490628472074977561198337340717068492954762419716826190259939097008465530212252401311581408055063499265725593541910857170097435030902976990304990692900057539841254050699871487793228386628094075113021639469079946136384487262304182062893864834379586898181878223694759971490226613084912234213327008434319758807737863888438856607999587079397424179918732645298970334450405334298903834826237494491529416822627024891239101357774126327560933353258751264279306332754029468153168513077961230599160225113819492943192671531863063290537245618918620287439146259521120571377764862629125482397131760456800244000336001754402055782697360735612209920276407613556984830138554650194643631124425673108325779848249777502229590889680127418426701618798199548758141366308343989888473535354527811229812490407001293341040525149690238581002072811622528093562249500939833578253406297992119131890241489610892744784438710101849074888927327574154104041499982957401724693130280505733529288317939582357618999569715557987481560331642444086984396925540547272072051968249031314133780806142087192426197368022903801372769042537237426359597804787544925610073723424519494678051867674757168259499335638953018366678973848222042142325838237364640126899269710580923638629128619602701626118240141894159503292484030342576834037110781214808477283234953433342515652727451178030932992748392311214905466730370478564850746523697653703619400572724171703803650884752058521141591266301002105207838912480028897382450190772658407755924705943623657433926197336864454906519834189300601397028065522288518593051342252827976986155751335083759256647443767145874585733459074771622778468147021841845345456584381497898151200202795942092176230185197809902237700566105906277249686854115996806412037531251090908941674050336206198945964253840204112297230169556353900481702653599233819243735469069629594284519988148627814666935804233288959058737142308593210602351375101796579898622227928556129701452110160583771792468030829756590163832371567380638710811593803442032634751835542680970241306175443280420666592992176923102699983159675818005396263153191416327625662047385698743253847539604879364794701255166610320648079393378376229440282198047618282807715238131748202925396810193432646725456531800722305770826173898367291205255025163413894231106776918241237555458269154899275221698134134070845340158457032010038865165101339154706808685088613187304481083500796051581463659383259016741365742369612349889786000198011492234823310225243437438101760660629303836180254361734383055563484532776093428579659185840706046568368694029552814698646110251361655076118657762369874383741843192349021876110215618076980774982854075244175678877090250491056920307653856482808535638057863449755006159445450534280496816214933823864886018737999001539063994590249398030065712869789387720400486721729094204689462764766222128462177695279767331162555105313274907425621266942402785509103688113803018768091143002345713732786393511901386684284425690512244323288385348614209779635450930023887167841020813546274826215755409296698796308788066072737978036845380129791706417085040477121804287586403342091251380878471640148781037494325025015508553456655212265119503745764243033572417461985085904180967551488723910665495113764413447595114913028401420982138263026051709574571698110788325600458833516359323052605987210804957683276262499678519554437235927326456542215226788806495294975080807225822801997832753459559618639380759536928831224656106076923658592502117856180229197559998689394541427889253142848019971972231548613772078158354605474058951371003056577312241810893323169712300337127842068412889872988077911310184163477547793581384962132900145785968479474684422545100400555727102563894934152705511825109372744046915298210685917201297007579963214063969492217545987904181005332385691253429877809837690442973497996636321334058689398949958686364649959983927313683621544894492788299731024858020555113017792513157672826687024052326952561723275268605940513259214095567508485846959906820731260043095333944285859922553722493882629426299851094195191726412701613844761618691366746493036352906162398851929221927788539356046314137188766003058519561349863275770799192086718295377816753382826595895666951069575152162085816065879026712689291310997180455473099663235041391964311290108753718630632221126480721523609215438768432705765425344683947430317239481287067535576923132837881338551833348745660240635168249558756036867041914202377085176942809779353560170923995991974668200788954394820880509206940742666356100430853418394457913133316164512371766108661874274077786854650020712416707045800551051288228858583133646178209201874501502274224394971603039618475603504555454007851475142188228881604476174017412002023501688200221076921246816099217345058329606504365278661080037870009008973348292462539851235450060669886211201804317863008290604515562555116282294105693267161954202161849572415985948993501396352795585051750195486586250054246469429803663118220539681975068860501787594672493680466413068672983845485454267757573218488357617180901495672599157721423945754244068592064375158927369288793710644374740819682000416457755060026918025199163334800330052168226745993841723035159982973421252683585300953290042366931697207761077616428484171825445900875387295798594130451489723450140246280869857070034929705490690252869445792664405991443641265672750123537470147572694328779798443407383414983339590271413049303263885234390972069146002555403143747935945308486209927356011283037901704252150207044627678453923684084400534817588925902329457731579802042659258476739064451257427710586856177026596259545795959476816673635579221195963630199601688137166297004107102079035604687485972178784466001875112343367630715301257785105019399992763062434868655817416540909252861374876049308844143539661367169311475488010901600571718709352763599880245947081533578544772962377295365226753730995332896912628915303608933418848589097625980524972580764956317693764281338767738514863012711521260891446803426550758155879825169369036262305583781242256529831230608123203764339882842270181422233546708287350285132337391512617788076823301455375498027092636715012610297748889964858018971290062504368128954181841668689259325878373875466222624520669753503375542679577918026194202605364962107939802979819589217213710941498378600678875154989016505655345727638318163881008381261978043501292689112490922941241932055646307573083805797265158083773756941820210696455127389728327834804827420198680112537196525693102152323865400821757074809469957375104065087915903040434501245840287295553071146112973337750077936146845188389394263154098007382504277108359998727432224273740092564104580597959240596691754824520287145966716187048537252553305551434951757715984590330458203573514207017746634320486317777278367916927061715476049934635787254359046826527051055940903834822922040354495491734814025539943547432972685129798678686352061932563219587059425026870800902320175320480509829588108807582548602083580453580514032501150198587366714831922412308892128325041100931168620367595609465369055374349604889464945718487144409245419442109967682363155480748431157568384810177022100860553371054774528922365625671951628115786677037248566574455741443992721083932301522785556733995926412160989648442261168818858388252495901927475996200497939738789969151942796302681095000037323473530024891035908968014820016204240401096558833180278724237215288780906019583781831320362367776911566346790816656075840776581309403474108241090075531961168420019708188600056527631977919390246262193665875142218513182098751046598471068063899079594080129623787963765453198695531969582214711615102071986847028707243146336243043933420367760589349383726398271503393094988701349096998241117409258189853813834223326043706969106156889758276719666444382366005968804369093799129628781878406329352677489987084743543531774424517352195681494010425030429117013793542442198872438445146405601051650411961033687411147957829533340075477842295352703188473240191803882004205698001751680945924452065015515946396231395190298273813344947053084902089599556021188578345038755055138528077394257601738814671336682474932216927829687102113646994586581715920720377577483179132302287276007427085029191909550986401905838847342970631390430210830158784214987098503885110318304534400270883339868636996180970799869168765887995073980733776930294881048749567580525150219356337597577751090925946177808441334153886408183817108046782081312169552927371156230518762137496151798084929322560359307993796097652963726748726013995573909716365063416378623294909547462983937182628312750007882361636007300946315952642470069690840322626149144398759795083974358754535022920241298741216351753713644863269419768691138622568970431058343500260145506279421613679613086485715152518264080711480413740562433355463393073292289274480072286758010192287343645959899068648343961170550194545139018783040470553444297110642917391740690962836247858702187081020232437049896274251433824270913714742644744869222930664061576165192368356800843544554959933755584045421901316835500499329474989493919104372226115691887006321595955584105190344778238728309720718154319110252345021794911835480295483932823682826210996308568444426656546876806756981405481617428709389145488978960267155103216088064860975416271599495452619350191622120977124564948906708082217100969161839473181759533081178860950247344544682799377428858926394992289243210844137292061816999381123465996504670334482241079331830328598447759496692189032184157232114585739050338417738600835259964876575151937766119324042267238650626058456345876173251676530603142842051515378958346771473429696541371900164906458878305553749607014754714669716526848475627022918167970517444966349575440925703576380225030762383172719231369099745575156877683666433665828619557022093587135080492201645174120033833412452202084769888373925636288640803660375948232167391674918142250762128279631638641593632213880933033849979453906718995178604858111631260520678979967172079235082605263394585340020504403117696381038034290460191370251530856173193230601377991781023637745656817757378678363482921510325367245103283708967933179525181944333133771677233192640677384449365747760842332920319849447123656706095715495159830843224372629030606773912816275158351259963073250237924345711318527802198284290443154917703733307899664456104505642083960450537851197300362575086219363244434521900439000587266913047917810759012687166348744753131872960456837573094022778155167909603005410788078121795299178753834024677511916434631371812650236090742931420373152692089978280551698699406882828433785642269896180602270476972442339900101487979346876881566411385161057292228846848802950790787692479874233397220719759556449213616209617287344716706707095035126365039594062220839578148885006117908600547577812597952829992467900812058500024795559005240098441914129310417191832619031791865716710492597238681699491251029788013895496728359217215015963625339857941105210576964813990878473073519751031201053513135253045512529129551704236832460541641698480579273013092507442037911719436485938112473876928789386207553071886958373148933082192048012637723079700186200445728072306239043973265761425333017268767671635121793065519808562530632453345190289809779858808249287028494657959803431429241803779299224260521666344334620211393196471865373562454160179108050216568094479806589449444320569206693136092343698873877265114795334854315843832272199789474538085922524938263156641933935069850863921992295534890553510253975820632893572435688380619123631187827357966855715992550222835339505772678024528467074695209190229093917135923655396880483658850948860947797429761970189541645913429245772573613428823820483455280418322419432277500066157584866834585529204881165407931504980671167243786566325829749371329999219105970102175963403637380381556980227125459615639522994422699364449842155401423279289402070204161854124510482328117707763114136536877030584193617771425527256545826546020429726662239948549529940465410023600630640292878198052402562487897658970127182529864059877878975186944513586233366116892673346070699406136463429268208727573522914259985350194748068017945767511320718149857365284650465933421359438670303825662760801529801865627583214494959764272060492061330283336372230188481262080310016282354800700285418047766612981847474499014770850198803942672283267066380927655428983991108268773893960458592414222047434204716557299887261919405039961270251103632204400634651401735000769865763623046716790328995243633270557780751387455756768125266318012027360701852935420549129652227794059071078712967068069591952081733303341329492743459627830877556039718978799042663360525087286867921155265726943977799606492513579770575233998238990359456298845870184181044904640059756459541940620621451806282642458381094945376447112516306488425253776079062608817275777030050655465385619689159070944744616297899464837709672898793380922216618272727012445193281833117006902054691663919983836526895728944638356852226734285540450838380027956126356119691902916246188389431168228458480063196884942093459852986272834981638866070338389183793416606685049349364554795696762916205484532390125565553200906683656018145618131493567231747895618426494338066413593210270624677132428532659502951604509208364279596079662317684519583064116082102681547660402905573798394097168661678701871572320085653172889237186231920360044169025163711390322002842305427105251105808419422664056316576190208830429981042984325996807978580844435297455367550347555628127403759246949519426359607524983855134440097684475599325950312066851872683479318428679621233672670839677257559125102088948195173672992725101290659523420904858095029003906201830054441896646180143352906432130020844789042752758420219085157679881782220820560297738839915362947418273042794612529828615921366332474183435492115253613660549610130536268268528235100681079001885031621543949994770231520529889145236144724465038483929176934060616895349892926582276970730556435508112817599665245196094891875359076964265998267326098511435901733431377963126488295438387379395868793995449224144793425678227757224941534835656740963864518369626520490310670668595473477716182092128722592007914530081843727444456798690313311559861751232900288443581927113307956040889152369423910550629801419690588973237756187214995216699927149618641347216293966578349935252409515353250578560164911721254734259182481951634192490758118625851768731230684426294691911754635927788383214461769107702300166500082938631047167904263755898479680375524815133951172823617949362522638801434577798997649618534640244680954932870211486759708855841425428505362375533977073134899856613451666689038823408882515150002619925977831055371976244464174137782719929946660988231808605071569832349181813125739545848889307986069412513118090509587121271941655952621147872551732621015085184835338195474068544273278518766893794830674202654377944417840602772797001655891163316017633087534692761118352445981715371609579412384189662170665037941817554379664602069291524754214061961037091656023641648627053829127783785062416347776470916425404074134865016794554263365774530480106610337152493233524885370011261378311933466232870268386984606453084192250008664411432448532635008200530310373297420801135035653544719404045385733342035523862270732376426605269714789635843759098495672473143928412730248676147996757518313677855645107376472427229414193161369377330970305537128608106828466608183805728864615407397826536807741533409381648069227287299548978090408547400826425720134720607161820828335104816593486417656385702734153378455181450183324663900251452773646037644139034189308094065112223134706692355818080429418193124571786836886812858337497812687132955138208417672138825341078295999266372664535604743229346972343092605515588241396871007989830747879171907912787247915555297023598298054709889683411725899435940396231382057441776892391081417554973886485249735737011093353860449741928183077138610787616351080534206639612526161445921412928073355129137867136138176924876753846397462882408907683704669821272159475447621232617810515557280710411398692802226310189804639025837267329516736953583619916431062527777840761046232794273509778804551220625107576121296680793607467222548345885778207741739404740364998884869979396950520104624031635543120478847587697999477748882054978965939420483920145971127896460530895853580577652126526541135391831388893030147862451998782085802496591706733657525154435211680998770862566067046712138826745835617372128349841050522860815475736759642350672846961700168439225033680491233074019123506609437845121104603377942220010435872489014845418307673234734080521496063231247410335718590324548548551161454331845022358793941376514322454027874843354474293951140447175558208536676824425630240091550121714544660829864901525982424906227039758836151627934309383309135711220746724705980306837947621042828023660895852096143975713592032647856845433517742161853965278168173470169571453539834322420869019897980586805086031978856487943100596194306890174760285148813212013359430530681934928967291799234695322727387760415229831846306630040377533841839671723044023679656718848216687672372517896796104211842111159280371354346905460648345454376990250879801766091390887989908658739266392666184077462744818856452332398498438594424476754667966499857127255864262646230564877063035652523802429433007767529706221419654972475006966230241882096635491439316641947648190987335303944021675231306179461161992575896415553654196607951210678400157023771069814851521135869805643831330610503876589917713180000580843568739829276082315017833518076417994303114903023683443826418751629197892693278337915651060245810567544187081958493144533994500161961175073223173092162681403965375089757916116027404806712809469284923621980890067897480054787099200712264029093752836494915635557671582350517851015790116308402154172874480402224102794184198806888028563679554794747654645786154043833655871307020552631247386909442318461568572542065396360405906580402751929935306721397882350166106978657314071036424082963352064686714423079977822097237104271456088300645384304288188647533500775535454913385713106466922749070442068428745542370254013793195917231575623253510069561327318041954013772632507557141105272428877757329794664507606508097996848212419647545364280323638408106401028494441339965290327143297511853547882313165598850103984200248338068750811316056190310640479239385526205300063307963406095590673415490364809962218344505241032577702263042167030105360768553589370295200322796826090881251775263886077197319383470331296606384200741110985886934836299378088446534657349410384231308867128441506139941029996666205573201330082750153215681412603684041424372614494289809927685902415678994856255066237714692368288870355530334384918988138862967644634249755941865236342420527061577636388654388592794439027751902363351351678502309462700565408536611721550727383920207292645351050811867153917664834843486503964642189687027595649970368471865541164970740086696750631332861062186435549260215570565797175940799069473717539472961279018710920572204372889945103527411959915770550000018255111298566381230265556406887144003318669623572934573974490691984708739321573259092927673961969998072861129342319590370148131459581571502006996558147678578198778155941822884324355296066696628702687491929299131955984035296142719773402443648457468516217838042897264695286144970819645305413648000485454291336525589618902235148833358100008832127032457195152671529876934324926051746510581251707166807720851910383589738511122991683630228768762237769949291868878994689278513764506828766033713125685095324220430513550268603837388779758776638425060267319476659258734267359423705994378667069838235382933366191951690224168518563731602443575547452405329504765079403026826342388655594212212241415406344897372823171146231656048526151467936719390080404554518389312920425227972570165810008868793373814068632351313135986957310538660069041790665236956728227053982353204228429382272885429132439638534647020202579266564555350125389810583322711455899580066158605978781401331665257105788728827856866636401873978553806241660777751300277766128281620077503158912012848362620168660182312710071316337328928801923631477898725920244514107700778526227285413577502228958896904712260886004290451952740059740179795079349811532777759388018305841612378380181489624671526632147040816860459729582404804341047010750425533568829203200969612256137647067011539740149981076194847217168871273086295327690403184997629265532972982209056794249731053606067842611972111479052258743527354880728702034415179262200467395344340150803499391701228494499293026382860581444580833516628759611642846522555322496549003519408904855468727657157818744044177778549144155766167378573727835180934138480485467759181018619202622647383640939890907633269363397826154856456407843513545336818104364785171991544739575833335201514831762234022908632830640178463344497864123694007505777619634869973650506418796847882261501764462125254436992905978313592161667967995885971576928952142832634781091213560780555174269233475042635521158617282601191606843930501989114115991508359870212455785375508464493152824554779661458504655911157113283351044777991115137528136467904582820259124995842283356924518271664522651384943456477629878089275540599951420655723076755374572135295163298301387919906485549669310156954687352503118948841989331935264359530476632984842704454011247132049504230524401458898470550928530106215710673628263428872108866408924908779175181205876274261373725020294496156882360018156923791865074019003557685507212105707848093423751284000265079128168585770859810909783297518649658295131458039258030899326451736753892366772255747949290892657334345600239688072979299249520339936794100457472621424283159235709321532052484250894815281176928157378628225596925494474292191652376926367593191916783188028186059686860314517891590183225095629737413119386368750905603169341727086343678009840891632894748165372649612437471046821926888643320837178531449768577654242872827707304611622581166568087350537184181085848629084334973933373389903314194362864590014565157108333521691161120698044814150439884179189166991517806678741792288422284994382167575647335901382699176447592087766893304981332319398213096057956300317805116098029801131157643809095650373605813043488855899021040444794031148500101256055930280538755550171141654483058289049674353052594669982600190367113141159039991307046739308312345317715378659947345734588805508860578945323502908567979776193424234091248355690216552165593730728330669101773447011095093306874917272835973149916300467824597768416009347916314911095781439980143063717260322004816574945122922261630586786848787822651837707057060901838493497044963145612956010690356039748137957011062670388384845436045966062699176003543328983905024999847139796385235964219708457158392578571481716663360467983309883990831980060415258339342302678404460100486273472276570453906930750831701971225257157023362713122117938865177007747793641139172065531025909816673324826781132758144232207550752053291623884903357306284023217816082848170880216398694010934749347749336649398145020975413026895699438908613199480287608552746697514556627113849582436766779741454540386210104136444766331263422383864326079400752148190570166876464310355758491327830968012195844454718271932644469972699634031570401661888856097644213547540906778489712929843043783762784774362336862898395960486259696036768203783384256170645858072874695963305538992805870412628931644705609485400070946129411358356317577279330261186474790512315704511783815995801998648765924416377427351150335860601352063475081422132365632446520804902826519041613624053526886890173539253772614787983463310547482129362839052557140663786332794947755455121491504403483038891136218136229659498582781305901681402211220238921640471747757114961304909422957028858608787857652454974247137642552355460168320753266736628712150997647713195003184908154609641909592579815548535553531726856464822507198549152390785639707077581795141212962199032035689059337118193498848896782029773365618495531360064145260715581469638936636297933522274921217824847562578447686739918144713374774673197811188202060558464210788959295253437354587004532728459182486140178647490104093180501886644208805845052037261509951236562104641469997618277919154690478198340201648342073131611195138347443705844727901602710775503113365978410666482657689896967055421841262062462946717499356464043483212625393891180722038922578668325685971726495584574624401159453692571226689249709607450616911470324091613101927195232095793567985272427057972522742540219406013914235573697122771537953289914465827861238210910586987808879034603835233269984634606575930548224786808911565672328279379053273292917212068392055854867775175108181427162622843042745907776160268007004895303712372908339490667118141219572334248721570768048605109827722500269609636996096354474029625709437011394359471168340304418547708513203463235550212210706365536724510033252602526801107846319076021464322446352792597443014736439396807955676470023141756920035533978078084200938238618018936038471579900853791073035144225682255841701397621106891475718939004241329089345153769587520083118003172873412125633777804818580954746976825239298272638818321833313173046829974632361151633880808164871034272168574850947895202005144861467356369803352981867415165463618335736117143113361198705564548163564209356768834580411884561435562421699652746923341946035302966897990968029847319593271125778838617135262208486307881304986800409322759899978182748524343541089016579905872321890494126309730899387572912243273496426296422378542914999929123988450790035837366031573171012797001630709259307769816416260713569930412095752247495020682594218706016243165071070532866165307339542638911629874821787721159256328084865786108660620348288543358782884165138011136105853600226987784931315384497189746338076528012780681337056862122976259920762236563536133809987399020569001842144764768893393795342157705401757850416771360028270274843531868608517624461494338873270369772283530947043051207161899845915485677729249828035332467120784990402866414968011909524061402608353353587175685393801895523872505603794755572835880266342350877785878025787636926783028729339151797487837020900185143048806084017812459511125892556479511222106770551634054078695732528993651618621674435760839542966766139952395688111965385230569419884523891148807100574846406309440816483291831733541063877928061366888651948967910869738646877444375854686818017979178626824834206738159654948533010879857210652482714755551075514640019499277841012399411006569890544084666452948561409399699406493390742565811589986475435751239156049878548909267557337655020002812880353747842160913251564286355870533798997720087658733013394228359513910139527464711312598418579002209862116369749664327533275150683097889996779560535357294022922508197775194243308624196905745330901487372721908787987189578187526485480627571281036611085091003406278998666826984050069955904274077039728883581623651711349240397612866886537480162119946820135582636388805319946571817474609203512916039435992857222856394219922177215563535050184589618822316487624950921832185126484156207467650699385014273833636311379774008911148851290951899607320006087285236497046274064765531913406916507060732875527225686495351838505647551125064494002391534876076164998166435710838406847943706108838023196048712238420345755881321571455094813454019521803622247502134502097377326517671538778684105990857234400998990033649646804930916985070699949323072195971664360361745378000137707367320378829870578503438223371872879955339253342494308389666572871260614421336081923422677565905103551903803939719398830492103978522788406038692019060171969041897226034584369305487134813531754792480068764304432133772870056031763152556568259259954553120666325156391982719925514185568212217008514062545974545181894006846100651616143722479471362824073734840179762540959185910099344937195411832347141776884204118716365233915150079357434168730513921194605960774693912845233972455661106155490070938348018151417719641968271387606875437912782304822109943440589057013675404265148296839222850426112543051300403528601441143855498341526879904384930131625600138159511140456133511905736579733924768096732823838320055615278694758445957719338466421252965276836363739581563791940017250985864904272005014968071065375973870931468320746954487351470091687430832935096268002214107754739359850539332682742980840458571508813074454639102762605832245468017647326582521480865755741538647567148354708781906849370134205376804154900628217401313414472499630010820215670620411367292400698585164867661752919004034530223047796149633985297066634907224936710703871405301942004299860898717995724542626115911938881771166174194892379229157486255871050521588641052182632193840578102671692246732555017939292280026953662807594253885936774294076143234784010937702221113434887976184052635101293828143495076491361447773797506135167815909855046479807695917651152639671736396753910395250774644861316082774483259323587638877947746355003978332574498466263947954637575797903087627446103693043935232726933119646690844156975735751954659052964152113440259324578456825189035792224460560388237312652567408186150745204681010053090969293574992396676915033207233093237297276378336472864659563569990423780672551932646164292018237745245590380574726661897929451771496273532687174464836638037959174583294737343813566387659597565276936669265804984585634437887434034795015756085902895481849601348873926401872147612821655027002026075054423748957525135423204489430646897091444779885280584712850859197711923243807846005033191632691154623591608568905562788234447457781565580947087512189529309455993166650113387180755425560017481232865774601725177310501045508439282761966812624219928331221018879435117770182603164273786225200816772772391208309738106964060223683278016106239122459171504408413882221718910346354079426256454711609492015002710869937358816281381113265894377273676915730352274598425350614144102009442917581094423411616629252949255637281785429770316023379431507121072109349910716206161757311005960887124612039833886038130883631793135648350439674763549566423015029940082768991683500799118393607241554365077412839483181692599121365765536948378793714029234479945655616453565382774981619438403208595214124323086564146607745455426235872798873741738824556673242534162161468764937810497938910892950247276080840663805514165162216258491975243039584889223910580163588072792051616717512236674765572748164784093555957085515602837985191430340236423055272444053713412895010926161741396271152834190515003977914171092310675220675663294730510480917254840708717398872886554560602281756104070320937102790577802052211766772063110872306271353098374576806469257723092687507846763698021151810153715883716934350125891525954445783054414874102880113323949962418504942339837205218984634742857283259286991427490042302864943240177004545783865619821663751441729587008544066595009256427535499380249195383232745714466218297553616990628783167390275177928511733655268548021216291468241164061425497857240473811043450079315947251168788667473470425173324229364389284011783343443011583400677092622980926739869786082781733016021158136083601814193492074818388086535078236149033944147661909654152883060695485802596905068678258236101426780701806593583114684662803945798481435837329729082242671376641193519563525955149933988523290953096092732806391196421714265459609890667312082936100218855252709073336978107976528657788455818584794036041009041512083209795203106441553299820416923738315417963906807019601307248877558229964859885898946937015569864523360933853803780700594276142247316773236062709087439873427004465432877685991463651207098528796535214667219175866169236472777797146521292907164351682747142960976790737182683708971679812591612811794622335650088387915518498743979243774497722021009379616363492201096868829168128236751458734319996084669981052272157346373518778713583576830862843476027421945416344127279186768572051925728000333691823126148375674113059623599618588836682862447763442888017254374350654316415511063493529991221795575586598722479655646267039381033678706941601967635421986974637991202884173862928921903435035434486168063735832984394197721295044882516432785365529026605012530190848232370525974537298315781202893165914529120883316901697422927200897079998901208435448121614361028248776671415864357951360108356627829100568241347885989091113378229788583984582604966962970270076598713187703455120575090913293460001613067378411305491291952327642307906004337614533060503532386036863897724620844518412556518653774984885719772118850435397516250463249697511610251411766869279926969852282342422366825741237874191844013478294999944094973456688208554783231425865922131377620491815652604815960486807629684115813672185487398109003663268073564793476580061786806193606299720355060563996744607256976143230178792271434069362039550098458048349176142317638754928904025097936982479373587100650868925278708063839911909192128329983441881908813410427991421407506601438255626076129710346788965433921218688792213595964059517878613690033495533681017762299869091429753613952179433541124190114532192163002641626344568064149055130491196881451949936021612354161573413317171470485753771526346019213741428625760348484938802942536141439323623265180650664294283189073723308787725465524011438619506698106489760521131568976911697331527617528065081945186049272800236052028381149128726977828901486665043895705276027733221047699515624471009478625910141149319055612525036118604726144900145606894451545356185486053548339914233576939464877678046930611204387901099589881907087823211668607014751398899163529316900969652278251039103783197760541141539223113455115593553820977270386842822877704660183012416785261714098569910943996948031676257189024964139966747029956608546494289685148862297771469931075431367638132898807056878095993080372442530901894672764561791175598171615547369777259759200021495371096446533623581909576256508814789590922414751315815338892749215306726554418642339152864422018114938045386922368514987207036721044980404559887485024088003032650354968315009178307419865049139340026275148102902601187610989448681702779064814685332020463514202439574047772007447217015412954792591104430507614071313379141602516972621833292138609339870821360395483327999107691259639646105929377536632344453561670659337907602598283604609573954724080696166349759195157955599557692306155350283142612770372114104396671817218797401769920352923818537174368431733196186711603824832208930128784096304489033434110626922302686433543855796354839969816451260516428377882286155457758708632700583128433175664034272692274314270017775865113947161839998538801088937184144230972248525228375602826205793273631842038086316245768826401515875250095370840141665230396844360278401989780309300537063969477211879689959957738777093457446920982936841490715181786276183300477663740919881420478773020860920418460603471985712868537272304541647810003378077445609782162705850344768993266132174161950543206217117498507146232213404650657861514466864341712333402915752281940491862699486805907337171517468139881687031496499477617375777853327537391239352493269899925740386302301880693827005900057362796206922350050173915580542133673141189475408404757887487187057089269255859820042264795551516307734643782946850441087695540167189606368108108175604388282700058840927849508445961141993251025207438899369182998254781284917702036215089600793823224447373763825733331781537217845050594693793235546678281564064164568377236639382269907421814692730148138921846966044222082739105598369845469656002848284270926078034477646164475330481223543622949925827627901034796913406763147880939628245803515461095256846261143449381641780090415308348506802926809010942175453994414398119655464470821371128340178911449423504854200994231105485272971008290319919180947502334928466083804128455503230312255528495349334129634998398901822448787166305540985357709586142747579601240076725734448218280360391048897922296299166887849447558479374002660341245137779479520800075522458612073857999986759243411954971707008885205078208182895831241825380113608378599868740040090756870432211146448591984699766649880087231877834732548521530991288525577938910054281856037342180613657629386045905786780172239079493145624679990988534581195927383980720741304408789330586819680478137866696869863691909733591908720590730134414598211546973527241907946826516409837028524651263909722259771315865801518266571594687116948919830182921811637645541247759079892077580478700279140147301136585991029501736865759800008198121119792846937988800612501956007521441649591334356775929629440822919618549390321072052034258020788381345198169323864988791963889890403983804803928102482269769399827169913742627813983012249511055820735289522543003873973355444488957738975123980804726113310350284784821867134177286763012650629358076392799618018462438831550614501237030755635003028337625531183909873466860371919682957969017603195956583863897850103698259778900317638836105302588238640176513082838294270157643614636610558728209013512752302820765422604993931020454560492261631011682905761154116709317912679811452103438675747039444164338251045096567611303531407574860127123320692422466172552134092010990625116001979821387942309329944045697175397204512491288251050934902627003073844500847653509296175907875106416713266662778912917174962674302719340678776082678780966362319403736681332646579365793461929433040607845422242217330270665806703124927870086895801038262740274057163959519286791200234177817804354057204561755375655034376091974700637090640185836659250110647743114720170823723185794493878722819012646230565135824373408407723427004140927925053494589096700986294617008769522322748662284886615337046239119045877246859200883683150885600301831794761036033613241047195676235740715342972545479575805950338881841565855680387513827962824217986932125447553920136038281160102340150265641028234899329496074548257939962594260058846511045983852573626525846894046289686077175867421307619555579340491395412843526349389554804891248178014284355420098128107709212835584786635722784434130614290853480608961005957755390146483726061663345464122149231936602306869536196916829645353978497220658270711780758778674468261398047700993744803723733362575075197476106116921336838251596161478802968144663650286590732887361025600055402733471813895841119734736191501379273422730537302076733840379914500438996799801632392580072155285118751660783458409069048247382153007438212475619146889515890050500451699120701113560098634928392807436553958434269005527900673613078282018228350166315377246778359821947867278804178868755520515371258956759620495360250576978358037905574074041342897033212934195288637726251073791260255606571862921384439579037149507884578639687158734754162068273976017161434740967530216923984060682916699217329832766857116417494840283982797257214475128440921910286795520277387595492232738178844196239862476972029305000636226752659251233884585394790477409419762407095171955514144593307770894698448985742789498120328633906186033840955527076055517344298175281305433081223809197436092074425988529405842124557359928306059341307115682519839258050519159560115558936726757004884348288505924372290430417184353948524250645066173116491939902208745420725822023042894795446295480178480569275810328342931823339358351235821059006510058412215598413998153641083248986440774050727474127015279863637531813703016843585170856828796648842214543731919140495051979284934965509877095834639090737865027014709362645143651991712706018383468961886458487220758134382798106540801992833394388782755944771338033353631729992226652150569513797208278964416355611726055088222524372328744063221709989222352593081554523751364444666764067734347819434667945016569300779570770967494003799898470445515962516196439548173107285644929107568640046271204565083662335238257775478104037127323688457245163403451059776254430962730699524268955994602594001894057083823008278222745162919129498483988077721844166500537502921411913126767616236933960802046254549151902212640459878455409126269063697250594822424250713981527962635595190740262796436029049740469853196897457558001309655055468527208912152155981052825871437037233988820927603890248293564557943950395838536764049991874485916395395853179571501439387746900671557333024598089901870259984937198836446333494274381513828527616069847134451139775173581194598851981741360013747858240138981492030411849468763631222415943951759148500721086124156160166520878766604941113778280818471824236916083886788204796295108034952338107074963148119212356357546325792230480628918535970036649325936603988768977378696810283098969290478557005990926594416781429124208490079743991925563883598632649614596490806340192017393435036522948661201919093244258267607946011964707174134175339915970265659546217049820630994807011998737985972535825113794514453489681728474450132062549160745572311629101701470010592992249128060786277031238325829264470629448158978009175607114377338170370270651415487563883707523673600273581958544822526612362836536494218877158755820726845469910324399912654626466515197528718185684423921022440860543846012661699916656940510350760140406774364489725173634671322427015252975523009238089299271621352689523891503540427822666545577380772889540195904463671710466017349771403532527749913143993942534634974143296482181504852730199776682599789493949089146076293940212642345509903783495808406771446556729650256713955086845470172493983843380570138390874769947775864248994083152148906204099115125797787540651241642124339970099186136362891513315258593958872243616878165826397240820712999356082774439948611628954452802876471424589931912601787467066319300653953336659607007844067968666050567657292897779934062148194132746172561405330522549638551287725172127127309768444061613400943081201417364130430573402345468311293304243473798415694334531387393863749429574275279652624428154290649077845911666201917834617820521149257620097210863225824159966990725591242148434133824069785385687649070221788217379058637228988699805296918088371169853706047951126060398870143777660605118548886595239875691162244057799566342744928381572754337617762090960771733480251779435715349675102697869743964219128183454060708595260845259015361794979923222574078079204341788861348553005404826364437990524156255241475579886099668815235618305837269800592665881259121085653048178654826759593574606810374120184725697820988017450920248854335398877790413164254924886007430685893079242073448695827717876490861180845047517611339013975739165250855119442334241835365495622447392832185521404269114237845091254138188597820687978814022053671233964387605641852958885012193830479211080189723668285650871166544746836301186734656009485044697089199722163591732770965781959580822520164871109476370871764957027351760151874893919727593567693504734947152736799234854320113214379338085063999335738887156015644322717687551931404412438624678937558725917956919570046447811061045229102893229479381651305307290859505622545250047749935655687778892197171082133575170587648109858049052468371984316370479504497530584466574004639181438759516747212713365373145573643360956666388137253867797895988698521576604786647205479190257462861936027835076298480512388268935134099240859202020432422591984030521579339143325703240603914529532387024064299139014363147676725773137315467641139884792274955282178184269282418202332718693780052218840819680149209779677198372183093080253471530780725465056328452625471133549700725049057111082674068879087208649676219282915970536464270056722069913745134455667912314338386097708849748767280944707310518320017324927675158318556660231913473405641324875656196949991806734283743667447311072417459879179081074198658872125592618310050437973716210352962614241566328548103059651207342066891674933789014705451375416282409911010680872099255973114131931196765865467377570042754764037768386299746752528475982053258780376146896475020801547139283962869723596815245041951827973333048773710914234851629833763610453842369299541277287805133055449222663430687661622902230770250860101106328651485935267573074204382174281858805637964297372387943579134255619325201047803239928310619662421671428267141383058707710629519356913532314740367789439426657667056604405522868131966339246707430113659850466163593065254112562074559206243793890593811026936261018665442994928032058747018530123848228202586516403023072896913325957542271443536987375897117342522372707095284706880752192917413294436145361920904339789257698347076042249709731856692842383056521955983732197343065791431509775788603337371558114532498834177436687879793546288680473232372427751563994841340440471184770619936509748935307495823095413791344546832803042341310192391594242614706050422518973330763043759203907540171648020462431914469845098875942967989745310488088841253477638393746432030064189345711430540993624124847107584823603346770881094162746290866193149009566897396629123338981399037302152750530226109776908588172315978352808844847174379167451127476833159912504032701571208032685969462283853140532003267445679818762156892574432289403924403090766497744224971317384518902590502770436748251294530493612481105762881060935775084519703188801759582948401089146550195679432164123451420943101865100182296856677732106982532253736296483061882198635878054474184609356354972699692447312557270375403509035639372279434784090939323711231687458133161307972975365879454090057998201159614404035449998599675931912024789704121580816127556150313494764792742057588973213330524062936861489077413773102868297725361053267918470900624569462810110941742625158476011081418368307174559109149868304325159103468166337599791012589161675799831684046354206082535672583212539704666003313494516780185803607427847405504022261989024851599876217993617804537376049825509829572760638917390821981929923233258071059971547522648645484984582249056567604905331477855454062197357706127050490390423042236763962642956937972593451982735651168830097947471420179761574885946997897620631343325219577883348923049309207839791543295800753351269619287024908364615355686280662634079191492591285967661407276274218515153440413617036382036753064617935770099390091898723577900452539204961755700868098866971377294660686444928617112159390036753321195012810671185044810506648051025707884199683012424947881225845224544323086822495889211172254870011713999398290042729288395720129677495711634771686706300847815400966638016230463045719902336817999951240198860616086214479904119870677657842629091848812356621121604167382928385176271900485626777294272393183526285870355167544038383906289520654968519233351202083828272223203812197284085172927817063616845478846044326536040323210947128428328112935660582149320753383829718227545224799324311677831915677100526227589450082648159323285700398042909160226706955286612188450021149621072254648024199558280686711725482495351180363653595136892161803727202491855781464094675539809836226945574834489561192665985003560113077347881968787806443352270826982070106513111274730567394355159512626987887897083093154127952202474480099180860007825964970072923413574887810100531673973767396447702860799524921081943021751045308696957914970597277952476986496133077215764951451055147492226500870058267823884807005171951065049601571033775708931632463467543104783905403697616306672361404927402825898338172529489157289738697357627635334807816917973808318998073037423348897557714123147035869657154014085186749100857366008309604471913738832804631757291583319231087542380466935599558841591438715274623142736397777077846903199675389234179730006087288701568931973808608108759008025708525917104973796547539295505738201647887880401738383628470916660335305122517159955926139824476818841470802733770004292940691654711366813745348287528208853820691779544997536772917182888007696343168807035432024038995461260414286330510988345683727203280817701170515746582587705517412019936148181346922954208604526163577851048482932861109529378315646018384961725700688267076717118261444554538659519828334897115519540037097532456424341564037373736741616905252149240676034476853565729087345495444418048790397311946643979105219772371496098391977315734196476988154020523601054687232302723127369979567562427009919949411443830687058051548553474894024597293759336972832091523257774727629909136495226989921145858508342061401832906904110585390413335168390078383511014199777936232259143251587541388440737008960412927615255275423263092290771744576971623554306255595903025973081841669033996798027292385617398811838574127262489902069615061018160825724488634939274314006134411445206774864157360930044719789743711725053254256381547739259373502949073249577730848499033128314380142062137294433540915647741865564044249900004263338565228171909777682325527809969806150108915879715599905464385995068043710946131318168110614253392210928579854493538057214148707023621097925601847529147205914063107802987181470032164362985088537476343930914576409630206741988137837819752709367081801170955049862451334029313739381848994586972926730049918736115288527510614702498352532084243509245096175011737220889549094823940540900618597308617242304959034817094051863670598278851443869288422625984047376856132134479784087571319458082013600048838146814578189042958933559275705546549337365107566605177659925938663685383847990828074859283521078481103168955475251939224981769231993704275624293238443302879871807499367626003016852222855647501295593891614589380532362033160982815681566990863062448184771612840476232921727440541047601504228767366956377216813959254444173962166740722621918614044196693785406386933875475328133169890274737893873871760474736127387329781821809356146607509298658967471858463250453369929410175542665306604931115154607514414151826171361596526746214733094639756295214970931725869903667990896289759800975060913156361406348485376797709512245623830462883834005961715252479183762617897665720534028675858601626018624834975864773313265299675384682759458924491286156574019282083639094556819902161364981931473796687186717242857632019575517838803832034060167694095526900997702058690902721840831081376734959648074366727381820640863218274472631002102730601541112254048876100459894096561598733029358878100138402020581972993159947617857381568209386595054651734710705999113448336310518947716751971028607618341622017106943960028991892884096316900608288199556920864271777205832187753489296492667927195643271202746650976623579386744746641197680744618426261210722016223380516943896883996142794037271329824316258847661860225325213799390478729006999461745185286479424076555925177175922091965503552590724971197977238360084790400573536064136891046585572382734904391132743094374278472808992687436594898018807562309975055287307635461537273980223834295997666159210135728688129339160740490562324855989855220004113248017105261932636484592126512128649666257052111753836981309942170323268530045380548547509146210126170166597260981971386352944954476124811861513227669974344765601121802388022557287264645445580425608264742371855017088894371395470173395233284605347833593622824807055468438115189809763708104164249775793282467848434971068256581854869113935077082638290036734674057375708350025612218611079684919696520298584988432098370770038009193181596439700800543914432947947034765523674002695087560359607055553558574521904459570481461227477799253681057574549462670728962866825797489371754907717667574814003091194674857733747699343148547649402180887001651100701019442178388589904594509291941610264613261132455878434958320686664272444071407545160707389462637757739282770227288075976772446699962528651707857734253779976979200884025294913031628468907337221913218960003955741879763903843526407291166852825191413694528666191817268667133292036696700517939437276340741550651351797404368840478012382836523492811121863244353000419259148324149609823819071423256358212258031607433111918428247924735473602032341688383902022863908234614452393713076984657091387032465241703855233416573149604779811910331184802685340107301253618320784858327288410694238301617244026770190646322004947710717754584286328305732228023217435480759542543994582591951292532146581300169285840748816690913828800516618326870377947162401307024384587563394433684433711062484242745920074736702620090234839510078955379153145290827139373438080721938480291766808275528948304610616725622017452623041001939704676008316730108434795670563947678704442612507462048162932334745050378297329356906488913954899835582820151805351006399176049689729056290821756420530370270516160861186084542179991468275850339231506785267447241469945986967211829350889363100724030072136375190501573234595145063890329232184144387588816871599835628644074367320286467005304651666296231513596833854356000219085616766491410106913710757427940043151303871346354183645032723741035578831953746595460861796412741633274732134119401020142373017304240921051255905889870180925678114946956384275832272401421172848894733361618589010917805108443137762562576262271651270830304605282074840821509430503732948787414220968173084710935740755941179484947341248230886715688689563697590275662862293755707148431704904375480612785211838667342895123848240797818023714297576185801469439128899737576840080880398881787743840528039962854344314262098326226403109686669176111723489975390032649884830818165726050506267692146738286947399997815913092184928658888449189627343679921347991353880008001933949482713654165662091777147697727754845007096895610908203171717626941055354764172859785807963168129969229535421786803124302947914032616123129479072258143479867086117145259955992008021168035289789948445456218846798311617478644634302715479082658025215171439525737554671797291146330212888376232413605290242577534574669950024403269629881266860703546824948362755380512500891604433086853763149047094294264572932600621952779659531705437667960126516144966809813710774345144185812224377741577366017052409802981484802198136924592288802578613796004403852925825491018086474736557591567196317517724560430463121613899474346428101992263962529775870986920334046848215958272335408510717806007445531275102502879488040619302298725456498867239793555658585647144692038512781075852120727850920772290662372199193187391062097036594640535076698826099632354716269674449033962644744550835023810491092291639919094723229903220188194833808175797422954488949003001467594327082150351618341206377225460995084881613913440264856075570165115547478192718841418905766300514799368367237227607764979262359255991818126253944653009430805520156360040418435738261812167557646800623858831766247597070522968562555600114925968256387794002870823824872671218360014360731504237781985892996028637763601039366291255860468550839068046202482798094216720464631239483784199872577135774358655149580562137468835813409768606896433318911848611838589702201902825510663846331897254515288416558929578619051560842245803343173794112703805415009370111224621652105213202375042288974541995028956815973764904980188290129542821587005565695460657353999361795840491836724138763502269873551838405717363713768998356210267873117810187937539356769106341936564105374122437902765741935148998667721666035327741597246473576367791917898486307210848857858070325830641974651443361131957091401634194677075235739581910479128165029531079529444436961796402336088739832425017318739034085009529549425262463793276724450244563714286804000029640317419866143770355320007332854100497252687131506183719629172597766424675728796317134687936805641658321383840739922429184265463878172784291923630152093193430656128525382475892878547567566086944679855772871122239043715265232666428320918064573056599542656927315705221767478927485909784541563305390754422049294753244219538068286267033415988754798171234365603390918415338379817243809446882792767517893489344930259576198447783169769040583761621609077084311169225508827410132870339882227479030030735930703231314765334478874156163627914135074190592539820359153498143821414586003672281533454548644080014836026611070335909120480319404229271616527795610249635610783014371721129226100251452015795700739170767050540094893834279556637220620017211210302131356870053743988631386547096067040114751069629252867534232681974496711914201305902488914365151186582743339691641542276774405253865075767680569225595973876489670131370767905613629091485322526429795758244434873227032092957278811186161834720570105499912107615988902593824103306942663204508826939510331247334125877508780934701661825399877909911064948253152187701930039379979412381881271060348146205696078182885707814427258996794394470621705144904082729341979734515035605376011153388246186290652089718957322438566987959675540124285757122665380236192927942789695920146009583442652199821324369052813315474543785985325133436814315764099354939505401788885623916646407113839821149915315988782370190203421718325231405317351479343555755747836525496382119276028074705962925350799850563252287401208882313208151423640050597500327466994276521251066213379915269609424698097657174875849952993442768322206372098893712587150273523731789594473378364819869956848027725970911437242013404927052717660371872923496512018261573298794099216585673995211768135698954923351374935981580628135175896732387734531591988908023028589495008193671249920505315426532444383950884375271269857436187623563680172235829391962715648263202619559951258911100218495413815571407682130223739682783249827723002001083556592025085623853033553632631710018440546601871691254148275811126517780743559693562185948663842978184508374541763513518802850861553378221600739117189984300138510534430406309106905741629362774568745641365359123829735755426541519334473810374210349104273332127825452750905596361623072064035213104280768294941857026822189542789020475960581621248478049860386341544522306572619453325455790056660104681307421607868217487433283195017839126422582159077136561001150757515436371807818740259727511578618455148715695283231616025013971495203050254483632495130884084702994528144595368057808384467799014282733694024648938151028885608645281217003854407604586453367788235646855048498061704636496650734312856598846854510265336327784204943017696169973206016300525903765444847102661644315054218188434673238220234909284188631435277813571035141716815805513549236509991965093791253521910465550952646824111367114512421392212088746850887968288395283314827715527673508003549369954531558229863009188312862716896429770791753701312892478899037443398319428620353351955209811259646954441966585403748746910531427379138338155920287201944398836925857033120348524875534084585539993966610644064921623482872768797956468129910370066667507804476068856448668039071786328660780818807114679037879593115969334423758342107176651450686434220976458206749874156680041485059829049083493126289717084919001838509597451702048520701314223893525522133714552106374649313195126005983358526209644577082700754543207949374078215093331172281195379193774143011541533089700018744502761573467783892312821734762705035726352151721079607208056646179180960279878904903956149341851895632244566601343736972626176738347515529136530255865938626179087203671930407279385236488011225850758672429752002935330725954293813805587813764295471949751945181104037429960062488383111226606351304339650346492193189084100495499979038135508816890210764230977232502760771162424889778417439931309472873301314927302100431378791130732627676127905614712608559567198376535143645300167264240798413055425595508133213138196840696910639765624955695951799467508178969532334318886269892756023255996292471346126620120099048921933244624878259709139740616846710089890518186695744996611079008141161666191533630378095033653404661852989334059851510994385415633028338970653979003318652184839603605020915663823331756883705110162851440306702493162482631965894392228999577384251007152408197251586466520117049884170926130999329882545341020839984461355714590932598264100953717398694575393180646593935880733326970163450373886557243938504576720042000114936322009439040166253219800569182561592519302755020442785631925665054734867177118815680615023564623754026452576905145268110196780049056284045071221247664618870468132113791964065250287481428124487746418103780631704894941936542218661090125603496651909432187817711844052398768022918552427646171900335437512189744743132534997215698309863965701991093403694136568582077650534735313760939358935402518552854062374314319807164747849101059077979158098491989436383404733188103278911066257914294825220258265973518277487767383398102150519475196748940544909019502103236963019857506448479737524767422053277309870534804163411368497481506679907920678553010918368368124196035706973381665519073169739022020607663938423447435406224682137726828517432044669503175527185260631910614661560581473130749510049255222840381917670216083058734292578897518889224401686800778376991359602070752280140863030927403337463680370891923600400781575886142578917254078606975002227053054667078945717377058627758028433636072533738346876556356179096196846295288667171195052790837250093413058603612074426686913200799933925443113429732005101664528243215779590021776024398495056367697795938037475219851204102821416335281826635003894534882286519281628215110934818271143357308935997271480731335692711924999514327393396301877510999065083363871351506062206606263901649773234105698960174682233950221852757724666477301266101704125848787852396001116916491642447770881417060602106948770900726234169130454452995717257925964915248852130697381340487578241053045308435514097733795805776419637544312173302974534434839560376286127304692166529316856267864635718067879889668898357758988296888177654845496377296567322745866113144699467657511185820695945470551248488949046883687976917698646896851617684214987181425477253115336220215038111686835615407719893132259448869360006048101947423398349016677408598299605329712431856086610068836334905201252548791857558865299958535138077286632004862545412243905887282035838545401683207144030195715891849747417610943758367404067461323526926592335334160584360061214830890530089716357889910240944436618121769108043394855257595222601183493321367891414299633698464907818721146880539314864734073193539479713442115047343115688335274660798532415986795105372102032033506599101310217788564170980058876849901464176474465936893781374700193751010036781459845296436608902173791693546833124852235982681950717819723090665082877137872017210959812315612042788000647362915983301197036159028442282900642428100583853324604763740270675661700510053926623397537890323582566710582449851614332047943873898201217605083941882449210513881783933843142270932562772678628915480920369564711354576023686627573425443597776131965809465413788135129324750543745284979071099996150321361958285452709771806641871213544337642735715126926736528990717602530336344231769249756277722903630209224782839318711005972258135114622674231403072863911111385939622197942903162591567344831404652293213209264559907786534476578829888866319734278862610662974200842299957165980082788518296796669516670473319378479879103895512503124797414983117785095907533094732210032897555811646358330137779610653440937337706461076229600015528009698796194652741589040599041195718396726659148902582036252025722755989285295591196371831423831751102717332787418916922532201822770159213642783093508033268601482987502350180635007298181153049696758116202892242519490308751337421035140790155374603510349586767561603608523879680352231844839835845730863196017354496933963347050218747742831267116987626724825702372066181995568446298298353983474868380063536154847705459382558181651111281881674891099832614035298857123632835565046615699944308402719156174152566482101602809492871535807405303602102582589797428805911933340221564764111578641994180107297719639450194034913479804764039695154192166935114001928956991193913553437450862625932167057123469963901481864513479272729322424874931159457752188765368406383725741950636953387429568015181495298273434277504433740860946834841133925171408245055075288112778908891069801510709372871954919582897660195527410442415043147812450158071276541134380737948840230306737074588168296734621904591042137539651421863213512349331147555085861642299031721267568040365792085747504175306717814501460328689633059593582906875501172108106358930594207661028374081016160397901013367151283807956550535913766411602388417497490799497383861724147675410695407012006401834364910565994177977275954667569196511076260836301177727248633527084881491839309099485777354585436488073256753893666573556050665677070639443659976828858442620209365517531803430887211320323451785063422865136887892774228680128201074927199124490770797543296399519771946742570203150525041293836860739562301967563604092622396125265915423923218458577089142381530598724887536945746379114270547321588507572853312097724781123593735952354002330726379346086408920376460035022678671034496755503745165855240302669251883181948295278561633697709363419903362070393900686611529757719763468023375897781067973301121176621249011946064715323527757088326569945363580182867301952156355688474478261861322191322004418874748154207366701971453957205898600227371563342304987895272075253093212380700775318601040694874919295617904702396562614345226480466376372496110943328222910461105705205843039371654491903392572661636970567589117738574647344806928601580763460414185281794503545491199742504604034657257036566784263108365534808158042582312138666418461359354554915658100538223243729853378311139190008968696864535725186186978609176009216246895198264825312525362514931242813913796300094386115157347329503149128273302198910199761670587568660033546292522469626108077314265600665982710708319802488629013952078890789446919352115241847109883300629253700755914542146500814613447605398247470802830239261564727777939613240685226697127583666860414491577503510136748842700457208579192122437357985967502730999056027368000453625144617829134673313383036350918422848403588671395364541050942008560758273989405495448716980987956668046219440074868486292526022546814905296420094276246024199971812692067060449999337592530080779469280086839963951233826715837308861947371197031093088089105869148363868469968514689307177872286625966780197452144290417939197687358496584595022722549541388333997520981324552123613978610299749133523267759911937906245458508811509330743841262526124360745201833497884671589792229413231132210888658125707496088886008819131432542499624636383032238455210262219745766436895242536403169619817864086024469433237711786277727540589250578827992278624606097595235666945432933173645862219386070411216567506006963646878158900148591043178673882039391911851489562641737726058972239295553139194062123936954858247486095852194048645333792619734466729317469841371746639798363625546180645369852483253980434864710376949542125756699205625500407004174974735896081286826718715259248031540784323869380665387768596070416726227117111348380931424182519224018348118314217365714531175515235141887755554727385860563408344684697831716417456419564698818351480453635055172511286568666928881284247670520966000976527797715461933450426941047479840278860574059258779733075979931752927697600369812162372290484391097743512407289741832093731135537496183831832575803960682167216887871448901416664306612698870010584571536477200760474683770095423068987450435208287297021739199823006310585936712699087355400669143962223968089191612977437618099008493283255083916860437135952122571797004323626992956752829228795783054577629138789515953066614429655682275217336861813308549202669397054571402984777917764461682611422686579650089540800069590844693572209977552453837258813721284286084169618328548545942494313585258481261232433706693326659628280412457099413428804507383049140379419423155714186005196058333412665810878079740345024138843739481846319551467483224501928408523551981739941971749651960369014126990467272737251715334780963484764747269435773446893532327858793423632711296263192124029992975150968930359065232549221364072910413235946568830323765060457452258327559896730904939138734054619360537544012790318059116330431615108574877099297159396249708049261032170353427029167081231457596352316298359967968014774444922061317173520758453527645616885997106927447094719224298576997966207902230882821618780237314268923825953076902825405501908832801884803664025622412388780129883959557977871732791950377963495440962594010915520306176055217830891311304493011245067429471391840980312748183553712671851834728435358975050219550521555396819958016459399728364789542012319127721367049924200313975945602682856323176767603800252182233628970722770655717824782455425445004771869386513403026494729433938347592288735639668741683692910217323698270703705764058360661704462543535400074944502655702272812638152844731547080967016295321683639121877962024614520955466370927054606853180900163211506099193899416262722305336006153897937138855762517398527199887707154690393931038263847678643770353448314100713604228123518806427168201957651116441520597562308063537952955612149411549795367789760130486397444588299542870681810789087850052456498822216419974805028330974654234598306953219182772452377827702164716450444419403217232363933838100440028056691595790812661961098394126438935995876819305648777952548280758682413102643172156749359473944381172809686808339059007447484708455881312561848265831045319730830932398291523240868546354478572523894057226810107166557869044693446183993927655098830917071858857645089232578140459771197804818858581222572065666963646181080715744556401900147442572699278619108116654346604838524091210580924164009514540850079513143552045089510500599412404581278477835353653665658749908633470163573464083493842872075298493732452887684617362967645905801203686440670941656197352272512944962237133054797716291978504379408478420142972490027226173463762818824813646331662858559738518663991350571531183220830050613887345873289020091029206510285733482203620259404800537975126046545704789867937826747779249206839079617269606334389452775027764047736776503567422457124665019104447118185969413216010885686001657156171555098778041680383351529137224945969119650270330966356981517917243671567861286799082217833020198728621259777306094773750771243378757861579678466914417022741347833284680547460554185219688741465811260514314952010130080404443827990808640579072124492598030170854489481265240398795680368255646752829893804937272161083615547369381661670965896737365976505328987432974549931396051034608677404310737571151944824798572595331208374976702776467467344074819452318335919431692646101457666984818429119138463400107104335537080326042396019223859777461778500858626741385175623095108799790192694651788595562032540841167511571144199887664066754487195314663194609785251396202887760308202339015217862906984014976601627524429727830682387086480630954616754384337363354872351698403981510087630692398918120975748306548116807376386069797921025691035941303128484227119008124952659072795161592024078288765238142578533759114170379678728984809276123104442508525868101149670794217043359285314800844984012503068353775314528953732305309284051459664162091667228717139180354652626399730887698371529261408245123699067388198310008384163562242079165644723056940161019480169867162334215998852004913919910793014404674689351075494218184525676760226144569757596308153914237963740432540520904940026094574374013106631718659193469389840335101111649922882934053772673366428050455604869947973573029171870067685071256841822639400931438487030472344081151310434392670505668397350033670462009156760226578365562964032843610032782571345475152162925895449998539245985670934470078026744229650192633824477076082258733605930177625009240816476651696201746406990115972891784198391744951299456075377966026368899525820049827427602821205687592966061952698262408026616919109113702869439318145411834116132304493331915344789653251615179885948803817161942191253616135017773308078806134438706061650349170578769029258407420192109535805239263504605768331006352698758493715707159676496028993047838063905760695715017001396692883144951553250897995549399180739944559750030165364046969671441482523604919594945725671573478757037519673188223920877206027530022591414581922828611365305993008306369939104946650678879096067484087627542171541986341796984070907306961751646000247520295374487612210253352899096423836392472836345877053930791216472095151073464909794801342346455461168952944104137565562509252194900070709957816511795696248525674048992143311279022510912257076373716115902454581014977995678585824032416846553181574237664073500300100829808389848149872630640921203118984722540207482995109001583953621117831172978615453709028020613535973535017838410579857250386463867966498920804411188674507024380133204663477702948696207413925606977524444907461401830785296583333637539025059252037110439460615999009708198780606586204424854727080597045247445791899603820098569026657888108486737505441363851552607194152926217879001215963296647311246193238915712564546563973268524408904087557497015762081687916103225108876570497513406710355568070079346435851298582544649153018074089603382634162547152525031976206748018779466384091933150228174299060448365407018803079974571105649259256303194565879844706108732724599721594938876870337899754763443054075491244808281724888012834410063944993152007088206465384197000084573763148078701920704898664307406374283160116634567262163541544230627320833920818904003454758619014324116143326639431784764830436852358359991653944495939556822658639865373539004796455842047878741985850774051969142434882832782580148521366238702637398514886582777045031039419229020713909426896258379895507455211405353502277507242457545390406804185483623717492997995258517998155161738416648198732527197833946661695282174128465837321057707993161144128048360341813627413278831868204419607583331202039490313813170943241106963435352001521200866761271262952034988592840897388148906183331945372027183694554694091940602814230385051580071624211585439525481204929299958318074564546272845366857548155354303068535701923824904714596200076505466649865341841374961463978092107861347609416190910546186321594909511263627443841641679360767411177943234515035650230610566521604657502470199102870440506215562649060873326393856017623414432604552916827933121075062832283111220645928204775419502431136304076204706236906155965414485679602685248720292561109162035275367153323777045023145131153363908495522681360016586101914907348885101725452940173946331570388199857362451096538456791328936066850125559365279810929224980583930345775120325780110581263742369942666361330857688995844995866948395481050147988653350996474373944308414403226924071780834099225238917957516332182059315737514046356816467533408611478808598467966310689135353223164923508269683762149264063744245866249056666482004969890609429352677149803643455142467454415422448628878911952599007832171203028280603101029141947140947746950526177797510957969343240208277399821477786743034064449787440205571360155013897119347585403590362552579071290785299467020914066536001919919425275606833061900015177887469428289312845055122893977302900539131734598266154204600780471762433905155798349959226056113520119024603126422200029673720277001582464691041703918588483417131084330616108687505266465845726623049491270917754366198313622954523711509230676744938718775624401439708130976056580285236014613618131929703831109615532858167398159172382289130818624815526790013860999161923410547968035874888884649582706589932065706741410263465358473129326707384106241380526694816335542514137334651613809208027428374610627244988333564623951676521740672707242872165508789333040778154837260733000222394378480159344941934339643450180064341257631491589012138869055718419419788002775893963888718337470005326603235048733899848069581895840651802950739113939477979113743165228140032926681490494190349646311766783715646503137704657062629255562695964081695584328880860043141690163708702171735420041358982600987733544830168151165682242956994811538104009893849207184330683239886147044894180191810334525639752134553350389384341757759570892998261615705401489678540055468574880048268823029502649713289629161654808469505858451055973101039955653940072830317715913283679246262286019267812402918250126105058301694636201037048510768387408213173770342358044259844489442954688231219310990718418477898626520931245124175449991815343143124638219550311792873903512716286308424456617215722676400552981369974681373907000535437475052999813414292274332252155530762382603079274725386415400067028999129499979201754964008507129168016658872441103395473045411544595348128348130831219022122640585873505724305809020818457499539330120173860914911113762993795706343780397077285208846986409669521598083444919898832352390201205938050932486121902986964089808993048164741633662387131344911440680091609966779323097476732663925993573717505851436504660282211772326355625397600023682001576448161441525658721327863214695457891330099747278407720856398248622629194019983857493800395776772182560983482108100329921797803265635890966317803063844330587307750099607858733122371204258698272809830626599981492133020413120059034925998647302079494847682869664100925595071282053921318823930310021460731545866020367909547536156670576839186777659215250082865789190619691360101438778174958075832414022570659472351532469535141092941563631060050733499772331393788084869190723926534274356747154741238134209342815081154189947528850516778079967168999149397978499742941547889146364618331325296569789397534885407528488363160386342507089186256198800957406552925592407761278981154279225892736139257664429273624797095360376483274826712997601963962343052279820004305056991643491182400654490069573797313262676856315383619706878654120848499139865295612899708155903469007365929708895702225306580072616454085449677803071280183031258518560233096800988390603818433915094432353896766815328845360568845488691316467327006035709500249100435276370041110514734843877505436144369311437644095319322335018521635294683271113972356221019402878498988606465501876602752306614514210725173316659052357212639712431289327778272760882084781149881587529163214359352842782833879242807208291082260123127071910382501263857529942740221151347590122364041511033585836552948221158675560534526196597013671693262805719599347578081328519456732297285421832345318718771555227342724198438919010661456719149859056247901147919214915516762138267927259203960952641955228181122214918025756158113367013325239310764416692734786514679484759823220938981678137678347750809740337421118936717778729352564358495051380348559929283440253330441419909249119926770533763511788556426461204473063269987393948470586563995062800788345933438380602133993608954122200174296480199350468814344951623617564270390030409852687049799258951144294428826352230537721476282768211966214310733260652359827632541911351649593442049438499900254075414951622292134132310434521512325477319749778836170644450029639741235883103314591728799520108938381151761507288926671612129818172702409075671894293054998574352545021148017375705717671297699147098898361476934583398889552442890961324918137987306414193060307935217052961637324893441420903093050659473572413380980396393314460382883424302323677176264108959258143578656765440628877470901740116808586951121043104867998227734240953592982506385717749608005276862633925466284227916538996628263808767113686983113371592774184624758752066429863712286107136670197347043645016669327855907967387936223599941583523501920401039110008769778289533876496837592985034997524457626146899900105750914278497974037876466658193643038286202032492843935664285518018702898537319918898703214354080974130826609811829251784065078387012568754688874631903224300537263550393394869317812126590851218537434302576325471628841430075671071066765153481275506284186412473693228732750974761535932277570209352460778801709800881829574223087728227642128353149068408103823925822851731263460475340120106251973586954988779299008599566031644608001846045499605574660143345397709948111068542850109617921441125036872641739487993149104747384991341043104438941449996771905312766831938184397565705085554860235732967827126055221946349057460862262844506450989003222512411972397984616833545609277355866635318342378380863837928926579155664797095473300578093942329519375467860139888594709373180360522953701555341099783807086727679795223220338970201561160339537454961123840643174017347808371255976253691998177918227882837386937791270114710778268054591216272855557596183824371829596911271683826395622926535034989797670329793866269705661749708164799345140766624614975441490948046722134057839587599515745709495523351970872725816356879925065099756594877206842127990734512712712288349806271692526633242162850771312070851155131304338783441705319312302935242239343445686525533887699209532199171473950483126947572764158022514959584143574032663097533135029625284859323504387152495287782084476690859499298903822181067571146933126810919728670110058622054557166134976890946979584639944489338501934735724490104775792241057067401803096568660349152751301754363545012591879453416469488044539467764715346248056654567891980726478017401106680685803019944156240708378375332888682711211152257268116840528869807686829542740643560377341200456493870927224208032968887664593217639485787293176702192256076171555711471723410744747367479418036946192942922296234295795886428805906846161294432947239946822288221300483292313623715832073113722011528162267868064406680103457295721588733034400083058800744268233443803205919926125933081644755420092661870796938087054340305818856369243804363382479555555260810108280307115712036704922018230268309936378917374503401834517397008427173699103091690263422149068881147303654823989338342959602410177399918474709731448496014522759507097906176071108739635409121722609414758552798863318785925541649385077473213165898754505195949454350819552245185204453058397671183379177063072942296963908382297027276862905268846493559349113899810411308092648408204141233530044370806284572854165246303624810603253378281975085064924152728875322327649928418116889051621202058283602042070571993618393902767857841243135918987336420080881828066370231603412112209919052125874810249413110884706300729981420836172722953491672367321087331783032341356846053495540238195571448472055790395421715241288087517862265306299551034544556055289565531602614001085300777326144659478952904822246038938290968911307297615085508684986333722947470481251562110145292188467809067156644298042685154125646276517095288747594273510956048055599020794495423250906521764847964904252996185049959543843263210496665336207451541841735872620691533090028044773937043252083822240138254234351287560428945484987998325490162151068339290986240673820546928456261304325344364553919746302106257066315373538343189249869927649071781944498293959224615949311141097774436368776822663411023185160140835945717489754505026934592734031472205456609617673115677802851628296520080998520363962794274803903859776235504144894570222214720690417726851086087466824855256729556534319010456351579824074005765398202331096096079971435639587073595791748150668954048441380087501018921933292709190805192532247875450382553220619710593097611106012287355964872865317900441743179000867290819817509810794084284086275742449745865932015203864286233288871853057683664838826954923075920849805891088931695072906142071594672976434637622491161377449839302160675914994838503578166031991253221434452390559400135763069178792310918914264809199252737456465384720200951390518628302990895328416175475050831745607474176413853229284383308503957078173919497086944595993166953922710952646786230182323925414315741757439524618513700984752230775990074656202118143146299630258154149074186588828216082352210290767268130129221133432732374876083477311485624890478523873452254745534896163083843988088793999447839821615131016597880151766396426008311171931921908870196700576083007557906879402980918496575351046826478643139763212008362221135375841306571921563889194034108474927512643979230659409666478007876996307383296335003288573071164730373158830971307577442652942362706129236278272033056765315986819407680188337969518913956526278505981847430573198733734502817285491206422689567538546518754057648716136359068649641491251975195224747814478403076190738541605771842464130061760175930223977008681428541205484776917278056984432410581914982369601675077277797294416258065105247093348796418534437980941304105906628303764644984390162163039070827419369541041383375386647646223453652557183636757386776823023591601340838023144389033639103149005196569245155365317293639221345149585252089841220836177175685578984935834808265891816113559392613575858813334385001168006215806202087296424444697541773425684270195581431393724733644363331585556785750684271523085083104987442864391180492464212121128190272080979666114995581566116739435799633114820867009552176389856305508368760412645282466047200420273250052910288269481379247584585372673867795354454096063258592741823806227569973373243100857229888302824440058130599765346512996682834241042731312128370670876538759414639638152088814583805320825600303305649179686399405817423855732310337026581488610033201711441260608080063505231812877891901252873766043282156145697493784750712166610668677727708276695122313470567977951668117902834904886740848720736828220457932326374261652739526237084411485457566396334336771997831029160836490882806183776346711247763737821007746558492621536105774802207512010138983633794270524254066922544882343859278409842959345126725941034415818361680625638103201953166865234374311709377037748890115844103990911075123115378243656781562804496062045726332695173153342383657848456668563988847363892458502401929300900656599096901809898295346658079758717782725153929042444404734205022683929273768444787704596798061709976068857987409332999577667205058615926280065565234494212026579244679783456027370715045168924807103100599432623390683864078809028817743445127545181346956738935557988615297626069020423115644865374191834587903981605328776607508586264128488094623860552056357776114894940985896937126115961547799715137864087891825824161543107746618792518161692035914855193223316251173696249636790812183616227711554640923037357852896452873233288119685241566172518266851027972252257905544781526745069503019969948151560853327916454075383964617887988201013227708377821721340105170175312454247157057455563633319789412187143222092209090325505409331056179680540715071046831245767946928227225232134316111338487347592462272923209692753536642729053361491678335963569747578690616594059653318737265731469713057393933668192847487307889369840240450648632235424814365843153889250046758974137629795281765122558246280080976443058566358154622389047919199808187195279285374920318474821958232627579373773250629238179573042406397246378030580103838083559559081865265528234652183554139679465393260155981617428213147375646317508929379847108713332349931503502889163478094000818948205553032089984235405634500873170016163519561546309317746328747093919277052518970564009926126477009011446395257453623423667882004903645967250611868475633539516353559987277505637506412221291041330663948421912114709336915365577816033466026573353923628804468628602612682606677480944807691066723010701720281703596887662477093096711023624269354220419749708176513445436338242263033885215350335682411385373231479821963334262387300865167627878307092707577942792396824088001288376734960149334850724652785068768705948324065099989512762351051438760520052007102455757007635750093998026825121833176551388727109516848574130855389256273593023474106540444738528710396111209951827489419185074972913384578401860390714333991167453383456662529460588598890710581727062869395809181968581527360651788709234558450006839929142058259855857656377120099418728630922462231694800332876821599361166673174037908267178123213750114341581403566078424975660356819057968075526077756542574343648875306732947348969803732254074187410967695205270630920258367873296178605454899043388920786716051740471905546332963843576759194437981723612050063175178620111824757204043010967261220517474565887851863687863557995608230808994243742100534969343287320383516533341255463358673310427940308619661075005302055123460874010878154562695318222643521748659319628140325190395205847431430730789259981533534089939120211974216930558628345116399591711420080078008326034131050421091862171800612685554608150787087224574162692093506205164720606466327929271952226910868449272259505122005468127842071452929133901126942600494566917202993180130708160638792664764195976667551724737551444024652124626574472686808128198094360887986983931653976074803659782097501318501851057610725181935726129191272174301116128565329539437762021020667790745129443586324719124879061599889285398224484371816751346026100013019810862371130402561184917998056482114066939767218167767500134249610128260526288544663069275169288394020596032125809556957675131970668576111771848817992257205617427571860168568088075653477855177440012404369577090647289139767692410051669437542875374771959162245548101906764424042159174539677311749032257647379716566299182895958262015608236755490439014229909952117240627207298971387741558641493510557647346719097546876176450879747948757984960597368435881295231451833642480230935031896166965643601113598850019491095725545184516427357560947210227916015295183584490371437691614321184270605862044018330405455979550618605874878824485988424379216987920376722374634727161209260707559419065742161555671457620984292910728407862031745139311305405908225798995459528713728070520914931998103926928930437036286286790799420865529287028887099595982238400752882561141195036068411536506427397052640257625995984834661590426161104054929807591337283280881446443966650638944916093229116188577530414267782686185730726057942776047578655140395633207300662898927542935888902621766618520476870260939342207117212147832611132030847594306692133449011408648549446754650571184517505441191483216890941821277976109918448529975121758098992219906170416788174644955839120609164071246895255977513536733124273577228325969446065275363898833475887952169469638705763504536996092427963435285868674666269436136367439802566008679998414075364473142999209299617765497355525419596948806341890750176953252901166448040479885023677388459126680268716359351006063769286619145051331909996388324506407804492096672926944654952540754267454127984570645518817498235222609316089521977223592618308943843857536616277837893152118337324053242330844116295396581667473290231025184937674931298225115489163048345358166547706454801467295904130495538169206597073189844691447557118199042352379445269216119816789154733958556235611368722558062795351069652650603004770185334619073068509779644010062183907559497904326901176255968296419859235672586112978709285836296284503679697734871773890769119654389948413540550923312414233526078432323751709410369189878581022559759027983926995417236214407969410804304815410217286239255879753410400027620214059786820409961409203848197005228257322778472233573674642481404473881417231643684042758939641235930237070687524891780875212805729438533306968775377928929366941036187569988137885004551480100393520226355361958756133854243798624013054658475384914511602862100652755581984606312367803855585888048490639332471904226216847983948789962662288849616144128684984748965471091806284273337583064271432701008983921555986820398038089576459383035557636467755078369595586346698040933266981023660393364047658708752610562018428495352198047437395260455507101780038398722084061685539091420472843371552262040742445921980279720790950797067200988267141299899671717302645982582391837961650063296466397638140135102148228896682971183905302764553948935293491028944256609020168563591217273498983457821026860120505234557993379072588207998307343328217966421009555550596526463567680131313736407356039092642360274078781937450800450638789810168509803697509348976908752322260030757037283496874926855214039012462632116351124070010001333597048542120005876314254642718958538456630566500429978146643638920965096394105207312998655003665927033148532710191916338676077823168629766214261148747640883674133760560164106832729652991349884992168093890555336647879963404083213760740940644376046516326161812025825181260874339398778529655108448672476208733224661183472350017379785622133186567386959269035624121916254601147780157501050207799741280665496326332680587237457438977308202026769343019074576716618806930601388793676521436925424594806562332526108030814768314856835761807415307480351810635448790360137321018668159053745201104138283430834699878442502062511788789477334381715328300056183329589734217821140590216006412802722328487481703724177382950983735827184470667384222984064772543309244860779994421308910554666226033441091984855000902234403493527711480072050030856592936723066751677048098604034805275653945635358723580870430458996992161142556272785662070598668465436560541164809549309798894770230271533148528175715985350869640414088281344132068475241530483961308788895841257799091247500873191329133826986399456555412063212646984020600744695808411675950651064694906486568304050606690004212630353620151648727068490268872471172046434602414516141220401227788479854605554419513189748912072633758789433437015071260312790488989829220830153015388405259141545550610756533807211751061942300326011635472732371089013341435145287714931424364075443143262493592001694668823516399564769000876521463916951746570572897249082319198270047112784436938858873498751832856353534319942403609504213014326167419069163905882864822343455729863921375607873642431161343807734732083125321531480508181534325825146265936599282455886171956802916302505229467853099871295333748647831318481044045424789386563823353248623025744383664406872099042757474007305026290306584574184677137122472574257458947377226936543828338514634958378832904442990685622972134004852514055652204538163454635322999487291951981467423329058158963514414048005768704402660742979669202879770298291842863597585893523776017709748450410097057393329628852764866204925944036314242642429773726498521168828997559402831401839533723392506465266006452728368745243824892564327915197426585377558871400352695088318358288743265447810484593814197550031802212495523140016252929043350849931799796911342195622590212918064741549277784267270868718439409637882978897955242542359435653722276408214922679520438595512325297121471756780636898675308177446507653049742989936195270013527063820472157504215997904097141392047943755016262804123346964882622594613903425966327735977154400065897581012934260082256368662841265915162110297537894955571258387705576679264779374417568393512907644912082544907534526986569708707005427662302756750772973064318475770589979085658526115506607770012087472294665839671240385409037439510494753540993000819079256639088588541094284320405133566464000773339667960697789563468046348274521880880632737795615846024731561279645680050596072669703575168836593045455565034822654880178702273037986255597399510544192365389352641702996744968878048442258301884813289452590050682622820248365012050982538338366327965952815606689721000624413474433685672197962198701610973702615531263705310149610886267698935831551412161117952469067530635098594332720130570051761360978497062132708930633230180034720369401714196389296894299314530160967460114198149308621809476080971959630488412965115649679820136418107610999631672662892508202591420360128135871309727286565979909554047068321930481735676326616839059667947665554135006735470870995670240794478622245703336101455840073684095347368351777058906770592961348571662170556000636457895240778383912047336503379500853531791816347349820526501615573599421973386832202769361458453453708767073342452701610076619985040911453251731559180894444082714519092466346580431184960716503134867664937376013765893229126723803046639140064143743757811316678765950514215897518810858263787682357996838956997874787960285631468718663701782536843395641831477689153717326854262272521945890546802057253616904796439322651705872729580006149110860882294743674032988668965953053533516259829146541964014270225010847194762269989474857278491645697803828244890812197363153813132035181400902134168674111190302299187354378810368903982062003241265688470732416225274542693962179596149707861863246768466372594460405519717741155456061482277921643990694163313633116441387876936521501134504827485682034637384519590808794809788612765755347816902503894201913142468572619365143868659331610019580528387952840529807734537462423743110281710667942949698362982131710799509582416048453737620918811464673357054645444339616430034507953606230761104143076903368188436813247545742605023652117815584440000711048577700587886479496518136794962974191075556515879696214146297093962452414338128533944685288291567410318617892226366517371099603480057237487657938783534567286509145617917830426406685998668366624240353616651772521071057804794428565475297762964002608679258708973730961786936890175662699342498414028807060378298274564535977521504787583005761295966016577117886399887612207001552503855785124088751796550614205009213521652333428679014815144716045475844751966892304146509654644542975441609767975245822717078987414453960538238829710184724063327683995057654821516541639085240430620163935020288765250559472014148771388745062359081846143557093220112807907232382300506297297504454951355035442557222164387593361905933862516999447743387625887013364128514526738318534731978753425556635840907054591903457766666872469867064242826802961538917511143464492361314392971256046126519514460755176505472975990884051258298220624021839122231287897290934383396702254115183269685992749967788132258335345310149974201153807062889875131125109069590063850525764071513186936584948345839555800992754611348791933864793859998178034620265327178180133748500966741338291992024772242486573181874364122422436141048089456610899599421187837271052256490128131039305102616982077255151153127758479999274024982685028656593595945045015893193074500637167875679950304365291346055816840573951957674139375978899394744338091865352937507442207545914532938754397715251637439846977459649922618353394989271560306094643759730467425435807792066257349166615946118558109588669932997025441509709614218392365581133239224784277459190780341103627377152049264595844846606154025992083815151726144729712987847955674122683772719676088163396312243955213201990000200563274958903820387868863303640186564583544132787759136760402154238111191265101894400136439926907125026592694136970713771184644630899230416658980439777956352033005266075968756324685719227088070061491036639856761608491690620198139084924896522201770094863579264976795217563892511099824298515989048727125990548353842804512251346915634298295492879915430035096910498423104700637474515560409987015303820074649842375011024260198492800975050664437404320969467357572983028126985503197314570565931250673319805287847502618534980155953497359108933028694536561749416183088701863226589935968580321645726725057761976874246928343590909117998853933374392847436554402673653135332507252413218376541676347967713373708863580332861341982236216783197569421669265130114685544996445009766900286100620048403648831659589978702960922714929833783276337565787303685413003384173223259032443969557285151053554300912993400470722734541831923979549980114463016220556418506700889951266132573756059420289220315079840939819869080403777372888544085276832847803635548381902550460788028907858610873661121321238347847794468469597864041557849810901272146778566876667224153022592607260205741628400768038030614267340617079285056242495369516779104350443653896998936760621930535261859154733613869345932014154140948343731932612119035710335927167769606013893064827113681834606560620224027958033199083591803382562790161060946192694511372149143445224484126940542844699560728757661985004091818041797188534771095093803221056560732966445503736321456161520971483529433281306981772760399102807796948430925402215770466075675356452540979533051784608351379432205137366264763258480115082485844640600668620700999122933582934445569844948427605644836062922768841248542558628163856334622771484115911653473065079222137429885585365954391360276579020745648330831334916077951564155404263626109569128624054800036395555043030801709811317612621005141908101639124275190282121907328747683158114352253641658059646097487216334952131751838540813528915539521856166390164117112522083965281709650799075370340052955738358197499127221831043111608957946580020030086862495517814358525973313746679608091635206166239727175402556619023562235597020767041894786353166014406405847318094013983448296784054975625586766401786128181898676816331714748438339652909517400772489019438279960258829668383601969032605065842591510023605790292470969373842206032845014316618705240408489263042169652991162126483960109143140083603983914793767537207755032740126638786561383401890881697269661645942067607742976387650170998536142883583127995251740430636858745947545766802352636494398557900573294612912224164749394178132788783303816562445060923934196561506909690300700696014316548302353071161004892567017328737840498446731171850432586960268563888803558202610699589172353267293132036659774592072300731155834033616140778936413143957022250947367060943896700397611203111722012376880898857708322615813217114873815415018018308385864444030948945976415409956813967215009453427336131511384706278967440905447292283134281326872445225701896682435427295394681152410600464266896917699922672478548689997397664886575727044669752473046369645570414133211896896669037632738378949715626427490715708980846408618424754893240621148861158007482682571711035859593020750079055079934030303049172349513315365458856270360576309116661890616615963764354242589215166218330919774754044035489701720869116763930512640502012255904183142966920024699774208226992734080557038052420917349178036283490099820595525306194179050728546526689778425287972582726118601613991386403287341028389521153595340940530573766837657443445660849593679350238086620008041397311635148519366086984589141742991925119960678421441431184557792696100682616627806687126895019452015293856342180806630209985287481368127776883856500536355294844176082619900106270034703164335029740030798077813890843267512334626900420333509881941620131282993702776895744677349539505131901144306171443968001117687077902259346791966283916280537490723223843874253435646572804627825080059598751141708627759933890631198697816765769320164529537677940369965682618295797656173722833011080975773250397344776434786331544338752894564212681598309143326376509989613774773664614966643923294742263479761501828934328171542209797282511059721293881841237486399862679450040117178264092499354027060238947776985634230088747409641385966867867390037702582914499768309858573688099775521136237182065097871029452088659739540578849510879358411690692012966283940002079538594666278100741812986492951350860055197809669710188151006412406913653797260587294974607698000765718980395829818531262317259222993932544947004403671315059060761504349211418760536584120159580957143139368736984035120006771697638523967725985705498581333688921073596073416519020358763260846630207753237610655790797482834336365927947487388979580781446313347473355697278896308212755146437570895255309430048792520067100946262323457952061061007824312432499699422552123015014708201421146503950758539805550149852557717492977159600092634157222944480350584613387349417287257083660278484782899932123865685797031518495031470857055695236296797019169366930185544373385437732524800190913867125190330686587287123830135718908442342263464164995943217971153071895292769977833463732472771957142132224928627300599006803762089009772110047279400699037154849909919044716852871367650861566941331473552166303363962479502977313219618548879481442443854971532371315975405291499120372401348462008566224671120563329375982287525771401353081681723886634420238637913159230785291090962470039959733341629358549683346973483097881809797230398898414804578314730604511845172257133018896282657584458464426384291868531838952826520479548650920283891701637856721045635943726093439954595652276358049147297670574764120721683001322051501801076669285400798427110552879085310710211627000756109690917246547667131764152104067809616216877470596135455654334950627885917603499254608989932283696460535048046270442771062195828727130641699709274081298438198070042188177793266696502871379371878264351504707638067703742859041770773721644900466175889791431845888859260556022043441708420388648056188219791218341082486746777960744152926944639405509866194413388118119125659976656599423721533258296501669598851937214795574691754872010140555270017763919900429064009630654975482200900316146422158087032591897432097472056762905515952785623456681569751988243186898692285343579690654345245910843430571005669264759616406845126666726036797520758917733779637010771408562501127171615324544161727294681423084472266255072807930502317173332266280315043324147119144881366834821384118308985952480075072343721573099044371068714486005165341021289370334348378428888330433460502951555990696834570019441152726483191501433034840075378546744901489374348954835439637740779917184310120674213245319449366539919595669267601274279000702891259461786402159430889542905774773026912346226187732404802485251534561144237472856369702562227867684802838765615737397150706769699074441284723666441118432192231617284515850406597681202603740441316225647244151701460751349559676644163585163476120746860940608666258116188160754856994739209855026025889564290438453758455375289345376406409605454306136122426376724052320627269827134171781298369380837740310132030075118821947676984901414661137795641872809613966708027372617171933411100636632274817573249481845215744562513927827188084247680104241303691206651541564792570090276396071108329819240208874419149634903268421267133502826474043595053452793366562346560448203988991690533099839246654277118355476976887693282959658242027793756598716993346572650726770037571713104331150314538074786957434145056426637333749801472464615549823404685856387404849963549795921166363972372896530282106376472507773442787038350701745135830310886845911811121193611287159631274227606715088499028189259891563376381459691615944884312310482936631113580599038340405536797403571376410011270751845556490615055885463176189279870029030251514908933133655550696805060596423533574078016803949269628069801139203472796633349998265346209811466162287911630827287298002961727204493949466796825645848546343196570202158961209052456566814576274747875548305528279377298770604024477918700065179773349149213677863056157964451608753728143296404204192578450424440461171729568060452054589967758820071323261537069137892315706856690954269548589925205745839662448821911615610738409095335822165859237982273016079126767463417340916297306080992824820624679744521668425500324543226308674680552829952887170953117201443845558496147155637926703040269371127819972654675906721650998562409947529093855670981765634669906207273348561691865952404967737225942013851901141641976312190780712025811524864344340564170095512933686190077428482689562035168206687136460441258068039520969017752329673620149512563786828431211691854390017409604791350430492413881629086156383932359226504525641962413190256865374160687529747502001823130399873853417974138339514055583943024635781378518544252321146346369432675376230743551240901893743175525330549555164687900640527034050194302235404115379491398683893084895623892886030867770287877511737050881115160458522233865213805710387920135827533843150848666604902560925944336133338631690197033295396181433560137278462610664135607813060693200756339933894140977054184240888477712706603262939617907176754816699979826735510105203808900036807808104106385357080902693290854947903247444715720021319321305057832706489042561632731275619204031329111693481694392557740813319934199071178726311978508281912805829629636146746445200409094388078195567668207185269560685831066974321442125448493850595446083914650929893971029879640853185810701213152397823402221892303343058091680504569828069647896318398298178069229912105615439479006689038750510898948287998951608477667465334515079856557568708543964910850605245254518537786008486326373920601896195045289560034411426003797176163829450300940068626755025752112711829769520522108671451973574696362206078911408690915369458635746005836902029993908389658241878250549694806944418074345048270299507215074071874110538339548347486052668521422854816803296019677922392929347674310410675338319785830064236955920297026105185537492718405844668550844452665743755891103005161892125473668103079256759171830941346718893855085212440872403967574271986029314659992567982779596820842914773922925332903528183562764107630521880138204211686929007384242166564438869495218421641549033211702629130443641281289692491296030053110967749380179840879153708778149427743674153104149849537806679007771872337708894299585164459376800213178857042630791784594514930493973017289800808996687685941369658725769561379213442887026872296298801322105417491219648855841282785859532278830356157290159762105201769391678204699997740991138892055177236339174549937918302369426693845424225514303169980441509940869406074314453784551594814953375079617155436544080506957357243997421351835676649448965750134302473821751035482994426036351531131639177738698488010237380203820235932404884305043907522151380542243906677542860593606991513732496916494929162096000922515858854039852784886421691702686617097071202293412198117093875075009678543061760945829673753664841382425944756959253162517062268617731697182542137854459219900232948508339137110351388723341390627792720548208908965818933246807659584267478009447115940529437831603428202492555146588003227701145281328346760696068251015628840213057236273683086277093665409259630415946523366824225453961692669478920628547115304543807115891107107398043765421772892039320519746718680429221314127589795131008665260228491823563767518322669083415039918287082561975921281297479268598274819551427138181183184081291153712374315268825532119674112288093875711403477850104994464970054257074227798541473957143301554125850948953065419476363364548023687737048643263720084769578950374220440888527501442456794901052984770989792442436879771556339696149235984347962821073425330986437402194527564071226651316705609895325203483088597780006348498022254164456110862732870815751632768184393082891347556884341203868743940172448690234348391175131290040184165782099950672634106741712672568091314772885326376378693473788200956742810730162353743076029874874608398737512126564671836960074645483697285284979101216469564097147384820557510843319916726540055659275814772149693852869198208519626157450352122576731720334383778416430426709325192978603980724433325800475918445533053114538020748587196726806002725790335911422163315748384348277876754952276075543487774144401289764944534317271557855574083484943350039535504668919246337833497149857183626546079465891596567622592868276655889628213180440335679534470166432928861332767445346783562524687678327302366695406808706367876652970113116639770704783397056078125234217864325482358052844836508585309387860292916902391989892511882569546585540551390448863015153362753852448164238200588584082506222487425816954537488791765530118335231836983090328512927938411356849862221520165583228041661090903509912043339257815314379208450478668238221503847693455681896333743702886436795664280274919608600588018149627794722479489885620559075288018897199024056781497238702417996874090593588518255519296704254364627166274535325275067879533436027794055909432303218966534724590997145294936670398836782579591399384908839177586384534520769318042987255739068377825302828841506766642485098777025860953050735943570850714392973869274561676841831389360598030612113074460654111977775402543862508800608668185765482429543192154616104666860292163930885354281963900264482944015319171137994062520528292331841357235847874184188990410828272023845432332562485402221844763899947481006617055971425503695511034597869676607951418470506906569077409439691765162144089165729986861512928213205034381712623533257751113620498733590033047348921135623567229073837941924799311508871130662983792086063071035176507196351138664384086687215453669928820904590853675628687156532287068374102558267315437905330234115561616961262127702899343879450485500060083767050443672005849850285501259790104509095960450977105626745421119325763627571287889054843664413435683744541770728667527176010517685526993850796843944654716513342289013839020888322078244336224841062193933085359641840237410846534634200352716033418900655950131983837480577209559815836215259105011124914455650103738424481511822679555304294731109772428983309923624819975802762754198629215174268423637954373995301950874863271917188647678828086745109035339179696107081209281181349264845948509510872677252080638883324865771591359863282669192670888182954459041846559287701586592724656505855632354556021815096542843870667907790082346869446538581468375245344972317782880067390510423976225546632955095574906954676259108034933226525743011705138485465887683316688474891356715458078255103921292220750644838765847183603866152760768668894890243935836753971020051057330551719737998125848030669762218254635320979197790659308832238525532399755627131536737672742648639964616407991516882644864374097504780040434855065199885441731340532639008111748318090092099796162950382053584251948087918049832341163959046298468080237700015335171635908154411594754030514684438336512050545761270428848472020167177449154316182468053739709495216705706104881304276691393167666717109843944961286546075310711260361694430266874150052484928927037786020725290421325453734546930391995615445931783224237042764464804855300102385117180006218904640801426430480215435997767969261889986458844350679396494319446717680292039156613335735666584022887856763547090046356931443442601288946027710037033789063027889817199496125027807002391418926352926074877078359799582431357596172799905991149680173039891658315479267514688518293048051108884234216093905530006976462300526794650942757379265095187651036813935641025777357050062395305116656187197255727432107725223154159899519268883687839409280806791227313344939856941127476739839463220039242965960232933171000238219935371776286152694581568587510175439219033547366193138382454341446448771480547208956976973036929400968078915107660560427966908002959878720860468513840838366501439124215725474769945540093768120934874269974263876333231459373395570527817259951554416888824067083499678174468676497450450618924269529310044974831763291394418413924699430573627496807160914440684864118405819242939448814565918102362665166997727064761848454335318435713782755748635294758018567434315451531115179739465866823250262348213489734841392807045870708483578224563500933182993616817805459086900436937776831043552775348336001070520004384081226670537020670239572440861391065190405008110064069282012061881409585711647225829528168634697781046548495462672011356423498595315694712112844315935188884945886534078812920417904264300447424773764837492620161509450367107900687502489292751143700907985093567159639672596825429483088538711899093101330890617828797409806980011404407082065438644843543717025646720560918044595481496801422696695849418207101356159278335405411225226974628281302982247877054432070013483737791614034379115549384807488284075210090599381404042568886872671521424785438455626351344625448753957931521390277685562915937402851056667422476368783022542615116258607492343623663408726969705737774124396557743022523478386364549290610782279411654988880875593551955829275231726776024935060292192139159430569196558705277551434707968235141151207683792176651857706316232886702890903776413938598522370912030282530014596882450464969840308776822070070507629880673358161125176757335542928230244613958917849636849000648442436094485095353413775047111886461477533974423342270085511970066528481973525884611713032277684365053412822739529325480761535426102959095592586448055992620331759963422618633848553266955665746712090663726967620644005999343776523468601896280882941945826674597364842883450445874247170959947805317029219708211287527142404395143741715462620518406548378248184486210157717815872704322252251672417109194603450892020705482572241096093402308609831640209205301702807303170177969623800417603475255410805743513075581720186388053404685434029230043570109935776701569357386155724804579750745679705454773438755276194010186500363334089163829723145200969073218603803235934783060344515766726600669776988446472856194460336027170303563715210244601121663768292562709464855562535329609184895166290121203254395490455281852494989853651703077659548248437381401261399709199576508291286986987091185279534380715019205370121983547942217753939893108788050798237764548349610847659199331251422897857470754831215938478571931642624658045078482113760975308876128717808693749935769947739739349347830715066955174559476767762371177286790925684275053025188726761724010028302685331168245421255328022491036528908364400846227645684511044188296780740168000673333995140121857114986208699037116955081217437323384832266994985033843506728865850605910560296192708050444620354986199768646545178647948483398501079090722198973890583882769035917818258655369228784781171798989706277081236972028793288716382922474691170019185034706790294171510282881708408260848017189842505407933185741819308372400466222843369598477776338954372142464214762419810095059523479775128921368101894355857004429163466769672864470562317196283876992619728951225127064154828785529524464646445401265073059218745979281812779081918754616934343836352266873879092930190233263701430543149287829158599519824201626819118619086571918427626076092937513857230057422366488084765042450498213782364228790963897290436527925767148192528461505817155977380799000796078106569326693514915600634557722550958307352737944456486395063089468286952472414671658217566675479131395975930283894583639225243685043576937860848828844741618171344628146002097045386156729252932703050038824518088144001648333637916265386062530687342254509827068010929470273324578922458793623827258622331001908856802744035295370424380118027652638303947994064193126588050783240535166214501446403931591566130085336664193157282172766784783888664046923600740985775321471364623637348101829310457776167672311873567623470252927853419589482435432847943126689137204579094347462841222267999602919624198551476443353970452209072366841543914472677490425414127113937096535540274802513620665779139204851577083215243677701863849499410871424469126749171366067729030754629060354462071273009323650871491435334887844371694152141714046919472177794002302027555619642458523807300061423782575483594557141171880885452355281895389258547653289587256240361357976602636887458778585869450357259309745837926941689123173068135366845443930105615844135685610691648709094862677872872152758283326589362551495626687747316352002619422957677460800125135440002385708800666243425976841489328518186804306409533145277394386508511601855324976073607138037557212236040568637750870922840656509367952093386284976306472609158636936052691093838636672984003870424059829898587515432724998981562989801799073144619878184168307129394690505141276606247948477892945357975505209592130190009817519954156287831377587102468319553737694499870430074015002039616026552823852393517652498548208088264033851409243501644712033419130262363276556524080189077175126687533307915941766776996090989321870904046761224224832409171913782343441504130430864266171197181970651005709797608252409178432856843917991723222778181917638822779877339917066591780995461424970527968201572081776000339502211585545813852347759297218719473636210583704432485473963129257307061326065161598928839617169239097540020162742090818521768531233165122129512822576614842205313190203318872686286663800642915036092718575073314426384675560853752628969257844423305483989817475616694204205654629710148106436400547242329858509163652259494142704714828056605807421054123304635816372733892309388188846779661495814464636313787437802168573156242540503028397996573108496855208696886700410620293582452832146146386390392951669352043224548661942153430539421558496798716797188210421495694642594997648622048569994517768231527883490564374761570399557747190169274144660290327585670656553560613332734944085573974378009883866230419130213488141192474954247736948177243086224288668489022213273912680586430907144395438500236862691012868494663913486128931432311174672451918917142195512684222838937662788603388003504602733999514647065410169339472320505005565509855443644774784892932437059612260276882037801489345544181185478583162199995424537586337718487091470617146097436784422008159015186286475308794040455441127034333268307587619984164592283585188132165881475336484643435635442143929386142840769052167925202778065771359307558665238046717988743084260846690480135512725522993568285836233853981675710609285122546787070314881571188773845942633622182953425560698817513874995324665694511358583040264949807613397772217073796909870484822691923947694317507947734563566125045277770432868977487593171671011715930280200112187454178734191470671082180706761275766392956634361108229983153050062672497241591141131629858045985835773778292902730121450256839070508453627548812563975539868725525078073370593739417541371871174623949118559645987415743672713978210441619394421786734722747477629474156282006379008253470662099987126126818202263123267226638807609758132555195695500148762545654118523891861095794031184883765920952129690933193142818152628825408980181336384217341705026440569831357647512742739180930581415750614753622079279541927987683654652183416922853334647692155252992425628741155229860025409670040028965410532987392366444312898932141384203742955522107927990193335911661038887729704318263857510921079061807144968856785097779148101749862140871643568927984972795388207260982633656458113987945769577578903826945091919183169173133591742569844704296613038451858322262802396745905805396775743133198534725068289237857233493081873138236717947856518011374404086002902442596413994671334392777178299365290345261589160565433574996135651655196726320038692350189559255847226984870010933803998537549394154124784445376734739065764292620458402564726341568968501033153098602657680534023567627684614686879988399080320219803172316247440005425875914106203284008794344436642987926950838199635357600673886559384817986679750624506636577883840323306895083187482897313882283092044607972750615237743921070523722645778780063514595726144567169345082153261489395726439909113377564551336012222341862081108660724233627278846497217567941244530503524395951936254624158197960426826795451843846072519380920310690281824584677396634387032456581422275942789637695602990228463856533252647457326476819278206241239219281467576811317501491826520773480568948971729629092705314618061053747504111303068929134638564716172019625542682288112265887075065966636065772194631839183387974411271471630678807324206521425965646299462126999169286662424438357187597280424886289561871292499021877936470891755221010047102294185675216276371488567479697467927376234610566297678059113624186175214116844427309887676831088247290549948589521814827255317781508145357848843712314852473877797992922550086451981906924407077246264983858444182401378543074748414098023528287438953324074769499162138421389286617840603073005682031850119061730979039417233441711203461227822356635203679103056335739389228048820190330086365477343344305923762804818829783903633042666913509749353215644139253803444753516054562698743306641086096868903847216192506534173848543352953483277403686989737241401118843570785251228909390711902747612995574938708484733732079190837894100056827208772630698439393401790800941734186718097178581623936857931631945667553881294277693952814998434121501294488702015695862087656938743866222152288142328437051772543844658896428103251132257296428875720575630452125552603408513500655602715621459955902975865920198268395479843052865539255427037760624471602347701958400888763280736703076174043567963247486163932584275010046508621431305687126781316925924725929933890977883615692552031548659740627804626791061909623365904953045700001760043454366034273231972386542356961192704394155297244237206088228300435566697920339650612451568195260800991617173815152945222982742740897541976996962786430117381202015625540470196073185790981239442585494670129611804504642312627160330435543906758566826830612072403527909657763670623780499582907311739979471957260337446300778298747371588831525414960536202688904424594981451722184435717247381694975937898357833368195565067015321288642115950055998319961459115838247557364934615148521054108428129648336388826824690390829160479161038960056598363225335951996657228659211736040762345808768755705228955699579152905274250426825908410210646130422624184310912992721034307467767773236550029058219336859291442031345920923193925709191911362397657468672731835728847786124517840794921204257073566363662554956273380533735304983177590513718526449368249523782277625992650331586662288710476472385795031980887496972407502639965754388125377154566209537208141895165483689649285817572936170119099030553689066405425081373981103179032044700739541217385872988357102424205548148856391698267927667832824825301346461206084649896840317871638008054396149854858870732218563231186872875401389365164598298571243353626550352788395977039194973156065946837230704611313225753353807492585517246742957309862427339942427586824655236097132913553631487801982651256057460198099915119258005641796462557248392074132290274463808092114995488941627902274893140823027194419149865432349684383274787750250425061111781466097119750192074995748788820083949824853377323081552496173975926115485151670519067783132246850762728941483379521301128651677137490490863701592957966025124646607412200332557485572886300254722752310349524575302511076882929047955401850904573329489642995144973906845493745251326896474093172753777243298508229755526596195100020531928417255060473293309333697641039740425073930780198924285369767812287960837981260096792538740063948164902092602723266009190931187202733628221466885835261025096263936062581091490001386322511911583808145390024413644249240204874161035573416199340471450274504198344155481718607634376640825471166980540480635199879433065641129727374601013131677841423681963579336497248022286857721565298084869391846239250563910226331016024691622758055048914131775721736563338288776362847908371566578853491763826562128837649471572944389184642012386764989501081991240710937858782162495138878192885208848280373085590533425860248971966964265584153608591212200356563114025970593697128723687645242077436531171347121908189994278762140184341190565013988375516104519963865154913936646498823914464517116781830585643586427853072783078471606247866486790680123266128004239244029533669307039651908914336386281312339677276380489816280731624589112317910946956187662634920854700944621567347332793899080282938388963489036226972544332466938970213851046367446209564148518933660934501925565412746437112502351497809443068661849014611869579847892650913535522678455632379266382930482872855087528821346128370022431621047234595539436549113511286085421245532146715477300015230488265828378797465467261500367642517799490103786569672246353039857903174638016109812273537595818774175573060158354748969051226981961380041377067530885544819585703665565498264294264681047184004054478078252090453279632688131647921663112445412617951644074485578897393756293526728688220769712060090673469252116835863623539274551554912866183385788863950751887270786625471271704989758896378257635506877545536411410110038012880182187525655448387216080767894760357186089992241098460417837085606986208810425700229313747076501173882293190861134835808399937716643613655408529532972845444095493728024927061280249989209250448146575935286718365579622748932093762499145052367734339143672629571297290747674374564006438056717909635916944810854739728607665502452984020578725431190918721177467537454798331538810582039798397969317735817915538885809726581330110297698633433440456751413272645504897003129146017243549492226754586121280100756380395695752583961392819034407084642725836706713992789068809754447999672523339022399252769476436522007463286173106446826479634898833164275190938691749504567279723061783138034524704285398881049568559611974095379037163257104215186217908356237506388660668090878613001803029888351899110451844361227952649941996563459848704080793836265759600519378397344662288504145080097694899306176322200194862196635499734798640371218290345254254839549865859129707230622484823068678534255724699992810659900214861036263661786921740061605547446981230134393949679797215172285112677775372444647284775882591682979708118947024190351537525571572939494483128995086682578939702522715752050463794692339826856109453277812791627787439602977810142482668396907899125635806059444046182348578260668275873933105354339511210585745883001434577159091516189462707743196744115256642226091154615725507479037684225170890102812013582270800304732200480805464688918464271591346775951313695400997547555417576498873314091834667023213645140140746657638344420384036909465000520048495678381182122653328821662046457653817899842777728345007952163096524530712402417945397519082157802056297498684691125504609563109257024569671217387818393972155115471378079613431645846230491620034253201935538361165310350350864342419135997856771264095038164295547571565442691344265415883769349295010161651582141979103034401017114391099406728042637398210685474030450399535213724897727922886455829749239864594949135151712581113181135894372559495909015575408948920142159509145844804597124221632667576442093575228307165539003480226383565395593707101920957695179462945878138485651812106779932474405714690083973404589378748875528022734726930205364490408183975569375625920355266594994408197130736763659763725484186534804172309689880071806375462141546977245242496141480074111472913792408303337421791845516926375819543293075588250263676982149797648112637001743923762115405281981136189076136047971520424752613270667722677814681848591550688495449456101062697895505536025252528535945842594853049111096872862883863785502827750830967633586480691021346350006697615104057458351259143524244347759640878949752383655858488066851541486525073314383931031193613329809450017346818273865089744194717158742603659555200928230009716208881719932100808663682014380215680055946418937004489543709501916476235219766048206038969744784160155651319327100917810547778056423953970275706823030572770510809996391369495573519910362300451073562262693830941643738789369584191444652566431062898320072194974139144800451300309898131370832074853795805079420050254219639854693576086699128289524356477979035258901856773363869545728779923693085563363984377410105661658231661072417728271319437481731720083320367404486286981099402757602555025211341830215450965296540391942694354344077916286105191392113150239047758092593595296430987745235448488303294795218738331470096738334935899749167737388801242310781142671608043781121615352593928504157361908561330260171854638344237424101865786472356631278840033659751743820137773232136278682221041666210567770539549607127338384616301549298506850745699524841122547322678464115756053884840923680563179586281044407990675117445584479872212491601434489212483601191884290589282170871919648928282122826549089677762182753873941200643421766457313639148450104614975316038410379713021756803299969448129461531775658628173617141632712740873828886629810618934273975778015408405720544447496474041515146954628921067493288728991988583827162600722563580357246361859841498047060354855247238923922477292015813819219811070426390367814767386827347014945634314265622364537766186649503436379660070884129062696607524722031968660375725722453321964362722282026917645351294046622558205846906003534981385359088364831068614972553031830509798892030548428436021007651336690428846453620212925773973357489831434897820707789022790458099131967791181280190116821748925075663529242556702839018153722668667496902770513574409498485752817028229262091161810747755952962324941290737027664369951708975426100581440233421481205311869608964733785703571590762445262483392811508119718394836047875606777151155931903577031267793510735362325532047398883033683519306617377639042870849210039911018294482848335582743489134323160925447093075366381525702703138207652388580611311641165160662454129545301346229478179057797893267983879366835887912108657311296966364864327378280808023051648086220085163108903315335664157897855114971079537329376705825833909342393185791762212034555020937506623765309768213718424493479123625854898682463523182224301032766949404500803127553354814958614662762593314005079822300803202023912763314828372891911484906605439350192477009279820898094609620238188423891726746783401465262911091457331507296813034814503144316104067360151984131373196027506409342412037551805511334827913546943745416803539048801579033762674121619859873999037568884270863474574381722192109247750127512682281212919275597387030771098483813627311857332141538148895332308883563787436156775361028019885925153540343581272906323682844565446620822374896464357396083916738878852983940233264576479434913710980347534169706956101790111570606732533002201039016507715012597796604326670194647249500921246526515751915898354026502205504088561050417817917286058880087660183480245429628444297541644204411519082145159636797328380037978060320566791851083833705929157563751013056407250138754473971364550621822628193597904552584277126456477101873529779897496028483368475006744612728954741282703399163764621064395925893188260753517398050394294620940328212697087684732835480764233324467463915691069975540569004152975768721272160168196418365766580617813740331943012878275989608825721054763657099815239522745857591609053641525884524781169695924405910867148867647856875065054453433625269093105145021516778210978912605624955201168643627339029448563449328091631978938620155612665605554479491441500533226159745581936754668296109410181128496577733211911302212474426289404187277519046649020097286613485768413055831614475600892703015566151375004861150538998684772560862136595716511149767393921075337365189777464370462542057126026320698271105561612415776359062774165859359060074502326966594734862757054271177655448401216556554569355659306385647397768995794967276925770705225788641323285907970335530382761948321229807882592075576516712039896056187805945407738077363172520524993964757137520211452226170021144954424620271953206252896624395329524525779942251924135221282292005085085640884876950056758473933171645953213395671571700839984745140613059137913493010657564919060387819372779341257809608821560563325448453749169733077719029358503092262395860392591700788295653895106800324885529336880128333216271504037067338104475378065970352927885689854140364934872294203945974060339594830803211746392181507877793978825209619323425991530255426178516642492580240075461350386811782705394342623807468308077219206841904940675147433776955978304179374109375116072789666650204653559297695585606765079050437858243066640840932387933811551732211750094947847474075196023964513637062960843227862458291076902276113366382618204622193195436524485205668463758609149575668568427532512121927949740557558818382630359011646176230361849962257719292983081814007751705849360022346094562640308439340281728814066691730916856531649512249774179607318708151360293100056952471533553918449748678075802872015077308725124264471389371138989579817903935620386279521362015868639039448669754589921658860981586524719379603001457215026424368373869439519689490708492825588678081828680156995476484607971195636158388968690023925349387873209053623555031291578061859412512274533689172691631672074244358236480271505326242608536146101205858148219583710982298217754984401275834705338295609227217884599878138605591918523524593636204923770069168098413942472315818081042069205922337057235303600390644704288290893476025272751413401093750788978417350979779163618328960798160001195362635513493707582652853661556626211717855296282773394026106700904259089077843826826813749281608401144701484953341701967470060496477202823953775097893951694014850926773186109723768098213885783131810419687153282578734960095004408573719638626657604291791145817459864211948794922104658279266912105256234934740026245281516287507423870787593843327391709807381862387992872527715526847339052998779128890308098940132444287637741645890551703543745655877499390859225858993694337569499150416746006927470187482188509686858639015383138291558771606030715989317001677636696154856361527665449476698387792266079360082320549178514228417554060933931918420056948669699668878768674293853601712504213326745031976409622345062700827029104619272856162397517477893392605538592197263851097476414501968403705924670418354673973355732751333642384726856989834911400311410990550936097715738038540402574369822723041300628114697917875643478740654212183155442258236783212870855611061792097783220588708169745085879485843084380798511808800196763057916082073472784643258066176197686547742820157915541432170187170635759035986509656873045923884432099469702007521421109579104005914615654530108731844887533925152034817568466073164810362759994373596785312083361023806338809358703211092041188248644328479058113286725575727428181368850673773003384549723281125439835421673988861487079576110074946511644367398349869039896063314845949229641828038137309936753022921328107430882523301304446230546751287105456749027458977961681744584429900908030120225831597988146699860008735105370387040496363068965801091758100617145325143099967180226391812769841091287174497466165094568459435081263635595564486994766061233817759275514653003120455332813625733737763705458519544336192633824647194429701560865178923397423732574471747804526339427341821894628388469649471023500152908811542822277107628403739266145095612566199884479757817291378744072723850878948693777547707758798211364338660494700854673403886492011569323156663905322990136738417464801762277123478029685173499804959154323399510104564134177582313705048977190121069524218598431170222255368180708023554676064969330126776192624240707447982951392310797253622961135114261303906005095227845637895089549857250466821981825778557885305783507661950846989674128348404980647532669641681733541338140733974835908339692159153983910443154590207938705519961409725573094301079031884433351428456600380779208533211091870758406887923430835151653281737992106297582952519803064063380824004880501628073671945261222655722458493132294908117878472917148016980599571712009691649024344337709672423151905875545972456606055072466740013301492943747481698198794811384292260773193388227945354181524612511976986687728113745383236300861931649471334769117881886604177280969086140405848786110132555885829096466065058195883045752618857770431373520428824677398783253020247229803682473435439045797266560862677383404363082294449739521600125898665035907728458465213642356102325783422998401711722949301523388139455937669398313582748033024658430683005267221319923579513653761789463836548358208723697457633262193425088047868342335415443224498523568037042155285812715151625284787169723066037269467282452922235403942982317964137029760187256884286609527431684008450101785299651636248070862641195966557720603709769435880762053439047530242066112025393896529112736107659514404512974810567743287078737578318352479482924331878870371704783918114557482664590533245200403385517903379946147843504163439266510313490935835643575599373305292985122692696223317532470449402186915872743484894480091517412316805462583481192892931635504131032590086008788645589881039395080430070967892601855297248098113316268409911185190932032466058031648343115205297070386067068345137769626026084005617633342418598296767419160442094763234127732144434124368289169954349778089761160835672176798455285488532037222829783389084632260951787579695101881556074233974096576320743080688612430439615737587344887471200095372585489154073487167095237118583321925372148731652277024459459543809369078338196984550585169749688450199261101306943310524085123940316654550802633691105096177522172665454879688545308705914312617423407249821402829544432873785261361141331596768630112849493417993484789991894662128077419630907450222303147534210629389753388961631220627966342371334585923441124257616107051894624246436028141550751265550902028159166863706408860499989690743491320162368965538809015902384413998518518155515062083218992018927976034359923719418427009557907474017511328883440221637314777491699144888372343255886572631916978610839843582916536941026598601507940305272276808060489241380428337843310108996524615906293777544369343250257724911546617481789705900295457501926992566719069382877599180324246511005748491226906682896596061699937608812262485464912832648357027145719176170049113403582892532961239788492175860696260215226123870985971636569167727815317315065874605610862394727972600032495450909097703494514098822668206594202107864306801704903120721204577174137656876596750600512581500807417475818951741395685205558314606375682327026224251325375051693354471984853436851350775649760615733539192363265790770578267845767101788620089939144688057703170926244697229584495285494198469031660693520278654819776335277630302897091523557983300790798909766954036401454547489900411231194389191703023317365550819242954699769463112950991367752432773416918152465672765394915642052186571150894380260487603749252383433852443927693725141661098759045413805168039293605069247282302865615352480241268550429702498762582292159554854289229540023913529379447361416479287294657722458127867700731154414741510833248304011269352831458129539646576687305347233005022514257648762902953664521456478459475159054337527048776731223495898054596043799560034299917643935635938198612836837846034991049680471494313198178391585231887973222334677957328895703149970157029266549233331450811805955059037124841627693233282280420107722821321479798434678400498000915243423863452948233018509847464129341024479704158329044871350649279965440921339733072945683904936923652670585078145175399647609619512988208220629509704216757587808274953451549152852583226654821411111523682070423139462582741758241482770587985942998689360038080651583595211722684719884925366212689869383892948842632155073062270521690467833928283451827223500189988669138306913254021553022061316609037990441229412728286711031188401861322723005239083325836056189262271947842915252566749265409398766416480885639438757120185069814876938747535744727194194004452172176276751212842344441498053388956932216675422178244155574819465741636018746895957877691548791808167309118162896788175096788938810064728018524647307101601999380553374625938422305636615834239552342742265844028951860846292512008446623084459175883983279397254679936667739062002968777704304844378746279814681983520798987417887956480208551205340423360355039398118662947901140069708568630702051798145580979873049541167634987459762986453157078913302495255405623597628175731583418673510569571831333274869776983840471392490028280124572353629680432256861395232358069456634741357309201871216820331302015885429821979507216071619372729372473137394735923652402152442239497925039103929260923633171062336252188759194319411462851151155203048052721455120541182326777868835083758956985544052844867558347273892372665818585214422131988348270397678037807070297611415022531921949715125802091604157694616802734453447899229398008153005262651058137434091823326154308168513816212275632302576564726938418891340237123689971736797445505663912680591796165216587290074313752680622475589407549126159592397086764212091768968627221027108151758927380236135080563455862622209753434199777075613401310447633244873611564574027199615378722862930896714524667123803622987188465639596683547742624696575409318547044877100819743394733232677185358141378862894416135889772659688650934573188921257086142038905538138867041488507794745991094152190720205878633199226329041592926090393110126213073619318382823007515101926333627555021685742478518330198132336622053168462620540889578159036602386954762090950085955458586170231054053758876694133685504670239042210412559544405733987947125736899624030182894068304157732956148990378337851102334888603199347487953809913146836297951385280353441926805853267956271857656793879986778676842105110683895764188048555725725625023773749379481447488992327771750832607832323809323067573032979014845497128824424094449979361116483953522426812823815273107955251012278340660248598568024125801284209333588302806253489180316942542360639581542372293471632429672023564463344625765797182362323938250378871686326697194105779349175914225450440024564457598867113268064571878713407571575516953920265114372857289058063194044442043561606494455496290769468854767219574023414941629131325443323148012233565873795848012000371214630500953277206359356411941983882563079248012737181582403364152809241091622804665696371273944389936044933468958710348385167066669352739683332703622185182668636662522027055284117926375339464223628180405100050954105963875567478212029257331952910781461447681571283627402640264490161970093531445002686841455202724714348051846457899580220706289008335078447985212124750371822032828646887715805576550846056623451156074939965869815745655774507117881528216751073232975226734942348823839034803296227300051264065665382967944263753612257713060541048370758686688740553561231455751861529221229602507212775353954773327128563572884454621690592252463505213187253094702566342449653498133189236030905922267046111920699562570613281113486427784772874436739590885501020585178732223827222833624639585462528559915716614176881226533323746047744418604179524146312679856887391175458325590117568616823926600293032081820080118494828901687013410106568445252167141279598323746864278969042043105893277941022322376069812244266627338321635365629318034801251326742525143155245683000771018784691784792475022125463445828254873272948760351142519959161872249157878233055961082962780401379921989361352114543364061077445573748317712777893108547879189264408304193317193487510698736062155732916990532588967205029114641022979608668529180903522910302712999983662110807129300438575937249380308430115506522581935513194697231226069501347352475606030943647920433402297159570144127608825567450067820835811892993664007127954611361147134141103938501570592602047990511892831342192485024523839383493124319894347643179017504126159598928073660983784553898438673553846868730546259940771664879083524180822688463535060400686520384990662405765175702203006640607686697397228472218767767788400459737720139349280484554717492626382723233381704602987047551918211421175790812819947542221283362679047211468815765365839447814149204319360920244349008857091872667907679738751488467920515790467977426432858838814490941054489761964315342817342140498262218116406784745384589100200474800917363795682172836492686386528528272178872648294478385932057169117241866761801161825798107448626473279393726336282910334896306574984871007385421167962367420244222890218355743358051176446325989906136967515746529607982634801668705807733134695297175758726551506013321385841953216791998652990058962860903926181935321843241353787528643640600523287815308367228675687411639630530938382049871305260551089443395877823095678838860797020330983964543925668738455251361581901767977172072553786117005844427063711815622599845729965059591170827124514617579557467353284134274793764286478793140499050035892741380654346744717113367550766475475280145351865157798407178696141089057409742488188665326247334818831830940471674497059359552653506182511663829133213847465881629434317260118141343301665732509860775019166454945227447107015966655916527215728996198460059732250326385763591649816626956804765984307022204527822694675674460333788391806027145464681337718211738821196046321712853092132845410282222955644035516146411951928975081120345787313928809136247405032692385321780937295039344717108156319611684892117075203072119062105185405138081778219455624073597883660873409276818956438575653594933750993342361707840248785555550274690078307295597940822196719432401587974455389665439692656346011523605038552527827724570168418918889732620871472723556501303883826577026406285613121899596418941205294969971919523797643463572023865496447842405507903201335612997583176577628979693789264014362599237611720991313412811926749554026875478079126389516618621555969861724962790027574404340723160293862397701192663785927936461423556453590002353203005097720027038319810562748893972137118856753310305069935696675222300464535337357871498310269345485326366353765251231300309476376914085851937307153027948835380869197761220111583262738573813577555376883369983366174348288992204326982674553839256497030161494992825550609221572379882596171494299377784236477268857573588301168607338415333964100931620712149966633192382784038884391541820152858606732945831525384424600456512465574868398660186281674212731116731249021274178050346418566058598038568543102220126082181228461613274779482495202090415546150429663312657508195882837158675036135638363107732517986798163790542090774099440001561669463997393130458992649994729889175446620493827630032063321697032605228213647402525039621330349673420459187524634898561729529185155521198898479076017330258050215734445860200607711480190027897549577396678024622452769511062991145715148302197470545425687561659550661688884780339377495741666417616569424156238572922599748878484858517198708517062647082553037955166354799835662016745230212338175189265795979121837416232513886873758037001797376931147997044246843536260203805047400842909468467299062324506782376748876947057642620285789863102059769614071464005298511166775330394561387170975361828015827663840007058964678944081080670860194237811216711835575610712676668237548618759630746276495153162038795217781443116184073723316053568672452170172654189334173165564352947664645448248620726103379762669792161846922727769719848982932384730583908316395065555316881143119180050447778522468638061007854110228444189719319205704186265530659661038123188104643033840188218790397615186111486276243788077987889958103643508940780610886335712864374286980178733519558141254591514398259577598599056474576034522279699406898834336145272123448603416240783886603604057355105402692188816161761585180033981227775621611035441891618010439587275649129283696281041399577996619591996496585523043011730123697545737925894736198089103931452751107528321805327153447478654542864069981130997233218071441936014000280333548014795538828826901846934100901130617966182764733476811149012752736598256505703301491691141588677394454850458457658560818856986154349378773762067559722074572271363154053280142642847050459673581410597523428061939507573595197711999303841773324009606324092596705602084898565674041575200735384508919203302061801339817683250121424785517821052668657989241522421952055027335022502982270094685935099200427989964479140051046566097544436007520117128772503265023846209094354277718741633852945324329552799158808399035046723670877516817866545826025286044307280814130770149880423837538747013574401367629931820452874021873365392326503777511780659896783611511237018568993611335943820846821566546113980786607627628912938727070351331945594416449950849460025322925948238205915459816277831521040470342835201338681463531070528055897412530721461500086167783988498586135133647695267482312240347980493471338127642059666232114298545939475999748423257399156933122625208452356093411861525771582053243357536229205245796813822482096039862502354186356223808184580377836736915600833948967345936026382871861898938680190187942910876928943666650588603506521033744518120800748738943818355226878372331370163497559292283992034242604419881170258783656315310855693910690734404514142844237092215578335272893184872070711037440847731681698525947744123501967087253744708232652761582796722467870786813674510920525592928037134742290090196037566729860572930657505293697142203813588955989204551150674800934683097062807988806068304626537333127222952245378526506790459226591067133520447283385377913883251910778274822046541601514269812952173603002369917562170014466540579086215900404830353093420362688692986252801237032160859946724868887175800060746804638249341159408665366488957538870523492252582032636086708787250014008227204537130568186984833776633485920295698061799731466579291588624664901655616114708752566949475534098388582211288539627795125838959744359033818753980107484640547699421332929138547802900322340544958282673079145986738250248230579948750296987257667784984239261386470033070729515452673772294265263285611216913963506571021114469154755914971366358148538396762471463700809901259791674245702523781626644705461910153199873813013145242513676500019127414353652027063975217397593222002375942255352110312752595614158426720411583337807166874526002935029404670423419670848212885870566788754242923677798558477748254289503398944607557675150753445706868800883897509551401615753116307576830072266263906341448227746545312299880352115923301591961575265824632270046373266153983884451076923345647178475845859991197125684607630156735031414832660877587363986074280814905251350090308563252320489643612022001562008126130826871117906567292151303135224593113567404456881069972693668858779251497834690368393676448983649506061496550097689227295280830182513812582179965757511322497754781770324223128991252242612257591928726590897604532199214404293468812760544495571814674954400924527388244404109881423350697319415697525152103036170208227515034245684489563725237403827454171767971223190774488147540193082702742154393822868648758438161925610797047179036968028257431940422786985706369522957389576621720573831968209326030349564135154608794196673031449946365265862603684477820044581668593893940529071776438062769379452667124064507748208881221186965002994092991416166379776051286960193041575628163948646636948696265562827885569090298621266473476289335279524359115474930592834233030515483341456593393162371163186449158842409501249961591366981766927523215411992511012280977371458427524742997944666794570168982193091631842472123272090584740236367159850621021010534395901991733625711021397042421981101242223396254044333964289246355473915687799564687867540068085601494947542917939611338655466482030270258441248229627946883235173404604893876382493434384102527034429376407577750020252636954186975014858360517030534369250481731007437406018900538972688009413224768067786248793601052548932293862777526582539422161044130658885741287172655432188956729243800456652023839858280870552430086048077306343520245008929080470873036880882618370802847421160717786869392040717376620202026275767940562068055830725719286089141211472893599932627026989233982188663662002034409112490692145276486902492331696824072075895707349509049155425857055311383568994334593275724776949882227717387068793323868755378448888311994217635610279009054625392107074794492146415471011959618382155124072393892198955356860246386257388413612474436211211595866085914409113647038724494535410063235022325416242719601883318199239011503400484877536351507767057603197410371728248461323448210606983810580180798109458910952194525981770335431115294349795436475016600749001793784617354778339151250065597803792748527048779326225174925497166970338154071128308112735181309506499866011505513919466913658935375938287184388062135194010180255629755279320479451190927063063181684461266437766061801362445843042248967143185126064333724841415819753516008666926467505672220332969308107937847657517647985404089028197563396714279820799690927608859888150996653648469839539898386534504583772879934809580401206701001593694587506866975483997821494276461566455950660392235926106729340023541045273152115293723656634644951355122827183411628502080622302592589669336049927945360050988452326468030415746766851331019068649406423476608672630926378562704011506926186664924463741825193920536399694150429421889818282083946472180095383675090267082012861946554475912960786185409476169557330980288761356780926781714492294502116701710543645740849038891329944382994753160191337957040546451877830963707057585292192121646919478987730153156610804009904687367128017807895279622075679961183183259946475141397560525870927812787591530746515773860331669881716820902037562206109546851979518666540878898583134837891378618089120456281270029208750369089051761171864244632311112350897266197441473343550542966287440902772725461158809435220658623508731266654080880197001393835518227029229875311346816006915168116792304545515560978222466444039685842218455916229990583232217362559659198242623445738772201020477471606038258079961930333175363898303592927900782966475386500487427923878156102015457112729522216622376922300099950497624941641566956569924506310324467927416093386717055036532233419876277100853145919303740081920828477114571835122008303809380941625071684606581869769851288758261827955936589844739922186487524814038718938833573401600536940913529619377987788860863858115327025787933924509520625847107873303846424888601757108775519373015477256306779909841538758092978630332611317918855115988546150124346102330716826270683130654573556309050173247664602702339274068167332680392046480425052035240117721292636645482818428177481878760474267722934763248003234990415779886350617389251439569759962350314863635545742104734295601605803538163147714471196024966591190310035840766909285952487651681348378565052191586522923801258517156595189802672766667523418246800372984733286881817907356265992133133313018007403898680976449369217190251006952202148991654179953735161102559556229093223363736523218740840738617847271171615224892604315052388926974198505983730042422109157238535087228862407163319540118279531259197528551942144531049821781063865812283852324024407266627264748572769421832030411940769778976256821171233954565646305451562955944135760739621049831073330662099933554933235489069015226888314488683051667485256014874222724482981847479216288659937718869688377489197029697468589098151393076610976999949265398751266521898867610023203929391220733742519951188726200641183690008050121160341988149483795886027964422911860778532409239351141107927825002324390901068188566352451022412631441324368005357220620387839064936632817847880881109629097065094371817773530038707252636587270198093904150414338360872168607977695274576779069334648676078544880884382812812976857326745356046420345534855715719750110917648103984635322011064542192802166845405820858038993185232145018869306911305070985589622996976274878570673984158901133191182423292383042914294878713911135647898397537378959022232835088185470892259694654952737463863256815815710764755262148254978927203415197212047481600239704492516928826440594983699738762591326534734894959338429626259027227893949797348314382648618872464445140568386767329645295994829871223844093908384567310514827098315033696311905840996440209705640680902571467072038156084558027579049563263979468162771131336028540206440637311102030901562552470390629735690538126068147270057294671506058691510898948393356192975966127668555418395327534623701694403438222402500888492877782746313889968892279156247728324444380341293332513838424019151592207536477297226762252852183459706345697061183193514385502914221225030401763366596427452279956564353308430924694486678942401090546508628421085823559831009115594366452475075485576357165359094977725106124218835227237068781739429136300571130675484026433727426840016414477861200309569090149250479505100611503473183219656581637345576420076714122062809892334621530256077741170899937132274726314033472472851381044147998672224520168994603052839857129178569121313405268089599380826479005722728639109062910907469868769510590809387930151491606684752282163097820702569575414569286121110785844573468667383442147824809031491004689834096749651640349750672609461407607717767702188740948437142852831120390939873682581989534743979670445865271001645610397606813671105427255486807576490507054649554881237321779070599064733254813827717100762502868526836879901429799022450979296633909949387460003264477654463116422105512003433140039542810511685575917711010640587568298300496099574482116967494736117687580264468682517785776843119846815850145676117110294826057748699327031023802899031008088084507350440782182743322410017942923053128416206152726199239749786893075659248070265043875626196447206001691787391213071445185742010188257036759739125697297367843428116135769637034328830426867412511896025760147669354469737681384029884724290452148360561706887939682238710603663358110968751575730153778372803059456604558957567583710644666768612113173714058943328365965213197573098820364925984618272549439396298558280732017012293076357806298392696133946453533793067825466231648428164470055393508027064904494577032410940817586152358674089774584468837278115976594154488825401015994225541180071885541894482175693912888000561125592701814122930990126851035608322460642917587649804226781405070092395938988482461895513685002008725547616552645410203193616755574882854301366649055970474480765978239358503403189210336570003230753214599058839953948708349380943600009736279756504563108945979316740705465649278397114357783551329691871278374586243191103613184156010110707417230449879859673975713935550786986306256547646678213333933995772721828024547820971138672566533831967054896281686569057193973877838556053006758438488621194313005625326208696921874220485579328072836750449920228106016142758459099911245658225351619348540536239395623543362482311776272763357710112546553527565593703719639538511093770080823573311373889706435800471139101437197274693348731398790889876023199151142588472368420517742936940780229094034763731313443645194591319454981664893890023234661269298789258925331005763387134585668472128524052023299040827932817942688734057686886965824539252480794311840237060078658151946498375602093597013875943882891806525041548937509435452952457646936852856753313472233598803812781206040162985309582534207195710563134497150456363136849735979849641824914415596967788876663246848499132991217864298446196218441502890820988985536310851668269953026648353186087543738102746502561334792426320711652641941018551970358201186877698946439943600086473180836864072032063389163759030181587178899227491349514524380228690276515204862122290593274313241721950515516727336048653931973856757607608712699906693200651920400396477842301292592878747189333024726960782982877681098151365376301573063412002056711002073189297376460102749328517286743057952514905281008160285858104779744889910706865078933826358078693202234785019144604461628350001725392082759218550540629651967939122187395808860230634243290520620927003679760115355736519618997734799351916485061055066122598884230828157120366800897497749919659071316098795659274790815209203506255158754229339640520342588664325212409637998951553922793035258155985642727944994611147998334613146759723593800763433845456824788359216187891414961599043658405356321159992047514222576874522074274655796145617248797509073619656102092452495306112950311627055344615802058769144081227209241759042399912887248762799314356512701467840509528714134166771060259790682441554477126507718390664489914189163228940982089160432743402136317285103892535659431827452656774836361738583678591791294633874150951226538008681360466257469970843499154492643777060838365075275354999683946404857848748927205769820673979133966254660438868291793277083043651602467167510615056024644266580924965368201103246520157900467633142580300679741315723045645387772885081874936518884287404451825096976573550460225440871208201267155334282672768551670344301478365239991108252028165641031383812729765491609044607987640743178208494758923816330134659245282037366346047735736093465792884085047591545822746448545787217847393333541005223125703396181653577404126536356187448162504596300998521838911165816439512181521070237664574508651769213485395092096430410400861737079834458720726191992587108821813558192679532618498083434195559388774078600315306120731414378933671822449914988650682250534462991585487368107787922212609027170284029690940043508005353300264206968720620124528729421005798449893962161805196637370040713953982458189684793392560272021574548229551086033612098301572370067109602536472794129773758714716035536005272148369281559763580351969416382999917811800847343689557762018856070910915876465324530126141919702738010516304189902682333020918218077471379473947562725889634441957868331238287303160793042275277013769964384153652943074193102848528191545453585549037593273265227754537812829817669306166743568095752916679042555975495281470903264115157329418360129372817954365582897460807747296120681146044035466336348158055721925853318462881276861745194336525649288400812973687882578667983561018565430347641368485014488844457392058329806395884659099753415723532504913808805669329619123233867155343176219247048823529161046281910481842773428251785392166363525245332153928244394863187253406944641859201696323842871493321718586633082104872213267741993984733443227962632802008462978121096436313193783692698496628535949631031519163482633684464574086566455861184542896521938936937704741758633290204741571118338404080274273885386521701234117211117312998484179579990058475618440693994045261707695394688391745022011463416906106008614365138671542804048485548307829208978079642669195082542764124856482444133556482408419485375488653448878924349260799151579750234968254994202015683057394203281597665829641022161761442969006979491240848199625547838638935918483922254861657327902118221857537547521974495897849350012459542518589835708947332614805586261934208466551004542041425029329809221023905563652028078378114427690760054541864207435864224512633972596296586091249780241704852620010857740688030824219118728330628943728370283209110291978563797058054710579584677949759089770702039197882342498840423812090647690323132358146880248503397032300623257018770045513716684405978745531903522221787263907840829646327878393329346263404294368660029587638890667481508602242429118144714224874805070156075564565524958804867658980832047777249268124118240957311736271663241903922845115216431883244632571620484427687278285607391419256845372527406069996463723992964460114680519937369238965196361848600174942597903132363339140766882628731251592639661971584880150556336189491044426713686929026469211333428989990167268649342605117353568722811663644694850867474660861566862443257737407081736477481969745967517593643334933212808324766317832876714598060875837496265733440309444096265756206076344996836272745045119128015028524467142441605280656393887217835767159176967685336983285967034148739794630890916842692597916243860658348993826151316633994549663906440692621049390118586517297118244533925362205392908157117794688943397128231344763809945744356195201249455702116402633609978244385206236621062532881664287019608981377282881286350907109297845574474883907394314517256263373455561719461183147974803616820268160114919037663879317983539628242261152569232142904102429806311846936343526616314611071724424625721106727031218907436735180045011220706550704297763156785853452811626939485545898671847890114251277535552280993278067962580718985665607394217819946996340478090550536907171239234585602971722440436958119416033161449273894376941011728075531698826868827274907026528919060954141215761377942527421523778833841051035219081095786996389403930769546320366853065594464124322755549666304932198480434159960265496629131336073689275170780675180752226938644822701446959391867577117932519433739840922349164036370272510103185198542656846685242119926686129165496742765940857177250346112559880060444080794109041025164122328392328177778697296277825381225337310151683951070432486556791052748950076711597978018664226270768797499767363014019973907820204405607621888894265429654713866844618541473199027359910780540961172645964647608557607319718295717414012429879628846011349220375253606941873105509648403577316208346809236892992784202224534229317953827233173045956041191467328486643953051258162140447088162756051058809384947366704990759144816343332315521843209880766797000773043991573940358590267545335055851619068734003332665817687753071901573858690672570147335142999028334364035221992328465812303113272640379740893490772081260274861987158996349348023972809316162612624380825268423751445073985899390646565192280702233327981168953863137823442121450115616159887166652156171760827939545404075701708702595898013098063639183317124177889825443959882698432582144092174749854004662229282530191565986175768909798431964905114940876327962840521136506696482530060487650665337986552625005382704198430049661621115613305398083770911457906732339522107467119439113765957103899875408245085802246245651352701508663685688735258041512854549779440560716063588839156178855415221286406387115559243822700740452146278655496546552087847019025916611290534836392131417463385066449908092585380212367832951268774026870327047074298779960159502100997992059128984581526737923906311397706590199101972383201011370893396192452259060707075050529774612020112495415632260821378577370982846504274509576360056829871564374297548171192330432222123776868692492293298943448452297986561847106809109864117319255123240555815420941525209838930707053010377355304534239889189499693663099776223948124578119660406358911894816721616013419114435806944951478398774271466184413033553954494752402021138486094542538263869375459095758712920119146328516842078758329004468757053395556520446540128350440235097544857596261283526423158858190580237114501480788859862600235088251160826617874236442410247896466251482313269777563273592191402901726508640964768374550233924709883060944832089837592789561543167581816391950639040665190242579994418837706613228184310761906194291265151074271954390219357531207916035161051952424766942879186039598540200972873661816001296609389420595793938913698578932124575745115960021364041376711536425538589848074757109298051023320799297628327834344483276289998868533898462612035412370509930010483552829207423126406851815539324877948033086064335524074903637079957810669221878170596426032356403865811499187574260036814499046007556380825663342791216856626514648376232661286952588225436807424197453771539181638091972516745688701288759319979484465494108295556286770323648907713511509186587573744700507447397525415956894043784572602756772056896553488047267176114726316461323491198819615119175054895615224067098628445273553397609244357276445241876823128091311425101505622902853846427329448530584568955803140821389753163967630343873158486679265732815510479830960154154253908809647717945406639409605496284576149458308600647105686899903869891396260360758746193744085860849087735304013695238971406768025872160349682410467935526360072038314249035825975133003624962741350303725852057161370061929693277808797147514796388044368746074794883322514482321918896310731752520710442476485109903521621247536138901160624623178676923498199865171509947326381267746543085466546183916916341055124852929783770846949445772565464314172728296056341857250286532360165174845227054670116112146135931659195748441404522782776487423381735825883454964167314762957971384218966720753293564257133730619012948196990087408407360606154555779492933979722930704594704441231830691321878821016088342693674134456991013679543177724216045456838343334232716509681501120983715437429515941437427807283598413712023706627346918403792025242499250757922342165681543170065402658804627356877360136323332874169264872306355403739440868084703278594784153216192662532209987585931717951478189315381472293173340700672066871219358732433782820977496538821594571444141349821037193663892855984549449822870683015576272718252298288560537361623292588018991421396280715744017639668265812439888166633116127118865672374329382248013193847713209701862166622676166008217974633998806605085725920135131183448801078196589381953207568417004620289827784913498444949449694008932405976239775619670812383067359131592076483143926488098040866240389521782512244036002327692552148436227010504449507070361873349525017825673931890441883788005961321375128724103959430493615618304403959718678197609223509779217363103356465533794283216498719093610430730893251592759569286150045041852862685414648980575934188272474893749298684630056945119264889417923508816123381639905704994803637609296524512559785295169820662735011354045494433734027470344692335135967246326164865463353642736945623492156343470073261550524766738681025312998875742810662957639826818550395351653625604041444982245058811268708064159383287765803821222505026285969403842758974744521599775867999249044141953876346786596348492667145465907760441152347074271862210330211246894700175202278923825530081587807077042582798175987873542366157823831901194012089259300348410954527512894391980307502696038759432644565200721467872274930357229363705943684124975929715971656432056784366161582228581376760030179335286531512538419163875620338974652713190097885876114407111162063011932182210254946962626446610084426384465611168536010475677275307423337739178163365184548381577415251582802640595331752613034256141726557566156870752920861495403517129202972602431338098020864770935466210800107967112491223505245580260472786312899970821511933582061876739725493137822376607393785828523195012969346629778431273858489698667958269030398509846600127433381793883735516352996862561154551733978577894300899061346720447297147376691437998897797208145768362002352719214385000302533818131011741862210313313379538977142976641139145110905142114438195554474768827086049184452297978300076714171138067904208082172998139261123389036302014904501764057539978989359913680953874814775208810935291266593152906426033961791172261664822667334709553217718372706708692484472603221495238977744421996434514480083320704512132112453003416731689943156725035061410473823902160069725968143577070794218974984217866979852181204099619338481232475758797352995197266394919673954144252837688880067192803582914393424483099938883847139499869160240581361004159259560667854443051248735386441051618444139055799497421497780431606868604121434945197918351757662468520976913333573653104750057830957435164858803556093754123583138910072502434152289920777650857334984867156615564534618447801415588305936852773661670159037874651293836864315848755849535795466437699482615354170407037132269017381553473952389636306718531632843893389818010281816292074893714033426405793419066133656110399419268548972319452945406364863733737333940960272998227259662918217145567300338597017992744929278473963951556103313385175219101169767853279979089277729924702626737083681539870086539493850508895978622150363262633203128300520071628632413136738432247022710344355774073912075248947872822287413286275943543086454383141662549673132952480469203230378752657231183199022145562127779474636345839734241923196207662334387423793066490950475167816537613938231385615751763071817045128942740865849993564539602213156210760123758885120373066957852633939570457549487325230565799013499001442851125447786459894831334247873546741853203089814726485702529639187249491957118493240362962610561338306930351722788187389679312732067728570156770874178480306932938585899572655799098063696665794160973948972301964121135331358501595688280610362074751103606498473137020355611008738119984238506113947770102085538171311110356792923143941120587227440855538080767568891634439025180756043489686274116827738339429407627617378662400841778164312782436539904627343688078654736140985601083946017362251014013744902434039189067338926177044898983097768553582786000040510395562527733013675012456977727316855727110254438982394433972534294063796905931224062377566104679054306500791003442051339181482085207145684335690257923224468332996634226708106639775210569831588826567631515399389662910883762157045376674754661885780594928121901199700761101607508923790243507881710250800185744796911905318759116189511827590814042070061470656761540673840654339633758115056683190489743335724545906273510264009206364441194711090681853126857775459083975381845672350640663443465077195670825241940869119459242177309753261045976376040544686505367736794752167176981039185038325092501851788579834814647830352770202070274850589172670826791006722117664217296729075872032740494984279206015591012359149972710659701207438911006190576928389818647800959579896802489526242262701923461700421216700394105387203114124747393772377166536427956802433118763322912215435623252565685032855635589899384778563002235754487350162351502678418346783693401620595388667200296277140668409260048387214947673408447604661595853300896343198587756883633529624769575394645509324524248215945587711921528822001066413756560360402276126098911452882412673304271534185399561304167417260559973502125281884393397411163911338950463392885962871590728769984452307456735038840208689086870815137596313270943275655223540648542097842198581108460973386835690950579012120765739961404241302743077083641580048372149787710752592009444687419258734809297143727849483705120078634446634274022959382450816160545586647149662040589848946902591279760357831658777163099029597454152165844200339230793136143788358700350492059291021066584744209271859600639996181085925203818510180139042416570195870524767284466887759292882762533242234607679158617373150599589118499055611094880439734436443054537086265525115541401312971896059966805790283556911378142425217749627928545146684598996992852418642152478022683224957231880555781662555528667942985340252975989321665954247838409734973951864812056846843455709856689523864730436665978471589360009514926353266714996664396972197147471425866027782870192485220119604322580528618209925545838016886099734863543515587589195842318721127443529938749465838531829613486597038120559588048448485884185813769741618070958337960096990086981739842294106860627295186842025309951228074335695219193781866525057774730571731058872210231534023481463951442710034103566205465758656113198747951716346020044265800137336401550496991171795777567507084456377319709948953632234496903847512121886059893909881766056276914614725467861685726603856359249594905961255560360125275100119936479072823159759344794929112747649711113168585114817240000187978037238737102921685835418151516373634144321872193737978097712902141010374803418418903302793173677532147964440353472124388066222552024004122311432938262974639898142679603844433496358878964986879705143573286149764909577632295034556154176895612484580628017587320076214476718975476621166687293581251687428705028171208991680856314999883374433988238499678475071315138413811918355216195130102525255519350692056329248551154837347273562937326774317627494764831283512934290618398150109573881989493790738333251208483053442867018953112789360880491859522704887543065962948274414157148631420713211037001898984247418225919063886336192820211833190675760751587165766408800366466056259853851701475417424647505199147543021296483461374438250544993304274337438973088376026005843897273183876144472127732552010874239808701762671684335249445850664780829643653129070290739047389708756937272918422046833426625935714370361856624102161013832595394009741606277249524337142843357026873829880952748946731596720129264132833585534246134598507361541110977050877236799744008220924098697361817337690024309841049344741704501182076960190984336189946021780031484968667310204701488362505507170028806775910586948874747238857757353059381361653951832998857343674010550880385899473815596881976314237284640779832402089158192101210309129531215090937938591942941880463818588124292960369458210176942159469847975161238454285382039997089347388434032311046375974936539649018242240298305199886973450167273997512602278071125074695574279709690982487186494190699356529480407522855558484005773625356833806535028101302956036230978450128853019000559677653728092927829835166515682610219835578705977259962646387082705445415771061562476424776956907270682985806448512362158251197356363278033726963443388897735818474306183248725400539456912629749178519294135280339917718002011484150398081639366056464274274756298621091963234132634170131536396582844914590892059607450201611472302314579456711867122706085864329891788563829183111647839852452738520308873454325002314718526894176846334138026458060528182261233532903059475921638176705551782541921336314089826115779126381368599843421614365230614318180624207960016309003844812167681884858766869109833561080890002599136974285532958586927571803317218860242937606684605040863749662641361741751526986923264071554444440747826900865269912869509134502627460107981818567339660585236522881050464255687651194427323707875397110302858691007394952772347472515343302297079407105618369297022171331586219415884127194488958671121914513545598925317314428984440417037646758582702851399925711120972456008489028535263270402572970042580829901636553462310533379068073876864077139427353602180985459057638398286009843334210009006745043185195244943492726764879887749366839756771228501576556432085087676991438542926716437434622592687046041897045586100210499919825859774178173454293028013350125965763249312212927078114447775839781587568010081500505569276111748658721868958922419918528731106767364417189727698771937968510401812919719356692215342958673134049955330603041513604136608362365687746755144579500914514759508177014061675610340130290292285334052403489449666571572565024536066199699679155309351793834465197253832347319513824234752164294279887986342221274390684384759949229941921697066460434355349087015165302063719801116066560594097804692451917068491362805421801543320201331649152348374198099447909029007653803509133621013311538675302744540151270702763815785028511954358269522830794796327164534544952369400482517257924798515811172449949588028405034903306641040177318754632413853367235572947757024034509449646009016753025199512711918415555635798935626984960887494616803683344824632074468260376752441849771360198781223227950031835288484315068520818669991899692150206849810022101269370814996202217611745663896329024799797496549304833863461680042005041947044894108805291292749920032042387279350440997630878071030686319651055657991839055915276183515929864377131609117550983051379862927499644868452862099666693015838259448521921351333723522675866494049576181287629556821548482562307520689689617121284390004617724995272107399576936140401956600535934228334235014180405006108321843840882581536158362832052774383995266003034830637581192093309343663866972469880718052576934718946366308928045595137405849689755695784493681703356444322669567534800159171186269338283648433670772949096149653496562518876124458773252239451966759453559762966855263400078515966526923863667987398107232346309764047365797157528112212593085882905968415118692253799488192167185841158430747399743745103750338970855219930181106025871970389649531584383460883525340888111619360222416885768305172879151778323639877986374397088419523279789786439917020359641560794572278468966626303070901717263309818880172454132936274310321651869037595795143788068561140460387508119775816205021421319967158605271446339880910749136790019583026114134290911826350467517837836622330286116137093913278746605524021429452896850205981532959770307198298316959165513816298501796965320504086602781080537354945100325578562211610758725238722829081024097800601944039890002031675986249273653892679090443504524898838355317844513313367617637899605877164708317392815800233232817122767885842144533211832945010397391613788129855084485849629419854566868415885280011427554186929326905546090157298213933570717076084127045291977156172037806699305635578539653156067071191801097173108196956271562710398433266208249673351750001993401744424688622180524656460950446175778048881633551382491328615372920553734219800575167605855895952823323069521062986002162146579357456065264048808147850798055557410272397214190387463283180478695116090643280329571065256382945393248095066867001704094848562633512489362134415112347256406899703743812204032214177465900531287259308824524155016603936968867762705892613658129593843479232805614810544750728015909143470532676841789631177490259705256978387932004980764713653855944628048373361182052544266306546847354920883134056231750264715368986928986402761585425590277187312314425625534383016903614191443498471456978658673189969709369187217065626961560244596956812217342446236098285581954967958321705701530099397156240323007143382757926993549705770908587673507406776349968989725737511911925083307297566084232440336424771687816804802156996328091211867182334513621433601240894450552119992804066442912277471597499586652706107767920857944795348118048103775778534187382543351724147560260117788817459764605002337715677490580785788140828669707989095608976957350886993612123952661237148237653535511061284067922846790142400830139104696476134645792675480816606569565687073127950213834268922189772376941987915906585037710854737691760975802070639037858258301106843211612419240603049826606418657477905997771793770158353064511931656609925931771048718890727227113863870121272210502369153145002778448781517765443191479003742057239481857619074378568596506836818163311725662484799812837553566970734769691374504394782090833589803485232167240339140636728629287680695712345597774304662742154884136506657410057970169103138234678169118370831251352705717823061707271107004347060630240612482373629280785702905039502552058513394660827422034656204237094485053910694950689093987599821986361571215392510461265079911795798168337185873024497443168520082737227935599293475294195438773501273256611063029084751750400367546669298612566618438357230221507954112868558315361731513204741757310848839358636918345939381703219726450730937348859534716821305806667204749523286685917309294308930807324181065063452216315203130242521010763450559220826922979633921378109319291386602592704332161632586890235075769244387104826311746536449610264425968204133942817719392086531476796796304448603893702431036051618199736569491461944380554458218137607320394439803721666166657047893007660085806079923473492391749902570234295930713256763081470530948397156109205485616175105801071886477430345850567224770478883881525903732892068590372762700173224313837399552229772529767804886440689779649528936405831904628093217736094990558195708829118209860554152948821183576550034145338954953512037624147163710469911764187614750225004425850054444422749971285830448647528804525888408204271236543525915058000721339113831355872616612482764949446973949355153342989049096893919714376195598371899478700969514336169536592304906698395868597147292515047102819258255131782679933282331953899505981156062781200727440826410970423624112613933100991238620609273139368920895571993847305101787127494833158626261534633040807571827185476778916389598593092116402532643965900538224764786478423251337500447384782518566501757454244740492490918702536808137002689045870685537684721443106756404924633566734323859307252017518146810701091563954794712300877276789568679172610486454924919129824965805934816265787220340229798508913279547787625076681396176551936