6700421766166094038646652444384065007174890590903768423677105601112930329378468745697955775346468751784621568443902708276800556321500973120075376646473054019742902900323420967522169575987951142442474727813676883840448134348692830313104461050444489302747606989021331787992936485416690350959951085163963266915456016152147033232858245561252707319024238042376551476922048228060962386181428074112704009832738724063672714622133314825819092865271639811383597928301982891078605769750889148831772861140358218795760849763647724001126151973853320404371745417918130746943238661601139213855656569544139562428589703624910476122187600556809757627990491449062370030196777642405205344598494632736755423198449069504053993466630315968277021928988383783020693625211049741944843682050452421894315510495699174442647683935114556108157627634088343012405027572183999761425933868170411013760089489355508001488305456558935934972818478389527368803568451955343634482310263999880136082277712075523754771071059173771099771989431816394401606514991191079267110302932482543205694814022948660790094233497718288769271465331411511934283065893660597644278429671774103509098455514289717659517794114465374220772200172847809579990436074406573794811096876823823877574915672052443653240933316693340842319514869134458551982541976951192144631544990855953218405001220435908053453439034356296897929063663568913367270705334014716713089336128565382353996397878540848882505361999135425064842706791579830366455478910427902272951019092029675212014166967185371582481794751283584901697405043191340529995113472962032873477797822884874395632839132320768437229408985325989272296438504347079020819451950877196749590034832834815861956044754428488481974158540126322026401854702551749264028141883086626811281537701638131056134432104795924187858021835030654008319888471899674477661265330740671550497577434981658785218292359415454202946345500488910849175116661192387021582620422506513025692801139942091353406657208511180370484479788814254810531492500647786234102084410891855095256320109723143442983963159668284817927909223677866253668535453845548339251618405030397250796181645578404666417910050886855564639296137594245947953031626283657577280040465050755169221949214072701805952458434040962157189696866947532788531945042258066025612307151339183387981117923626298429144288296535224435137500129062976404224987400854467218230236434175698086837822278090823957690117677486069752089899982377037148915664371356555544432660373088980556983019674229662939977385174229817218285708675968865693110633524256175756513000997556978032395711439914575986075721419212552034177079526024622205347279524737144952805517970100644371224707422928118669467478542089212683336628440216252000955154075344688240185116842152248754162796264089107629304519733619036216942341261023964316390751764386970214341544940371911986152691289200735899283311413511227586714635719298226658809160283941512086667587310076856863892296457666322171812919505282572791437203836053135337387916273443696316790395719253092883400845114745415555126151461649080165676151793258761386523697605712289805975290177215968238908570708788286816823554151975875623603582401193776031456554031604064423774883250854909654067237734277555933259345745700117940714232087581907831415985097791873296505263353047288776386056243673223859185590328196824530165422855130159619741560243797804356632155171142016162297676357793457672299403615322651318054833279946275226587120385427332725043938656188847559688221955137731135991619403268226149235858532745245307257683406110043529382657271712538306746358363716654919637818062802477103049310986487441132039329577387692623622361106229422464422150920182555882992515468714156472464582747325514876313294610357504952136869411998530959320465115500823510451551415401444480001552645096042208349999034482582648903403107428263252266615963238028479790542369685902573060483296134003057394353844001417456885499899205035570855266417253831481370301905452547164715531925164201331422967221938410073166782113246499696418612553560977546867181831700342213469726813678264983166246381602049921513971897385602336074235439432583980079808369602219732286229488776883764600661893866185707646424102589959016105481190670435188598847742744364813023090144752511496170455981372775085199564725965683738226364632240750616199796254628450196550784750721430400035598343452108186662644898939932492337672983801568722212005999248571249548838084867198398898822770905859643441938648588477250527618104178413617581330187912965737558065917278936160188879166749494201792420323940058846763337287707887039172466562457023467195866655358376522179415127563282869434060997559777719231088406793646043032888765446369577418198452156469647423077614672414323178384021996748145816373625057475203715905589394985623985580227758139720278218606168567016148824748710838769520247193805410303877658732508551686395776227368645301174435281459088656289015879410527071590645643519237149627668621428588652117578491205278934897940898663875632481602239023512207286153440004342412735638999210949654908018443694967531430462467423824735580949446299343489735578861234892897831451496834718366242376766045739974124707289025640978654368841839351722450452926924790226011294220493648784987689168281892922444594859627126894801729818011265714290163985564055127019910047628148265553100515128939831936608523349994215367989773666750420272617617038675363340606382325453725486190957493738808537870315687126735731570954744698385326985707381865922018483953781323912483221408900202150446724856258407739970770801016161734120845686369357335315517133307829803472118044877318960783024706697044256160558299186154567947617312848464519448467083539234095827012868320365211919373297706289991187019056577779706136806525525633445341008785655278958611163737081626727695151788674536653927635807489249764933801355910303077557306220106690080116617748055701542165285955053165737402307888042369887382987304877627858647451787666405693434921783579333089257024764234688070248695539947863675051574043840875734398292079347842009503898886369899628936860554755705185063609699562355942997472953561068429488344670274474112417773979722661505063190537059290977365337504765261570634339368465192725586062589747811245181027647819478174323308189304822034898580528335878119937868250553933891843687265176079766581637031310595963699107814780449513326458518004374394075554599551983529470270718147544109668614702065002020191906661081047909389586097399409600267375580271119178887517557528544382931968170097975626382134989427711817725724411984622935434386158239911484936124597880424962677401392541944657016795838235592232472727821387098777361184643967214597379518218095821040514911643192830881703512005200361853017326510598769011321952988173474207968927794706848934133950307828514407287657232136549845975667519060788553287590154139637193955951930786114863979383356165461066250238859346734673908515162268983917702736309866167918425641430822502886417494110801753228472564715003645485806887052485223479951451825364844433238477009347232388460006581034357205905940664902759869418511056877377862838239514590442204409187814601895729680130184415855864546007296769628741869200886462826427256933806670856886875412794347162855145713799378065516786220936212836407787714520181760382476107381021709571933042228266404014843055135182376680902728379880375670193601939507697970818797734292311682776637407194276145829358689847125799539258785390982828786661473952805730619248246538307074111417608281343268192856786493805047717545780007826101770419790305076731319320012722909041021061568242483326327600890895998004150085323766398069158138738548954062695061601517422346119063869276536033103254996230852758145062726320630966456089164340254761033775739835471080096430456932046313996970417625625378324017211853242839881653226753695097728914238422401676099675935535217118532484634792492359953417938659503752115694943189074316100975936311523192587995802334945943546187240559808507087321826311666384108163144904703545727459526254664580995495866210793539491017484942032571067789769012961162811215518776883651627539835942233465916894482757920783667161395731223913361536339307663489529192325626063126850780557895857767000672378680376354300199685452162139366225363999430449417053260583419142778178011066007803139287539554831749540757357148462480244190583757702887523337183322456965924209070258011445263606841448041462479495307441967227912156060107345395925660766589280596292312047686179636712361399449069291505263980954525761890745741761822449747842395861041025609776968103188872101688893096556534230150468356566735624924580244667682729664221995457950309423880558831807339429975760800753032198982062895748745222203378781991889096275759534156386724592791870770408984947352991663023392479557697495999625924091493722970936705545144007600119259532830833403058563973644655670524707790131536493781155521088131512391305459108577782345443367428758898344354112881125660997749615404248774285574686243343018070510045912341999457181515827724786890382626815761579631223095474153191453145622879843975374921337656892206778966950247784276400175855076754650246271959486127144720327903468583110206154767581964996797033882293224939416164360759429132410630062466308924461436489392644618715051792585021175723753917489360876045393896004686952353102039026620169559259628214450860164166739756711637699521976062088595279244826999769612810416715574192116699298164136317468030697117328088908825339970617420480101833741632414048946007740889809083367520772277171782556544434433779422500838645813079624167611088031292275140632049911328199298191321559163126420321564473403222454519425848581623880328679001257718751346105367756789546546671442318543163699464043907552220364606451868127164669969714036073533288364287094451457329823520884203040568267713858581564827905425730886612483879737884276067510193172733082469342121558254015024342516924161195308464290791304838090682109319850796226206436829629797918849734714437057601383256125927802785267710416286315740363965646824451122274893535009136523097770225337554044307818831484793561583017872377707599372420999256304716493720491240288420529545185566106578628753871624676631240706427075938814102364832505620700443150654536956182576827389360405710886239835544701493122168118690779303396841222461784901712681669609948632754901170560641900177047031894170670887844808009017821524714122299278062543443355037299761284403331247492837273787506472690041474508348632359727478025385499537097932795930803651453092631594393196366969050415561860124284714033760366371413969156269797169672949986623864251177893763579437731630302688104221910386744788461635665923734266367406170549496659125618092429155906613678617273286758657800715316977344106933352937792572554185782516927620956149928186432951429670373035131756748566210405648516643957471656220086708858312274838224972037759767448223165383766699196390076953697420837475752311330960067762032885879516182423557653760537830028616567286428884540916979653755626283912564442907999696561937590118519775220411210270836020870891643621243395417534528220208297462824958387929672135957988708554737232060853711034529318298054437151467443815928370302132037480205341096478960797728941245993014648757494280260033837051651952317292932451487580874570736831073803096342481149227775759332540921231865114228250927403346691784807994415848663765506840509688069869300995761138788363314382199175015105681894672509841279588406907518086166623874868985844784385137045652324712198097571050598002816382514095305114962077026927108746008417048569056253965668379254854706410266261887184740588503999469000037754943751136284034334370271384160554920143762266709136163292718873266370757973544567173503885662089626792589944390117478856412611583262411405845856603598130402560987139370864449019468382322588677490328314859761718646889047814554696538014991162927616510202768127881782182398591352904024201014802970288418377513803216736948328516635587414176556988551245188049603161803320975664429654273077947353544886973549992957474772476202666054642007096292039517755386652257722022722452655607482921686802684887160405671232980282341022290689495446003137425453787980109178127672273696339884162951962980792569797056780668085370477766836083062768436403301839986762346055351638482022463647546212457162698861709912258513377999245951121907177079394156583282206791813004722429458874423851081651842243725968804791244520628893988203575162953433657009072952350170538045340684959750667952197105168073507666061937903799918729245142493150856950650020022904839443783009085780856968061251644599978289198676752348244360535085072801720587262407221768821329937117380348065305028294087110103824653697503034646466974686797080555825685099453100897266946745700383841350296606786413117782352481766801920591269811222000245584650240433493619500723934059517072007140590851712885288783645442753467417402684862391179543087352699441191459946186204258567303672517737882877595225641498238595857521219506366988442692515465041704936887513101956125487024628709292871533944140762301003476346366554607902316482623834181725452007578278410158321704122204840150908835687792635705217448922948039912581250514084516361154458361263511636788197648384400856682819160334002821586415865841519800716750150432691233829414565446517283208241501634017958304958500328658473633707208904735231192124999847101581211101685219328530020014735893024235304925867610723724208797199513153546132894976248778548257119424889402682179704671525351062915493333602810790158301936043244784128589760840965795989594918487800658635710706286885844235174864930893365335064642126540167543037016452996502966289944950715019821466756316503231125610682193176222898539180514626298257577885507796650678729182801737485173624404079046918937228492130758120561078982674578390140364439241308405203571929868872819252286417257788135238114001393228457198824692406930752153392625571280172532873577542868108470927156173437725072837014924761864570197541313820114915318894071539549303435728839231773552069212167198531014997910088343650671998607561773162853962707162130329190946113420616012283000223355264368070412584185413714746071608044942094242751293675049657818622126325859025245502017072764526848480066078692143354052338791375224330947807011457862196975013636079173954666801598807404006379087994399755436595376116617254252952392267811460907629291927343648977104985032133996815017751025913734233736050449031532308410002475898172888822825989219061171319809726005888070669590506614845735617318997704871721781453838402073815604475852025104359642593791082652090686889400835800059439547802112170869710794385390334298078289507583565635073512645074872700751509965429926287442059547717892942939472475093848153117899578773066014252761056871182962829797004705221498604291410707989959669039652802663182233203002998865868734015381600823253553853739216190601130290283609955340724646366326540670698068064698771145872515269226296002808268136250848099615547267877167094808533528337298753579367073872263017479202032917274100908286512924672692896187814324325154705008565725015624315848380805276886732215816389721205033023651230814135717355327458051463838052043567039874417262068215598404719165979956398114321242702553934840447333072984317531811166469854898632949237779423504710467442832705990813690533893365401155449619119101560523912249790905549401423343490452844178057148693644786121461516801219124939708163542254301453133355277761631548802128568714038464991777831996786098855736249086586653447536115714600183817816574130574337049521081000391073620144102535349291390590639747110124645899333252491451524598210232796376209535785921183633564597877404125179657250369633989439116966479986952778805778066000021618355254950227018585392003005277002638123156957816355656966583284547350765461242877443039787115560205382828942230074388366177624754282575360693791130966673446911340697134203672885882559803595639799413933200589168414305765238208259543873931948890221807320151976930328611816795727807630646744447479341432001574264037102887221978802945246403830233054332064152042347861401884918324758964489684918605856045536378844640098067558419904508052799674148158064710652552012818097055479384191672638893194486295091639577087154417207626165794393557414223048480211983699178518974725257651490511600969887748535918533398447599750747735409363954718048892641527592265716742038409213092367519279506077652955706637037374026053903511386572052715519356759365756017246994109471923858533569035646471060580538621917770127120695332449498541314506273295908077601945895750991341969398998705566651241716816940047077867747303979193275856551555363149824554951861289775420685221536518074469646874752295263886049691598044919696061381808296890860910824325284991129310130719805997979411939439551582696678568157945886080034989148318075832647432021729822221236077874458622466679841724047260877655190962219986860043548274262027537624855844420534989706232435188941436920473426914885518851370165318901048490082571032818045062593494599338447794908189994591740090459393137917408227126675740840895824148939779502214981456541520102527320398358580978124789831842105847977703552640552931814009310994782562828182138432523033075064533790972781004948191504901408952221229508608192912062562703699822054905775685877184340610079062267768235893381000444406514510746512346926365475519960522073058709044736363910562469521729124905909373010311468614576748661061651599901942088859306971848954010260260355554449470177352147658785801946402857794711547861537406996181822117886368422109352103702410503714593229072392238448819050110492841274271401724678560466487537812949467607770138084030689432224528464125993917716129297241473825761283773075746469398013150542029247625922407144183085301456668582344847198913321729260305962820065549369250593665692622229401517072009924084340919172305255406213514417915350441459789215765487749291982428572618596518085634318337436788536898647308107660001935788356209888653383294961072275744579100189054392712218316533117565585594499838010231173837258014563112562546458482699083708509056377623978623461631639919869875413275673435772946009000997975526844401754322627227228227025577162603788210573205028850653110936297575397455775377162228540643363010540295763391017340205260606908063192679008110945075692662362178488755655576671179648915141468307182647295852070944836440596427135400120716023017500155204856670210232204906218968083504990657689602933324945742640001590656414385678911406980255355414570112641119010151759875310851319430795816717823008086527503744697767258930713013812464125400979746471365336638020267680230228192749976419183095112981904027846120018660688087609997098500295907019985943752512401201161180781482370965240591742972189207375424751857482532717904223143881423809084832085257947469774162215606604088386911615452430957188748318816655246408954297283901786617509274708449244664483773951523273201681526550926475753048201529959017260816818566031346266329214225942034626572175319936678500922527820283840058699693250000003365148266551567426485711821932268872699345401154892474566669885773933967408623003341798364253820223529260133533978148985311693716078095019372769674572004173545252152664691878836383694001466082297563023111904543903303550158378134437858959403894134580505343256600485280221601014562523067382042081619641802903450712018757951260322397487778024105406372077204346576224092805225765493601421856513146646836369846486756898083635059713397033917556131821629093508479819612914670283475638648998846837799090457486833397251041936519389288334082765105820035128889718747670089365976469462084862744528385383329817563410618195379731660108531522279620691501048022288299152215543405474535749541770699605836480721279732206251438408469952691663890773903639773614551456716883263331731194171443998043725403739163236355862016306210692133516423847472968269990512681894245997371019315142131293451541066665393595526141364584839083190856395745207912058507990899218393932407927719024975664753685414718058751533435933490866234776257063938092436939379366989467083799083992236839867803492449147417425715938621608388738072987739481952456328589418291198487151099295441173931872601711669485595514069176460557827009166114663125631549296251033843750361838251714978908533637011497524717632714102092855229020179822393066338848058333965868885878008414148932847771067654542129039880395198473240357123677889783771811320277592637450717596475853934077195954127973954703351936239747456942464251557927362556189153809504850376531234961127735751042002487515168381788900674150364564813664171900188988046461597954435801218419438336131787937632086566788530573416020108992665873539208062010451063083973139626089009915127163279678065389252951861853475192429487294822857043139315753372514553282665840655979911587914176622050217801967464465524315833496701722502799446893445887461701371453704084029618953541387468506652022531033994790054293939899465677930033423903909438722712758216019112465855256199972253428350952964210705220930837153405331426623144115647731725540891434577249553065539313496041130283631355311718271213662367470498862998430602429651917143881930816106959919152127219023312405597107893794710032854767198349908618408788169263559925645479479231172050966893148031695143080014232447533123547441611225524636069304057479733578649761324787394324720478441799563430662041881223796844688868824178235449528650030714183060842369182737680555568540058464459686604977646692248193108945490468028516280959273083394298737883686538166261188597837366140928397940767383592451144871585587416101187926276421645132281740581192310102730483547151479653602721053163446484839544792657018390405811155803387242711087898628678159364955383108370578257120987803749245773193031089915637736517891826303623026125117680464016895978508960363986498267203714394991752659786074624541272543083473659814883481954408536781199546911803381620725166029698718763364544872035018634336206187054390745132436048801344975683498827992416760364155289786345694577376628294221746275253988557015752415244777852589005304259951527878393761456604615155571576729406336703858429990415972120702742486056432285274215813026106381529134877105623144736049659387440363751561133458931635501539383310795852965311204478029183011453522007204845066403306225626771123334165649255806237969421109211655161636551141775461314524455610137290946060237774916369714276399028113810843611102739610148778780601083077349459733705829697476536635032767713696067659519366910583186463134404111876838864556514823560874325736824507394849401984230328750224916377106581531729153195060193585122843502665738744163669789137650945205461044819225592570494250355875421526007030580847896322457945487649250053112196986618964659207972907913224434132794680056976774965766188532945224783788486154550036645509704226794173012728183297851411382714494902313586394713409640889060500991222580219790141005194191251241364523554524538749268778893018255608963415979843779647436838663233039381978853230295948622498712125153240136459489974836186058270785100224860808806290908614431410021153539520410030130992436687680795059012053167170270413082840920535536742058866884836234429511665219993108084763156780132094250872761081999466772441564774100297464673762718396631798265686605452919296567307061140977535206752953972539369176280287941562138333721084921838467586380437751594867075468552408157795839515664151858405250590316085579520097402698538064013155853411373473123482236132544969445897934371693932266870134621566145848276335739955643666128275980474391934508404068324936864353300739932483223630563066643188428592595834167530586982557876728578827311727481440139494182854612495126308157201214153671857318567070600416146367783140336068814612673724349975753068101807698159317699134022607014824905674589521290203616876677150551129578430559680951649307013178281149982047906001275106817225044168066361162763880400091813318735541277394660959099198279611585040268007473468378388116177336840967778415862709538459077700495481269000696867820666564245384833059960029705498554210645173666962968061932571337758813321787484780687771939072757649982151809377435103297104489144142357447375128639069789227232656882526364976740656524556270535124476112500285250912368095149761109811172190626717044854379345466358466686758329124609047072618254100879454297109570585282444370790778613142853810968487722159229307178493688979066914687803826856574413782589585177645436728304051593861129088605360903585416921171468570579349976067425067659867914771829763761378010617473369151538711787054291102274912258263326198267072402612939320556372714434260968218579763796851489761214630636568316392672268407483504968932688529158426652592231591088882151903819762327587801050169057263353645621864522312418525430256582957519796158489730593136162820115877847452201275334648354546658235919665995013546910856200975899481357946548803404580111208897736871665220100451919920151930714391458080100256347340356559620050106915025150785519555100173278299891494909087539595116223541470369509990898652501013735090138174124114194969220422795305318235658169679175097130310941482306971787755662272086127222360501298367132609926235848660897957076813626897789403097864943649447139491171859800209995380754799412451679765755776775314489969810156213280755333910551090987878983514933919542944909108207985783135629920875160561581411100688002664556644260327475616837906716072438192528651408060643433014711964884047902052959924267679051258736240931246531434850628523658522156140364918152548600562838781996510547048964128999045238106206857912626423935834739362183803589371533286670163637664882172531469623942600626090857245563817963925220480443152138852419890596889411450504820133019360249298987938074035527531843879893823712405213726278032126403482764146387918280818612934574813190514252944862944715919466858168120545839215510982583420115022944909483305966054303656768270565955903234730346877242819646793399889203677711398012304278948287266196454135375176406833638466283892548061599016757431704650388668823720979880566200480856984841733005003082139769708893581066140541151559762748629518966173797842967013090265137088975582962746943754054180693302290859146320015390805213373714943028943675777217207828156537932234138596164995615398214867660894208168784273845375297683440529050866644172556094614382737789684671336853008718289718981760729297320016416398116187986163236155898999541271183792590207520145735535589716824104363484147251835398847728301822358706110846020559344026957049375155867851553519544956642356294809386071137598543949604840579059087695808567422716787161129024923792273120872054722439641553046425752165142358820074038193508151626932457792675682085905355260333037382062329888096696121748882185924120362340150829441616595814406829865009115297142313063555096678565065087607422653050415914582448955564225077233539570172631975870326858355079333291308671769246289964800417351680821688855889418405985927762820912081967455306147635238904297388686773418058773447070960390128087765017912890234941938078080889656167869158172666769667475564520137923838746902588555203859311425118501476067325281711097038270892643790497129757829039732550649904283323046021714717691847811801230663067660841213072267058139363439736403588610928244949763700043017667916888870605090076447451753429221809687757266264909654830173005286255920746473864729202220530159774376341088374757778000063178056593128336164649327127223541447097310153860325367089802266301111853978264297724533414730471592778075891221093557898271218477745552032264364719409226458396071626939155592964814747482212929092685591140446938402151483676675933492517652355196311559826493987327688444679199730986878517915658317252610639512601288040832497339154326380341601830744827077811826259998932003286251734541222305031030834134462198261615848189682796879383729048875937521339308687274103486480377871623767797555272793041689726413676943712478096375670748710461829423795042942589147121002148320272652166450618623345455760693621986293839900763108743329389651759479853744720140915348276241427474350725107112213847675399542289624797207029240535202832886005977446166869883837367651839530037772498185063457194959042096000888027836342787507902806116816994707591125404154954145866548148618377580020446931355941596310171919767760815409545139298939957158024891873424378892812605601316118608886138676555747007678709321291070693450106680391158929961081198268514625383413538421418627746663424986425767020962004966640206559047680266978965176663227258913817685601399285803460883518319701469039278196777123102464306376423327254074742555876122652280822155970488862118705318583801884109707846632853724355113494683004074858411606089414025475844154651047889059758609102750345760126220018923999769780056080566678201202104594560449544143200867798819139688035189043568889875654446459318112731635082971868324878513555366640703311608784627015867212758413494735995774237048624355521462702175665243777481344779321478748956523158425274308886819066830636388603446073504392073970563537266036481188539978176574621984701314962071835823741398851959330462959266459932306446322428461517703629374367508252985137973134805178115542302137426949747150541169971426667970722327391106260476373416182880853195824935662609337788497775761070563066522883727495335103680897854150812191473123766377646725510926018227475888164891566238789872473205052531347827983607485463601032537890035828526987726372743947101991094586349047810447711116826925024582226120812857638840433025538096318031122318071966909202865664306109211552350556156177354821351971803058394440065772508981116213493708638172188665915814926547997377231049268024626107690255944671305509526338790411170206790158398858701335214356474594163289019994874018540075613162579907909808396707651669221548806706597488317997753829842997777347907745577276041433418617385120920695242970584727169930778281373333967155213686403306373201449873169984415874415855493813967945252151602280632217766048445139755060120449413735411115059573558055177112164438089100716773029834341163470824633544615292695688012239676669132497859488657215027351219985999248934972748560162907028917506421224611985741868058851752413156288650749323519415291476718023752617692525986928458595267079444706475738326028864623250967912383030513446048935308724811612941255306740355258898761153214509634165730875490380257362794145008524008095635673698334604018528371871681244712181924485897649586774842967448656858397886551500277662969613589164004882447698626483689550909825235614959628580129498443534417040511007979828841890735098530235396497295278062142116725589613242992611238044359571144703674998288559673577013060285765022422350205173521232549567134636989124145762115238492359162536225238752229430964804049956219841465230553497593073588474105099236759715165814122570428838348371947928534026549706849623567304509201155668312292977840297937488418634190031250557342361065814755519938932167123957194300891267819712616923635031750181270406198069330022496009174293320460079886820833173773791220562508616695277360678055325448504765626396814651628423056600451927599228810376448391706366411504263286167204859788858494136396723141857588063932727567081620302617793551468752934791509661601973753018254020224693744711981189454765680183215685050431520738673159627746068636131285447410278694657421038891415634188929057926482135338127379943361154060853592715249061899884120336742828178359874780960948360394078351179905992360467452388428835761988989478615751597736678562048137025973734210460243811767961884597184458989936950231318104293742560906895889485509740550089354600701480069917568443499507533004174213320311168913353213977277784216558680897798024346643361049561216174264933836360934361475431553271797180573100203730987520686003282991058469499863851603772383601801906842792688974134502740001291391976256424321735286450560680729927642294726999417153100279251243908137509298149955366394319533834747407426240236873412844797180555205048672796473724919398107262792397164443081354855794605331510850666000418644039509060603855940907517659413927987894854240835836588354205698386175661195279752411246666236064782348467085950201326083616223791926872670176196329928299821291493071338455065707690419402521660078202047654124983935975138304402222437202615004307804427258799921275995257868299989431257037920157757373059889778721957760453478243971287275253025121897833280015402531268783185798887571890801441795811699908578366114203294438607189349340108944656086415858618437362396307201667275916402273117853182723544610448939670807229914323606951322466260228318041942484845430573829545578300215319658132686643025970527468489020096800068632035532685431280283282962979732036599868302530668997284571455759419395236480556455174621876352393233856405550105723186364009238661947698143264836154891292116082177836750176550176655875097795012706371488134141817494904673274554192230143668749489989357774220749972987343127176064009777200274171469104417234831331309039057474511522073797280314445448353100652815022492110252696131077497553744246496708833093717924663419793218967538421721192895251693672993880644486669779058584753011210699753101878745651519985396418587453774961736302453442971623471217694191374015261606804076324555225735873374990061741159791147779353940287677683758973952177854789184202979738114911306514209788796117314398100591722484814783662274915344255214497635116695951289670214740262701474986656241469337369833860130277776441065102136972955242255383160704800421745342538162498927233313794847012556819635975777401832112697308554136109797274024208419789419375798409378105607127979847899726205146084894465278065050739712432956654044481918815311495466600805460965414515496938177614274255802909450801351044861523950486067258193284419524900162467516212947857185527479960987223985606801687395947795781780402800360041109848333103672850800080126221331216159460728004094092115837970192708755837638137547858342039149420296789543466211997831134159091121709764000722821614728234243356537504914087270431803737151597250901392801628661852226941091716816056236309276351674268478550131836560201128863921458296051165259906036159036429564494009116641632245950864406353803203115789953277763859290935325646068646541969745130160154796361967722486683557160276392761498594367606274529346364003370520389815576203666690237747175127165047695225682242375159867470296790560092650985123638624462481061117127382471093367239775914120332154883131230676399376978381425630129432566633273200907836988542664508864527855275265049647592759219096448233760387991965714090911811566380766705504690272771762954000649616396846206323501677863274348219848523253886236494181518943864758601926314047787105357251538913884977518022891511147962016917395783445347637788803590802493222801256781444122003362442692925205431000255677978214469729921442095206221789577399845727719964174704327505553293178750422419937407849600155585802777710061965706490451467025515783565561767238877922169861422001357813980714692394500487639939064756154226686825275224087971888353078591150732250882381189277013410269385459685673902121048859291227255801760237638840955841761993719309476499253047143728804994366296143792718022846219099599925545260549811724008739639698591155672736717889380153127187036141619882563242281307629437131746917806052487716946618652475550142932648996767362923899036691616919173062739566768048952611783374392608972929596401306568646074413673571873733473503160034632183541809086369717068484587951269514604603240211028976325120247299660131555687790688220743877697554577623282061020852926214073739286959288484696681884516013396315001939778237906184545247586217818911999713503112676291950681363265354326676998255875070039275692138661229828644232749842779338551418531413288611896871058081947188931073402273462040155954149957751869209427873177192798113009874060980933610928747016837147135531620723084087862663257072785248401473882381077243669467645179010268646875983617073010784291203320185773261633341742711240371703812399626889123297569683720800282422495074996315172041313404433785024522921652160474506846390678271634836992209346797382021189906170563262593528107946159368268976932259508850671475180026853740343679529405563610129222917282226683546586133494516539730459681349704352075315867510494539407542513958156787374026165529460215577862787366193505212764711843390086255091701151773959431515855853589198368474642948981043638224682591428275749944732947200032590740992710385289762957778781030015004386415943919115882661865866477816457052344365854120206893431222867673807243838241371050303435712589870605988813940146187530102450438498096888182297915668778924068818717396114434125791569461878669430270992436859328475421608475428455544788464306154796867704257102757236073403128698284065590200576299907257570330268664124254202832823548305349365232744169690973166411342886823356621038007095401152287476159494056150960769210426654492107056462077174151172214889239540245981199907322530752240274228243842061062794048024258375798622917213419699194097412350920783084706147117126626378603695664962443068879582255982743012689186421727514573799287462873142050792875536093463382138425839035015392856565912251475317890804305835120777369594632173953933374858461548285244608825211515942438374439257871242135657718313557385838754542766970546228159405144727503957234832986519324375899362112418231625823575417955444371583834658821313771212018552099158432907890931208330641407606621574765544547768601675826686259316883348892579339506188757473314993337117364208258967842589910410843664391821647544228486478420405861201393568213645583121073024501732862228140414062385583895355428705937842894291539188478903555426020805184513677685532333799332934024533985352011664807276100304706259658184495552043770480511991627692501941506801188137289389551210461666716496515428156195040272229485067707468900726435940068280139745415152943025769263379198212196737352557869436363790710632851425261516392336972352423497772825341502132466053399531880558840485635958194700139083272337121260723318138618622631068202914140223555468220193356453383585909021476913846855181837265513013025163865259844353546262724025427044331856830276621247519922575279703898571509261395147130387815895275023283100349854667796588077695108427848972967323103852660439040892686473660303713199366309314393662300767707078498324965806246602842929699307246089575165790451745937907838563261129735315360435039829613469796808872404930084587579530877857447325666050158517274227315191845577144740766617344866508117291859664049015677411998548460199375331736647215956145900846965903436610284916501126627602309999233895923325975187840610950849873163755197694202997958043138116532808317076497797492207620532285565306104853622362592364428646293733444830192429689816368133753126571054073316284266993706181404161266664095723150840121740980396522299609172587562585759758787440769629636895642900476341120964930903966555120310458192304301805905292957560501646466797137328818348633490450515261831654386268102966306341303920114279618335255441172716946349350778749583008553760941646371206374148106407262548633807534665393717627378094258122512366832362644406143043579481632969643980144685309714061000274471436724749208838700216416444891934617092012806787708340084473677138848049329998668503601059417120015819852841618569829035987600701293288472644490373387975645626746075912176626664092789354916691308890018770446846024069451120350239241028162747349845891903938062087199905270915899479669063979178897898316407996844801708195113003782623264954648129209129741041320682008404879792622635609713956914115066544423685949500581876478990496151503871476427475563210109159774825112259991649196427538444421903415640630895714367111965408508940414578658139665387473024875769701158014827784322170572060536507623524907786129436583780843494256508009778491344993372456705221872782750600744244682827508121218486762723797221680862623435557406172444724556714701063317973623241586968423195575782114812184519667264116526074652964455674125092829240992500975261606273686296578493492753750277438165534253811750000375640677311138781107598664764791365323165388157278037893270650886429735263089807610390727893871514487014322303064104176965252404852653086326722233650247872112507862271814487701076101888000361148376557006787884405584494420635473039739418197647196645098152799093977918737491211875484209579588885576459209321509157688636584473920675695538789604473236895332635792351914783744181415104648901480615817385759178329840304195243215896534100128960944985395810241720384895808704709297836428452525664043534305885705498131976229885299552093571042591414611334213732797007354568728979430664096370640450196543425322266323722369434479499044497929255888160407340888737642182874700399115256991079943617925112682612523158857964959221914435793065228543328124610542634187656053575439771683145209473881656352610153030209614134182470535261422437840871833257675812976592645899673761845160837429726376630129097463558075168801883520184297196943299196613403682934042462282986205225886136595888283430659847577099688301960448367610686561228028096926022067903764832499521434243935637944645912395645508741165568122916470962101766226000227773685986623710920197720431453230509197769131234354136179225649609619495419532968371098020585555416466007961258096105008066511163700400296322122842342159800016396447466109422606841156047149889423270880822083777892597311299242569657639948216905265996015040206161925919841431958457169763793419512104188232428273089966236677539849268081334162461457180748502486303212345862018154862947897035766098233819021836223527206909576285009480492576208550371971929657258107246403023979006103306371097917632282694982993514944582781473237465724123413774169627896044368004676099430717224286976670016817385095938910742261868526527219957556040942926242439281944765661416120115417032375204398865432584196218759552890310750637271429848569344200589521606760497530525371316837895847908675624488530078210993683267958816388727570688509598956273078850598361128296057016912540848733883729832751366067758012007880269542526791938545311223523212338292545124318172704836189500734663928430962789050443161022196563855708894073088033449551761427713283063571879782027073250492163592898256333311623331657697914263453378912343406849015884576903348686478612053648649137685285610578126987293667422335104632193141063652481748580824445808027442648914152337286368802393196941106007523766585112093322742346467067819295954465775007282416162979760680275722299700528770486684550629757220549420582369308077522594569291246299248584524421174334890710945674609468810353471904393475470047508454346372629720259696144258009854389916189051176036751276077962491383001916024738413631348034384413723815528002843107331145673025407898341141336756480605162475926705630755998563211271788036638208762847337183505732911714488208185369192811261734035107655486394830740031158232735356021679309782867961176900274710422589519598784571688389307788820089041990878326494323264942825824728927914847486928344749921513996789570064703405230705607869158836784780261601235205876552478361939318344405628159737393640477561502346887350265139879133280937087321010746873387364288516610428251362447124462199518470041183909145399101547857819767771880270185724635890686477343010108226245818382861930577201603723646270861699886079027757918291656284360439418025038703505324589118544697639441054825185718177188943402166111216709327999716435230571898509631311243032003657270237426277130261396709900375093127860587201338577147148285895107994943773806653478282010599019818303670961627074893104264175157087455541614321811121648165771480125770841273464577741558126264287755739967303861535791604220759424008005835221385954115547513466966867350973001606118663424770377054789876187258969826168636673478857745454289085968684448116464249024579998996493351706618265799792159048938587913094765692161130345250144903795005481050267481515141166666036546095290327076127732859415118772482002144842464247533484996874122333547032279703466705205983396529883586714685031711231830160722601060741110723894028201218290551668732854826215718538760589645811685970363084555419285344218890058546682980436087006540062941946801469767711419210874971176261951098965646798710797185303939025124021596275047116935466859761274776935552166878562119795661798176869325641338284496465922001829506548013246174524161753954146007651562887494957373448834348059714870169919404142496380715610592079195086027431781319491963022230149758350004272314354451753076091066801902339661107542728036736832422613847814934799961865538122364635020702105574570767211023369733335305626184531607329431768741074515177886249400143187363138245707314103728768783191827241075645377887169936814134317031248703341029846839421934465179304275519622606280232336773391321749200263433162186410197527660734765882135451779421431284950924400989193748925967001229625727168266185560352948759871844316123940569115150345210108382714436721887799315459971082910292635318496276208743740849141160424955805423143928292387391417550955535188593895725053793934699694258866716005687283552856216285710507179889348166522817549178749799417495430247809091846763637506557396839854545554738314678438094823507593047502976818285029938320771520825686974655484996890732710963956514111577115515294278549536831483994052863425945472226280874922312828004447941498721440427929160442242797491630503757790483309354689858607771822197967006347382740626587264456676463163708446710783432168604261907224605449021199443669529956147969339974886996941217269164879666609697085785470501228244732699250119928406044094227052525885710832824674289689111816179657139212594062480459370462179035858880030536785721658704921935421300304368036519685556958142694825866202015767635280886791960443920541842328082611790379575610912077152394203464634671628280281588204433953209773130203121150309229672978299276689710032247288100068356186013671643646961799500616442161772030204579276445496457102318585799710277195849388023833074823402373400220704643445829136618968106546668638193447020933505492312966622596416750562656016656897093755915656221288553254810599208674275730353572337752144294124082419982027475618384698028430939180089281028690538998800644738756754683796656619518309463847612398856135801473324264101586357687462186767814256682103352997756403712389070595164484810009875515896025932082608056448448436988577180783982243159803658491190947666634032267672552917767976961727381795011778034325191898585767506675277355268691201390249725575233761597023992113252387269816430716966679978280516744571452106178765433320259201886333479789307284727060185006194737175054094712185892900511120503221726135606915504705756869919231314037598290740211796372264298439933793512587608787315642061904808277528877538316158612828019509327089967620552177949231133194126835722494540767562485609019421005678827272259016254825826768879436219937262263899271853430317260881885502728108135211664696312400688239411332146678834203845085143967918141366033816337721239744141832747883597888411184307381796989254943393071922141572200480078094598928235328642890010159266065524417231874648927929045961578120561395472836739421326922079992958187735929692545787370688677862781554057926271759597555312109377523038730458523573238870080028871184058003966314648535633646524632138948334066531384848212864338552357280697340479963785072515360605324493238375272651259400946017650109522360998253379229224925790710763009108924352284106609179240317727738620056384795465482307349111884757753491971417955296920832021406282521618850555184787861074214832195266042008616195982099510904214730445755527237725934886986417991936501064897570163552251802692795446553042700816272598689949128763428723003084702052820815737514956829139438908114407489052713109892705748539451801559455727148137307871725761851917962545259072803581764331526628324678194101492740927351403176918375295706945120222058109517108946575056641264296491201253963768416021686702121770901126513999741343502183496573674786438828802946397515954512979358002985775070600461956317615540351640127724795731927568339884920184107870340823916773506595098006516304338311712380741400909719461191535466538876941091182163110230493939593480185284403710122145184578438877885414854235247552071529473360049690176509133989287340398624739698705466489787706440579342715674455092631619390045093027308866311920294355385489998201031828450542661006635274174904108280135180356566130757165565086804928437572139842817634181789370862616364687562754517036115152139401137596242528970673395800123063177937562814602670000591503909327111877158629997098057117418440262359065938827627432144995749865100107600493255998203602176163783894654603928528449719037744022411877347640593347329222007409651738462236396620462385695336391474321654283956093231891334974011554619148533233566746879276778933305329172506852437015042710513944486394644330673385899161113517955595960393351789279285497748544093689629964033060989539204158667026089985499796895748778193960762471360909989578043921730137103450687688577434349731814928649084142800768411955828909492266265670861947789985467368318544260728814908787676122959790544070153934425394061684989858913321436729262702109377776762653095139711738918239177954531796105729600874775699616301864934655137197185663232194834920424880303113832408721041424917059547588990283523396590642133849794542341379721151711785999383352717952199061287458526126154480752557766673801556309021737185261417193861142397938940114822459691310797811041744548659032377337478448139334419973848851199923660514338371723611905781900892259201734561743115205884084073399329493850025446967556054462801834773169272716303068664111301585963389207478109415282793834092588826857504415456985255648047206189874534075511219744208103933642539993491053174059489309793058211201550656064460418359328634466686741817413960901747670543099658333515266553544728596540959814757009525281545927877432427309884685547166220822600343585326214773237054687769920064323856477945278073531208201217649034682477904701155376196227092995463701491872987515135757566865301782921018217069572058704390921109392503334130088293064503596706746996339843841761077428788469033732366340634801909752530377280653990524597088179044208346074130439482932740557562993827434848991940134408463219518891634129918112125576312743795574738240142053376923565839208766149964088384621314761254275042666663071900372513080115633248414171488588626877285206860194936444592451313901629259936955459094553799930220393318312018653563018498381314453795636937793150452292120262707087550243913328374503816942113911676791093426263723004699910202470140359692229591902471362493641665791650983843933170307657012189658824813297590918049814616835700683174494153244059931492085555624031480996320725729868176722295799847937569642224101018781911580475269926881013523635504705854901528410008119472845496876362852004856967778725019659236972168369854540228001602678502299516352348892814725886153013233294830164943134607196701102526855338454848261732451031142495080524369854670843089282407647245208735710187271679508749503228858632104112939097057932882205181055265687981981696489678908517722249718516705874513581381233905120102963533020582831079103593016027214677970038222420330699091703435892690694526768702871870941395984144213666243124301488583612100625056423157469890048897269579642148890105852842847636452300365580369470065349524297932263399858894831837372324853547873203288077451634472614000454141462881688333497935197607643167314593652595945738258028793009841390665825419983819611580991885925082574125014395256415405594196694852264866205821472013672081651146463959570053200512879188354468115400457463784746034942877224136686621478846321924328616448952520183330125857950392254908793056174408520005700839165556336731358809651752232316322987521105330220196361595737360668420540174106216952102685322388230395302823545140451619152390214343883165410934979031047286307732010427978061559562667396027890002045742649894741018857459138249553137492382866978754409323258113526366504781478254695637063874236963513081139054523097793181514200552851074989432831511829980400556742850258292576627710718859814589775700630887440221393289160629696177240238983015245563580552512130954978776077691148597552804027112610487094853978828683864277099250299908484781574332719247946871901892731119377700082007701499689879043154182862971182862001060947951277786073261489675885082086881018797495722860838327825034722924703542024211394126919512994287667012224745874396988830139667334035257732210740449232246102935349975748070044089902237947241886783257065069577578701496221409077303119616673321201451073113121961373245902345466611719131553640877102693927574135307321576940928748918210067581122864911505698463365186293042154340741992461308634153872177383828902192348579343868145463202594484694838686620907722378699958497866349118870961643971841747686373007929806803068456530615373010410112193883180926680741289590531552862240668661229294412362426581868092059925057987328665807455642442757649144942675541131977541886051725730234502056279467211490096178652775135341979915647887887595360538152786983875449227915765292356171459048435979892693260890025643888892636223213483809889891466744623997510831280561559439685260723112863857075032187121099616688990276662360973282005114185744643661327563660989180601019694059416548305661759778848959929424365920850426502580364260252105531134129162722070016542568888332546968975157355457111368256180434031928543288824535672407116169663766510949821285853093815421487854406500483602197407888320478254605255303764983623301244282107577003633910308671012236765985743553817208349217319633309807472727018848673604446309630610458631332117085355899430493455591355588890509135615668608043603848397277337240812389259054324619548276909634716054079975418979833751351324806411818816357145028494630772253804096977512336848798252229555836345933794927511480315538593187711215684076838087018662521939601832390708482280991868021114185268498578426645745831733855363899749597339004679162346732268548512471205116674590824497614578320678898400067427509959711178011178957898805647498393364482393401306186976441280020357805135486526235923577696708744424038587149872365713482153937480883742467444780352600926229967956321677322791827088070602698493136293035305488296094064334274597117520151799529128635169587946768420435505557479343959818512289021074525181839863169140901229132239792301584461887792882915938252231471629076254924103404007923147294457464089582902253753456771400946683192040240576842287864014009777087291326373067296982484995863672301533171578397996234634120488618871288446275065689152574622494371400344062678147063220782031579729753260428332139461540744991963949375417251565412566640040236531568100925082523889443558571235381101194692955234188534382515144254474943239753171034573734349865312707120006324537084358892879311681394404147590298734623801842911051591006766796669022412697998003153354030609276179421781470280696932335496323041083152290328488071315854596890999314543575414222353849398088188010474831473896032426466374192094042535673063677820566194613912327670248655922714761480841143476143268123625997463502687791149753189992364954690051210090104080398398625110580586717716727135175004977488537685267939611324941452949697540209826629580723218463668627482512595167015187409245611474222473723239041569300234806053586823206530534690621655146751109792013666729199252427032607828897108475048067992134948209091871691539143940649963367188097275344598412807862769195814723551086536387667344520430022594949058712350016751204358360510015020892027028703834260196158250752841043756627000436545261196162356550935598299242997514633240485131125784514449739581044478426030252720282736609667762109051765790962091264935891668989884061530537836963366846013801790296340403187873110804406786965995639670998775097177517286873472045913012880499106857686374612916417718006046966552310057429711353135035740336991133139981852998302805370313003226640539625824755936574515815237891945817309874368915366957471261466947687664001802438033871008154748517374884974118021409510325709661398787274686598639680623193160290078805274923796755817137543563671451988471750435917730484741008143242189265208809572611186296001436655681102992950211330950660804470938159348643665808994960051409592317242016473063953349444695545876601802550966252596531090555033693784049135851000753853919512871150564577152263249634025987264370336784500726150023436024741288322001451534149242695308882901843043299342767781050591379670754168488422608387583632770737703120069911172010779042310393164586593484602804972886118157563912671020480770278456078983640042309411550538655401118007371385516567613777543093105005843981542298960337091300721222806205359679476500219449521654934564190068015666697632584759143509019125926493062825084459463724735748331080397579187522469841324899723821961619527380637622754244217500796858811559523385560995416167146832614879731060616705257963688361532010993109160831366053422358412714703023040123360075317543494765146459853876202219851616955432946692588965596727702863469002297966114901551133803180436436656452164664710933213632685329094730946403984977309762931563472946941681970478208274477624961266850919116253084801358011507733319411332958366746971883943616048080124420256931639817101573288187109541677260424315125373601419129084141977910341964592852903916924349436238373569918104404796388822776499226583475395735115744626903543566224672101785396871343934398655378735956124654342476870209175612586081704170604842539550578049398997077484444939282248295109138938635484839332251576406926930723697236629553888046687279872945215938591557835739408126113408929522482547231805855667289529322275514868691772358815643595538765217604563630976768222682235011533303759023120806639998111613877107483485708888551440252414801512260619190078823078103355735987213274293291184581302637211819530868397717835384514788510691645732561343036564016494345314589152319543857413915564099631199005246291686327629275675649758759284904062795567484052517592367386776183452919658163425174310149727345791082948764106623155170143888457555750626047709115632646935781436012075789459361925190893371525227434903848884077596576913165788421921206095593252919600926595438520741450900235537497599158791554538673774708351001851776646891255112580061806906192269933523758260529525715416125342236598963780843706377818521165489049935314498768395187940166704618502144583350290809503510180652513727185521640621571933042017369631350812076039197390795906732696831923120824743483452053626996589771093076441899245540813403152030239646291480405959030481707000034098628866906401405544624335438837700597187738978523996439973756527586395079877729029762659935698456186683670353365232498491951896414072340475801435684523729809440858192140721964432985367348283378188402574671024313959784502849768508866223436977262231692986952713599222665252089312482680376557917939196712921952191369497052743546565137439524844980920625800154700324167119503002194157647753234376792404455865075591255031355783462702258734342891927420656134481652977751186365567210275899347412600475584121777598526115149890160208856279357117969581106085101231017745780491198157267976497610712597166106325241077765404166248407213834467091198975516923657408129502959659868666217810176916738689984840737693325006113705488246245629602472704215837218756581205778739076357889363094870538658135919817553331278687074127993807408490245589716575372895684074725664689248119866304583142559022588057971882769309758063228220479374071250526466432339661493541579986112165811554788755995359407306017333815960449315814340381121723456848345489421902446485697760116801645184136227572220789566677368432051464197844066144001769595348544680190884291906416582432066920399309497817017658306550867459589520569351062727658214390046904957904830946119975707137232832328119503607318216886600333517849661622982614545234995928380065031293492753118731221824753759353482821007429392525607173448484723015226078907259829637971829292504126723624349322385083265295545967540902347370519117543162617104968069303031092904758064335056443359280583692993368175508103848173101150529819145052512433718636056171223205129725977210592365961588701032644516114836896022629777558751926377089472051664936804669435627265064911227494987677044088651487984386508257646304118617482520219757318234908648069921669911043029850674075949756748905907111413499457964459334018819309020262611557244790624025917858860997158304039418471884485261058057872603117058806994443069165970768928339045826425969276282880956759693697180733330357986274260936995265073056380425114731267351941577075480119161773256382118313470287725837854021347085397138486504386970766178213011541264112763292899966573404706950087508885105394390948398778364472123001622161690795524301238685998209461687747817470900033991481312259327102984621612725024273405721653373662035107370982309759221487724181484995632720961946868017889208446836300682679773460371050080924518259217585562809846951059052413338260028674955849444640645896130066069936322906850325389879592508205108741032627750289276225585406017891094267932061998521179719411101200727420727827779897879810921052135888951743411400187069162267580069854029370411529326242478227233229622659600753785309557479103525497653523699977508563210220582022897259619516277034465488536849038853725776394107653191055740653439801379019439294514710384359792783911823766796247729768293173441843025302071606478344174491846921233764971031689513031480664356480866253467535497890948014450199185801148902451241246047582692510190215005351475699203962222583592613124759806466397793916164523885108674564201940619911538090478099856313744938090092155964002901896528802395105205411017517808997649439669189719261373034815605479313370299270297434748129790237279607737664794537901824794828656527291957336780580762242625580142862968701380438414739901450564851047818056090841314304450507092106998793493587628159604755455675264143593842614420491866402960596901350745906459598685325522572272418582073628578436979421789917258006304677524368965908187088704615245713465992898389298906886347872343789289568497427227815440227462731769625565307020811465488234407584456902543246227473012835286044489080345660292040341525153757206215349816846140175337853239059781316307991605623157932266262230372902691852424740544870497611648938208394636111165543692354428312133972335056263828187422874706019317650265982274083726013484185027783809498725224507208547956568346637577449061421242106802459284957714459455608822032712068987382054509444005887180452668556395601051906406985794730906761491951067257807406075459440026266462578294975726323869813926642289546475962435077454446738493622676223710054561317851435375647805537918914371512208442079544335988679571009260580335533597921419387244355371320453917366168210248963408935177113514251867799713610950754362083435961157927809170166241678886239825930733414321448162330129852835339402854296330257480502587861304354630059793718467527775552692027591506576858705457235880050353012172820515495041864343458484795912205266805309586921266105574076306832513154103795821542099507237820172597007387870024233293017700827077877516293206730059450231223031719560190520193209144278390704875732852804924354269786626696184667943134627062588467129799407873677980453169318265977947888575932631777183025941448233022889373646814622035539784607000298225699281744947401479840641670593052081256651401559434508665625031339455021161316360720587159652886832344561693329391450266232511104448994064396336581608222473594038837333773406064225047295654058931675043483099512016846401816700977572811221282494178719900580687435727940068217625507498456515369831626622553226876525370022658542715378633055643395832945211166337875638034508938422727248455089776240144504398240412147982591468093107557997811853178877126263172493149948620816233020833450768007421316288270893105288534610411153395914831821142660524995037153592083577750864131294683187802151460817583679083203662981661986123204962220228659016214381489191411818140273148049661199247267308590315433747652628738763489120089121665949705977841618066979988990167662633130915086882580589378485241515828910428007365313241190715966459340483293020661096215287773429363402731134101200822450138570416856029243653784877012135983024600313337602081468179383981284755796020790098134042081379408984453166145144967472770808859747193509223738135982250231126091711072094478291899015138241941122230430977706885897300235320432755709896567255835575698131174450030910667392976434094907025470573575632371679312721112915462510977441679746777959171462009251358093251135703509516662963899024833269373854214166832139428421914330268654075492176499341183274708834799197747055694528747174555338818827602307967420205012577011992785545785572315345846193904194472937506163305830325045436956493786437044484078101615259854593862506310769266087258774769218505866497463480098713591068080840426065712151261132492699498483525132704020246350609878718667910533814217331077038925807763555519990322056263066968449225671132021163369995202998843765323446648865292191712911705172714059723610139348520712892410681187069420434369211383573714772881597539672019940179426707275464623387345657551668611391019655028466190766421598459689790766278014634700443502458417397363980892365746880141486327066793192171408982560684833466272941261489629418775743227673290495611769632673451036359026446595067234207475820023669571216966572396726463046048404461693280847177749395790404255792852271265982757796366317832401797915032630805674311042726076246937441604695153684898061768382076720880249865134513429596425733305393428405918379611660213886117656008949530367339496517995617383993887730877600559111901562200699088752830600756777868015345305303289573533608275061862497937478706653917378105702999138832670450126527255175646836759643910965078730465073547231806871172168776649695293557370461149266483250825884414779407454668584132468541039571949999645001950473719674777725910809873384580537919976353136628719697035584547238226861275847718688491040404228150737955449221180930134174507312496191746768887970993401952693942562736402291088088428614884278534718368687796604447218796114968440276135814574919740519231628572500114605152553428479492665423773894264770025377215164421074341731257725727265996413955162507780905778241078577228524031391179160747662869727449391805034142169233900286258903842933436951178191482410136026311614967652870689838089103706447518914780068036910719739000645496398866872676377449322233397847576353930208835680512845175969616352755786570038099374891488350086251830487491300348738976701709335518557207347472345132703983927488234064708446770293464753146894718114684439107136573059373062434246605159169983630936874270424948519135051040303497084502554949800714319513554894602152317801792873205257602091452768909780959146566092752062217484284152148162818417793909120968396712036842023975745045067064904575789464666064639244741547037495073010487093566581965010824574081483422132488146332844926374782930272595744568292586978615084377305654238784514862460221830378008574097866327704050083267294005963362149782563968076403123633229566880859015412210960373646969926504680691133465451589853550542102671630854190736895870125280590768921016435409098576599117167243046248881422431399048960676401805420318461704944848635702452533176117054134629003977548783046464085881204777687085730619924660178657877255013721305366268725732608385111613095125761397260743003831453514823346912042878852152546782044426860451766954839155319088382734311467544249623548170088817190622769424848801165073082874583646923876360141358956264542900375967354980095131026642107398425921756244354867969634944674427019195810245722529582076544996798617298222895047006203958457027998617549839433144864169004717506377032015959373759176176557208946649841437365641658266822653547112107341078542607524216582937658969693701566736599911679962638525495875031614364366433320683446086573076248784111754096065419118765163898666177253663379910932708325704571188914380627618702983725306754873764192154926897085368898564951237757073465144843489368125511744519216663187662910847759211396847779436744411702796462384523108985928593044115494030379721141949432392707119668171109082196390344573843565432249459367687216350718192548191326271217075707432513333688507730367489296876510861204563323196222971800588149126347704046455078375566624438451096767271817325262829481925771970557274466199626908846039516614770498944554526116901604566237604744538994356078668739296910681156610400945642419382211903972098759700794259500439750951249558324294273799649692568663888834777197514984959818175041330214791401263651057039856451694716195345462727933636522277336808428962518781584858511748582162015811062941000595447521479696907498695899000059604356404463054703663152162168128554104541957337694910236552364110621086281915785187110765991412575784302594062681392378978029376945385535042200430677565377215900448002606836970048805333064665609510770364952057837371688144615666634760165371155892961775246713486853879416522112408586110881139715103044707018269117728707920902512827397009825736509480182283434726456166158622383321340679922495031657272135374607841919811150664839666880418989674765747863820313279968009998856232817693986017345341142131027651842602000601446980094218411276460731931002256845855386138356903076179370505289765293917742433741359386346865741371662447781055180019743429004131207542220425944056931273274698729584716759343748441569997357229288659334269544488635624369082000876809225189628481044480499709897477400928981730935374323394383021861863762845948476919249777189266453829014508456147172040758785320703704165011636343648614583025106477893495558193567429888181791339028467023933299032920738918042954801603097327220412596497202597088148548380003055315954784934732557402230341646288783151554028283023257291366085853179334737665968394013259958443861794178934521350861196182936312482809792145281368587296489120469659629934462609458277826848985850822716163423479296089763552148120401128471819839547413879084896947150907198072926778055063453147962953672580772449355861117421227513881139116351397973194837969710108212123859998685094478274156266187309785685554054502429945571180920908467012427887020014561680773763610312564242044056502771748125487519775209514020670848922844493245122643604106164159052236785100622987357768474899795929507118280588214090837316396888748469388336258667651483112791565311349183818675440598809079226767992911202160605764544551573150940141361578649115579924182497582506733891755667124017525875533883557846012679391893655233796185530225926194023213578102472180634767250979382603951861008327391867592580418788083269470203042139889147199968776192130160575788777681400396174894007024171740628386437577295674074886303588541370023770499066464853584932897925037315365362008494852256535238731573109745946896271596150674457614925890484163791941556614069820212802851377746831996668064947979269545672447131221887793188886712766334679382415594373781570251428161528467708268605974121256399206358204075802762269782807546567103023521011388515583774539295915228571772801763212680143063555177934012393579890069074470735243047448688935915021028466449073477222180984586088280027772670928740059058506114933046813171173957053968718430933237829237355750555852633577560993786600445911967553716174830820298868803495691346718336819992911708698948407642313257938828020290069963814588710145939722524553660556937395277291785767929375631696390020658378546013715743207477006119274011866578859423754492103725743154331098884826292632952235809115558758646028747911106439919931497362126739603304525169161164303049352936996237789306212338769173009302991625393333955298165072483324523786226669954583390908147589942311944500405954393483398056040272377737778373802150580486090128356139817754035351409548157269005719600375889424564429334051062644504642121173520062006512619983333808111238680797097748910808242622444578336415125999881871796058392859693335957456435522792308248523592926422267910472752083817660929212964191883830105304696453455477763282361754764305874510865413180508844919496936423975061502920971766267207891443841347407799897973509329109353637772412282171968228261282117481268400639956043966893912124972198039102098702199878279492899108012922222002211209027076255175976279401702934154067764480997595212162343537052469245683673433955262506869565811735393761004300827077763729201384813180390731723531208670591629111539569542614077297054014186107250207161333830560365877296906731852578611995051088565394085658833091852052557756512152550126900309495790956621283598753865566507456026012685813173058445092642498090702971453870185029638903243052123420575863881484358258673978281524581167555704240065932220059202660787533103627634228540555476742820574995357021543308453001676958016415941754808248094495652258050601205370861785594034590825721791921469545614273777137119792861053109154725142529333054024210416837843215730082926321834256307991776008581580882415698014744543611211079238216567026937301855227348556589301967670363093289701536491040081187944980280608589732372587585603398896915086844718046394052513952841533032626108002642148409795089233546819539330694818758728227241505287130073133524399262184819970599213220633985424451669151158108030462426824377812989995010920734870013606133925213113624717890278380640364656278599961343122140088043070445163923810054367682780594992947554946338444970649817877376561326721365209697751643420157814947629865386245021185428544225720482369907632234343996840272844883129020883006541830425442727215538530628928582666708253536258811675637520388644215131494110992169623376414278700314463985975181153581133650531562009307994413538987100466519675876806596047391189990936598455032623273877606825724828577322826198426713584167749121079802195704656228686002876798996977186667132865623233410190989677396953676952415848299208307265094690067652904488207238069795295764761436737175906720627506136603179223996604204986059700323083301334723394825223928999931340770814386626109632024924828052029111549211922995198580072878080092256187370569188937044222130140366084821878886780485918121136173882264452231919057558360574292570806242475577473228164112631899979503741308155488295616870060058018493534349987807378965072077878728071415403284912718226423211184991032583901393565497040472680080184442743972239789583531799807826361545833167145004457527417209936091585902617117552215967787780480548138399001767088684363031180144057987997074772631068472580504000799588395763027134971230290791771620459026429143640764883952030292248251803828182268647033346366680406596978786912877670005741309450009797575276554222333807948983094063720348093426759149844742042449822957756109784799783157462607699895560281169638606922768039899888345473599553423125392105185063808445704650992304944165773280670414984450450681185501078407564505003549584553661122339289935386987331290645012135468386380918617341460435037250797636364366227951198241745571550314951487009804024849024671737869264312023904416900802370443220147578880181532222213540694927031789678686849072304669729211924193060929504511751217190012104614020113073525700922741742963325737849157509080173347511707140623308313064062189413175246060122562393600017325267674109815837183413884895527154811232114707415867246625288993374508820290042538353925543342780130022041155419244547101536704728730035150791626180890044625008881985400479541159248353716326114302853890855971805731113745367898183473559046137710832106743533341788044048762434417638303756091269174578444788130903834109818935942309244712535526919330212105600940965336690143734767898019670774860404163187451838627539407584961001417735571765627371321079476577629402960036698335468665513270933983179183842686233090651088182470788707082351084384350568476614793673382617725154690656594256635993331593365881340416065591154744077136563051186228834484599074472295941246465198981420880787234453958183839349137379367446169615010828111156069707743488104065566659560785382363037486296703360925982950589716029878408179405408996291240212825802643561401942842461695727900580755101252357632889048620411460545156371517381579474336488525580195733995723870728252890753202212895294767144226141331406727059248767243968480004237377050756671557272678517527041789584660338483111489330182987065914481514352774912845863152868460908069594861253548024440636573574480339826042396209743716464721169192184799939559424705441824930840158537521486429809344526929904910873625774416396231784376277778766028606047787410588016634301287890750365133884933844508949167856922069673961455839280084090776478674532839084568487595994072619487940234132599448197687184346395099113636985830649417126661300810731094783367332273086653883964947157635062706933332907285672176982645251422125458659388946153742917532685897432307245030746021322076344834578808622235300912054351986479936726589813444446741187386933926598257149583927592611359952344004820644592985735907032038362862254229688976440040744957784060386818786583228232207602480897826507376024457270501271510599381941679382727544505622874833862956124063235980440912190583960266979475799297332323643602008124722679249178902135500860070983456623647665555769319306313412858420895651106783615656387739924767856312532201573138777540432909685326570890958372159913066257226768416596592329545546842478290876728378937270135689373511441528291039833651675243170532677729649853836192369883291254521294269244537257483461881917469599025940303128977313402693430390202896836259146878129498732871891181765490305083906845729916196304581020161779079764246237957688147250367544452429953676372131045770717461916158053411158361466043014851952668573924039866013617029515600877725017520517118580293244705793465977729770492341470704275854101608471349499724862942460945365525472507456438825019256241887440987238984627519010046771850604792426324787439340345022118178548891423992735670715217528345200180232522805373444965618452082090023386567194448835396132331641653081747457891684123837171235301719884629309577089473181215855926915377318275074012331462048540232779501338936337571627921775809087037170064607455527229397987986699306413973619272994934622421080021762050322349548931394646745857923229362597451345584049724219911334271521276300869364237658649773200352470110106143566232196074495530888890810524981505725432972526604483574536024285767300508851411860118671374802378109260156297484405263491881129030066082602440890417767955077971978676947181170212099884491299396264958667884916216105645864703439824791479970592212877364734178060530677665724055333069543051867910988755227733366773728023109991090865398161407174446258679669768755284091141959304029996853720605123633757943983395284970352312935398674479767197725223259491784214181638515224997519935884952484802066917440940702695184570828218515216060055025294812370352283145667263379872301882010155374788345072319207437626928943570959884391623553207969662456703709688127280636966663529765435816784697325489086742004081525106785244987525524198309807060571159773171924576996727718514562688656973166514213996767519066334190797004766197496062814820454863842643020639489095387769804281675830242316354264792478358887044638762094629146525763509497102565431730103117760346697637357514157221341653430464133997632493809632866032375322745135908248638591878472710342527130631556319279457205576510763586659705346373219049597148225573239200744481803717666471203860293114199637728099865403634910039451861824506316392843207608702747834917477108838122443113083358142543290011895607952273582927832097326428517188874102451653436736478121972791678088334400754428065987075344412311255695770122929527325860301633758228805817110173806482422586852685575057879986276815157415091360817323110009637329835586185321302145466567530263147605314856086301847404257384698469991486085725800650075803273110010158867339929985092673091402414430316059952941450718117258509943974570575760805986798414374369666124172658639138807659086423499001519884658661451227125778017027189167533400545767480067969672490307161401465042790796593550790830646796832437716896455800980973938517201555227806451032130128521383103368981672327521734857609847168494383451683436510096766741557397836281350794455555131705950690484012257337773329842023519689728139354187965398282584846704787590435954740380108456931512080749793388863891811757441502701886755194970369451626461511892970556166563590545617354406685983049655312662727288013564133721026992523890062791503950463736949649801281288568628024060334939993873992120077849741147281674673050350563671355330444262330707002147294561707230275792036006816130960317587310448018211922514227313455114946090892724916178590332778280675384364546037754514647914843811349876230834609060424116690981115003636710171087030551211219321932205976094293906061183305348441662260879399789396504945470325591718795634603642203798345477926107077541012476797176911459242962660415626863543250941097912108374426989576920245330449230441288731429386979993527671595640769642784712419319762529689243220195473845196127004257225240572682129413022645355870503127184443666607910275810498558861579024490051852989461411366142300203642757833021078119245969190220595760554867064886711207227240399976931427124502184214036860890888482624447998216647051737817906755018462252074648453627419109884396133458666131976349080001980420043389256969067601619710909042056385311908805675736707708703908647178378169626290971641521811675393220147000739727992044225493932365479179153125824038551191495721268186101414906419365575624197314122742884285926862410982402233656921219748231827169267517731196889911885609891508425176959069748639727398277437370898593590464238210040877520358447396746793216047142120982927862501276955277981705928916119995156383978596395465058850571461087616013973502158754530587734933794306793154369235798857521024394834404819355389869744406519048432982374200839826790131893798641839177697781663242366556826691875892552320497822158813506176253743098221370163389260611338964348647570708824153089051185081415289037017999405704719937435577095009700509540120591584328985695205176236191203262411944732391811439053772893129460664047277469602608986275588534591095822579439700608225784538098298770038981962922845423987787516484498296483685960412800589240989438358006375962903184242277375228154955692188379798123340178600516011571899726696518853960720882483641720692362013899185268356595969032001347549939848474209869455459650884649542427264795781627262137216670634877504073651714441754585153216794554062327509053139687192523193559056398159055478336156408828183189728633649186029644385267085494376249614522135199637153961401848573434987100720693418704955130997341739550523592933713218822821656739784747006390671003985268423007976351161791768969357873726127814559666745821718644432804416208653620294886068833277458800520396668798177874767085730621674703370249166844210029503665723293530565471165697790650016699919373439987093653423498400169151098331229029495737077827944859959882914927866330148930625000005984186678464008122915088588599198616284121631443734342191051961822450962025279543077397592699772027024326953908216045895064042245958380075466297902481098592826321150268805534334583682432714356572699480933467925283536708243800160018012459142670924605429810826828739074089247340810353344327019892700218243078069195439962674654934966880187994903546443701166560056645653452853107841222339085191755211656932252947179312321830905537692386502707425366698771872425194423173354196632291179356599009541859194603276406613548208108053249159520947698259514434255161585501463557227142003557072598647297343699421136447892500759624354188458490613258937298264226662170925875836251055874601024790908000588061697892480841953322423223371188358047385460565897140562800018944758586023189669483430720722527092851554872839788131204377539239514760157431310123353880534567429996911755886809244522676123875865466631120710735197465178466042699252475446520040886403259864123058395940692707796336751747160475315809979240919542228393109246777368355279370325547486707721309135061599536669114962633305546469066216169835747143417748392948954676293276741465716591331636421999628945510767348098131394937136099893455521256155978007501215925804250702928534132933793915517098523504897650164368647038580390142592981646763199963767525654669829017282958378274641303868325318229058254181909363404890733364197192917335526453803282365791200910112845497043324652889458589671782977516211643018307243001068147434186817972274114838148245169803312994782010421904718643269249581880269570512612194959385200269347473320382544853259287717733677415848986231627952871542326693445029818542604309686741084644098591583337507038996671879334733693841175935738538105382316799168443661154728671491020352932948883159264747604853056082385579458773690174834220625324562010055822292210794226298721277488484067386617787109728501728476325831560231900710793554726574216799946069260242311777149807228908802519536560792979683673396287077229272938008206165432862581288011948231132062679122409667786588682506710916283296537493271930709059631623251680234074301595575471434607932090124622162212879326460820524834957310526857134077713806969352747488441026830347029400196022306044998001795720532582591204434038538448617190153301651771114528481225087706812152318495507060808931539219991117448288848645625528672504504715469388162926599142000260711183639667474776325339530566638746019075713180822466329486049824535533114433416752395333048931485049350894145821161605909802941455380460885468584645145126421566104241239876734199714337979136746261495382055575457980688592176803043681887435080778836796913603907375554208716784678357948308709536092513394073530365060991862716425787016423777804410510697879511099791333711591943094053741692802871015486546731030536811080361558650199843516629673365463590645410529414766328396622269518583034187128595127067630956808766170688300259772578241236927803521580310335302550484518201082434582514558189445483944875973117676827383192046685980468966378045638467787091750358395291828722296132810510795720560089172054374997289341310983049058066371819218037961102191505410317045126157951748868178238879811616139744540615501419342220111373086060524595046187022244365493702408450909514123835169595134415765501601652065358864724238789255816976131448973860332765534569150848562706504990923100764120136221077348998387380791777289393916023758557486224204481100130521124500365113736266705925938991114565501013496122893395989788990357807019368081260600198076966901682494330139265325334242938538607947370483310953497911115068838622359398730725165867988494377230575505388460077554242191539353300951499245242007432641805830171267317231766076719084174758776992624358435032713712139604481071344879623136408780993964302510654031004317068836936222763915981395595937743627220943210612110340800403177530262367689751972907997037445199225552320296483683382085820340272827059189727186424722315359386569375393276085637010342887825482419949377075539331466654337985127112059756309342499054597286808510726691232267406411861680370122204864097224965516703962999011241738138960367828508895095996121304218115141934884764273873486626158969584777156633050437886449164050918486202865170214093748754150251100720916423555064339204620745855838829571937433977807360344920413206163357101509299026050453595826542988608759778670276321671164719007878753620488515248416523004905792567939988739364205868168669248505298287161107527104921897712662191020846956618439922012884051270483467053725668650962141546673712158963235702568664879033690072287084408088345111609502972979298906357156080502762613800108028928563279887937114476867877680473339767655449260618294982751808132118873328344305235633918108912223011353188629242716117027929142543689097869784065686488270194449817716503571978446184902021476357129789136224178796187490537172985863877400918797415154108826115601089730722591242857378251963433632606688948072358195021118461824185754548455791511113225071254772248602448028179290613120346713947808152955772692753076100772176957763068536805081489099077384989756052816597095244143151880288253859140899509123547953031050985271185274125137492287580796784312430058460084723951700880468990143249096194576971142120177066180515414033490187292514631348056107649052492400230482945189085695450465705955078027222830839308954000671176674587309593677508403804961079746205936995352003843234620838713433937536161372657081444537319653957610327564720539673027868824120891924670153116084497273066578568751219224646354793421827485331116337260724359739181264912446668291018080426499308434826170747567769567610359380133616234308064740797568593422545807520951767241311067917360514004856842928742983089880616678088464158341126314623611673331249085490325548170643904172406620538188221775692656947464715378321230053131690966661317788315148361377791850957513654332164788515753422518603455711245561949891376719970840185767982448633612759321329304323900699833706067333375507548970370330223594200033361822676474501635667027447440877060237984334508065867502257335131165853397847653230080215049553769254683468133556664785290246513548907343267523189658287311963217018753170922241117046777964286098863281273508729524191997415024811230358718680632052142884496987000146918776830135450639088676487491192970654668213377275142881520640947003479301638365970258301475479270527558611457055070811959506523575321182338133641732938888441808431550893617082255459338282362206452432803611937582415233570700446690880141335093235869116196231990988903137646060546467186809909098999202977683638284002683683692582403700469733652062321699068317557838975858214420653723729560216009907483304846812284557413545245245984325700491720176827272707321920352933082254262954672942685777813006315630157342810015373850632932674147153997279280828113277471738153868258086904087908336083157072369285083684193984727425831649875894303771191589961604298352339829369637856904991161591326560542488442127728218324583626272237575310523305127960318771498622479001164494007893834712852724961972089429939719003584770942449636944897790762763021508503747701306885564640917220370230514385415094651015107939967080042570112722197209810513410119213470582855074894776837178299121478527702219699077650478297210357200981112172089855893623444580201399410628937922502875120678609739770843737439780068581649519492360455829572540647406670522461708853346203557512363930083230411306630361616478715108207531582612386413585223104624545309457729067709067580801373727367303186092863860529619846129965796114713000386349310295807703373984466867806540471591081862299688024701591146183343441638857816728209358562181525870043829610282003048995113366853957240101230541846635157583178474298219432586771345950619037884204135179438005249735806800598018431059093803428302982663622424377483482772115055243410772015443291540728040645160511599790335655810992706860477438687566600266757847027703841594363110780806481266978649934184620942020001749866553418311830293397699790864851417859790974003343102172159645796572441439940274694912138192671328563717701739299780903713980012979340011295114183184555853865162196208327849358776122708084600819530462256192069671941759210201264201526245442319504680602632868289341065619840801369339503889708642749300394475502545496884755510894735765203753908557146611272252735301832107508354179730858184357988071292042987405379465283729417315444659947797235172600073924756201776661430164781951059351727457525191235342720915121056239974727236469004286378990096629516099723379380718346235235807769469341678617688522246860350137074018176047715578892479415538246747555160941598388526578021955529385901996146084847494207493946984485674299898382031451201595284732200729719547740996116276805278498561532487261351063781461998847794847196822068274543680789563343727547129436253717076055012346619473186139855126934549141385947894212836811324018572596624229919340624205448850708967620142144078141571116901972879532546851359273320542132330617570725410546473806850174318470127200742707444724410528969807820640715995630113564617413494186251223722386398655126878218736351584866195835790213990722596231380766476969439550849822181704942929667253296152237129438508002395261096316031255077911771671901437537278972108605407574642833086730567464674435075833397581989563619356823367875358688446535491753799371718495031809744307947023402330411251865945910350145858108432473609795289881827941427247190348609588007086178962015840550694554512313122849636948523689648003454796018392365950812170035835280760471200536132113331444928557624671792856469771114268751517370747926202858736948364230491129104806527703586271017531570783704185837507966683795548606775155564048809695254624179049717222888393183042677030557452333066245185493798065769815551894100835443093463279846828384573993076521920267694579162001458757155717919946605163080280425201916498289273843469867896938468659209027945239676662442036882748779681376800877434789083672947814772900691688422801709076260951429620789947880060140147774869012984952946725732756861648025036224629814587160336922087890393015477369827533567260469258297599137973856619065782838764583343357044420081998577751627085419744459991990190947622784492034019564453653762767429608147450851808244619086352005065880525600891615087095721021538116168729818970589288860963026837554337218116164192979975288962618151982794311720028015543430602428516896327400412314978312383625487176708549690832329251499862411129790655614708931956096083324536516581042512306491101819152515167815919270501151272353369520146828419346497612749985312274288970712756406168432430962189517415486752392018852195191300362103651327567868653863482523659869134367123800665052490752018904928454167547514120360436647438930776292947799201248281856609503571100405185006220059244814864112333374982492015120045436912434667004493643944557652105797041418118668933227773539750230034175996852656088766110185118112630129805171779655276385906827081003084691779635262891482064873983281741918882408798836143521929257422613502743612406110573665590342504964248500840452500877427461722128542493477523874861604340423735599839287039326712973308450724283276294998830502809139075057475702421811704865045968966461119799932124394780285881677324436315309621051539668146304146680221862725920074040954585999657680866039521639043039497097953721708411364538532845795594389661842683829382136410099549987844028296579507720462461416314099402321079939702748995137868278228451559452423607507120807734557493648594737007857669650423988637992851335046731598564507895659459744977572145304150600399965800784272029234864280340370366956934462764698175503638665702397991447714173091541804671242581380435106524923078269637862010248391811564966374191165851053187917108355751488807014599705013815525351836074964666125095506887430976069776263730342842402191835922539416133506541825076385478961215166880130884977574112759546777294972995084581339750026081668497885184683141274250253962038877666174643957085500636922126013870487942347045605669261583184572610415649354915482318566885343505656111146538186327184873408769234955060724533266084561912789613108714887240677285732923202274584366844569637465948231662889238765459906879515119033299487411388833724311373884887207155996125918381722959247636456171761374975704987173097861406123390528925506094701111997048660090043945495104584796986680557557561856406916374854542110266921687872412014751147591802929522681478710921397511270450743605964012983986115877904940014485081483671079781369069454566005503751029136105232238184630231781057269272892326549468821945014220956874153395050996888973575997082670086425021021609506854354153420438071673876946906692038544896849757824202897587246459304884478443135655945694319065005484821776190656240810351258768316809076686652387378303539306147727725494069298025866219240864636408948354373175762393318304777418303138566884451690022853230071812225172761216486489765098196287400018394426164713790209118746597509339871598070349369370155804664507495644441486412340465956412873612277621879511746882387029316678896568755707881460709511442100999546421092781928908859004314313378911120498581381277277608140577379491540499537764492163077125863712867906860637187393601414900272568269955019827557927069569597753680585187179825628324371230016484442951678651213056593627729367711007174940062468018480252199870071899393400646548387303622510517707636976940695534375637998940611384072676746209737290089984046184592750434064038768767755250879328604647053556322209984400497330191556361617350681579010159992012177703975701769826838844833044252032339900086069742537911315840054297288296993868121812044528634053881601391688490582787139003408886057186255094153322046056306285981799325934349782996592132860459529561055599478777427640836972925872988537475352095759743440733211519362010645845320305649722144296122434508083526656221103417937550894244153515181803924265068814803338754106624705107524020902392725600011684155675427830831061244805917085491968501284377574608199680388938035985014551309870689657696589483971582937168145114080859407456743991295902827439847922873628203693813313695339223016304667587947238560929563596898528095743538261128111177526216078977452816742854776894656278885773519700375651139718184802691268520490537093116098906497766883635785748558870579479029895573947516081946823881729731610278662313022116709088260133205322189420722034714722548552982525844787869173544926271137336689273752449456701203931155888457484750094939610741134349838684322808807391253337451986979838370661451281417741596695392275113279325543695460529189718946567885817471730277239248210014661459941688862990723648570571048194188257133332405770627674889798106032746189429907969637125095915619893402354345041015737247838390379720966400915117680414197037075047134774875487156198517321038532256724111759464073835667860614949612034109046553947403289251756718911332347992386037356382557129921155399088317010855493749551454660109007949641637186550505651117137048833798961689234285850972686480374653549607631050636633992541688053307378131347401174564729887682022860683827668785232604593262565842810102979757371532091328674169351462769744572625825067935342387524800874222484077684377911150903383470992141558316754555770761000447436751817649325771348325425460114889061835778255480222864411432911927001678404942074251703856148330141209149544842368448823447271396416331395870007951744089816056797331570057168854038437328033603447594509326101614558291195566900660011053674835391210330987578634646841118602131353396484142906470055277037341476716355879179716822349052887935606242839747718400635540828522082617901975657497561015098951159421211309964714460661271076291143365505492963319376594601321545981431071268509537287748981035524777975092852805634309197300953320017627812093657097907747832165277939610920295904705579253569186889751854884484954402437784703382367542031479974325669348828156392157451599486928585429212128767082838988836439288731762975741550833632415169197960146344828074167430772298107904029753146044450103271400221012424390704309745865183223356557899239219750625111629052397942722756677652615127399395534238501886544219580192932861314847608796441872730740034220461846617596130317680765879202248433105854477408177244822742977821231717154895712547029294492284307578284773255509201231781909449196015482818369399523791892736655357906187024954916286375648213859549268060556957676213878600085040966873829424291923300270279883980668940893322524864982919908396452257347670922418806008098828563799523281284525315025835718574954906225453805347959442014871376766499935316950646590701189316083732726257943918568648866798497760032668453754611475351031871557651928763148600757283486673729494686463877638703431880447810769237873251925706149338372154131154942268451931546579416622145250644871626710975523464137352977042430602284371824171684420617411665625953380472999068500561203470942538867814104110960916147594598841628310821332339420045804253048200141134367690533648128654068889904117553312476830753618124002903325070312669252328689491892192425932074241166498367206496715058552860284401051887617257938434389566594935131229981