PREME/G/MU306011
044084310996944242765267816968012280833286192470866521743507866034808696183452620590541570864664400951418293752704975805830886635684502601645234903050304167424867344045610097741301711435013322432439068355967157418692645278617293137852993797820387185689606364739428715604079458600828900753448773835818185857227449726959089558179532601334085542252241615001039965736291863164834669538102115456835385787913287124735118153192397127110521072362116371070568737033329220213071698901492943859471342390481026446879024990712183132800035570806573789318849256118482819348281183981147488278637346186589709653346789934379704399956977315682802585331536862722031196232004463722748581986221092806878300469358531626646578615465454670005272971432368267515588245496995393460598806137837768939661425223392165990849645478393535921219205632260950452492073505076558028848784545015539503068317496324035265753853497943654031241188431908273526844278669482834893431332197456695440491954122948628663562707353244944186182923717937207003708936358234645018632515711810446043953692849224868730634785859744003952115889047901680080413877037297267846097522664459047751086973928589054318050489885734729352385700417570496374673491448783743697958222608198177116634866446459389500221559813107076943005554920366669882806392346669800170099332072893002319447346760223474646945188194010308729778142002459045122366100218571272972320020091787209010200207161924741207362729364949604489079165433207005753330597500740013054798633191706833487376096517142530410980575892789223967987336073929578617169612141735843772866638443667471167524681015768997291802666516919203566408052601591250273674102212549983059922013531859949361244128204585247727922446413073058722184219034702099086457076792550211039590116032193457340932990692828672487285956060147928521832744086877994712395613416344051147381529282643498290160508646978654153572545549658539387892710429316973430183656428794617940278114180596398505310839592501036502187324131357841789102628897399850008818865495820212102873648558455168033290616618816519902926263303328297546323257544270674325939991043164755040655578318857378024380476898297329932454553168529358320191242240009973103223248322845618840999890011683933465067321738864809247925643903330446247254763200516703323907184343651921689360723646199163324278862719852296185057016855263439548346877818744173128536956865867132300716616474927152150535678564245106877657063665836384721942197529244508338414326742239499246887507193864666648533118202789987563227883175409613137646563990091379301411594488491383439734618392925513864920734985337371684732758216083807033545297174829576084011031712844203639534291970405361437876898470518769314822322773767404081487703186259104003415698833233780403996797579153723043146170676026156767246276726185635770681175320227775423184694564064319366054441144342499266086484855290591719037545544941872045222735231683883343564741267728393039886630878518298618990371837129175246254948858733930824749246660827589970503743353067772501716622951152394701302784422500169231106210272287487450893074362090771312854034775206865901600520632844710897524840754460643590152207208476638098514975661304396144997729543415939582281951014498485450470612277665113351346136739837566494653830298765343949569273431768936370829075889104751982410843271546805343458963599670384465036657957056987422404470114333407009811882633764503017191410818110758702087721166347544154723405521046434543204811418002575452672677989835733730062325199219252343152547761766630003936333448650058654206922766901218261765949331272959829633432669329335480720414040007097771711515146509425332919584417598956637322089655152887264415331608887186180348835060863977200777152249908264969118802054437391514242699279103051140951284079269659784346475964350440843622028919618901677392805833686623753383039535758961470528500276453685455264423951355962346854203165871302945750279477284547815468892801992815127134969474540469442209640243376887457089726751290942762798204977610555743878417336070862650831258672292118028509306395168438113525995363505230900238608932738259222596150733159040551432651629834441762117465020492880091262735152747668194562817283468152753232051338469281064655929174458730370898776825619030283429235087052580863034041919301206303497338069534730258180648779743127036659738066318167212077210564862375539443669116973503530024965365150053241363627194450875616503260228727032615614293167239450587561041124778893734723649902465634431666259948637415353821173208958765927962639051418367152727266628452257010326545578180316154350288920266124789698119284823611436816943436202910409938342444022576519726823076572758133365605441382188572060572146765823559080378905772445651957492890954629388120510838082146987494372648346583390412983292605108313120092524193019717815211356471057922004434830047895439316873065834843171509286332324702524925544982152561648410621761880934363775972145205182125417315121869013228897775234474266185927238751713256179969141368817866957378896995443292206159919800356762938608135078635255312016651256342198753765811158750613259232446910063422462208379247762217878691141646438942569512395905564538498424465954288155265289449940383414279191037969963335219963186091958773053776170307844490791981190226503358741463540958237250266265691788677885431814459662905802079379531475595493052055389593020314756139106345814004762166117666185806202689919212896611826070708067915165071285937718099869526388075843855339941365003824650422241589089718438196922163810594317224228935506303124676915795246446878688322176705955777879219006152129161189242112438790043559617842239939335115561591868152296119930317414112302299541887859869634974649707151090723760862061096794556739667090290193168458089360953143294918278394455311364221804487678566064518085211282414304574735684387070511573437085461694527074966907119115007318704384500455311003357252337343072403837927010135365882223771255608408781099915006774096788936055851276433889285198207124616165037755378110094916917019088852428430174247773740951529139146570755581019066466955340502552332570636476750792170993684070055829287486865195921936991010544472100615745919109107670545662527347870834289760772341167998077825117201587796632680830088268264176571133335634881939845534144374620133802305009712139371287097071316785678038559764446590351680072087323291748939156016097656993987053837573540456268517209474852741171113287451911777801230902002945068946449353551478294170940858519833059370916602812877491779473984399547733710883386382724785018241768810231779877747565403435505108166154795895562732918942350942012679895296873089793428255309890482680025787552718314496968888433836411324733273978408787708326919565842707269872625337216076513213188251774024570398290904362938862466524983488343562970194410869247874930693155254402028775800154010322318135558457935744097425462336962121877560675985603092989178390007612050076964087533714832269956743691769271009996688356806787383048465762033442298333426181121212536585570489522621235088849530879165544558514891527647849323838834071979855658280985091615752800635196629116000757058703792459434492433495613324322740205383175137792427906865943383013629215357053447246055320917224213856607115511710484871142181090860321274960252610807099391434903992874956764248888374996527143386743225526563910258247963716008042655959280422516670514561708902906008271502484345659408645504589200464516733740247562860110999986100076528570016714926570964717809502279318406300916036761527862529020039232023220702787154829743315836666543863829833164195655790750134755212664200916457493478500461376713060407533575224784277039753703340507806968883578013054757475151069702967004152649559561186991545927158792822573417781341366095954587165477530452790172629335076771826855135761921300139773836334482953279366100241845592591369895767510095928533427576840975650311296050272446967131490973387115371114078020684138475549988238932870710027215706676220634762281465365009893310162866451328640838601034451814767778963394944076865360043095955303701367937570869294134613397169709949215476254051307757782474923814188892235461453807002240069659826166078602031553119448390309413321373778911432754311301057094184131032878538833546533945228192402080647621773302228672546026864116289496270466018328836299027385445250018920479852403842082237420112530037824950981770686951957868739452420088396552766495483660074178135170350618848070175397162035771624028157335663369427399296802167620902510662154352316301072012182517430886080887620771586470618664288197211002382162718070560300673944033644368421262293371726033612572822380965500314933517981552620288550896308418722409368524085157486225257118201366601078389910904641601359859294239392140093649789349161919649121709520950153064062575936281399871522589677802136381021032829695656904274221843811713559345760798621291920762804949011898725950151951444901437411287872976127338716988243423442816809531219675826883230433359680255747529862464567689470469354065923084121315033953413378419591744367724358034933849598597903497093215697391583411378647290437583696654582305625789795668003228385188348100158919467124216035498139338234852164531977069712975855897488225527755082535818597012527644817147296114723677095628316061575376990419385155588910279750358267976455901868452416527486166768530073690251632398376288693512270278923057581574380814974366752431315178417535261956067457739257209921155836802624207292830728037432786762966750902583734853223887893566146253360868205445556126675650090750577585999718357598961094632240114812367577376127171259584894747076133592537082058792403504269546850825525632844251215797225405573900516625658650273285743476909111067077375602926976139509279859836425426687202123219628542047347157382005406361651687769554963466888120081931894890005421479628499959661513947084024715817622329051354437919159941485537055867690503627058313591585181499244955456586987246297058387105700701105668787002071186245606231953110208729642051291056292489490773056983173194828981022882878575163123090298248607571477435562472424035647428809860022128473213502593492815547507142657029026935116344112295628479193472695287019729666286022000711004529201097210463200408257573978092272042963888289969076800901669878096781990750155571079535194053053913669559359830585197593508256867046286267369088901504829110147094845608183410589833734170271870960133355862044117068024281003184074049803068492634513650435839250752973508215618528790625223300962824782091535646698514566279763688438978525882647588983577833064439799215918811908227466117089896750467346888935329439327087380235664486436801289748145616030716937228153981965342654015334015415222344185136620154559930588990974000317288761034599326614185032443001656762296620821474740191168156681914598531034345439351413576123655169471321029498093462475157562111856243980904977639397681512910728240135406003517854922484977088791921496636962613841883819259458152849413244574421438886838608382680416584353002112610536041326429047871135659763805820862308675030687541059685409168778937259011990963224775895265268424423058667466730754759821088623506493671020886614742659616813760710447678518000842837946436434445145420480963621072339367877907074832151941788632533546902049856444480057966790971065682863243191376040498233002353436919205103491871963254502044520875381439066134154233277026693658905185153189750679746916567675325507950845126071441508854983598031475152167220760916302503575575238865121403556391796506546808286662025502439557024078858770944287414643049186413788099296231348124059564802468730051340926512858474231679726461238007695679905940825588420509721090380596669267068572025089559422045458441210044266757754428179857987094463020278590483318033792240985011748238427200018660284308917330960458473300838712805319542066722158995699366673091332295911836311507226841429850707154803866207968824135655483551034901982544898097368345227396840807591231824013890509186066063702553335089520791264154100566274739575240508280696112081371761329078103885455545692868419086838938722345887860204497343434719333851398554566551390235652790075240997844287210134815551545167395570109892874817618856567417388470975154132213456003929674043697079600853600433773769917250889297964215880811434089686994723761323944555363807680096678846647656486734979213421186530653591751033883064767905679526970917550341425336954612777563049449390939579314018771482405027432691455894731817456230603219119642731306604705937517307925309784828577108306167581959736148079646751694410307765113278190882663063279591521467814162735594192702418609540332228638408593874393738738324711750940728394554395363934950300116447406650912164941798824272974484315167532503846884410023735297521686290424356065129844592661489169121060117355534296813096128934563656730801231320021581749563743079833161967942545704091132895076218427071289469742848998492019591037691960592212812819515302573763659144020357900363617369062913848030368928836458209596397072068346940091885993848186273102943666793248369246169537841764902640642671849880011680805084283666250648721633004968509539455571730408813816487243955278521217654044792657948141190917728825909074264490053816660472298130707909657315863081774097378744460835518278176446819333751337825638165444860005445172028229281917330262331818187039015406095233356625809351720209321720363970818942569844011308780358833961839910009747306805993188256180776614578037837732741463004342349663233476424831080444498077264506500705669265444247094842760906327726718438765892653861324886362280243570607753296344305853623184291654357671921781523157499837013005041333896865733433462963583141152162532173369914374566913502850086000835111888972726774267852128812469273743610194248280890447480583272215782999877038266244394039553780818153722123627170696381214732583702464163497232659767932207829596762568412422492850548938356645564394979403941824031913269832003532935979136707141891145792803853483026811420229862561528241318245523057984692907231021227510514506087919915215603207610672311944600880676188209950937230343505569275501634655011843850249637831485347510815179473533075059653884355912160963846359878521079611958803419514222591723170338187336377784575401097482806800298119746420278774181245807706141335362921069870561738693529868907881629501754093563089774177566216349397686875532310976339906430659986097953837568934970333673450128784413793861028495775298742540251232751245271934158662780173115211910641792402377990030176447212672435233888106545996229932053741508755426936842544788375419385217568547706774774808534869195614654854819605655728633811322212822684050139786735480495439403125039873022359937316771221049470970871350521012666491533971122802196921800581989936509490580579160585211962642749470925395695312804020411978856032123214446027339709244400099914815722526724758908358132728796837928690222269304067758037668521422973288602849231348751694750484185403260145060428587072697163948868487042814193198983606336011544382362801305172236417369240620150780877106394071387863726388538342772675593074623550241082891695640620851177152733511434239717464470804933732109724751853058456893444321763010631673459519952976683210355814962485885535779574667492056532830027812660395924886854715596249775958581836079390768949896680994874686488173029499667305175293330825242092871679786273579411115300804019205427191665658999221131884194949237511105592507162273326117642755830809783053590583434206019792980787795968214602528163423423039413609388249925529880491752747281154910580006740305513612510771329547418736497142516041943216120872094762612435161937023493729194636692936413281374031770861105768612116335345890420037700424037545209097304009559970707162536028160000790178564707694370382372033749908421171266079471655565347107024037066573453285079544343644730509193764652229101732216618066872833564827423331106543321009840989802221673547525340000747607427474299696374074675968732005264677218274509066931080827886901581029485368425786931936084674274038588021622351489764564503451174821959573456243211792925495642698524225212834439867932929886059904896431567741118052193325845905012941935695522623409745738203425776838342233353561028310030516671313521896640303313689337915537865013151457080710418375682373663299299225557020171439377424729602969026385408091440391471174039643308660830964148900147519428913710827241460141818476356829979628534071105816507832243014824347192073033729743365644949340962342304845606351699817618212851568599389522453055964554306445867036446911941148332885264153997949802319414844458536322019368923834469424110340599941354801910378352053884318724218474573140082472659539569489868158890314324637816017430034066416475339700130364599021918645841981530872710069926290639516515932414073245260072916888814228191579297160880115305772382313195063694037551156631756811505014383085817053840508676889545613287466477846319106720865578962870188640635448595680710368167687135249562193943089228749787379921638154262441205857430440482470093386077889052583344137950633306452411120794001824986056109465210195293839013861755393353716350822757853038057315567314067778462355139992731482943628803140064353473891266903633138526737558704787707898786937086339136291749773842269597178129274388980617888072745672753050572545714971181842137838310573088260122192651102006204548306948758368998494283245670376410736893286028235944650529448940666114795633767862086081102917452318783392173264357584691731591795987712849117593038612476659182155224793431945807492749851457132252555982518316293508032771407584483097156659703292381318156172099546501541450005093741786231272846159743373195476108470902582970897172110418747681676552334378218970640356411869796231180643143375317726107785536858068943511700595225235697071659243749647673922764734729056495769536743217499979932507016753930889427846901664254606304621016570285767081674230349904222647868791557993380776409074822322033658227099895674827640311119693375262041328968771496508180385627747188891845990675807625008682704368175540668254920956185965914108243830555636741533525187930907225462827707178076859239531207957487945640633033016666963833657066044198564794613541362827014667206617436984281053923696975221868012100906577649757404392578246854227977276233302655963786935021083013034999827994620616627309817692963988119964584155170549447191269547394695092701320548793275891792755158274884607953824080492218280580915709365122512950628034081732609335823510506853504011885386713074869884866865943819977379229448375571756793741928361743199954833479206164689704245186138731307084931935154681150092332826949383114133890224592155984016420903331962041241277968756035665843717152140890308119658562889722634916144117810865360045951009909559965618584795713863518893279531354085989551742061152244394424354006231149432540945355610787421540337393677387625587270671693189091545361044405178950568762893528687973213194104328146556352744443803392130979403009502834265907853444465827413052382205686707201046044586240336062051300294625016170241070880980187026805371717254617206444845511206661312845434376523365798940495535243658048494435558456626144073306592687158900271545967774998725282660622872000733900766614748584266652251910760660981784775635751389449006077667979983160805751701000942053799993850485236213458659169149597302456220998263932617147418870972058011822373277855355070565631327392481537979968132566908086732161950569447465430464880159224661648681512324439627867445572495605345369540130276701115778317924731853905150304086173113762940129939745388110743963472162908080541886659612334924741766697923973337803619708094937151789025414598727572232629951704289805827651456797844048376610460756383107576612532026418744734745443483512153980836821257988738333388351386491299234794957573017308204254009047635545975855014243326257774353924409546631580009196969290800994912066106934904589471170941159637694239876859872639559651529452371891340651608034179145963854296262229729171717083942808026883105907610844539448072813148206483940901231517166363969884794748083505205557513085935516710977788318850223076685399392396883624448678516240048633250548401089954224094741151886772045989583448684517318575647549397766072369152799641869473045794150572005404833277834946628639700801644179519231814257999221457124519758483248734896605937549048705624220927254772772360158119053925067250527943244147486586207667530751515009297859214065928956643888286177565604191902250175020822415821774816219904799445942550135938378015967271358215801441431633610012065738134286426074359888919306103001226467387445312160057882974054668888805197666279918557961431797328488238719428649396213764238752188810644820419249026103677954355585227382200593192400939252584471829910547315161926488102333100068578343695672168813281406995889355636434157096027142194977515888518275177913783965355548976916184975164869346477756738781679869293259468177060020238237669698556010728878065433478557865772743309755636515912399230497468673113095603466640873350035775534333589345196604753447977596068736005057979288085624435213748496216629777937721274318202748895741211819878552312959213037262208742045954781089348340080554849889438812228738058847252669196617439343218243171589636698851992924179300537272621051756969937734791844976072764824848430456611283178212895512945448264125514204207376777507939492553356561939807076905318037828035681976141216807826600775941350167752091967647576694179852012859156857213886594703685849877469138961241894472750686563713767293681742297079943545058137024893400811778321430396750587788870162484172750940108422032719441150374914010298449170435447867149394643512680917030121904366691046133151011431881500085531065166484804825811663053194197512867412223379054827517598842612936495931360325758073949786960516044535300710303871499251539162483815889204641723901167317253453546612834047747501305284636351622406794214371752016857205109144142196019219323045399251246714365218507237275835573973550807572695473250626273349122257637283967527037339968254393744679810222770037746208674959243094516107310869749642283424742163940726607591264170008979607603098562697039377251629811618904245822159767430048347335996194260477589924532995291188817712560627973550302153109595171482551474236819404306954944064285213602966378092269052813472308498250292689959384903378636895990583742418751902254344475293776232896512329501649798485352905619720824032022129533010845958231514409789360921079818288910994025884229073784906908781286282708785213232986078213700235660060442656075473955403947032298171210402310344652766615366395981830926403612578524942180261132399814248251086436440915004722726857767428484944166846894363440377405280152600420255775697259628385571123666511685090120674615363229870491407690803361967309326547853591610280578271283931281673341525796680606587740637944008867981012810401047920682389854070350706931850150560077663848705472602810383513657358945339187473383243274546267278820449577599069838571259911305694689469733758904281061853969955278374785314334326900444236540083122879964774634957767395591403821700309531387808330341692396958248037780743495404286367151218074101605082475789329886834906547368162586842272173233407685693802024246908086956775985981774854114726681166268838699628885648561092865971247251578171286120680456851154498068847747417526620592699769221432277773230431949694341034360859179192352634182021938843144016599778470751265790508309796219441805872461442134813286245783325749466986078158612857760686267505673441726855203959065710023913446545677125636216620605600892338648051827222777072522476135789906653240290565167806750891689748064896268695145294924033327890496789032415563156004315898782395585214826195282242697556683294407535467080553311894404361807824899578261659098948924886266600001647110642183060059056203256026111817850258298010797727903512478857205831055971376893292315492828055081894273964051488388902545360234969165628135789597327385934676572497764466199295459770129855924816282174231553533086330029552530428516469432750930398509753467512027531691168217263595474791132445252979286451057821620479809676033441688195499895714174201192540006535240296700074379469932579738544892230937879955325730574816744214849580136331861831006056209583753948555419179536301735152583379216414608984452187574193359924593248171635380343923179069912717266618499178982785866067441238458976198110231469777654138101040155860201811527855812588310226090814873481143876106881903188043001336003811400484871814279876055263075040404351401870076287567689316326247783582520181547926486758776487307245578126918803174476713582921566372254763643267592158255893535060230548956831340344145517343895082511209328078132353233940731578933541716726926172738078160543882444539752230268249438372905575795191885772036116626125962044213759657131368456922306416428428115231762602184389255980937407321133304521742964126687891459754584091997824213083008102838005072903290251200935225011943576760488007623626436631143582519782079604449636906408133368214174358235400417205840732277878299599207208101293195030842214014296841682833982579092148539199155867481471555402408383238085095043584953713070256563760628335809980914155030219813006433322950161160675721675068873866299240287977783493182054614631153656692342875471034258957138542159336615963749277142970813054188764258179320797517506929164940770547238524276230853682014087813241528988614089486745577246032427913751157131830700307261479809494943962241689497472504010975483399041762974963405175368339594166159014262211980023403336667701403071574520188488724658589063313656110544876888321545396055915186592997965175969006971282388477752266979407426095015732949740893191035973553826648686278777012161362411612512730319737014413793391541845912147427808842161279871940081653829688746186145260351041212973745530845708279543854086076813095528249524146371799293674844727505666304168416119358349586221889590068164718226673501260358361296421501994701447327377147742532336428786090072947325806805829694619510921136124371145697939559921986900096349448578787154275883753838049884755789941403364930610228902194955242396254951891811282288427131151030449551114964839007418930888573040468015220545651594038696617015284458402393689929849249071530446609816466477612151097240676477395186099499037540364326622767622843824803503064292464656565515799975200103490983737682143101428462971663905765009736764425088136533706771390172697650144987301003873987779542147951457495682128995973464840480661859025270933799263015028756990447031711102297737092020536436357475974574860082502207269844967625518957819938557892436312306121781527913199372909123628976317253140056532817185921675571924262362918209618706977739526916279097211485056551880652991888241983221051589469142464899614389716528172535503706782861792541309865130989141046173026501979239133385231534974992662810860034593514552618396792568410615548441268841033167141898528092149477801517258319528156612080170300114674136869677200893775439079398194873079969081358431037540849095593337886893666575568318128666935486037385071772574372426288983248798585337200326914082702048344137509003208150880486596287461980357754236904094497498086127246558646681190524142981333106445828646448213986129819881034666870756735841790670020919987074917002188749432919888303311885917989585441975809194825529297406904458435389815540328379419431493377540968406883816087729649226760694219606057318786870833534441319909083074442417826527656250910338289343361996578100895800507331226382008379128944753144594405316603331210440267403131160630707205131815538382886858379878845940953541435231554142989705017210783275661950271700850038713200510232717332038439460301398725478940196673605967460662334155847589491348037272192608061064081412568551465224277686750829849844920140539057087975853331163859358815223965631279745573964879929079978521103154246616348953134030104200034029494638519730378826408241078224171232348585982131830422427934646855875535474487776381804192628378799110038219274488630826355669768072760993169304622018559515996535033589229659973998347546900086200137936021434449494702866294283958881454266965047631991607729551737438826813907687667621557691490839635507547442923928388411444050296072447196164104768733554552976610891102585491341320906267619457932134423038101191214570452654238145227851813680831303234939950781258359135992395572866720935861175991294536175230794040998302013086107656353092820390547656078433845763719657786597405475550056486622055635569988365789489624153234952720640878746501688858136585759493590340875663053266695913318802613551910149129897038475256081285175024049886002095659204671121170946939090586571264484345529733883881430038746765382288342757454463481229922175144571078931360887100467350942562431914127521187525854834113006903076786882282337774723035235058855520537992954006737574047994407471784540606977500319580661522617757371159495081082276592152612122200224100226458392011522745155471898180109493512583068493007942536562836852299393914348516830420437324036886374396051577057981849038655564193039110156076238700779986211759021111859519317900498895931944488105906145276340061776849070311694588840545209881053857654774841506882549445570116573776383733466396946326152459482482056923605672212091087499819336277975763676093411505905394112892379487655417650843613082869282888258515526706702912955963422033680973459011384075615535808880910904611005953696541746946849382085869904500972864445442666380667979023015513671952516436959264553741704742457953330274419601609205301862788982951857366552620227234213619600878033992220814522586627221828986454366214293273854164650440211202431072972343780030837338651844786535710138434016229125699521696630615839531958829751506124880266458245127909280355512397332917835482864577855940469894569608346982903950196844711696911098171161501316476093752529098484921365781986101873962406824321981703769530163020929361923408979338540089628557890423288075993437907750840404983655413788543504662855706369888156231381028053814242485447064295695201817095774106545715539597893398071469086236108545165068062573788953517692077690273140025583921439283065753100604016878349210475796205202723237311675349301430260379562676133837805977680112612266715922369236563133173407521049247325021408237495748703267740265137915415759195476710123624597895421254037265915547349743772481800540462409716826819022002221608625350063607153103224196193524655064490831198061727420505782753334531594982854390697150922170367136598215294182677790876856739763431276470985992662551541894997196060573132555283325365873164013298293272351613198122502043606200205578721787556448130144589644057160180065681029566205045407594718581944668399680196122973097253705924245588876829657403556924985675669926234697008806703485963561294486705013930973677229928734123456210477404036829667343340995090068365269807804281457525215144622359298871117541200896247148159190940112768601706350236926480192973737377443662287227751783219083365394637983611507581110761436457598467548264638198945085798710840941030239331438821492466080747527670424939173730581177038834064282815425880729636275128193516180735813328648370615268996797018809534731523232633156375162698910314683488160327525977423385839179072678453605891572726818857612826059780456175359617237560568436546760568113186516658391727553181709000341494417158023137752204257932234575385417930894717217536564716740294872945136977984798949911571465788477532352717952856949113829753739835221012831763456092007595253354608605744876178493905734770425685034639682651907294923669747266941585233509195694638435834835243279189581366604426825385566669934392186554445462337931115406761706056907954783282744685013004779439036873639320498801764855751772143018449006247010109088703905450803581175312106253523156783686571287382458953396176838826002538357904614851793035404034282658221926607499389440284221837402109355643631017461997352513281752332992245803655057720129737811815000659485143400414204269928340597946190657067157961633866494741836401299380968251527503549145495822653087190815266744374027083937271139042582992648346052716088775011985542673346993630725957164180796633585236543557357084148397839151252678304295418344274203593443781604423890717233912721677306837844248514795480519383584886866436339750895762928599611470503738172576989452760849400501412048423444657327662024818169199436351776768977266843741861871773759147104540033371278660703314344417216144364224578049573362616367506523611183689127820722632122516991690205329607582915009803702562299811333665694512550868209568922658225433618064029560052188217123271998386937691886795500711535312340467620282773170889503374480150026854931377909353745662487618256924612154786789155728174334661726142506235828922142450696051217633410742510349031507644712226444038712881529240840225992691968600136347093795786868750506394663084549756526706349959186669174826468478048173109733606211726636413081467775170449249994898662195126635193687633747929089146795484039698463290745746340917956159782143685221445176063451680927316317876415293350911050322735638857129927098125776762133661851841424464247110761909585881295763570093956395383777806109074310251945750000755051471302968409795187487943255743613584037590182285177044585505232684414248533430291960225130357369830642720682720420285355406272980711833091224592632579935562467400488791072867064885702732637994055140143503977778307088587509646966179276052441159376998370111809208459610625868462927308964007487715168392890624078505614820783663059794068068187941474378977073522426637152188841253347224045075163572864102010690739267259210074123332816633189052011445969124348161924360835497824448667754258952106728331230727376595390991112156884306999524859543112037929956515033436514713710305503290655300491284242272249772226696524408185130568193366185484863777341057907513190059812189249788886201842590431768637413559415902777768404414427831879480935641229691821488071050084344367000052307356995839835498981773887070364784110189247573598142595249781057697488729443032290117428669556646722796066932143089889652686030775992297759217505128472689605085311030089728551919740970278633336356728931395805219622321867702809619974142711195048040910429151370472045139209264168992715361517226160186408407485893702684968520951283828640883478800544504855881325140108591172678789819898748017017588400765504005896416989413347929834058453824465185231127464813351581569953660152465924573249774361424031323027889692360085100065235317581919690240836698919286618854585906527523324261399945883340272884179304070374447066035144135705142501934433744850605319808745279189142914360412456968711002971637664521326761380285641196646675678017707269680381912445165889793239141814128937732879804135817029316943223168392680374980033774291289103380497531171414672270468706177378064587424833853322030096251967428537998361361740460846862199308873756586286059528885377209871731601528851678980117671082487161214179693434119764060692736827275454479233823999808671063023791506561097291378727380082082223785605239803647026551538205846731482117829299775869339934501132064802583589754029491653662621639432931749551137771106822425051715991206363371992052170668545128348067782281900566061956413302338168128828718552928679572285752113242257397638645663359493866886998586564139046546413858804037674485513077052051324641950887787763239975094039705387932131185179690087803378055508852411765247806009424987630678089300869951701088154936248523892091908601815497847187075839689756873784026414243335266085787277138817192721657394700698268522917860396958681062529637083906560935288543688337823953249612107378160419105311166853437386172292151847391965404458341494565358163482123390468060975659707700283368445485309441787387855690712169764403196394712603051788286718554875830149530692700782548743400230574733414256553217587322366255187469421838904489063664092380710541853333996780169551548775802480408756781316984778683250758979112707705193423758739147296381842623073384571942771637792444387375155226393810365062446506943295183322934785712783753102105526786769076249121093598253405907753362071547313084638214211536254110208029411653638095302302887021159567071204470472281515599416109888101951478914381063433982569053953282038798170591673645788587792985446313922248483599099225467519623275384829070781202981285984110732790666665822860918172265561476809393086980884705823792106598067253248140505860544838811646092902359084694936033621016505603711545586106227666506708531682513639858917211766019251814981956244514341549098211456343348376634580701850532176912273801231760003590772711480120199025873000567711373281692677753413234086484959140720267143056742768892080308301375213171300177114151446640987370061238430666128042380005908097422266852164409387743083202933809998980890943915945738810275305488703884661430088962787292824455525120462803362154644738257846896692798178741237516511571571361195410447499163961321499672604520402511449759230476817343696184823959870701315475685193755461383653159825388081002264570745199197597867715634008616638351659157096396973800645975467000021106204104810337758987170917810184092370520216603940900808842992898961869723455982266288552538446193163630894853279400803394999512362890668608779483871609261418886286549661153271096256802247439962276316911141305341338037869559908017915084389234347486499031592294635765942162336676273950846139909035417430867869449082393363671273621891178466746466369747321973870453055060184032253216434913680538036757334236376667439705273036747665816207647862701809892152460624331959622344513840055715246778488014295078061340717203248414737603457573826068352554063077274176806025256870075072133065011140339371877963242185560616854424660827634556630817287936232730507132070094228107679504664318444980407250626268478083514637142269726875445779597238439685358617324852289455967581388702765005750844205859774862385123212338690210011795804104043094394382410949140896270132896544070810543602224401032739560697163921964369498908985808212766215132598649011252671840495432636981663429792320836140508022171759224412417280794200048143623339440084646196347592589239878780822954300930247110137609402489773152602195799566165334065448327109713591316361526992142334876091469606157771944631327890546736836750643277158676506856673354412328594546027418679777584781783854772258247119501175291739830732915916987485905721511940849624634344719521192256739211908006136336894305746587971172852637785047956247014040847853680923969321985130741371540057614918520022918589298799075468647996918551352504840652662833194900218817131379052616432438584518812715219769434606163343605017031938941491107808208164944456431900093322125451310170743523429975439496752590676426455145979979485045406608198145980811776331305809614895027329049714165298073234789050550392272223277147267860385141183271763650402707782051062778445558104406187525148807865525014631466536982912563986212214810241355688732247388167609172095971124899238410642152256283232990980223805096502338027722024959481148117071953247046739776420144648952215899574261387012762086837380887014610770357847826455425088587519126627234544747111102217520961937986001492513120528603336823458945449890106222218931022389240958199165077116487856111362270820647688892815667242485092675093136089461399704344887506806707084010188382935046729713543213412004502753913467940402123144354781779813783298887300913079967495264206168321246389832284118787563774017607755685770768989740713591691674642722570175334540375975465672845499229093052745482726815117639464099857740927675831437277665086268303859671878374358337537437651079544298057417305897422123039916211744309292658061998640907049328012060053380076171895939211383902973652983718787898991203759597685142695424738602834570764165639655773649048411237042272005492714506089547439573453310186928095201032412070750959567007940777312656250063406085670572285330751020590603203319435534572810722611802889417450160212829944124965714754720268950960162708946888635952704662394086791491374522640951420253403842033873821170597579613343755571542069756420688593970665998306904820158747605571676613779484286483759497653544226486561031756705059993413425392838599260976772467794111636981455066178976004777502276790867841085794284431865260322346439497944814437185157840580298753312276817890306020986781182019273690695557514721618176120647555550788870943027573023855725557080583910366934288846451326348010265871518123046604955584945768173269458355090498967354223480889468413229558492997791484154866729268727421877029639592255355205027919398608421487706932151161633002465155198624691939381421310744253491459622159779796616017417684965976280786244334495233036262926588308418502962833632157232016227225260202086850198825061815522794689978183731101163248531769829013529188964990938753507293658748614997719713351684684103408961810281350693400925808389895134644683151393532747658146327234083934279856132737062344491790395109964882692419199359439716962074795878169608365260165955573837910535536364900615564620723320272131101962061450820100192797487826135403485959912722289866061180139576641652897940972191732802815591885228306608035922998725876593367962466162936401988757316325642458484355201442663264258993001537805800406409322747023544215248249911306341130454149941104470719292853740936802156173691546538561328923759771034411022273197786892067619014004222504494208330699401542917292491150653784339830153793001969820219073971480858092688443505658078687423469606502300060808619319734929614834367177354176490522047956001867866070032489937300324277703753825853920875868453679856755588531858186128522802846716303917979654243451688557274245047164461337191223671410669267476121649106073042947488609421433547737866790121150658754833320838997093679947096024671015804019337283615471399177021152212052395268203242810929470102466861472636963290792422950368972476344371515138120998572457852041369415070618956639649484972205275779613606195550245077290150111003830928553194980168789316943616243990521920938275400383576285305995850363025932883610688610320942884779460928668750309135205970128573731216997291517136745217329911070358497321741025144631391610462289246439084048961792031953828631021916310099940645912956167754839247740222131666220991951185752725554886634865076367374140507534139951192730867637867014645031954308281448163109593556964220563958544092367106549351033105685997658104620397534045955841764498787459088566128182303319298763129732819261205625002423693155690451740549899677950159652858748351175427020525444646160847088205328560871459255503731289095245806837692684614721946994492522373187475096476156756974355602808294289150758310455809409315814197468088752887788536102066596175395249198612731116458157601478543415488303644637165595191323295180183830988727485573408430986996390615968637539475671904877529085801523191479691755702278004513985588076337278488562812127528550783849035748653689437594906527347587490309234716044413770164680448357025270660806258146435063136394301354901580812380806691100731691875285811328048087906069625293721551075597760993041140462354212654868548891049117856698229842533514188264064795877574621326233971178001133932102871596209874086429296537782380336620004825568953572305599301675943555121938515928886353113283972468779184628213236933441204619544155350368545722860243880687304012869277341187234207939973896465952186824906079595292759376306382950565040613255295225697718144957621548571075543384223608726675210285429388815017208747118080446153821885815564466826803980226457700312700941939406098537724758814801925733559187679834582740693500950999418403239474514764075176028666527440789181000036436918966208112488240031076117606950166353406405077069252829054163421257980364194494898198837193007754204276855856896033480472287602379869687858067128027292573618501938877944688407829982039039757199714158205239669676783800581171329763480240031933208825719902409162506324990935586838177761979684249014567058535637701245039717135595829371363312968092267758852536594157673327799726186799004448173387961688696095144381711119008312363116312650582380691473168198258168172471545187673282893193105707476896107108820741934618622406874321648490733898560097400099557903028646504252453784740990136677619152498090345255781938543489264533136814421791469194261909246775495425096835694569686264313771424540003836930339718581841647596978584165459516860284584184335145179062378459192687465867215883325516557538385379375323974126397756830588703588742825904322510318956994181033443676541203195898420613313661670414831752964269585314513342213159971863402782451293635442458252123016524165970416605566705854648568863716428477631408701888924169552645908436836453134203930599783050804611281373713925894634806433051390674734458154862744544238071396201537210123598514965454072016477295519049517454405351924180157833083787276066713406246098185802592897368332661787826498442980037250111261658367001665858392678858387451290813753753181444985910804262572228298284441023282335064413104380897231836659042755081297966908598503145876024921365927847186903890634892042368684773061939878092564611909642834485308773868237778626924356468754146112107160393977173687070085300113854701055961550135468877108681480622988643105579351949697912421103409050685147277779847019202891671563786953155251139569724305844969330494446980454575856640669631005094501239152083427939844314179389983977360996980159390820643410108618320809025685588780306432027414573305271969747670961604353172392133493927551385659789698683372463090086012089270154065744472562871810195399653417381415480050214484175545967159109715353748181733856081079538159101416654051646576525735066281523922051687813555778014121315306164246885232437946340817822363511428961947061049060507442010103957954637902023216464287003790656641006332419635243878238660641285277602229511044389703222588243492438162835729087613043913920065895550437126329282485560249600449317755883121671590384475836882948818527728243499923449739240539975588858928973678247023359033387305633346935075821432445680213500196563634026054596479591036202379596346496859704657124607542725820205484003325319762932275798416050955859092010276106654735482925652030955322395201159237357917538587272727774905261693836275744229747114056818076393905143044175352891900774393467109986151340120323158216978638060867587754410748183486937138767875994585973922163352109091450821869743689659848489171694417942936389871691344834081031521123683955109378363611085310113912592137002919975447502963389643996071830759565634353566361876426081571227332648484034783448860312470740706762009501199811345723291503967670975471476920600894117790330094487150620809715096864319620108136028721573631339494246951496430713643134877031353817567585550985700820386793615030798808594899744966142189900571691767688508415119072998054329868407782015484024907673258827513339544200001378706594040916627105798506438750779309949819706743829717714816760491828004676861593153445523503947174277761675479229961685659889045938870713559042178024234331638164089004378615512308622611941413520758229125426922028056335044716780279288164560859589348339507289854296037607802315596050962041502813225705922617748513705051116366948968730252582998348334646250586854044708567000427498157698925959096540189170327584825004265861215879844189398180135555021488691406001210463733856504545255591961903406920433819574968333711289844725752689983269424938537420873212208225914343495742508729025450595315004467637536900263355553969463393905130791385354063190558576255686689055089303593059857364640449601375014901778020612566457421568773000949439046966793455324864750747454774642071908686258060985427213070235066902838396194123192266951753721274871970255216164254590373010459573187523922603211234335099984455129509722405084065673910954201371657275989608423681044139638967674851475713429880096072606140762852684025272823059814422255407094265143501150637562533542191179314673258787588840200910252497159515178021817038370586406551827785345871321442330141892073748537917648420460241609214691193569462313950691886000083235983227287843917328313731605113953363465796849290512443095261377329836839169880918548659768625573346190296218135234767273303357498821730483378306267757088865652947706780353854308627633747396898421017073171087211138813683304121010595667415394327283336915344242220425474719824500148634533870383557210307289361617681569447211170348068775261377126276497498094739863177138300875213846391982985939372195455154178286560317972950427206028042751061376961393360205524442436210842349842342946011743820897276368747395241119596401867382838398049537040714404144605985834152695956421779232723610696660032385324809716416926548710328334205827950699132306413872380931491690739476400844696483134008460087971210734643165323682305298840881116355543660672418777352292491870343933545519113719749777281817919950728613142743602423269273963893016988626116671761306360368350523342683221044884162144390753042214270007894703953008387020997682427594332421342193504953088858409102340027295402466950148684591607950317982129614393287110614325599057811297634204985424693438653903532397810205380320737556432788033456316606426246719690750051097513575078128960608050814381817838185315829378060168441118675740533833903148717166058742950364366255640489746145443844361035591117557050043249995331226785366143854594763268834064661374512883759452787183667149923515043693298820217717189965554789874951376608475602842838211292918997586272315177964668299490498776291347452755576547775841035311518419069596451710584685403615470740767098170691139391001618989200685202468794079290571082872160523893715726578016624767354892080263978968410136855543733013211490188639321529773932859895808387924176075188589080088384948059639787885967863778329013336753806053297671879425903445359213981969306903001111955147168908394983884802897086267929128058698929215276975496897455887926555062826945013033101532154007817767396345339446954412956804004041215341732313338614836629220187390316374973856338790693307333036945626484644200618768633931422259235836882070298187262508223478491830690240451639184983810441631468594372430735138184211907258317029054688365518781763553117061661767164996682526436260837677413258110178574483223818243752745240519614659251844556379549474177319710164455163100605287163267372198618537126031254508423413875323941485838424976842475972024382924168104479535609778249909939836213310032945214335700590934995147082862245987533920002479242344467382044766157106560418231340905275269920066804792406595964794510833853074114628996918248054409355166633786435825044817592530296066230274323662593998995623954602750116070600134377432223664123280012938390781382395901954121241963396484699242994662146077976681084504877871946934976534591654613039153942216240077563118023252743188368176079548908827304882271402395877909135744452604633723660502238054189220469248552862622681722135024955075498271186051053418688193534084817269375439003172398438378592666425896411592445656840355748800880713221002217691566401354698805722001183458444689116144652777579909234184714036755088755439899789433952177956155638318115209852734223204314148104633786749981817524731330707362316220021713022256133878688719443407310190871248331710570318148844910746282974983366618568294695289568951203131344182929033037462660185206583072458249609413350398943045015973223335920649374014747108330733718402324474375062628398072443484668531717484220503347892807252746485926924315175126998863376174770382047792317219100019086224663545508582566253595195716714431039444658377166667589099441389227228038143251110885683331627563082480823210965303453146328116240586582990388731969402272146466602819300314042260822886275334646876180078506373639362945033960921862495083779959398694254370538114144679085345374713468746059710901680871618347126429852416017447425628543045895257466524794120642599372959374426714750442929522495733312366911056990168631367652173429681727067920513427917549825971461636949329849103831832859243460711180601196833781548824091027449427736767340626936610031897427993892309415065862238916083068308747607338871703405888371067775953076613688622195468536985744887541911661686268478076763850939854806456629902261891237940645119557040335872372991877384780666657305270016445538734485709180737975249663698934925302785282637156044954032042904028184023330150329983682572450595093213015625954894141541683562812369633734888860037942641103925244312882239987942083453102423745236784910021812638939863171920923452886936383498916108185276089690401698267802506601083612517219224662436476272398638393017220142486012418601995392759089239708338882729384475937494059922415858491992381032620070052982363554333180551332644325992919196089062379230671349582423794930845438056748865014856669416364319395070195175651190688092992486293627235667457967758239519909218805832339285553356256790597683828122176008856980844036754046614742232621414022410341834189700392830221962254995469245131236796202274781107533487919853581909391577799190238270057469352806415689324708467213537154515392902486743076350993284517986173398255689566854985616237524291255752810555615201351467534561829005958334315409989876815305194507215925470702597068358765478743742693338067891611925709232560871198159077835369651979912967255461180935383465200476979442115249208920061283356731419411618680305575133215116082163663520792864271506325848615245279601941238683537811618893325756258982822897710404970237488984661675407814159253733726463548244011809053405154189042833879520021903698700988428562664911142369118820444317280624413433648085288989241201489105012531256933678878334630298162019708469291932062334168625066241755986586898275328749863751822947187570303309034998159969675985809172255611888588466140314374830263256646466118201023868356066031138643787442169724821986675412053758964462962319903741476378750292874337151394986519163104090089234044447695578842043698183230897999598619691337889460482609991321273219307964583447464547042202577094136826528329756852053923931948402665847391266743471431519152438885963709427028379527915414176471434463779481001366428858846352877932974453572956690316329510085973831762816533646573454504468711843812708013720716279857211838975069643862024689172049068247574250815292105908601757263688278680534181769508240729184225264083221392433145946629574867854522691314941846640429213490772246582591289244802419096139492847104097739665157387612413190317417023556802132111484931940952099619200502034200569377519787895483533578232026937837802382767981750005099134765610630018298597279145201437686151934333822523213368789858794914787672131115719815095428745898227099602752604020432357050948386832120899745106566437955404051146681682786632349607445672993747248528914452504970574880662810694381162602918803261145223536052656155125863811734956116244545725500694714721406591000638474562097397658044176499086226492492426225269370343479631025079966862652452335736913601516743803080805599657165262582569370982323422369405033169501633265497307163443361212252419404925153207056833794687004057507738041233534933995271239238485084167853480650715620588622249550720573274155906107745008615117329845183178263399996551312141232586389656480075388378919589825563554526162432415722547692826594917711864253629999571729339181856204446221414424488449318143733735403095211035392357824320691594761932635449008969400234370300544055638337070836899636975501095797243435928230990888364685990342744655516627988165587180484827726832899002207682630734884579862766867587970452444596191990272714359068109153669688138064429072610880340747943036350567207961376342218473065131347173944438866194264726747876924125401868678862319139493333973886317370470123537181598654443994804697267137324430998590037216773078902352653697640705484194901160788326648177113124009102959802151796342657058673544703969154957095373530818605340618716238101397398883367956119526614302828741797032936862489534728345302491691672258684872030243729371084770126252007595074447350167636200422324390891762431697608636985584301158177054649960035084724141733829620613431608548048961402825548865195146481904179893743562493556906498213137738957466036599592238006095285187293879641250204928023228653224284750273211869146991377643916306038565167766620665404176008120763291979916421587778287539084975527816764463948362462316194633662659307862385005347541275639865148821271909088342702948411850069596644895397917524076157599667971685544491833838141886609534196011393578201944766611072848058225901702593887710685927718560219785682787984236737348058980555383439834818359564130412960640155449090149047894851582622997295079328562011424627146414893702988569401962653873980067330240463277681123588932005094237990569234423582775320888808624492755034669892640294634664464747483912229328330299601709136115099489733600788294852000878786653461291704108544448744477821184210387191031748443052470634831060913883911924289699985573709524640435349711142423642689297811900397035744068440525611143211764613934249467829411520370369232779371233431439380792709507182022015832121788668778125291157163863122899818792972927982469561213249789077747337168619970530592325123945653635069687236202841114199831518421847941142224776426906146260272553085302956693254760517304829108880970032492017902664687300244880089064821488315819221140916040415535233753145694621818794756469348831171551783091455006625287948407258386793489195482781210964583732881167087395174567957884338373627110909784771478402816107634213922787371554066916223065195400265184137288054908147244851306028964192011486574513953384305379971643365924108280497092157447588872132001292099663730391094512903103232145311432511325238333478597237621269211416247898287906768143220196971970124024558070401749499854847005539963405326311333191618149024182946850061417225312662420844293031574434298809907393875646203160797190188218160406008384594293223367423743316797990450823546931288559970474560785945093339120377758041551758049767555993237255033184311622440462774077472066654751536259721985033238696848768126829664268226805498943382028490843654117640670471207604329134026809705187258190819065250509762055409299179361874982951505960794280084724770351986409725542189543072523821311184772602311586212934836747294343374937552911101495586236791165225154271627141622824864861784449033353451174650010324778232152341492796451882783801913076279488110857110010826959966710048253681206871333120381036754491530527533919835642368557047508729216561788868693241458552457185743915662362642371472473024551671204770424085621454865230806634083446287407863220496836915945461619731839909460005489156090064634425377965219086016432763057704159405261387478082927581921715664032324939054582816082225351124479736082553864680897886304369102318993034468447685693983037401089116653311854251032057193370634668478959577916729389492811263192762440862214211058970449382990433108255847933812336012279938408366450892446451730251965805761297493035194326379077586683556166860556156196049649466392110938418357963511138913230789396809271409123771821821558540953419162975670166216737839442553378977269915142615708405572771326822572434149350523913573024128019869479989759064836242632547803139523329334003884707094924469599696759410120998629393809230278363546343223140209174638220146020033510041168318179261699563690595335732910114657837585835290825185485523493178498746141751433014908174498922747771390532901647161499017604116333768724097317890507300667375069983438807131191746433058953744956580312042303477072338663444533468290768314925348421806946654495021064009774534111935650434244249641649638374603412452063748220115118036205415588976916659278451498602803984937886024637986336068711888259547401370776120424207530425456353865626766809211147649913982345399149054458225772751174223795726713462189090158114930724353294010461481305450947375527505876343028929946143408642462501795925646548187633712960162668480359054359983107319356768876236499925767835197277690445763017423472639051170620384833302882908358442729496353113195667627320754955652639792687107067124465246252480949725002904020222556111699729836048579948220963457540844955816740600072302558832824575485564715494904096049893761832354449007541114285452940578847292248123418025298993662887546123435717211951057975231641678712661499732724883630454723277401380261104093736162764611758802951509034765149124063152387378876613421343314878595447642503264456263705943018695013533971860220343915693966898116644101553951806793435088377393519254433343080308036408469235650761188778588699466016207702813310350049549231559451004128843407094046594773626723720688608188835175448038794455844525071900372968137330617347432607236899834863575497459345093864181517469919510398865692848273816200181503472912617266220823463269309289747409605713455274989526371810339320728769253272745555684562720899897101022685237844167276803824172838550340197567622637807093406947923842153977291034953750759475969387976890648723776621803107531869311636124783381216586823442435917397034247047692673681967267260487043794438371038292967128634478570568027545901658780780986138476723440965521114288240579922931937199895679833751911134773076764323520911972854650306109544732165759410075982310947036343924779739328277422092425865648317297067503782000408265808695166622050768175141182795280665352887191666743927783621643656013246791668351588678022850539194201675817841029801041576966056829930375163178032589432077155523279908151602205090491295481973666410791933596191297667444543815968834337858495673257444111836753655721997555108646350297535668091822494302986122668165810133545694280088884476064657409642234905535294937853093592785396913398201351456327298957218777256283495563599666749708147339666642576613479323284292200943769533535234430777296695986982067013265459878974950294170934964791960335992925778638000883416722595391452650623942396353715625232431167555900777253867184591253373614631815454198909696669413758031233411675752596056395804102209802253402201989083955619099675306509274481551874752236368530569709463411266605744741140919166412633796116449894933863587415318645543596873938732175731822180625526329692274539983463385405715242039278886956662560254563871661916292324180586528161132746921704049115815587580105729598237501308829554532556135720639570531482222898290850809239145389008694028472687153320487443359050020642380321544967547975931112118732250537920562807995044869352537844301454956224200839183248410767852919321281637209284506330738808665694404386477900646171783001086760389453984534291682887089738727340519999384568223659961226993873470040608993146423912890033545382576390593200281308569239849230019078629885197095789206382014755213764479680274187576118521088943635697956822636977258772949933645078766819275391195870742964904231704317384698300195068943079683773631564194951514078509848174015074762003972005928544368839746499375792817593015511752301450125006645781744319266355741300606547337546279334504912134950108888444978645470008930329699346645539327356147677769322690682832165905937812851459975527871244380999091141768487641663533143507653814060142064547134630472797031117602777480219922787521326664118114090890501832213794859058416442497256808686027774662889051014041728775592082671453634248979256109554570564530739867219229040363468974871641355022451989261420307665552877475137443451468518900040514797519865021356885815428928154883049880665969282006488431165942508513394168805506180962674000007324941399316774079850575331024073149949867760146588788429175837722721348315742902464015657724232730078584668760778919208338429086072425435361799472224971980536834515294164121412935186183773870265437138009459291097266945147139444525917900829119472320896233205856468079027431647568980028687798479920774734135100540053084635535073342063411864982626617149533511327827019525314853771807989788331145787709589037078240771298665495927897777824592851378360312858790229766605601257014590347685686846180187533777320977474488834447888842823567335754523689677279131997124068020035395391006544829321373436891603094994812074097172325463448436494377587593827897957138489035270994634738841776490832082863689791805103159681317166996827686710158316204136962784847552202231791207686442905084367007668900127782679343000881936967175176195109985193915456368424974453552469021983383467244274690072763043952323000450441938293503924301102493547961622594233656985219981087046765680746128839498146855977984925468827967423094346882697084789924488206107403476285156757885232291583996598888987028516532510097843403205500712097385919134178150343604984568237857517570367678135652005535757840979318682165980971559317158931239525906870067562677368809745600360989444766827189879589175540169324430872866533969862576931623072832238875675847406201571682126250372423146768214375306410465144422980112945608346915064599814322115301060175246602319783917650970558183793246904662777336053265820996493025042024167803139361132820150778045722911821572835790492431355935465758629354496043101038302307666306392535142196892201841954786193728523983789433161910605279662160366958737417352568496928177646751578084488056330474459897952046781890561461721616606947936204819195219316957050655278774761696459044725884880708458274920198896275131175583794651176319206283411888124926260685111951723018618784460047522424168748915803521869764559926503854707123170061566945020348324775184594813808049780476260091084629459787463591632755454648266783628337568288877450819477980590434978220636345582545308598086072034893412717949285653860760611807973287985296526602711483667775792376010618438626414113755138295434755225939263449383595433551170059410989584966277312900514837209400985813174286968525069610994345633760299522662384874157618055010959232877799643457762288920307690147531491603241123805100858250895129928936479310869360229338921247871864167937678140677015712168526898636191277346280943354993735149240340437500852093377861599153184782301311429622387138210230301170927857034015091079578642229478972725679481791025544310297501167689882207763959119001723406016159164393858115203900878215837555790793132895892929406537924418434274922468285168682874232646385941740161010336396961972716277398618085870687186644782617965077616713994160319185163199301587551572683435841754008074942085980602301156790777362836886239290052572460706205988304916448405079496840293015707990751861653720153974077532416299101238698135889760067028496306465696221335878014369736100326360247165828052216320609767511860986610489238205754261252648156467470077002970230632140255823523527492062596148065064272199280225022368265549093564524052792167550834604481135108727086335226024557888766334876998456081011225697205295322247183853268149245674589708091983876644458143894973190530814248655749209583195963335351135289457336964065175980529439929798120022729655399096553135478934445267816987890082106294711696963287854981361358719021971936297326634116041266787522372903531080186710337317259677639685020251280651608241098398689576273967349204901052228422040844196380566119481787800613244115207370892168167073303339984549773084176310700997152690381390280558411459917539493535169149080181544413523253926298183465877676645543225454575982568486490924130339271690240331586242511609991351806592094988761141137085965888413844445759279789566521715764547616276114391351963503136162432938187666907511320973266191609703353720243183782731769220504031413237762699651566571648740251081867467565093338254986926291964909572466774808973481498734488616398815941686775709101849292040733849446128537657869491058041922905848181853656444019339363367334283615001008809417315343289748915545573731455321726921753010001172513525562160693899261048687466366053091457317124504665105194266385099308993166887301719618031219942935644116091082033307271113774784837565491590023253877084073835695906907390256478720345966464544942807811240146117483836641278091486916844277579743480758178406281256463945203210220091382488599799415044864605651622740453684368759709500249298178238655398581814058872758176563877742238827198066974139205734139704376302725964117525535304366908282226843914249169541097104573845589186130051581686037016639628658723845673018404255260322501862641611674870350270806037760765219201507288389365618656080291035885056713981432168324994306442470384464002230740259822945490208105026178869387369430583555970014023329041718363866331049960207978567101777091435991673041658198028305835381976776265971237733818062088769059352134246417015252350153358956261286986010827952505198299735128328255031784188578179873241399924172029005753262431693548237682510892857696634723661084881022745132577942855946203276809104983923566339541948197904637939094204845349236642852874209663825320416543789376976089902593428845667600321151123523703305836830695767775800298711833217699277139351894411456823896968700062852038514634236643338986479754707861328977039034359945209604735745444987735856814713585524999877654526449161585561461445573802756003362219668958081007800185606211496901455709087940211871198066584552965360491350622083934972050236772079635122058805671293584408083093975297325070550066664802881913680251940198063640148223267055145683365039381620599318583869817383354298908194034134585770414569054525890490609531808962374397782994279302998578429264705571401885240823913242634854798076056597103614537740638606330439118172269614952742899601074744873843815277556258530675383484580133225335486983586492943404356513023470807776276815290105977620956689761334632542179788326593545328827941044364611790375864883952939011625741486979884868904275378392738149353809367534376092504027633724326312322559150872076541104176848857847719468616530003044510287729559861099355185773915703207774413116186530899451592791280617507689293684066676543823110302458759036363208518782506206155613423443098554874907198858571870899348475378521951508981030190610042118875402927479017211717393889249609572312385278317733464073125831977478514325886289262332117947927775744334289600097703180353944794479745725459364693325241598048480272047019266232557683440042573999303352920974739578288532961415428568043249822556864523588667198530426893474465499024042810413815714568307841558896550195298033755626891158636061713770235939345396875957902108791585242660817796660394780869627969732493727739404761472826199662009013254810677753975516896098195121112773806408391328395245523467562052897963510884946404732372542018713766443879449211025843088689745965197916467787519813854590317405861333487961697517882430816972589712375619211087252590549111343550321949873758958770683674492067666832530562464380081712697961733862776010626355807036545560052260623300509371493111695373258654548142603146844116756256896035535947277478800046279490374798687762439244265769916371676408704588768226663306305090940960344945660289414180026894152149783189391423107222171175664623673454537086521753697344900988591928941658346563411502124874486771933727821060877241767440883514517200963792106435152565415969559259911176629509528874873332872064403373805271159090982804079925573670856039347055952594306525417488611730984576139178948058249069490642776104975685422078631666623224095470134086867059535972714141190665050945026989109762281415727321730559873184952146835836272824782832840021913588428980822085062540025350449633106257496937574747980903686891545259461391410832526714657875373235400923337265574507132394991319651791680210941522789448036815170102517409995269780021792798494063612256242404178003252728146583312972728400910530748087610005721401666890843951036383372949719937871897523008137726935414627507253655589954005301742604826338071530607073201409325209587173585753940134898893680619574412760651027740654282979420377706434138084148085065437296300873160242629669922497656226292618719765500739986029229486729752653011928592610760268455405342446317181350430570169991853998856103623273065400208759473546649735326452557598133855030901604778680636381611235706685933972875378434716915536362792379545421591746516089918996654438542061030799625847160077454338227099412213099296917090876031149784139040159889651911712495308997762390785636053472764833340337264592064539101179333825570866307935892382714740611144309754574132533657376720875338895833518339538649266272471345513666329479135685285433028170851322778026228573697484036462017699093670751278308576023860288015672178402270196583742731820795965704143150169903092961857356443386494290117407675387971479420851151339268489878756389260030495784408252495625528737237357217968221644096615644015222292193853150271059029154766560925062922480538005793728797678030721514784988737999963386422160359953702194338836595557488915900270743971052790059317564235504681784863939944012517184235379204939611418889691587550000158083164555173960859630287783314130136797310824557151382517138118202226608039238903019276370309053720224319152823693987069196512041154790193902763701118717632519385550846200707481286245536362784137616218443263936874377332585394677297708715187590224924446115852297188406533637903369219952007585132903005325560071835436319705311197883132275933728805190757863139590538853279195885751734370204354709866260696639618072866905766693362427694859119311140951839741971437224996870258272039174831565334583017833960858911977655108956366244435106311085836237287643244924027430936923622780151320986927435119111900970421159270383346225862246252232079226767980281211655641914814282808095106326326327296501906968991002115103833117446971372178180557682240175326312561828784806331115140531434343923118792736196524199507938557739540879406427084614492824539390817986059568731373553927571672209174557706847953401932706651654824755492133133389336473099563743864142395653705540316743136453150586804089069518288863364784327223343356165142815712713143857299435622946458827189595793674066004167184682643206927589736372671666729239367025211861783337760703296353194309942114186704609043090958516528469212638878164611661946571185499890311924561070613496093406525762081648399201188911014755979351765390321206873247332712283184951458429982353890326835546853049255130180254680961751816434676554087186892082338385151226137798960846911524477411914380374165352256270835987512701760862284468800790125122982347282100948511701980818390784922922888113279998305437726757893340684971433428346332311938239617224792002167060827815017099410146082676811575799127861534081172453995342670997030410223740899191381904065223041116797818683316311176865850781996051887514013670299615460597202962600381576666225562142464721726168755255599551936933383785624929859298707835790036590499462044315737495026701655238705216704858351031806923832604824754807003157672140455608553001949203460787365239326801173857706565459909295617185698443390541866656012550259411192446327762500594184871350907874278234673627216025459437862487235983157526152806869372953034792643151172524478203781711280873634339807494098306602699612470493434640596713470246640767238164103206611081131684633250248767642810249799528615097168808837079397984456638950048827853095072661924925383295030424839352181658747769306289630938283639879233179282062437927160229449092885673461518465036334701304456107439856259921415947630868119409445682076995406064060160275836143187773836473512220376484381364031611664049048205010512317616055682963613535405595649740158818647899686420200356756783069535426241067453820107974025909510014392978469097323387362939233660959416192091292532999406015934356252267273361772115884737968085243072127619131710017420032172621664119911688404853066549944364031388086747678279984916981297418302433223504358078967771175233832114940687495056830751444984532526383974712050772283873891753431255314443240693070742365718331996231187127343035319139467230784726706433985297919831454520859729780490435687916777591800639382089387504564952981283704560041807089281170599591806639778752007540725368056018788312723972327559858523090725522535825456025321461938372983005932139183411562513815861722993335459741273689878124963804215599285654523117059009328354636181835902507541606218286114120051906019340842388894964192658431409751983858469968861884066593165685193231816852294887830036788794764991323394175500618272500776994645446603996373183000323145170680569992508054919791309222798062251713236005179209931866971071925038811185920409962286141615552721079740212198203980079292627250431096267812144301711536816399922933576032560718642839495779014579337794816380371154393265700682433440544664201971430796087684738923729953568962790688461547926465896676240133123693013351590916866148915024307207987725373977319047334405660570066107255434319013708551641025989466478366636924000798469209461078693618610067514358558665836150900239534130158765492801840162718109281035705640947199381480346727095599079970831655763907845323230165016511038790653887750570855509719071534850513498699499827142465137935827248071321715183587995506371467911716483104373150617847763049637589797507227810291545178722486292549370186313758554810918296790013834091344807626800260636657011729347247193050672671501893747982432118592080453154658700348935849797844625112618246908051046923813386813649402261863218400268435522278827207184603294437848969617739494129533200494704420457724122306062358355716029242914087532575272555605072763426233242422137823693249987528882685638331273882806152288936441372276700211006165418262433280355034673920893428216404524493132486313193826602053716886043587607814021712521237254630982615064386086524601452424197615255377867269129075425691279916805289533519861859457438370172695889677747158421991036376722764456183276268735129713786617881225769251101551683307400676852568261850310394200498171126303915581411845267275741931359174496657462250828589876163653897802397460127513708397639060686742653288896179745608571528102608989337342286710204239599354251249750019157093535632949139945483859626623242781572585093789796942074583299436562935596701513941465917726222850438011698807171296559127660102534851854087917716043679017987485281858840352537823274919073997606586697274017980186726449112839182700124575828553045517572390337072028308709599927005991337887624703202422245373134330940298554359582204503185909384313982920387298447221600518887898292404289428410360285516550103394026178170232542463439003832704804083800277804967859244088083204434605474821690880380868718888814326874542083428143076415422347020510152819949286914776058817328563833712979018903899757401482278440693249087417647075991403830587795696106626088705811168315829940249035068769399516122687770324970090748206866147722760801858028726403065184014819021774402323947660047084031715762534341803883377995096831140414087174496355645816336468348374747243473870731233919608207592085468531604758379353212349528709269473924244986614886948760094834389621857870667926246227002083830230575539612457512409843947187420183959425421519165026124905548240040637453332776847957010385023904493494660148289685980455856900610106674475705038986803554367487167073011549055013414553025683746651442103992952613167184644328850855419162672271959244254565289632158568884119212928375843660613573602669116830577806188089202462911080650528600960828655492875750407388268883179822119691554919501849204737179549210859947542878770422970909656198126839988825346698269457357846267463055878239296181395251319673899462789778245251420197800465141601439183170432121407637956817818465116048339305505949235220327130106671263286361468221591807348943121975365795439748791458354650931768845647940973956190978283086243187209586738487517054126130358322636482780594896118656870427881909881887016210715398468645853702189990649020213162561132299789232829386624856404960195546396419283335758425353481333848445608719591475104819950216084708774247292841390773747136761129841557832421622487855814581711999030278497638052248625153924755229568765903568102373987267689861720194819632985901773942164708393477485790462364989101661016442195418638428450249205198402762183556345402866002130830534848807422338328675062888439705271432279508249768235318187578970656580468629127623472345805462195328424071087723383436362388177428633688614476636542992702423533476422748416514574300565103547757312194937418634584447558904242382276435213455363693310224904208599813318358586051435705527419148752558160913382809951449882283195916350108106966261506030466275114297877124024830038480901781629714623000548967922967903000698805222176803348607306967435203164521441715306355355533152274886672208346704564918242823022644050606928204764478761555246132352728922925135455098234131315025767844842915198762366337083151394082391475447246402020519128338902040456046373303773257743506361967127605774127808967443736698010664646909876801969396399110609578116796758805628204127442807721479680105999198927450136635548780188510418614681715988391716917458017016906017130468829735399715877153919290244331133990350601553787636523893912784560306915566701714515646382780339497999343267553270418838218927932812872539778257697599312711688196005975537280513132393978215607950847224236272057101674102384532543189223113042428474769760544884572030274027702513343881577618058368790462441483286575504719384675429056400362801286233080342216078868716716570694075881460376792027853147660604392281476050491447465867002521758264013651550385889607733683256074694050332254520317856385506999679913438857253046587137288309250210019541162232273790735936858068704258340179797079304664222818208858593745362730285442205118822158557649795493826196969601646874617102536123321767186748674704200668330857742906996896779201951544533147689960959493101568324427318401016711734556473374846820699213354577621759279212143035732915503125022865468433141143418094779580108601409938781743615010230026298663074369816173987062285199749576754311560997783518286749011079797124453261988712041052238168568735895595714670542137074445447619986072479194909260707517945368085469775512734995514673110511316921613993793630985158514691770784224055990138572466014304831952822070033971958756196220917682949910723495073027993146553451642574128158669335410225872361368481440197366727955701034986574979332270586347086847834376042010353265770287224396481197802273833713139806378536881762543527551112679933621822132129484976428047927343565404767755940323013661879043532954845889464323554398224928723832172453480347591641026530328221001331188509235781975830038802954509715117276790725293965702507389305609492435602185292312836773571491056792917792934739730339188607524161829352621796000712665662238327362925332739008402813529860218891699342516815126156413825265378550524273775986317209422043337491986507968749489967055176391849628903522770947800408379741581038764107353516558894167845942404150831683934198430546324499504105021167758596024933874475548585179572004834326606379595665247604555246602574719150429089625464488205593810961525711576284066849890507433020108522195774219486357045133267635965264830388302927212476639657861191747015617854881126925244229370794040394170537667875146905089781635824921725448633520836015735777153989972389411194667474296449173965097473353931473413613968114760078758670362001297809593090802476114597595388684918817512508758246607860834732109336746697353839031927276732483441927713495881179095776334930950651363994852960168368371026810227152603472337768322377425699334360781531195640693525485409656224725841115695522959653986921996548606627698291137855041527806959463676935047820302647006753764943752945048992628610074672777976880187685306172577569975292046413127755154490736913893889930561856228387282548107363325652347621105653823789114128785491254474560912245876903010677047697498747304593572915738712025075208472471310257904345181513326097845878107808404024968829497451957072504656161112732346683378297222407925982044014309283597109012726354252477423048999573959511385990821569789562708067422437779069132852908096388315543789889407826735951220750450324926144137841449497034145196177083199124952952978665641246087304338106038917860570211881616495652507488533900651910103990534894620991159373939954274681540608451939207033834263250808312336509536778791037802624611849557998602194136614593317484572081384302458183218899516517224795725580086095749082395853588340051823239594249142475260310952975300430208476295789883004254612321619629841169818708318375631774563966253708320339376758391407532253980863960964983471992285683208355669002636148462320140527724602163798477821374373718108351488527749167848257944809092454856792279700155943373650113344913024831967401692440715522536082579618563345385674065972746164075004272618138310551931077292482000420892095742930715646766179613674335133271461584569629559964118939320658835078666805795993961609190351238883950422853893104544968976122063797266360800085748235394454184549970286505308063204083395828248414916194962423122325075769088081818842979363015184268292706920884911849274862915512572576057674224816380631447181176055187492683286306543616760475643730153843780562962322184075383791284675492952388628072652245929781721610854757050780420905835420196802351037731920660853403566482172990784089981770114837961125817949568995961683897816356027677094422129492056738769847423269845092941209340986238171339591444150791836816399553377399158198366477086964959900232792106716243579399376476267310683362573119592136816883136804164592523164263266854208714018935680755595459110787176973016026391775192102001060808740361777067303423617539954670871355571845640794977846550568215896043354670492503505600414043434361246303489885417068792158714199918161784161442692377424156943753690278456167598098528615859929057604491474917700690526506011048320156137338843278761587042124986672159135445730451064187159762169060856649168414075542265431049257932830708123172107549768606571244892235838375582270294125377401254753471629424943481981595200459289102754534236388593008931923367942492447964629670536521586805647005367017971468601131420006245790174451974686182662663466675630148143461503243294150497902081408356999128014053228999379150353887467908470000859418039883113256515182274071065208720756571486636417911953427272365444270148545245430544754228500181304809207393004093097122827662094253045066767632606551598922053971338314241555067894707521621041281154105625683144255381561025364331879206779697660573023916017568458554311688921446212147784811233644093016132321817494511076094889599380630569939236603791176474475753805398539204080917590366973795970699245997504915344321008186398316292592403947670423785011148738445800756831443747173750756568092784494372869309069376780555946845501453097702964282960247969631918182249665346432366719594007891624063650150085773001422437183068861037132859917867051800356756526380196758258907873373124115763456677339628401057020361914584894348264798197323732528247593760556946935135406971119491951700466142764571262313642002162019819514921078542905816072318777269220386406601773142232766645932305179731460600064590900759897022317057306253822836348703724272336354088348088659158569758925633888420646845145785907487133626574327308402943572081222041232498332066058904522368712541233186429765045266726003282351066639823683044056128298046127051703576810837980275136548217802738982617862696318119386066483765389854893031548635189750776786812729594129587978468123381530319887776919586552079869385394361609880207377182336810069619879789780828440166819290304963432621001672581474096187138214799651679717316674233581733136048230408278913345950506943739321439923437445594833709549130683537789569251115520044747661024258488178386838602823727215506854664267682046071458840501297977646794170605350557875047556552553397102819541419861140001200910996453943016666854507252370485587658156394999625678922773588333583428457427470103608159694192024685951476059397055456708296937308908953684411732716921001535345195267733306943537261332069378750215259082905902751537571972606006357277634096269084021401383395959709832209159880623210294189983803255466178923232379354105544307885309864270152096497568477588006661301066886703451129221223342999373746898431133879571207307343442145050493180599935953021259275262378193618634988007457977962246926929756085889501349100169240111934066213574031874858778892487436516769329230399682693312351965857265116015934232823052050168117851796396036613572479265402559952359200629553420366790542600270849586531606584286832103590657342347726330431438845447896075641406080746563447217406645204565561491771080556651397801225566222670855569345638564990619495174715345310645566072072194333792455224582363146156236831461296984754968827792043115495024766106813318073547010440051048948662025874764215283830886553759941357041010797889205640597736069886255327964434891962530000087899254404843611673905240613491107853801569026983979574564043444052182450579741577720885902374025279696477249137479293607978690996596558736807851770773786135858308079604452785629669653413974855789065323023641310578833030239809816105633805031550278550442883196246066494184395965969559426744780840330488443407543240776839070082717701127264896291826232645564949565494333089718773319146084583670705284763134672723420267395821826037720716859893986364430658352688537814063865654615279689084767209886624441915403487013041916833772263321546165853455788957323830004023048365363775614195712566197375577281331836046646247235342279742892465088046765149746592212424428852754406752771101956498402785299540669561331450673297123632070173667841450898955052125330671822746691558637069011456937336631012121842762475923290859671132757570540881558836560329790755255200675317918749722888353469581474154333780089269233285347235697206466253393952058996593162377880719877697649057051397039953152453653453106423087265660024040743498162768197268198566878191507240029212674814332307250171850907683207169946774173042835412095527630857709303369962007378820042626430650792928462509308235487253526850721679481220004935035258201182665181157683821869765921504867350449061440119225064944592367414939225856363816969391132479071138407008872498017246203602619194195583309785149384083776039257932016703013572846949509543929053400886751755276029908974038864403141308634338623963398464493572054110002738477482080836704521889272810754990020133968957760668125669468406044787488114398739557813720763989227797823046289615145887698250635793819665603625638453524399087402960557748747106608421416155200874500479081804751406896336859080618278778281142271907343516197492021810921795369769597385676115937035022629120799290444647178013846403331104185418515243936176094709167878618122918675662030423731205352474579202123708385182236257171018999163567123104564492913867979233571534986309736150100816580276044646270039987376424993632619105259588969029458797572090818539206258324962421384005816590881519979848921680501524333065661462631595955206844121887940600961198825763670701855365152195692663857627831054733792469793511679891356831939169005675646161407524119509175271858863618279585705228763757731513688859270877148759156250898404692986718705039893908910744732135031774614024328525561477857457072130336095304857801005561247418051299705556884209193789362427683955470579314469605613614969821750019377271908136990846544632088117617296867220849256355737599746457207744508020384222716045752922170983212930877840421494508192150047644112361615652543682767861568551273902068583670805815734410619162106905915831303718671056373661475322946687696218273240445701722234907908943783225827737463432370883804491662689762790928214422751303586145283340726821783471144736026881490296674638853037595636106014929523493217037189423113923313439756962332789599524585913449133922556928425429008398109553581706742427561097534076692120210648832130243352453485971216766422903927075304395854163224822190630054407606779593018402552355601933930426167650467087256198616912742084451752794359850311643511103466016832065521677873353682751871121820565465321939407151377019761222843770438626414347311327905374165194077618218868055849186170426238207457217901389831877692882169044451668351298092772999520603424711291877499406000963956888132120505821409908772244510630162792238437057503928932531797899848816197045814204833832608351329017567359535492681074288827691421027073478353648579808661543588222320693644831975810140323049239876087064996286491026579734398160984395299473082010808443308732932215758088711679428081568349655378410771270685227378431262164432786581867670231307301963430113967759681472670858617122486638659732634371958050825006832219880422292167685109886977363095372699249930350097522793046740359015868068481472228830569360752860999368234964205511597015169964230366886377130193295504710403301800804008177218242967317280375020319537062380139581611826443040109290571716405268079125425340340960037284416203463386553047024885386452430656281023206785785531569120409694245865293023421733060240123828644073938326193824807735399076773156578424526534378438431349780267433694769066921873674295987404909188692804822012385856034797401834288488454939096997075967340254307264503742737350384249120619165974542407878897656163559309711358855857419867741822247286774032882625834668386385023177359096394966311117451957865439583978649150864450408791045455566267547598499844090431289783628318116910478457856770072965054304400823626187297244722015218620988208639480691408476050581002270841766745124061939575833339327149588916403688966515072500525793347058045896851251385028857761858171288417212539878315032471970371836893922734216566644728266772739150001587127796809757328993278780523101761564975796308728326454484387018311288411839636136825834443512086526153806874102708926273935154646968632982642440087526381047119633733084829319621913641838643260048475760669047122703216807717199781394102676929574521992836888574354775540229232615535049362023847349155635936792004207827278368491640086419386104951374938831406867043483854733756076801857793312853693848400435593535837193811256173947166158198120120889389121542299853811102813563190555652466806532581710360536351902479284892590408067716470701747754356856748768269021010614050583445546959312372446995307769606784365587389225220420995354941768185739426536713961155219704044370605951620184877611856324213661966622468787194308868320388589400881866452690596493391730878674178783127879506037342137774228605490762877139773014349466865590200224765604573660971930553424321629763845030210681754510653650628420453570566471179090768150546120355167700381550391842189369263261865933058503321787141059243262270203160358974805725176807347622066102580992504351463412318074038966695603547671505503482582644097244291210687143726237589266882626874791803467603460950515643184371462899025486359802392131581677764997736907335290462224452335687951557594504118119605507910183003201857192387062589885618955089955708010555480383175479370950259529174474882629559891547210416586975602770087974233000394428195780451925349897309678621373897931854629275818192340376837064864692217199431872544816322838511465673635026710259938831261185271808788550675772493503295364308266413028658867829508165056037051088894824224220433209525018098668254779165565612120795622877451035067034893293168982659828146681841646047646272950402533680550925431505016452544541157980257732864512270742733387875679504788383003174658038691228532798487742551180884252939596869439301770347641526723508353552299383134087990595714184260367191343831132408649823795548796495123009380102070549269077168771759244191230338508139905463627383160408495132280792140154367503209167436521550178234735804487744442716989540154779637832714223755934620331013686638375313590906885599470401805739813879261425129965989477084467822307793467420773600963581163870918140859275112922765884923806269208647188644835603920846668023965609700729225318074196876439584758298673114240723583727406944813453221396340347351030219797967677981800739245323590395003509838263890498001757366768210243032897232332111366453694833573008508153216546040711059630691546204146234874637831761049012393856323003963160484853729107862432641757950806259663248820195243707959443791414076070811502002832932731151267333694141398283025932304168764075560544701494032443164530412294419928898920489350940206975701518966331339291196867906606177895244972350318803178629563956496558409527452771562977578098550988422323926694397547881295447171342215814323112441174302374083369801872144099130883705801810640022239766892015198402231436417575941817738639633778550281889998480406629368876237845264385293084797930397049436920267896766783512745758385172100714426635533410173076794742204062247785096099884128275249334473454563701356834730152144110885736848508043018050097242976245734774401855761270668576267252254493013282621789088776804706742520671434818319649736968077031731560086971994751840605014644042966578246287771025911721974987288883826918566170876004239992722986302832819413910985588707817599616978846121749178175580988905346671316564959365119314690331513400478396167047599000343690977156939790601068166474667460605752679834965055159641844211139569506839668802148502147741386435252361876377161262693647673381127663567772077042531299718314294556345440682792785774881192809115905930773674829016983354593932003010738435270930922562394252911844156241638760033654105223481206574086948462519995468129366219907586411667501646819752826390859213546952221139440473596050174105469664944054576742336521967967209445324490604504509028644913439878983507079789176468556355386854242215183612440760992021285845382650240247379916798722773850888218945653380050501317734871933510282538222788520102543746426566098802127177712544813602886553295539006226406658939798057539237750897191154929557306289180292933852613615187563362607628644795146752435423050640372995783226148950579558037395139174750956450441799897368698592141975869039709088802032887186824736519774321813968015839273025578149860392765165327908889011105173620876196451522692522041782170541680897452957618269369917160065540765657112815160958162309736780831269039181596895317064030434302346651855766358819180330658057467405067568847469610741945504094151152718268067474096033152508310703309751289394070543999393146489907135024691010788706590347366417474155352552504596290322220511066276632692161588421223227351778133770997289937779396351592649425748340822133906964694828680936102263970623557823978171094529350336662799724857092701076645490003855702125282574263555147349799519495809331014138694781673616151371890757643980503572567701977813766411032837245607582327425583485628809692660851354672487706168922014721744999833271253357778173719395399218572893359081713209508792103311081493208394475035706678900360839060204917516817850684903169743058862691004874840627797618767793638779968135182902740539659395604660548697671613428096320768175120758329741177513809509526515488359807591349348034817582823282012014070540283644830774281208628296068152776742146278027765314847299900477618982593326275190373435474357531193966114635468354167582213368664996810683573206835878869747627540758548656724069680928456082263550441973254945797406850686350724802442826769069688197237939617924311177905360888292945652669186639035648742845301450940001971462807215386773400589926487529408884019628398242955942065719726414992623406339869462148924431828018560926189416544155540123710118177137937824810001277452244394244207708832609298914043742571258810231264983980048064186039295860039705083941466419392824023143478709274982914660705543536144696307147491249985431560030709522623745207420784384686718021847544389119808805146471873696406202374615527573509582433626067977229710718531018425060626497465088369330080695404216541282245327593430233784060278027479326487538381383209000468436962852545533311837246482382360274183819850906703174464072441018749114045083649017066005916352936169971414764469691610863780036732436242348830447117189910481015890354343315336493122621909730196085166436766486750416964816601674706731026287038377571731670866842392154671661280467873704239299738553137165395750310182631896905148985434546092837872869214873209749667409104135417737700836168017472811269187660284739797980369652331756023877531899291771297919764402605267838262532823396075319650856890668904077991577281050906413316791852370686288816895453316931362792933523936204118687807120901795378667525283636948189029757845246931043224366799435492266489615705679699874744194835423612281147117922332260202551088631666492885489672288694924199711696404412311205588295357854607977086532295669731304222319259900132551149758037471551110160167848414683724402592309465313573335960491471214839374885566389886235766244489088139060565379160876928161870065087353366781710155058022603248710468004636363672879039606402174223653541808021679636209786705415305914423646727303466335599198715350259559729733162757911004390297306869334064209958664012669863035051424619963226630863906747321764366422624066719669572496872067219350287174949493884518219460184078056552961025998422050526383321907899014795949182249460279228444646143075123179294901406542106560423690428410330639741666889314366770544137356522602178565119641000685792569192751419265595365832241630158858763016420055543758202527149849705361698729989942521414839112313267861431254762660883023738881809786092797286779459217934804625195410333718295787388800994678736341736789766353986594255449849204468015361368530196433039226468209038516013417089269169545818003849632061800269433364736733961683159752694922702047330613340369441616734959606710311681265485803169116263449061142706612138473478533343608766341532084634103498669104668436536157048033627006016694362938862544462778884237766319512645711651568334589146196089370116565318512251473455921738969912165708175515194399078743645292092841110689387844903129755704359813881981191757430043026787261031011146991494709803421167140871818344540013752402513129649113822063638682471933386809020930184478686289669547217929911288124267460382827186576394275110505251323071506514779990090120064866168101552343872541580968851382397713124326840633456123050865291955478691404446707893342074306976047066582495733126385766043761722502707444988766793718262001572352019189798965394054418096873032089295957964191573421085541902560302422060096878379037273267935064287687807685855006714510908933350280839359302458660042081749861503494591449323290928486909532474047910902081536459227494424494557400149930291685390675217082807843629768518830466517437321763019038050971420389874256279863124823730064892954275230893059943407401781472485134334312898320180986351994867137271395766271474391247778998348588093443800750659406980891712818494659838200282015633268533209855066221535380997613708417037712943912865799092008534343228340639299618422072294777916684412348210408491785598795844276990644856936725395134048756715443637443118594454330154436695038545762830093534322346690716025113406769389656381354616851831853305984107197244991213943531054966263560407904917816223039788795406480656036034641611700339501277368867074912163976051770820208183805732450541102589847993690023951815168426221194580065703874338583572187631048901350161369923036641893024887009883484609612942217518718233459678177334985938442305544043588649171101655140825024869375457207726890821339088137238933721631943209655714590768370103631767162218078513529624366050666261833065369646531167240207333833664278937974799454447301523836703866780270326857266095874936131561235712443720230388369451681134930803935048640324382121053456551127639930954933403713192559641539727619572564540639986968606265220027345173490356528145729296553451234466916190989669586492979510466370657869383137571767377310109357642001940419735363096631835528082512446738869421436131295952964203329558176373951119508541948154988110198843979473885591690867195446143223314024729236798960212049625603420671432564021275552762766997359936033800970952230385396896644719104181616157333655025282897271371992639280275766150399261170186606900845692353701230565863236496320114889831212777931265926688490388373451386898315244270050443209571796014491029394682254969297631080932843323825367072615992531532863865339792524553349680841948849212296250644828080917818974918877432798622815884243273723013573560574835888897202509565000025646222477925108077415580029598485885714981082828063378408699997256349705247021213100588449157742733744648997071136483213873309866443930136485039359979166054193543996868895591219827798441523569013938827251554027876518074023034857863378853863032818163178484047246565718566289444406463285379045867203765042363482222229219551607054443168253061795523969468971772351558141805299359780605321938757706708820048389623550673801437644337117785786577735881591118743783869257601085652030325220647029233856366472198207205917078286615105713766869411411911027143207287170501753213039289781922986277054711391509755404760360014805413231942259125999547816402242597382005981259428149283955872687786935405833538702250016619809077316252946205469153661589642177278179697344406692813601018753468171169532757939407657474994987281542198619648760240524075939222713852541183075384172125178829968519390601023384673742995114472629892326864910453376356611984056415963069171047618485688149533659976242204802792196316446321133351159328783122070025919030555623361825430143909045007100008803944527799954323136375957712548854041750588246865752881953310371944265245732331821447907302010152061655838375716104745066684803216815927375534316948527830450773995233365309186122492521021241598932343209258910253606968060602620128966938748311369792108021288229450460695543362552601527176861153431050135954610439694998568026483745419002593777122185155692841397650764019210943126970195495952963033123303313466857719227044927374909793261408444352110563576955505857810600204297377967646462719474251642459178788370051685468458547293933219250525534857202556420665402706116288392976676636856903505418494851545703074133788745867219562650361434187213528906535040936283086788741066320292222991840053519424741181595522581931022668685148735514098621332781911646833622843299640442273567576765847543761137308856262607421356813851709099955218486129205426874127868050340711327402040877499393458810136709490449837043691933132008067164559402854505836449369511073390623993219369903618461655237861552031212076899729561817039139463549457260184541492992696871674636898878820429001171005613747373142679868462566804956088435538279852778504344162915155171290581070868451121130879883523070622700077603616070170801391260218909185075020869528207975804016712471008878565084693622260358389459158577090563158812931114151012809807073391715855140451179909203835719207732842761625148514249200943070030904447110816649224942590061106216874345826273553909175513813113020962923809020693306818426825576122832267288831513364013811565714387439822723384799508966265815228633613500207625340020982537885459581487721636971743874138908345035707318428801045447737165224414311263034480764497553797047660313771441414197872642701162636305822508977040821975481264175685471199884081605186313375563931061724097022747704958936712800131321320695924244592948459067929148166690915513618102311032695727005440697502094211468794196052977677427940135697019665760841560215886695466636404276673250981271570334099604622277809450841519026952573980094634929195775777079501845900947519719984415786494135410068092630724749149770632775271249726654809282669389458451634406289822649110491085090696321522518108542367376511427790019265495611023938841441775114063386553100295969603665353067168486169231442701169685825269733147159498153982653021347239475755649371570062444880708354037856691458674510544202598330201154077073457947309405635290078872437511631148386571212746318144012544629625190250552147895917351219756042353126912638730747018963536925857853893863991716155420586804087765732945560090369933750802435494263275987277374256236443317076557824661853337572442790663146710362723562089834573708149369679368195797482891126721021466241130396721178843034265967088231173972479200210490689332303602481522663486534771978655807675739106495522615159757112740433656853536284243568483001589389881472395615948388660819975493881719164612067317014095539252303037018181253168139706569232143904371171917518169253232404649346990252420387029056401792430371128718323725952254540462036361265014873036986253806454351290529748368019483656566669785748073431884473940845414447909164195430890357072802416475506099273532597291815389431034650130800945421178068468138621333732275515554553982857850246891952092056468959718092548400144263517049351326303466802090365448214846462395734019101812693157997136241542988709090547296744693500141917505493725004693257772913280749454120128815798022233810095338409182399239694133492390422239301630408767306646204164389648549681019158382711908884867591440951311281430104262379873097326962823307743371539046442072291836101300203934450386529182672385489832119865973440248901195851403699713117565820502615416086860973914678831120608717633560221019243312994080603459921527685749716499627776324633038804862090927881067127646103743683449719399565092736074694879280948797405511403587110444899731607955935097780861413682889211592291403449001998266686345688453769172918988084095148014742420093013111227464500342121342301540728446219757720691827156179645079593920343162009747014092059001966292938035837407487596363476568266502606363264745639207383297701813906030330423223106415519959248773981554085877814532646445131765427006884677158928267168852518420795935673687072882198308617261540787024935592453525269993345478509351107455357205372350354301112253959004651485632915807581487149129016154047638248450252689829438526831031117272194585407402645879563829902182080389465363003910975544450823263545593404734609813057906085208333853729516962048011330754450654696896104468780760517540645678161502002495702960149204813384238561983275528465744053867655660400116303939218375890757357109651077041775616775514777855162003763773455300277130563484799077227145664577129935482131779957051537339272996934208170475982226601256195853730770504689425512989838970073292081604592982359143442129382702689567707252443508477526522382064245292549268389113885821672572933097585282470247114194061134911398556675526360887228285659286506830523810230632178381074672764756825016668609681077612625319487328226923304049707377721838342172771326170674893029609517252277854702905289197156445988033144971964607924757940439365388185887905478788365920371812907384585228474613575681519010380543942161483789924189174734545498459288720269918314530489354410510792611739641977818830803389463971074461113724399367329649532247567995861568901640128051244840888606618181158479469549527152107457276201303491572417015867385450989718926343145849668248903158857657144626644344156723093989090957659290122702018082629502530650515593725890444585236046469727860232289266859980667511862574348225848606604568547699728982991648745141668874275390534829226971365921830109195075420574788564571334228512121385361733676871541518299154858787833573931492067244265034600337537802379100915673524605585448666384598533648139865440431601215733369055573485091345184979930801396018299218105304904029765885537833607982151051200647380258865072600112249982113962421364697190567335601400345702667486720479174609609371196197998167464472836325971184944376374004929489495564921811249618566041988615553715014625366750077190556491626765683217313545109402927843910911392979467396048529488818765057667153476168209010478527987883458180496857741612839434261662689065124286698161502620728197586466194288498539567871621165293423281344590630921909255790416104598127531097927629010874532914902684322978741716488489062148603422506334535152568453955502599942587903049832326941521098772092586790717042738987920415861490088513022684607486296905928751537978214034319532073788898394605326504027059068208553303058156681558620577020064673315987040902346988049746288602051947117536469069015374404310518345557891754008853475879590624068458309353946907622941797061353405679027001880975794323157704727003967718567254682929633966634057254411615569958007323855263125452170388582448672728206227236105228735566458654620102488044113437729797007989580549969544850665683230388816150057220947290798199894949952999287081966480155435845486863494970572765123939895564065457430194712611315643967763636332384772865271142524228690663064531061890690077765947888329925484642456931897627986114908726957721848642187536448858177548718910666686753124475261295613675598049442182246712779671168307681572335050569690960366571514211369038465332384803646372173218828406715906118449961885310314111287719606654364764341785200728179341506617415711960769508995480611228440043694952361136522836338321880065857351943778478133812530462335326512434735588460678747655615704761398825852787144400487100966902804360014628021954606125455870334291266078529290234929575059491249919803160369263402426547235790083639901990001651685141605049813909500755615996001976247752181577565890360513079159265955603074393725786807472987238702963353883682192812072667208047673605702953114650272441990546092293050699468909424215244043529759761579338207900398051794783144656108099005102428866577394268062725741951614882472570912170774865703169161547935933885775944137461859273862956262979496241693842686139924413577430529539908819234118382539259578350688303512701259387751364666683347008238260202108472498577846404232963840689277812276245446762713654842766973990941710521577209540348652453028076461067608569647002419892108180393322585520626342805345404834826613672696961198587904497118157418256780365918098896057823931801262036401993920976010376519465052801985721502715786016267023022885095007939272016703978498803916647284616386013633509895192417415570541443193226019277416937110826748705923557555211605820469692603932625711884818471734569877537606738962627317162419986374445245446971157288980747272166482569606300303940306374517563990719858833907155130159595821377122717054458763733244786057098814649466939991575467404859389858394309611752718501096509957702050835281082319813156141929749259732042887228101647112660219193379083292391030289011722785093010419064084010358960297849436132980425073232360948910108090527632229165280205522524568956065813485418454643683553432958310746371903036084180829371006303387970286483225316508857915936676654260673218404598084001986894828012164788747973153446425751969840238463343599117217441006131628644570051251556176620763744409356059062011161619855783620302277129104833415011537494081770438089511280843887471570684663483393748808968595754572086318437275016044075354300955393138085157218431838893766729866991757446955129547532603995471226705263213832545552017360320194062641405786453048394074257859078135910050363766703867372863844946369887567104116396154024130132123936708841596558615394222252100601518236590857072218988315702657687164336110192547412592276594467384238460899672320338478363403274273748086024068198572470658947882530069022410439019349571746126238208696621207740849731153343732794437387284363767987214758573705963587850203472835667375487689179753139898741926662883724162214428154085406641661892801267752923820612391300505123979256134830280972640060648093183662021262618704825827773539869807116049448886274071521691608407791354469510997331013160110037771210682122877985301394507104246507789654011597203212478026925556603443992195880725611897867725838582044382456186668185935707023100104870191166318346509378572721598541102688945267155088641059779130045087967882111906688605912433312958067912291776868864284452018343737152963799963617645840270137698395637349962820260250600976075971345996852170174462964530213611971101266218195210324520128299665784838835481760437385209099208832396642961527633613890906178090821534954375929181704610230990023328917828588872985256714801787364219284374425388207268693467036701670801474312945198134536670954344637799124587776484514372996013093814510323856463780907219503675147046279802092532202371098498752416589444448553225019501671229838021880728476577688764883913538831126128241245579579353411992629323644096908354514926850793028327129892100672199416375524022220340786153252743201243233340536894060405516807003098596312556690785192499604897754162949957438521406147260387079968798388846429151182439777469700929896856637809269810499441286983622742948513381525704445299708161632004228772677378205755771753845707674265074383799772951778923535255486581371624809082775375306928538644616931462694291897130710773363234479740457961914104133184295183032073506609830042290319975592945837557327562677592736709286577642052341882484583050855627216116007246709408599173355770571574276997760771910141362243474313756218559921662253706146484977777754161895245229483518930951001549787536005046716065663654564068179543902551718280921240566859380877168594641493726413967007466197729287564283361094004954743419888196806509714319241541252359745382463405725914712719787692768624848835485503260498152852892431504584383972154530019604464882466004901188068398480683262518279571220596811265105817777162171189589057167374572540464476865974593762940297879926565154131550827176894613443781358435516613175641332522379382059707626617188243693683406034637043404647434517118025702120192686672180972573104757747688169101815194978804163371705474592787571164761362195596936462695123237796141406242526684514245115869650289865600157387686910230838850289659273630251550085550316152806390354912803476193449854461857696653982163454972488858988108477126007486412182848275509960629541618710045215797080501277839367351081214496485426241097376225539709549994785575271281588444182750594820562349486217005453010403550499214407689222187772101551184476574803534228635052530381686304130424459355724042732360273442957128552875791319504146100446293771449152238636157752852643298536701410805721057568173182386825541421154099478056951417401513543561009515432167129243259379212895502552334612040138397654007967177420214119716640341229137704994255694449531801576649088004405795555011691271388406004289321141767143651336061820013323152617062345093090040338332388875907806501511935379548723585410061924949909816668863719807345552151531900608024166514050697675892555145141626636266997751483906603281434987627326268424267531511036174323769265584254397812931444985803024442880396843341610347161673753141753217930405844618340665299583275731155030158169217188924149286785740522747614631952705586653401208620362295107323694574310440116514136435190489196527433173327632020903680688557962672875957919990286636271171795548845643682248831635338768051997946613491081558328644374731420782934684926073666141406177996663086211420381606184250017789045040708117913734560704732837990825204948881293700032852366985956462933909662715006527748501356228851183602139121840395660897083573281122101433705498228032771415407060981324722200993336888729434686929273678877321638433767636968139568975314079099939613896325587419390956950825242353972723883195295327467072720996890611284128922406975566194097682838649174934447708360377098615896742810993501526345070288171376896523165043460256902679833225439843164950319703226133485037084238614882694316764371630095940047633416974516348456508097932394326134783547009797644771147177143436552890809848947404018121592703519527066720175699259183306015184083216071195616888108523377379240477845663934169225971768936977429423209603343354275680912786894833785038422004240225528090407672091364524359519949130547108254683984962134630016170829590355419134728967850103927718294120478161013584752246716375384386407578359941976466572401229640470412235605143078115536780859620526988154793689350170489583801998745298888084955032463970108351456703703839085502697751096427970241940247144159548887723042908655544982467540560626553811955422337022626552019729916112975507236754941803035078681238849113874490731827012207086849342369678200909864397280119356396140406929811263468455231849372948396777951165567999822917848323478878215439277541168042514335861562179197494905879577529659626033190154748794059410753603982041036691763432665715225091039218012268442596898474182139655668364644940492414511795969523723427682419519505422851296114752505833789314590706857309355224341712363251698056547365981384221829373523038213586109621535599907697337634899488580102372794665850418365667227483449825174466505728271151841842009518323279982664915082175336452438418227935472650365746711385544041707391405165883539582321819071175416656019542350805317078237772297979401819356916339910747093633659006161694568287130902480621900134785681976666603282517891394422413850808563799645290697575135890568445370503258137326347643386429996738744716185231389885547710297570707058333963785240687477094870688501268072692009378283674470444552765636581235496394094181546735177529207279532735741173803427009534524155905026129830079233652949610554744427115017595137907020970598920324828678591374789862300755645384234544004175106744896659075050310941174659803427776829034618454290635945434579129029024123974753476008840781777607272418638302753624330366477145668066362032709273690347780144526737134373788206654842166759376694347812085304213410636551439659336447569211438666586108806822841167324819110369859021379842118829247905106010109478670796343522509522031886890339119434929251152767506096542609270745216640932084809145519131402289898942478560448491632573252486774201714582114107118415688008816250596456712223377651364103733243394445720180325962122208019813552824699615619433068274090064598597220624434632823643736140297239394591954868618264079306218166209024588660383819725322916955882757355410542532665029080543215195457733086238338001004252540449245915942032812947194359738841565407756766169442483922084921629662869119136656474649671704158897222019761763396717449264066018183387666588156459523093061966689500980238666310479146797764223768573737160891314457952563530627583060043170807062438088905202321632302363444795723468616820516939728273230666279195182400385901409898429891231130731326530449373588258462232482372667368521733274148034000548237442187714220744649476561151971675359735465215705763047834537252043070365012242240974764718376743346632190997125697535161105361044205578593132775764582936429481143824292951331581032287849191383904692640191290305594846375440767923490712442901094424654822462031967263164466349229118497414734029031516051312243029322033823534319762159802178687088076508458692140485313644103844420464102192874226738599930044761259348593347182075553850937440311813934054075428726760777541961991469349106025092404166360678789309193888612391161249274794356588240566512260811516554849256085657727298473806743113080227570984940596556421441907322902634402158981406755515208274095713002988668658736220185709177194144327615083202941780697131994230402194397390561212499502279062562137051485807654169902251611425001648000588567520587676203094304994252394569270292372355834678920907765125837381337534875986968550205812574246420564031752809914626872380789026165221686502122421512411240040285201858272781053092929189323263693838420380437047915844389440974871367492597696930291137121570451048556790411499678068610404588409043672729993273490226354407252343480807709600114907879855665080915464708276520874555662402034319419871586123720885129867320965251185244533491604838127229869082914362007890777024783056450618208669280072587588569929994653203501837158458946787707853290523427469892027883419792746949542379080531094166215907755630150726239610079080946440932031566114684460428080691271154193533298063789839187939350702171484316551544042640180265806646776800762925784156819906898380367090681770068762450120798004000686316432562569954677239784841276342927260850072777619751486672842124863205268522669888732712092892747154581323435959913462537109685035262138608952953573045004607293091081017166634099074821707577325273405317378436255822923218514041496762939809164166889787765811720304149785551363029935997290606419373257234317638614411711194307784494652671926262486548244429874871660161966030577782624844897012579431815618382693310703490001147553744977457961630990276073637533395114856414601919523046537618069128036097464488502601256115368399218034065772204065510287861026235966795072311824180085070505273113304382543497336993278995201221924051795008227589838837082566471742584432265204140942779050799322969816792938887164874662036647375184948733332538057668876380538638295983821386205952769877959279731233326132284681501844219255636389052234804226125732891865703948178286849958179231513639124482294271774996775726131761268260409941443537074231986012661320569546044728847923438073550176758997707309869986929879316254811309462990913828271414376464969835438847414062389057746534887028441214196799086705375018990161252592029856302676037773706515690430570215379603310701148082127635517384414399169620784962266109821832703191815574681108956121246019607932713029989874375178463469691266127809895309254008960537464167755867531533612598859019623529927437570391721990799573493221232979699171479699602172642377290517951004472765808110564603238864377632977061836360284833805083924445412911053410989263708258196908119502970736874839497907878219420785446209441312711381024007925487665865933409097585308626935685342963114072493618721437764087291459578372427144639225511290195680388115851995970826244011506274114900378941970357958314486438519149684037499131623220263807722409372906940434457841843864210446394894944845044893117737189084481244041887083505677937140478282859101626509282590031585647617190907147423967184536782191111178150356793081078816033633916116879152168392768680812416254857642688202447325031652262475269757636337684364395225762226292526948482200152303921887026253493444653080093475509278675356645395766531893520179269542947607823046413044351646877166135442836202919215134083641259320324480439773393331658633848593673501261021481750856024086327766500131847383294170792170737226170768621375617743297298726765221200791406692655384563214809777896050965416132317797394545975780110396705084651877460477712637498544375981179714419218210660080474027156052815931056023528826075374764277154100527537964011888229263960253273372140661153094112208656844941675734669075207170309531238861308187230323926522894472961841631672300897061025222416545282236520363943121152304803922479364918821996583607756350210786427951645690209555231373724185215048799098174123897442816753184961606783313667601793188894795154991311902440906007941160559790588063799802102999435676930682003313509081592696891556246143910133627378668826013607188887407327021797853965562859269774313685217928141114542703846794369203606450170553308572377879071542292246554563962914197753869452779730525618050247087598669896659151046658054405579317380017765189757350016057222444369280740034028334803682760196985766029198142375100434413926266206090180437607677821662359103647615583936582460870716738663636354014940797342308046332703059652616781676870656635339983207242520855904399412720271087570636771932378932402681519518816452738616081430780631817445680549028387618954848840411991341681823877940028943670429457096233284749319463027598062926989727111233681764200216839233626064669757759866936176053130507865880978656241329839134395347864616982261345967120509125938127358695994347067511005186040410182447770111420664932932067672056662589003348413038526390262320556574048128429073128459680931670812522805950236801069199189257872849939348756625414865835729298244486881152766518576835533115104041215207952584604990393652881956270359295371531159581229249645780659304544082662516679731693395342413520962722724524809819372999859944630066859235740473193536915008065305226439735404332434626535768753554815774653701047090177388504999816682860668529249912133963392727890284218965837231384471603549499007567885895051627445367847580087749599790955683678976613807593068817112242287077079071619250205804401856912676637974260189737451305158456477701005220079627443315534133118798217536084888222162719875302394199030261911146362823755632934552381113952239435649053066646609437042038592762144663799649963864125578244791808510597941828090872649435165688093246359025116548154186962537090288603361730503441361847188079303007465718927942570757365685292034063304702488076439300299347099968498321442922365223455039176864428992940840453609747130774285172545221362942723606398602177929366059986002093732732057500503639449787803087004967163891555673652749284028230662040374621526729547857241835881908850918013950732815936495366197201217013950227283433488094323839862863010975955801209189670436628761416402943822571574539102957658708024555204780368698873311793406369077761095459043538739762539537818666396051787941986816642875694711186417002656250005187901163764833389190305979691872916823125264373429808637253968599943139504392091373726362284410682065762657304121078533728042918021643733632678971510583819837911168835991204476644148511950980807078029405165591712131452334069954640596365494321045080441449648371560307740110188108490546202894824980942501693646642848368193397068063609916937186330980508658192520162554366544422278361407337479997905177415112228816015854112808310235894994195852156981235129957321952526393782316767811429269021994462837412936810461046322369625592499973158063448562655162915660169564341107496649881209918244217341165370759766567250390313261763390833156302547964687282826335495649270327460105790403087926902589153961370154197849580134469715253880045867941789382179728186459711622552057761160691753589629033827361113153313940682380930952379873757281908807736748867731617982541165645669324776035021221139066441406561531083127231067566077464432841841058222469743512631166317906966054858710697917387911446756079778495450805208151835080817219551969548001530638724518810673900261611955180953148257840502856751245903203435011584092285192353995488331239750688095665574863985998003525209251544611924309089603177813041851403591720703007014659709895656758768183692484651803023841507131811908391790065209413991665663905562660629867348165451659940686198112207150194735466623769395645100825665793336113613702283033766069498175872343901215927071828646150718337551726354820419793064825175212874181451950230670461181054515589326184465628350458233746815881641531134590255910161220009616291521041190279607499667269988083774393506857218356707479463161268719280927351188609221788599983209346734326925609719282386883080866102112062560093044593456284118738967116189104555574385369543181925919238229544767434900694141378388467750941489895058633541342997231777823453333896145941116195775782828472853210554421020086505635195533047467475496077184193842761126518344042035664682327086572854295381218714698126285621915887810507187947459037665076412748085284987045115379335490170726292160479526555400318413254775819760314701233996087400622788928685398984179780082038736264925585612083196092188365586253818444239595606128430480934906596633146526287531082173011778318565301662517758832303293806598617784040822519787705380995596058789647127803416965496662818527122669228184751604557501042579347808163583830207832400384904940673897741236485063071510612919483869591569582036912916389414639346982514677141332554403207947796221664040709229788661526149487250601994041891159235160398431621987048227415229558855738645446067966937285958626379491499120824555545318969017407197794309354959413475149967719513937406874014214910909663408639781706319632344655394759216534441207046236081977424054200290224265045076501604383609711584987851595414298574751722068205246701953170834524901622654310281900128813710460417676217748467914254047943514394173907823780863212854060103211398947583985289409814149134272664432374503802511343933970062041156555209800107712609707690587077748667527881305187204579334682400612152840024546774115195573529242398681551425979423983283620839356342969805956665060480722018047690736659578453651373806219672618339274853609199278889439813993411377006170112841458824360769950669182305773478353880345798956707338527981156547701865059050899401013011986801111645776395954223522185391884900876545475120789668366908958575703285331572561622438876127437118285165571501771240506394752360674551386642921950880351705125453835158332069293616100535011733749145016837619189882440838190296068670149370586409580322058960712796676662824654144292742579698112124769523689402527649937264159942707751725955982077304493657388934167995872246208047150043297268162582879690574149749195475616050605280079438567727714829771656996402346729104358733838860547038169844687403807567173531053037953362704684501828857971637736080499942045986234600812298981329769886897315599582585952499594074484400641915824646212602446258786950255301380954550054063325706289630229361988967633481942489711665586365580792367726593385990352222238825289578358617654361542119284251517918733848438282242284969781279491888679938600186868636537853942331932602015127303997037861800843899576812933692619602208741855324962420050610568309546951646956590632659735538009669765680815391327302993388135150049185416387330329096235351308550698683518827099052500643005822315785670792758069719063308619376554959206390664980372239280657774558411796670468318245272611278085454536764022576943031822563904171353738804717243265192016429872781326416073535847703940919437772507535129399254823556111559771209402519830015092337084120024707205243233302739900497806249498103851706443831286442901049796929750008013583694627319225618087956274813625550204742656762453027549923752631514103828801271338746422313624947249763066359891385388074110678748758370576656219765684387563444353218321198155110138117483442614080043090585542391932653831297522010864802376652557935429164684785904307287117613030040511319687378051713826616781359672837135052827219625216110851097929623795990877253470950158607291153898881553213129884498282184530166870693939299277514208364316655524725066371346951441158536084471202183226769114197708206676390509519479025137055294489450981720217246602025667739197532728620812702940450942649436585664206680425885871457991396359727033936761005646434203157960284151516484499851903903531149398831594914486972280845800116154913618822750035879932652403692170198056404719276330473815573084444797069609853322586227410055793768921517599112482232823801753941591992795366413753456919002563291370330367074124595242426604494024059585918384628029881752177561331999527200674795156267018554814799112784307839589257969201399384474774166182620710079280754741014859192322224787273368156693179423071020645291709592734128659709074571745347526601257007086071595070445323268360134737264478992719906165854052045985991028092005247356322298801158154996721490414277053730615779022677574669684006821755114347526264557368870662825463412075570329771693013192974591253968417747536546266261410539318508843098080623011125245770841709910083627660813882686913570536175564538284104324798984479703644998691491575970104498336986098285363601371835639110775476536139733741143941944701265092788783874566339087005099995188466118053581576373683773619015592218745198506933110766685424547039316035410788323126804016851531564979124943271243204083473817913115746984077647314358368212234576567549095790899071625222614691394647475108854136353955596369286188055907680168035248736155527764109815342797937540425950389811980282981984381993409222670342606854116468374913911689835652216670878549926446330740410371509166169045870615746573686411620696550590246065642683236776092747585572512734738611469024600129298636092104060745174190802164801913703321008382082976386718793225300322155939649700674597718286053092864435831895221723815407674350851695682015469543927489751732507444775467629933294733680251530354180732168718493428992211885274390052579763228679951936714607210012537851935302836197463239461276843069371664651483642284092913302301316604602774162318407762003543813499583333294812106352118106681052559985308615819908708666708851263936093282207511958450976777998077010301278240229679161003240562590482590361706430639380669052734245506478245245007949493776250705685609108838868532474603154620626501788283673877402141389430649221729817189746002712560450139910090069264543810468462530728523759408912820267115602178262263984909195834076398882999941581967303540551149450008390005736310235325190507137681601944820658143077120404186830479870002559124154309665048979039106816007080660182216969729755719685681595023977103195875213443155135985574545589107664936609683742753787835152849135855476905847781057899259314884121371673247558931037109498729255079996319266547134904925462795604330894992146156182756937443334287795745059248134332488283224989481744268813484308529733378899988173482316664603986764969813707600124073264423173521805084580967002036908575993959086662598236539935304599156747100060792647917439216308332544677083420663993347545793309378930811784410716753112897860605069194560812330191046271232201009889258178916457928766297830147967304144339163383926225380699830901728669264606097678171797744218390051484578411354463590091488931233884014794458317127463075972602939001933114929439894033612140457387771260272242907199483941836712906642202408161167239642309296543543284227944664638692398031694887103575779347708159934817890171565720998308095716748356299168453031624898244735132267672494746949089460450355091743101515613356603084038839594603727561756158248753032960695550115108982124229245322777258154787612708293438913988720759600525354605959599128944407435107974020259884744447121902004338166401904559930950851951264720241291203301542306887039574673904303029948639558666347912619042072670478886036452756950977432443338262180739831457874254225862912803616894198337873705855613228836650030879983414476005899553076357527485386536804270915109477313912126202015463547072852029077616143001676161613968972016341829411554703062514353659972936815754303943760204795919647935342563081160754243634264153235101993146951241679280225192822113251556608978489821117976968029510241171858852059630915586947537869075159401670292552203461688941668586350935426250758508989075669238844458689096680696557333022623457129572940805182486271789845178059828537167606345168660994132636180353708439703638376064891596238804775685752183753770955893960238413304363231626578616597653896010201490331990828375237050563247016989302721046892639589798207485086661546042155762053470082484872414839920099894483043139458185530547531054025357798529340250738472992920944137401384801229723761887783958267503965509428655465768184332845686935073400155892303689686208850120019426602883796252533684775148511394067763878188686323993132671398022172083711428654551653381725369918479927013767020907569134035925085579850904658822503984623276238695985636326761032048182626515743274094608430348456459651252325634810043853450851356517569938419491551421594413516902345291351984547937003909051413335206355846767177079588560060556713111642618665665385946026134097961149726940707492664257808745269099261528514150836411706914679665122691861474660163560114608470094921844189794275006896583794217563259577557914860115308678124961141488110752986006698667123778117096135586968526684380607731465008797888562529134982743190703856073875353471470914109307021410546970245962878393637329677271440715393583266353918336317403630591736747312659866397538363432322991037267972349913698014565587104553245033046063464722087166640425189217772538051815340226761078579691330886325035697989247653041870050301776326917190433790651811712034133190900472698366950207793729049035076133311551696428671965887558039866936618333562911910671923314801244378647292349977751899066555576029174045507583159668614875387064440212091823427519248969628949952673730751832184037365930556654416085871072331469468775892136001465630590651393621778510621108156850930752590721085629440758202966072266719569770305184915797978906143466194910965108272769456423871339760218513076719866566569824682256924390810370566221243835755784676810926347353435758605290620875186521919608573334239896430861530342077486807627740389326977047991426431643302398423110299902740031918572109966464277769735219992151007281723040903109980561951772484919403822642606275876187144649222635595673841252745551989057323023556828619059925463992721774988063270977260439454169201236967064910085022309314255133686249456953415010241513144370087705061238651404551307340291521441410521965602196385878927084293867893169837244356453964231784228666282691860189518017663392301452568548358340366176610290854371641393388217892818413620628578275194776939956104668801523356611301908960346768761674548696511986546206231387679099454171874929888397093103548679965488918299820884667391998576327121429476335796278601488814444936532560186170224010690941029715459686845571113277783473224343806963557339798910776627412322575776838874908905725705270307711831290024342769799526976401488523153575198347063121435933880139332302111294322998051208812629975614433405304525309497356242001127056364838179606111666180654235090139122230403001806681156739177844088636620972395285285654092570061189436077895926029267363913958751924283920868026095649795167334722852771569857228531100289021561160148820928767554170277255244068701019200805223317508455384279664054868593258833668607546012524158651568894991348850544547700935444720970272289270297663062337118647688442530646839791505534931998464965809910701298627130681121659115998060855999758238155431524081137287491381788481307304758150383940954643018818680764143110173633687347210898137787801536567230449193139519478573673795314289189416457504101594838022775962944048254199484890714363808580895281654709832985999783826794033756624975260149467144940325147876500201116700591377038725667721433151270766190085118784837306323791264919724908771348444065146908804376321091263902434012800088775436921638778933216825320300386033558024915112221673121000546040711026723506766127957271151198723943518346758633915932702034532180504118981655418067575748327249344230236869979311709113761733506837596402415470468018413923041440841232681372822692693099967804119509059462875358924366277299616226653904475006585357628185036693256033853910952408989969135101406133966533169464404985243094478018534066531447766903132273088800457394677934868232554226135662366602460923159982650312572755430589861306918839815988357008575233486659199681001515316461579865615774989855435566886239465237207037666636690181767504083193682569732737848634314959188829144959194034457030089505667569210286805697766356938945112122577199281858162882120098986372216381589903285742369317531932091919861117331439892802613216642943765686039773225627991000759467996005463524872041425641671056873642646714455803182480893938068574253067938965990076572093718532793541218632935841439040379651647180894089942688028218129087699672670599859106477399888720967988847760264012908249283238017875815689372183857778864079050157990180925929475804944525205331943302433123009023285802122423564139910249028156869312699709263738845857068079632611906661734954453730393099543352436169890935590128233340178286937468633173072402832864424941492062408089099973424219599520784541635953691902291815013809293251993319641824519866703616178482722022599583172904563881108065319539213171675157403982074759940165310359328889890383036613734065422296334610186873775960456379396742558493209924426259560237804407133887638498200220920247345360263331832306138947137105488841000538127538225597814321827952141715104099714103854613518069510411535617219524135531476019192542047449983872248321171794476193863137612294348967109933387111871505823496172145927701010286779954523297031743468194697550738433238530075848415657246701813031369697498703169446840439472920035197378183166146185463204787148351237574891084593296720951420994803685769878118470897757537978317415633426944086592212311065900747493719132314199951192074558389002054080745061306722855392989636613856517472142093567654078271272898444340487836013469797461712677596680582933252100164437821172789272282548864858962758879232880238841876392547335938776313896338794752905066207103720225035453574318843923522794217332977335221010561984123040217339476680478162748022825415330932994911113796885914375371741119379365527544230277804707117338649474999193717908163715783568211172816123988815039853493891834496334919108058581723841788432002173799545496160174944745225441814010194129903717345982820063365790918975970763131466220538245967451979626770589786315410011110604293856697421903153524070380572387451587371380490013511103548963379478282796347562777910575708931704559107558720038606807122997210248865916906260542975182881705150381059257517838162618669640879692130109576411717141844348554550953627380861285383176463688959516910039375686665206416710065766610148941239002591449026331199393958036853854570974572096904799838834697500549498043413151128664270381515739398531769671591681135576527729028427236745382345938577447450846370870478387114363937739978702169422389876265558514588110220023727724847311887059543643232538937666272940208528255531631588753480335767483088257242012560778837213705225789169595958940938846268981540220301431915641558221415178102064904270948788447820270219405465354131759370202039431743212856774976453536574084970953246621420249140478732164965395372385173332879673253531050800650899152482906985698037309674171316755957775974619827215945680443303072597480406801609336455291663488517663248590825457625438149014520363339648991295951156799385802063431751580565476053446815867092429828190716645955919546754488304805764111757741031636732847562667508058199927339470976945749299607385550709292417427624794423705501729811710601829010729422798625507112725804558514012698079700834225295576309289973764624631306772773446102251731192275563735481490586940036818821182713123124483999402887350804335369578481191294938666452688684930683544876993288645138771004846605427497366913696460585080866096386295893906824537192766945442589524806132848866089526914418312541465574535868925731667237542571213728985073717181497093637612543697690238996141663515613399926447587849790117311552555890279467355982026329718771653797270005779171316124784428241583202162351861914514461087395766174565816019301654891943439141878257371184592837306860229537149320748440528031717420917904620442594251355920646476236022681485483133384875987855891951948590083365591545921140854398621478427385314124426004884781781815144657295451164509393637230341735884865757960632589332893363292700091960833327096673263250801477095922023019612821188673759652908577249210459834374151727219908847544019296156051329516399157202138089983676855431727361941979815025037617340832531905496873591649939516050745066224701888367256118076930205848910494077006972225628238257842667715671167721889031471993040949597500393049624951867202683898073561559275019050970914743309457600870068331415998096505771172054270078145759643881664287120437455431133785962752679756887044369246802416215180915008418116619470347519324434711808430700152593616659284133902625818375743859552553982224610507427779330466729403703075518138156050729553332655083302644800432407001181436475690928366945638694564106522020527188361847590638458810078050121694772879980230639241581358768095021949104414844082705850997230375706551537931969852447698758791773440234630877077558586241848235314046107362605376488540387995709171333829033595533556262317917529654252151477991879249220151195603667185877926758865106158730113951461349415266111011400364459111553447819761666616506916312340405219122119384748632169084957668882664080775205197448129000300693494521551321967083359338323819973277849252403980777677508948758542891859342959099943941932624389096849960195563432288015019127205307966598218795748091140326165889402989166838108196161150271869281421078215461942517704300562181772506758503384708158162802251636049346284759670548988613971200151205441754015569999857385763497239245134519234694441506524097236581605786445986971431037571714938333826498681047920409552775814079794152751157560696420725468009657267137235783631398515695183146582560063902514352343135572608042752261076686036141732928670999886221479936411315759255225975444945569910519900740186011380905145437916990056087646958405329756480229194432449895682106341490133556319539090463003638893843306388838041980867792252090074939402260326776201501261455716289862741564603907116464821320372710357697541148219534727141195899379161549143473142344425884053959504167067448881059480444074416964925990882801477028219261002691980250821754768928708538491455150808240104130998951513453205150626131868765846021689159569960253200082105458341142594715292706033009698268111862623437693057157723859592615598276733436284921658909224384547108407868923748114998671136330159273139640632554481225904503885006541666318006641945385001491352934781493859132095956370165581170574003001443995126645925766390402289797235690861979465424943393780371958644910410658223517000777035211523570360345126968769507364127573029225940494995439532550174458812573619978659010690109938942467404038213514857525734518344288545399873318644638598452920714376226215506087630623058185358860312206775935895793118767718088918422207694317345131501863917470863539541895737091981925546497313724891446605704150652353025162435078884986128957933094487279233218265472338057637454310152328433798330395565756857625563826594082648977302071767901265025231449773490591997353133205378653730896808300178577859034486435331379752044247899622521723718307032546995077469983539190690919196916720618004385745331501402122523612339081240438428697224169187095399500601978389968861218596769269392477606440214124417018774989099282999194121921669512974138465980863311794414642516274290994118342809188850217805998620407064215151460071766772397699562516599186123672158467658891961901389724705800904174651690648315891135728486289402335031121652111794210246019587125507286273128087301434138168042047040749074138955257135220601940441698168694941160166505093066747495376356352817679838630881223711765707243824493052959469160509846652257612638727614974984859413478485395543968912112940670240242943405095275894716464786333839861308763451720466074458925607051581051262632276681230807416705612668585974969310068374757307716188058906451893159133103543958716457156699465766206209084938341442500504726043345839559452717741128800137103951726248126174261140857082724130193402611951559831799133166678201042183406416684295723567160303930565913368337530954821336318257923363864084575085058304432617149709112546719677457883190752074443192739410937746956324002563597938068279474093267932714730604030054695326174599320499695686364653347695378329437922907805120482409417442208580340797018301970796454168665380286856300370509336685125605892956663629040425100331762301298503840377667602092952552077089746295440867366333704663140359058802347423400484988204045058292556110069166577810250830890137936223527333874550759381163128274451352370655358942813143591559844854359766156968629325886493652818460590454142964000106778423436208307993315672461211415471362338993959246190288527735043095760364489922099505281862940517810153256861447966016866037425958081785091598148149502031231586519011617694164849533792167398349714689684421889196970051808196761877772258827151699558715887515375897329583732847381807917930864156760436471617448473870661780196497421565739184606801098041886020632372004620584875608359280750417970852984821205944598151598972993029048939201946053118471386596653752611755465533640556910426810093916867421342027933853989343017912363080907710368317669172935419898328805303286086383520392763234379392698432280240978132728516257762822395914978216925750167107809979834119548246005930840915291405578686796836633591634504957323814258258747891188803034289886823409021123357173143516873505750061227149636497619133400470480947580329013810693359180241440713142663900386835967819409705031530492360523756135985338248226869718230377930391123226055025664225449591109460352676606994952290885298537582671078030160945866549211403616031234176470411457870249335524392194780971402407743227114855607934627579208798928571161336393261376645606529844920039939654365240543656814748875620501686187496311649009502134543821818368240504431816816451162070902166941621044079763402150277021561110525637065302576583545180419070980118623827456703902019684053510012428231204897957681816596491475996923414004429880498859550206628400003175554755166752902673986343392125662934036879303935190316019315316490155218790724342830890468834398048863347576223325596987716821563034982245005455448878596016182522001454618888875633622617434643948266211668956189482181360608189127345213736179174658531667632412645021124134736728131735571687667895641556577633054188333369202303599298372384868217569629076118558555250632732524747784472881893131446390008762380658415717363227445424739416188125111986763406211953509236079091687276561458031018449990646680268135735860416781589214005330797678597677504092200390839565435065568373137186322168913144568457774948398422444913331842222976081241781168012461113457418023394663574922501986028959050190780848061889050266098173884131545547982054725991190795621191219648020341853397916380221684608465589104455964597602786536549449330794959247444564163353613435302855894795384797623283457350930968021901101588120209815069006764713170532250582876131524093851583358589864944121023550818965416885700285765973749329431557876933649022133850520052503866289793922883284960347661464989210599390551136417788909973297509918515209059306735049216741029156505735909235435816176137950913725914765253657152384513389844851955773789793309576346112021814075922988047124111378503128243821915815514795095582149398781218826071659503753587780881631803743739149391236865541343438587384159492532219994883247421675225705370467722359811840540092269968589735925812524791866703291616897915736528409757675696905558786761958523771737878736699491383902534134513333403849800672030880194549344564121117974441589130427065906412344107353582879061073674628137110562318346912040727383056262080992244365064712945197005269266205662556757335954171466450591977919999268256907272229932459724499514435320522414403188985325586931655510158324700648346283298075193456655624488373770723558953115551869897239072163335655102672944589321073866054182543772197529959333890436724319881873615639318862546972638577490785276077493554746945859551731227357446785550768257320181108191631363628452388171661101004339058369904687207814723142111411616064504053649197390227408995888932207133784124519880331986950753498727968990173826326113960393915373376901639006903725725416400063711154873556611702439286983640789673377439062943769519512232543481014414266846132046074083311914248980879310489398199788741109916648961839247671749039066909219053484313423953036299485115755991574611607310214596709133011633357577992638966448166700791844733502385165730818105384788658936208389562508184807976698552204028926687373341023922866623022525640594119908385493140886389500549033113429576119342462347311343116333590355707252334719260798945601154295091089248849194829632393717689539510560542071436825786572980926323522032796324559326229525515118555589589053062507293026183581529384735755767202893879363268861603744129001742507618268855943676866659934689998978659061498363279771399594171901186396817910065351172443226761946417666817161866797189604654041460402719924105462609006179101957927294770029851509875663409059709261609395629533338695642900588152764067214122082787715508679563808244788572023901102595772546042145857074824434227120603650797737665652941007622638306457547424063281360303774499560718500930327792093627238438162183962404302137893255292962028065381084008616818663443513223822756961988409651601032305783384395198128414042425442172744296498745803597078401749492913326338975966089665759735328271685634722514541447413351365694978267371624322966300389552361062775895736921658673083718627880624309750742960818356638148782494566782368629095528569812021443421526134644840423206397365652831493997247493904157039213904318693810464406459128314680061524705460057278805786669040405367357244060019531825385369263277012871521288869114528638323406826989570684463942675819169137206149316954927516555453657890185950536075340661951143952336526405436506052763856102274321796608829674353849592531992231135263997985995958075969575105662677044672453319767733914002324177824111350173036596003844796766953853250069747429178021389608508018737785769532235207045879887430090912909693412894919006859616077567056369981503888154670748593255217912085313829096134181041489222991549505779579270109583939310813598984182496751866690956971210352884807451956692790154719297040482439933573191626232559438923714983895786291067306933525783495903264052969433799420884010335287808673557385528382281835936108376287178135563452544658998630522314651120618672929713164928583098390871944919994257633502853553381189785960583455321380372037523758987776165142758082051624860225390429454559276270164323262053459570630395357512775266900794432739381231978785381709958228170214802394496723099011127368243792279186759495411839088065828585347131357013855217037422654327205655509433459839268249927129677607218780758314293949478335876317222833693642863236939006439584893547804243559517233723692513976280143202811870968572572199371575386083708732217698428751388463505885335961861341037618187873106893367937253773544046025913236169999336612483815741965169664771371200763098882281850852577911662376812918729797770600408594412377326910300652211527405289650873694130267305132318825840351176780969403912796939795217677909795509816846340846159131354695492657495491667770645273273196569307433566326063432474549897372986508104887642360217971603221669406174047604395307470286515475395761620439269724401794169634321158270932954408711868198387163840410471194664210960706445717426491991624695915526233254172443725605001769293651600630985706233487512011008469601595652429019502713244873180726643281271992819542220133246148907440004244297864220815316283815191507147299841005071132417981333896006880287532686643559103840204634072728354801280127877448969401078122668196878144095288183249587396886985463288439839345846830470182354655024852915424620613880235400705872605234178873408308768238645778546279073127981700832041618350380631484192325479953360626726609872182861559001126697162809348870554905893206050162298042592416781110914540752838932254436423698908305230011581375748997583822901320317281391857809445655270069390713558036107844429534656005451373718404774353425290082955550871269459215084667185825004435634839773490062488878429741665222087833119870774730738309750717049349531527419066488621897046219909231845042990893997370253113894345371083983818342531740292957711544948091544544380466201201126693894746858095789528325735614242569584407509076046155642088301228331554700075074849179368959889467776473841707663718177307782028324626765206921876782885244994218675969380738031869677651845600086498398482163741640622770336058274249429598905405282228398938940840817964565373970926283886158200259082746758855550964989916127251121807535914135984840899527116427572902886210118196291858889322474716360029227085619049240647710054481896741103941999029724816410931974452608744701971133704801293621305373603512700266265829136493657046601632112086395780543619266485819937306258710740738301329278583272310886711327965171587317865449806612168119652562898755916220830402997912299489902929241957435254017100775243856236847309912825271679281469584519083900627215412480323998613381232429375177070163272441452553204715055021753723360997782177850347759884015038084136711051897245492733264351114912917115532058303560849136794293688359791836091352126675467274036988577607654543137598445793539370534470040255224260198101581399312295239673921246583875619103828255357472339895860830376930088481085144121550043555667877316936697418329544075285237880964514126532313744826026485874045085079720321058773341535804991409022459603643197648116453433709108509202356889823924188026692877585550395705537640567310272917002214235157105667260232657656087133638306859082873035246811940473792554758318740568447609134375761247314796453204850417485701533431679852551994087099964452223794018824133054119273561638831012320309218248834529025256584820856901604107966635841407940998762463884453209910276206838635733561242567203892321269571832894324049454939660242302216723385556019768711723541985665134567829486139754425608947688819798866920131904905442823859920733469102106242393733429138610439579277536140363483663206956158841371944526319222620860960665855609176929510270888221715626257397600577666340205926933482178407058263985297442721997480935110153934321783572248334533721585204711845568302009482770291519206806295546938688151399578569356984681529215996149114694042384602765605987423344443958318569009192006499707891157909374230716867924754155087964399926809054835971810071446807609690284426943191633826560469602925464726358912448941296650560841855005074902737048288321602015920077820556342944405410409922541653458311216607916563490697906920542607486789511209141104465017317117891533171016604301080450506287308948854028074081350808987620815928748967574880237423925396648701139566638421583741242642870085840717080996031124812264814311225517024479006402955148266502759012013123130254018618789746096518224726284756095848903916736079216311798959698975578347459597189584380286778078209525964539579358688493716359581789330726443906705147981480254698589325464811483701272501699862440023446507440152575500137231512046350730152355876837736258624311357808160117164493510663780564742590406401006969784455638742877096123193987546558435505299942423590241484925930198729439524305167989923769732715879698561174559198075893431366355267506950633910567664450015493758403039584735022754880906308709313668603463788540928257465328056804693744062933375892520030342264328312277519827320516849802316218070613968747913208728874630861403365810857838859372270105174249960976462787350732788007698635491528549344698927907407070636594223811846506842994101104522109313248613313520158095132560943685638919714109844874297258102450933556650188653897768811005554221541147412410129555920828722661717684481357785177108648887506894270218382836346554184962516360142426418186944362093243186455541896980381939044565581013760720016374118290078913698762844015058646276043538039945275657893321696273104934685479014864150567540593955552372398497491307062374668270373872479777415871812944932045282528453011030170310077693310737389694270843692353679123790992673301795222524577471637437907874151158298096429928621080984579928920860214420980589621741102784278891833575982656102414178935667254789176626300433083311044946765400242731298202699587843784020645739823145020783218992806416188761094913139054463355240841540038274939752272263285653859471261401786226164119514783727286491724645066599984658676529824831062721036814246940876183280471887424547637409244520680007900833231127460707514276988519275861814320779802231248143893253593124957258525170505764530175584005581108269739499296800921248146976551971212825978920521950487069577655316931253285060898343957217899908619000662072055896369690219020212236426591888140181376023777006622423771394519060886014652199235676307367003901753798088053294486481754619133909234625509603264537286200635892034312757453584017288131679899314698545907852030145135860998111169118013527988631990031548887982539841976356378649518489177907553661228335915655386491264702443360538560384208746684538338150803198799780353801353082964836024130878539336554505469253751397377801549465893800612326509652518994644104069992141135272105340758582979364542237123977674754115921877975457723297883859544885417934939318385860029021100213642832266049208408128994148921456496011521971144407359743764181336829318072155173822971089210512658193454142337355970430527237187812423867540295548357893742222386985714689925813199832800959220761341083251508314856707622780106489963752759219417316390275406444081132791997882445512412763499471228095333699631725477823111474880287397107607436539756642217442656662714493081287437460868719803124911051365554695622644540669908805652237285209615641957534774684921581727607860437247656434911512071899053489841583590523808988494790623023737578177685890465985968091229586887221849540038384022762219880565720494027071295605240391789701059261816372806498627144732752506063285901585921398198233615559343308706722393656022812220403298471183155735353908518912392321554011889026233956232806348521436311117234360475468916275891450999385550375925364152842623496657954889837367134246678096758917569225042034300582939311017221210388174649335063298214954863766653533810553453100615873200556529565733183570037974138575400374512146553989619004208484933843815068945216119280548917955088247211005514946950583391228663572644785907837595335346017029262326459469952146382087060951907430698234166756104488754378507107420795760093401966594075130263938567753315629297655797987347752776263249099671916103937734718773775455110870442939457676527493789552807257531462163340565612305287725544494721929769741697923912671434346072256569331579130580235732510643601078752615936458739775121292879764884340984111547749400785436795014525243463156030972678329290304094353950742323762391285941537031481053687270081164608118939243718484060872429871585954310829441537858629402151209044486821330452032060062647343212339156510210877350712085950187825035415260279458601285805853926637336152017320654760396793639993824287921445222937308403437485746972816590264304069119368807280047931287345115067333663962668429799336335406990948932891817411803283090547453400357899918983326621948343880439890937439982361273952344753711340340757426453460373919715606779621999110924853661892440352430510712179186333507906186019848164745767082240842214767229696161892292744934474730388180259808932645176761983659839766322655425867274266004770769023994664981413827143086326262255086621749841593714860450201783533101289854632992052786272540903425835162501832959814198101029085957003971490596847801491678239816700807723130830589510908402416252220783600313562638843501373148650517940448948498122007577920259111532209524672051159636574936604023687054364613978317367756770920939101297894917630634953780224742652309337440906231074151279355757380134746603312343984655564113749169158922577385963536970543449530661583873936925482118477245669343550278185068076747381940303408198470109541768612599599687966727163897477754856625671517666840052730401972418037031983119748639481084116644214514164966890164759298234073842743995954289842457834596404801128253932302590037261013149735655874835595420516661035534706731062180053821507515863437829658290815728356067284697914538468132257714243984373012018888617048707768489535773035821947122724872163147478910888639251813772470300651922254838002373413924512370036712429545317903238891307311082083017414564110482752262396286262527140981562977038661984684750525951504810263216657799967811868693438232246028180191836167980423137646509889279786826050529054756585840775505740963481243705721411081154424222896317818385319618171833360947649688175076379294606465114849960503232706435332099101405829425013352599256276107267168910622119345618517800409766783553899973715490574121885346999830067474926425316454631129499621577400836668005418058714288940117615357754916492994694860158549528483700702604239286804085015406297515410908055567246871594281502450026808739905394665302764581168219743880963366029049769688563466403608694759492063159835975931874111923214043476716434094025821891746545521073174594867468536216870692464432939673737056588509987512799410604901549196676352002998994186074333783285376715495149687352634348701486262597206547389148026712962569829724985536647865891604306863122135203606215791778780643390235926966093475125754468499902142845362450573944029474161962081317387608441141411702891823849822512466856138446003953768773611329768318869598453950404458881606694182244479124943920474469525190762510552875195778884268733012655328576611766881569058253148549118400703994062644741201470132539743009031821370072060146143451845044264431823214440654897043212834902471242777138309593764644264121302926704834566502710346507528528629811115550035278745315490358713190776965031273282931945200115870629617945623098964667458274260452975600214107619563864684110181350504980747663606096322846752495373724041889383175596661265730594691332016382461841429415734869819741076667757796070075684315522254421003385841891045801139157285856884364068213566449013129891150787997950389022068674840086361072445884930704192436774034803910395142371310717316888502487288628431637508360041941730074567157763778631501247938437730011867546289530751044391793584052224964441188921307880609307669063302275042216522992447230161072621807512755662355856929050455418520313661547353827982442944852157442635682794122679215579720788947303793498922306010508269461032978744016267185505803129993682816900679338715453069349232975573368030305067865460289805585145059221212602012842592622675222782559523620779400550553113529070653522110797869671699029600797173875261006387966577818628021041977879765814352005534259388990594427047381398528753432047673603798211083931540680062825017119954507013148575905120127049588644401059150193719145384580677390848737498864598005980042142758489385378018117205675593704717314164041458360921423991912604788358358944362776495895401156797715180310257933773240594023635917715792165440611415119170307834936655090369323145558344899779893732474442922968152107793879127857916171682008968388662398756884948779440788692122167177495558467131490477396438961855172226824887803527199764012672205996450314908345972561661488459700238706377993729252083251451235503715798072690695860370712938829812365096424655700881009313029897271106012669878220290801640107479882960476446706295105755064923922816654690457006633786493407689919461776209639410222599795463794280087733428196297486962624682052298167785847536139438694625456750207101107619986012336146243004021380348605927068405042655552302569628442680407081640033998329623368494647950840745959654678458156528981058779403177810412676098257275607772795187677083594354332318031181521669021503183837625516294939544817287422338049131828643506603382084895414268138101487487086794611812870150698156493241750242108415382504369559766715704571251010590401335897386811255448265755112934374055197562729276130900210796651129114706033233635377684044681448486018887871086215323259522410057222692942680170054655026369763409842603525085838681573642214475449357673117332661568806394448936606960794633703436367050259795672950230317869842795689828007490878707544276915429625909077989634431153670607054289282016331815103162764057811891773476970693288930878457800684583993848719768719696430765854940995856955099601048067277060226805775859085784111448058987993498988393672706426950602792255808708652144705359674382829460644936051438384371198809250398572777192841764605417881716182204424885522392614694155232994906152122435917101444485564142642319518674620885748964733618479145181062273773798329702075188610518154225489038682376112883587747875814017846781581714453160429936351653567945761258578139767388347412325604010447351207603632641488787353874269614094499434405032293957178237121427254904258147577648027783199490970189140978176832300272847521703582599776713998176617632937774992650642069528681034564828733551062364628669788416952827522679206550338687188062325725696175009664820499559734430313441015643153426033162346206010212481393825032288085484607452675545212822431766122888376992388340894982302994847300466286639381070964226259890963765959696991986096116079804058576059318441228711979726426765268128420338239352037993106942437134466799532377545027514138488614228600985110144791457342564121826880228134460695445621194942553187272144465707776015150385305384555416966548555266246922487240112040531807811825239100430109127419938836269898894949331223022066719006248333209200135598948290539068695674091183609617315222599691335914267417786450157453785869697779308781663233226492948189101442899730060315102891232248123184524193705516712000980638838593405764858132562673641825499917978880633220920128523702299207589965724196232643000982928127964852511630059740595773394515354033255156003507157336739331640012420520713440403987565863837534693608330531702600634011901880478704320005836649930457364486535669201828874066846390957560865546819785640030943911601258390668297198271577315885866473683221625074680315170495119354557070652739149956110301780406283309794423312320204904906088386855336600196029351498570681533838295375878020600003664111021064918038838368963510197140185128423929790771102294459101214839023397271919419012945134588168992224482898401512494542213900142054904509170413099286922626058331561561316954169663768499215584164057444685526432078041250138888665504294879253429329989687974181019765715819811635389702127850312811634371622734996563710002045705739353344009552285535632132462656337285275208991765363707751378687349981610316021976277992238476567157199639830757160952861850300302322964601259984895076564347057232370698014407531715375301175374373827152726152434648017448452470705780934669818754922746471215418588384829562469061451615632314491368133985526964101389958206425117190943271831744244316623158510823056375261656925441223483392040454375976479997339927086292509258073895818552292106609035415029721978668440827462639312615455166819179077447190653717787185145154267273314302247809756119117810549317843535158666409477014070961222734764112091736434762853850585826011969156915875828324553426022737259885151991459397776730151343442331092413406096354003678257316498017973444481162633907628044676723508873820528240156649193456812491820676662569843179270223895479030134778433407544875736757096428883879659793308988589278743952178480521818702616547261970880437879850734975341044776591420949990419016997250781296006695164862065949526320646087071649033918303828558827507660566948862394325829265858769782967290535182958883644144788135208810079849337130130573266236403779118610145396206958072316025041730452576050240726506396588221370515313250502415079915176397538645564524538418317407629550251038248288806606270056564793206979648383033726784471538407607938334098836356665187639925437894468652824510833348388949379766845013014028489475112068906823747199825589512268068975467299097322675550453041238829330950750541439453039398985723960857698697008906600464168048202866740745571635813622128019842300854167375263040978839841160612652010883445737189472961321826515703835113729653903515998489508182632682363816279584449436624179247176875622693884631972832182821069251029945925667510726297901964743273812885488577343475786230769722250065949926298898013843031260976830061041534092898504063137498799739899887987466810079048028665267185526081171005516454631932812737047659341583930796943957256366048359310373581369572149515683941162740518635596559977054153651796435102035441674177637694929189429527434484837825250869465883272291431760043895893474131098426795170615295952132024767828028107913027124595335603350641826882901311342769761614457820167169861371085561667651567738875402615015465677882020312906690461863004830944171875893008679175949981576001078784290354674812275433507824874245944932237063217972564646100121594991694964604429685538920455865316671016533143140068982361786610085665952536377954779860120211376088684073403872400927282597511355307479328545714634456721220517148013443130170074880585388471213183017183051655075059255187777520337866809888532122114771989809827289684322998017513462725137956580688613903856585455822982897038139285880366236664022772313311334905648640320302515185545749731513911533485095596531205379239067064102273590760078016946079814678964249354964318319134029474956360030038405809573610252202015800535148234080089714485620455366523863801200791072446161244492586455609147709438326368600528586138006747754478448831753019926033898267028872288062915875139333304261039470703195323748426548306793189844612535421440001946581124025077882885757232844321237930091435025923793835385319195842605418873453578880909863937513664251377104229089326460209668158141222077483824673444463173442929848588631788579546927069773966298339729894184536042899074408768585615804661587950199817241040053716665780183079260260080422418525481861548483801854944157268297967694945928926904711005852745067826288801881764424310632316624181895227918738884186878383798039281227915861058717126016121654203487977098960265804108809953416760389805548613213789900588207841913760548507450801718982336788854335196989423261340149033785877657360114071003696683163862829674082291738365661402813070657260218656576959592710867400098512857153888043371720969615660204304240508040759608447692728746045413591574377453703620065010537000363719407160148445324064655131847860719563640802214079057825946520315633787494238289464987802587123017363155696624564189450532114872041297486527735943925172544118605782260090084224623427291579906322959654192577190707032376869200069671366696750346932992018707011084480079918411500481802239118628448875003330191933871270304484249780806153389196577879420713357013187181763127122070401249947186556285626680432229319756029153669255626582668839147215152478996759084004949641770719141564633378096831683810337216339847783804365449503878159427384012912538336681894445002589562412563491040731564912603893081986367389483135746898286592947641999623313236728589545870162301625957392448116766998417713087434498605541443312419596864901106993049158660834156656880930021658622922986167786119039096938483618583326086226856894575222528042710650617402077771566137683522831650297954192393834959014161210592507609386664749792643847418513922329080914778041233552381848191397356386062836677803638016217303981653223382225132867790515844071020350828368222666992700577339530407746831747735285124906110917892900933891843048144641364022434267476442365999772969141564332730456558182386484671520839515521615824223422258521848639657410776105955281714761356087278564630916615904671958044792197586914820442893843151120924791148192936452728689992351001577265318673361165273743940923972685198744676965944532739105552816695823068265521324454825432377436077726480720550369261426984621528583436403839961076043918662187138628293546081738805505643745554582913930624558520718722013425067043357643423183272597581652826810198487430311299770767124823987146754725314284169585064564881231826099119164684677554900790556030996743254981018879436730518651882310269635272154474199829656492480833310664569676977725836113595688790358764603024309389144828029563576556391670998162112860747540257588356738948915585447994205525116224145786487066719061202132431461288475591620673513342362606246078854290913116817300120702247164572166993516439423955393300505662040554112640906256334388041351320226835614713134997871878145517997512483725176092608654119346319606454739189020398527785316564418502788737155661862655234247992476062910150110847242558821539509260052048465282152026483520968166954718163280357112501617829323879581734844902467925914630612816395300221944566734742238886560811073578699149077811038428144043638068184824813552129855067980064502205519166916123612792278140545558101105460445569438450420525065741376401301754114487428759464481782693232920427341765087134803687060097463632207504899128174665865332829678761008066655815835028081240724308985179072391968168008973280184790731945455652027229094810381166653103271467068067637126850569005659073819687217496432972415278536694595614935230186364874615546928866392909416148244955780818335671739874378377382705857755256951871460949310978194537159377517795766310859462588176046439672751091511125030320927990890600303805240283796644467239533092978378874083653053047532880742303268406301229184375163964328260606983074806857344573562020520839421496468131830283554745531628241772450002617871977612557869626294840633564199789693975105717503340851992983004538793849280026067176650101439146362746866729323812976932359684374528892491882644680556815203262160118168810769089219608450789598699623198263070440649786634881186262614175603232573900967797576614798628107055628656378675323383354051478343827560279074475465457199927899447428817983864464372834847247377447105041888553618079572072025769270498611251711629495980508364155883926410393528914450078340049239202475947137792287855630826852266903792615222917614710968069840695073128953088382274106409367003084247762106453268414206175471359982331136456294169747987593530773261625609663649596666400614197239259570636847267597640577704125606515685041484940354847203971085685267298454825800665568276562542013107445211875960406216101682324343380765610731566766011557883182954066609883235958792730560792730280401202500071085734966934189901256438619690931300286094798534533469391872813700763134519133706599034382220358034881872910550739242686504407876435649344489613330260490011770927831345234217303334528537853464442537219788880089844082448836954232529542805594929033968206768906548137310529802652148993351850838372334867807533801831749315171882387491086637900725240580507194765635516012220846599491393813793383812068436532017142779705505527239545832270382895165605886909068047638357314203691828758025929914567073481923602815417309998329931619574928573075992355753136549712268443327034322194254289219690720240479506953788552700853416910748172627390971364379769827702636033515131108567802678201250131142607511042552420906410604693995496691052118741974416712317469621884471073715644860918863937231689247856996228670765298695188720749980329309526144218833362171043364887718156425278027972585681421794042460109480693735063550026865211028801768299797186503234949134069800005106241375459232727127157550908371425780486372288593282648625542669988807374085671525906875458736600012933374716062748836107447301182072378866520089009146624690386936407562643799742968248939775909416170906961957510192503755821407075037323983685383304221686800622572958274467349861911745957318132226023260183365025852289584752408563351602641678519146863251097046226886983405501922324361021574905382929079948970921779040652625678896315646489809872560685237755826206340726968425367819569893135008428116123917334958780515157288860566423277297167270083091389570369407573819114435109494121609291021582712528930254382885204744314553356945372058092903701689311173225717828202553808738763380499809064827448362574864699727697567259352666904728021703711453627573608367361502802294786384820795281199383341363327546938249244206532756716126277480955657241470341293121543459324354261813882698953905130998294209497594121572305222923044684038053814958089494527783445897250237151899507084718910933759240881329759249136152578240407239902790802243390423369396360523082245281285014623680862514620451209348991043325305968818537553763553553328041834651247300555785091101783430734669329710917005006071067983712655069114785551900773657336494524726657668707277366062506831849775069023818831635953319849929616299882789167633888682680829405597366304338349292675310151753767578387432390481487046623425227913480543820475518612274402028330734101621972702837266899764903896837274418450918878451401350424416116741968066882272986234993473754874807018348259634202947683029847738051120829226654106667673127017220156332444731209883449999777636581560495970521158102997114644674461142788049769031525598328439643932011108434113819488281889513638624177697962534722955303281752713241407363499946531390509152915899564237536721555365321614149107119332120926890878684985550570161102543798107701530370908254512286728773378926868873505396922089122038049667267522369073379476576342198627021743234334619003195160644246257045476530096446546498300295421319935633455538949847884186574108555046975323554915381428374751184056682668590581064323617649179286913247739991646866115588127520900978922977988639953549253090158289437603004049611153352887102481195973221010933123929203326312583065914386561866732552885902332627061852084712194606375311878199740433809069257211751414700595606020442953939888651043842955071126425491461748151327330966964488768296540207496528610088238522829132558412151955972683257160576177223703199695197257882258818287471283434900733837958055672806324237078546443463748708513124293054463841070322373744711941024908948099930446116442186271826500950662764672599723137795223063152534137382019429445683314470717205693721479119051684253202037166524324939858689482464212500131978827141064473833006255983467130780839942532539712640187461722226333877377925586577191351217485001402266172752780798858051543626050356000310378358953851272541093478067560342386442159495423600485409965058901743765256154499225605877851670417636786412006723715085726210164249325624347240288688164659920318260744167332530605812766185927451797962080526288956745000461859774451617940899767476928685453644807939987361987598372642402448556465195155434315143713146810652878442812049143336187818923289793596243164649379259372128733442581076970942727601319233495181484574783846439754840253059044514009542384711950918542287136862189475435349795006099999853003414315687027423329517711617291900712707160939323383982986267873849506362943770807719104880542755679140212136127247260571894035678365034599702582835966609521282462113427949683073253074191054420719983934029247306933743406078408437330579702508319253306198794502360020262291739043656527450828562271295092144648468068434299847323683883388166268480970022768939227243724047784456779296271165363087453090177837121673360983219798897310107312206612684978946053980401707106732631779503940465161618309373044457434178324427084870379097545952870757550463432482941715420513587883520585886040746629825284619215245632119497543666216925080963755823430660093311429271980963855868487093932221380579463573236196113320251442659018071829643918093609780394112089327903502744401414794178613244117668371141677843168059160377667760127279511877961747144748586158225617669350041479407742728790125381583423056659986441552273353882169507338444577191884339026236362061041357630874477074260854097798552965219103665819725727253970299004866114750394635482208465741064072751916748476791355709247083613571405498056880764574572660046026357723216271367408411200483227828023567789978510173403291694859284777899527885245336595643388505322061494629549834108575847607292987729976085854213714769330806638028708883289369488764460950968524083296573430880128839284046844287905754756358513487509127663559492139087211871461379061834609764221486859930880638950316458212397182996445205431152837636677733694315577010075935220187428924463032117125138686428192366428139654119396850304738537801001468540224413276633859986540689629231518871596103999939602663775683406941675432640422046777023196094701455995471314479141228395662641178004745843332579365209934125188471409752840228202765871881469349041429558007199793336888133512210833274726585242965016513736676949879656865852714359985236064790036581104088738257416546895160035147027409745550840183909608460756884234596102286933683326806508716973692809501424642596710658978100211229242257109773699514516534032114269521055774947083570085862577277506568800344373616529573270615529579179689949429441301677904186202890458330438008915633657012399880453543271765308100196113513463462813667126843430862646217567516278854366127970404421470552624317385248388479844853446006625374924611667542536277150372533917312741867886368044536343513777071684640387807009652347027387146053105183077323815864196119252386043330701153651982854926503703179857831548067806547162538340630108115075651580635342484860330261362997901127317098144218762362356660454297104616387586966155122570845132455440947298609758647109332386283143913122343949134276190977407431093949263374658961069702860207566126323620206130387824290655859321005478022521459084988460470238966584615411791218840290541725502477476965227905280145057008433441527213460455178123742330038862371129159348777095615783658715363640642129897514379740231115127527836094579580798498424517760570584877713554330737843065281077112995449555873835344844578940973790408968031703412127318902797675048505479216932088660447637530753613756731645392736434365756831961030506821885949499784434789742296968510543643180154800414365045472105505756127633609879559738089705789112970835681088292541169859203094711805005699929988485865632673171710749532749761988352527566779531732404266544353392813923628484319187515387305892905022396013694810091578924158822265918309548464941231874276559715100768395283129980089576360126198376510211192290472578361493515628088320072589063569988821478444856312757554744958931462789991912049127586810022034555253804034733299824155765590743190210533242598916708954402903480760278962983255802752858839197369933377114436256014135801053761763954064427959757655367571864332093156181854583994539700217236844253596399314133759998468405298704564914030634847353913089769685173418781942740485480667908900615948733190791123303476034193548663176773053334654789758166412556401432107840311156035997105526494724169845958370822415461319659612840292105001388790558457319872093581012458143441391333060500887535872923331352783208599925133341783051421990406471480717069241973143089772409686949009885531533690494572198239770910403756398732168443920997874690841966836739548980598243679650901122017374382030222384938133238820287685607011927257053236338142141554821098622821249136499973241043703850089025856588817181671755007123384562530293107261443433842228537416750795637369070386601455791119704889146895764259170800448456721398071822067889475294874254660812724019489137285886187537839134379083029557708685921641861169795053489464552172154577845120934517778964439935913989856339376318793102439041207414577401626205852404348568458723694050846131826806007943637674103983355546299955605531040768247489646432988567590088393010195485422419542091986873974586098540798473150635245187832977999273909749686239294289262324722623581685199654927009307658920861522775215771432467431302710351834040340073517126487129720880404323234786696059766457137648711102104491383320213991822248165051680973355467120056032955554628526375158360511720721134039754870660184116681046350898105034623669531614267043352575905660272561102227817329649872087571126082707208570803654128557007197691929635806583961419441524766592842483724734632612374584645126817922705564660620527714379601626436643402861203123211511323269791032855415562738589798587543842428203642883050390001272740999842423189183123469406689326915469178188200098296389760947215965087521437911852917565375429591157791126303223789626981463557032009773699887516304610229680929123000973591636451829472989083353581040211369480599030261753712429742658667414235519375601079911628023866988370869846876724018807292522223905462584238599338944832167931461494768230448248242717526343961294129376874739939205471279029440425785044776990784234399296734116271970872263625542367178885577338597793611552433448484624378169202036578775782663690170275837907651889754472142907412151222581582590508108692570415522281019211585717426738914632544730678948698709620614747280313831227517717320648628260357822124719015849908410116584011247357004512139536334646578379994040605598099082112512201851160452658187099984278004018919756936400758277228277220080224609855095825108605342989730237044096813584720881958713226374703247545011438545349709303728562297503173320083453131260166025671405911479034070245418110615891981930079856679740814331766875161040374687783491580526294526917269178592036951888349968500714497318220049467245120703309303741717303921249858450758816560887810187019674257031846008303455757270541384990865982279132893012716460110447996749767189084190753835158715343021800483402650300497773430509531237857059170845278836816463864274852889239828505686672449032558322309354884733788968203650325009864324088779335333348037833749540872630985418694719036465755909985533911154910526245976910750990798090309254499668047310295041125443178430834866112876143311284021183907284665431806869018320072105156582401828449352552650580989154731433406233329869218077688979260411618389220384517254299354455143658355012154356346907025118369360696434488012975564823454327030708442885881122237513340113715832221279472600054554652882682695170870175368067409074093106677396064299691782838989828941756359640085866296497885941700050383695038570130340600327596428666491299348117819341932050634524726348926940718254035652699244792627072036072447349237941954219768432653366797559613692567472259045525186242810606791791722661032731557138587050085955214243127138858528546700001354079969840343076340929866087963365433136325869809993521792954180510448721912083492451854110869641485598377197746731430125012722444207598967634182790392555857107574342229641502592126818699364243717951355973191347165054097243086718673631752119756290490219277345395840922991646079654987095275822178391293269413288930101720678290896970879622357448895612428777390215249549154519400783046349184466685481584563669518438450868428003855205205200225051026979347572368215055363616274132627650515027175831807676113904303264689382010032515930990359054726832345582307933432730194534914880158513639519933871373258925488730112797057806059784848315161410336178753618378392320003590968475302566622921204387086840878782989942087522531540322396985666266063993713081807587278961951382050000902487825851051783669208600178366170840220773694689485799125028402044273487005885942190764891756465539921568531608136228573484432986130286158751819065450317518167001809939088438078179191411923557280601292257958769983351282797412604612153341408704420389752319511725382570712049342031779143999754440520980163765823979464462736249973840066760878451060321236707260424652213780018088861895847303632059554553705208545964658827728243947019609087198046859867122274455778769237065546412458778603717958710311283163180378118526392048431870461005830622516285353740696864192100302166269232562113625886665937530874728452419399010907928168964750620174248584985689019076979474019831753140514519317336843083044738608649195120222018918904291974993134710647154308172881687421814199067586270192452368493823430063009166584751732705514574173395174021757897775298895461046532154539014896998970336549117332600380882192864990321150068399816721062837168515657127007924753629893793868152750400645588028887727823050062670720201965935485908822627822920941774142161776575544911373794303982131767110835648953758805720647319108284284286580562965469176854958458294933260451487134916046148817246921509865285933579502900326459099537226008844230543094439317837284309905833811342936443176493621225868079938037046443885582330362431636179602589642039465260614068016025324943259235989731848393133453230827048851827062652860312850401321753334878483914829226822716225663801455742647914886958553514679555298257876469735029327891150666244254910579909006858219911706046658140493455727012338783357241240113108832896768325940077040440289758094895994596729699138995324112175786311921766010931752532311707625713350224128522466290834149745948912852901753001555732095329286488615059824391094935184293286134284918868433499231851760380514779835329156061228165439019375242739049275132779125623761420526863994722048671201816541581931214013141673978512500307000069701185713090262836072227952108025954811792348307167579826511607689316903805178109781742058246170143188214835151412670409716346468974713149000010286507520473646470980393133748580382552633479696052792571401539615937450820292475359624997272753922032824679365381081286205127338076573141920161213569974680054116410480335445282924725860619196468549079759748913819698647699912761691053171884781736587515226478286229553825244883129256679532381489731577084597896345504178838089247563598062751857894967838614790145232706151668628988355774602884262414488640960262452742992855418788309719869071792893483712316928532757886965410578043702007362807634132353921751180517568429142097195280957040803449915623573575973965167226709988946116830119465383586177135808515216254147427817867886606627799467533037588689241403225504649429110547951795261128668853963291272271629814166232568820648120897092747220799133555306231648293596404482063344101201715516201098113987585280321452239667752395661746140896078960305742986711772581439565368354561039452390196148882877165792241657239662570509017155493009707333738816958502121968344098217242802666414953977443718779026099947664464353485051580445388417664494628718074890851458182082229367620465900988797094963936832581078687637046166469968020197626503546735261027653373972970373729723893080575209790907459664307041212716909202095896289234852846652205656740888375543079016542154550634758436240089462732675819791341418616024207565492977608597826743301369706023957623512087019045488752997986405921958723489752125479367561969141625157444413160120580790843027179069696666452715177246376931107464407463578646658914316584575104040357880954382971845496447309172326244471110052807279124856773047365040883920597186798786059100192531640615099210262922069866825524259819048866799869561819440632330371351110982328379433724404932175309477312407019991742724433360158786901911753444121553668989597619969528881158392944613826384081996236470149987472570746618895378672680720410391237444071015535525849120886839912001688612618183490030514902906366441579561396314450316271066009642442038580265973676039279743183328866360794397265366424981629393712245316609308436397798569806149726245601917974601550365554428646470276799233762690275410826128149347106545761451943439245008009701627274367090344189770149083426507600189593027512482316263765953998235187367478930518391214176378572554123685788754374715746126230038563449716519230216467031792133918355829145950749344785292203729734601927956492349558839554832479828377653859983729482454532944101364395487317183460002565976295574258648584822555973047165430874137459901798652870655748362766884468573420519132046133735983309739051531835616477766908542403308723101656477092838357491598421707184993170523679113185340860345247567265860132568358097138127396178988278878043476160233518008152955965692217276673838425174797563075143190103863410701064335516630686925181084227807432905124351505166491337990180613606704775125717721410426228947470338319628296705000993816593421381756276988080210113052079608432004241941275791343574781385908008382925317025232538389023410350669564582434592241817594929134895349625941970686080205137632488503789129045193094103842145688968958088244687998035967187775512872322113481304843770412877547186820196129813980313576109618614009226438244942777371051492445507828530231383191237732136565697590222219540359636210221885935510940286205849101943665333206716795420631307061249809047324102956913750527971454280635277515483630424795787685425010957198891845374043586363616925393770563976939463601406388857105203959280863604574670895585841286512667939399510385169903449087136600222174568352774478818117219421412273998122838669873684334771914291458054725701211760989143065470027387676002484241387422632781197131504875893675761706039287947634730102553767406312066872307715026974912039592783021042829720902844227096623392246230077052438187702185365360521516832170233273810891149549796944403229773571494641195191057236763812484990487961871594078336772305351214723320388368563799532559288014718534578137583544701670340513892499818390148896498449915498306413492038666862599522689108911957652046302423016372799787744461587761780968445996777838355998745339378276625517207692425316883477945971413279206941007577299714178834311816595539739329873851948244328510908915041101465520884728695455758840214521902331630222036888633892230618235959792276686564366699022541072286946725600602114492744315778619039996672926965732415387547107190093361409981076825147864442522199710084993217436897204987234447389555468596240120115964828747938486513508314521022006506582613161287603571136651969222004629807356425311448358568729141282406164708987520031001079529778639875292486248014955696802985591243314316010219832452819840743608606704179742033383333446704840236590399455034528504909250977551140399624442910206073502459651474128693809030391032581436053772508875596548381834638037357193218730422335777381007628179031445117321274565494468451791819509288293622087127051616151617208736918772923001138504091169013957068759443289744524968969947874214787567116069553196664799691029710253115946917424967252220127415232212528950127992519554356594116445605763400265695497678130564409484468699408805805385534071132264963684677992969445019236482429421853587569697892196192109638157685361420241640719238712025308756307105898975116005510850668578521391052136523008589049020589419769706161992744771269875995998251658676761559115747752210452941450825816067069744906084719834977571812435859040718352184614594849128280530345525047238307262752349355919434129719928400790139295020616025932015569353168338607757845322804463220168017523433678225725265036426589389394946464787837462712028629713370090757686472378436859220881946961670931591313742740262080192371616340809082029727389161663563265308305842741209211364494951269438658571184987333483545956735872042449302297426787090750010478774411220926092643401596946646440778000325931155183516412098182189186862284211768458774519056708018559792860635416339940970087798221970230467041953129891783221710573450679683213550553334589573339952125091394482718940997093530417276352578487041950688821322227071354897026622831468797542651692436052632098102461789975664021440809365553584273114444643330669647252550578779661536324188089963128398630110701560526200142322609729057686717019198910131087483529191378607165664695836570157460956764631567019802657025723764759865147247476942943480477159519837929751905561841277478307843783080012275012052222382401757070154545421311127716691363828486774251026137152440695578608090309820479728867071554508595576499386599986569142986862545717865075549129283723748293362741756613219460086105043187548103193275864718533987777712438746499573131074500813854876660175631089227997421194139712163768716358356779327269196470364399247505720306967539166064496259646006606679405348384280392048394855748838567233157469939518640397470639945098283946668518815028993500973398710800849011244848732752196709878047488169017408487444302921993150980926594370434001497914286331840818598200532571140967989574450638824284587192843017111789646788649373503333337494523785175848409245971569909662020813576301594782000129249880430557147885462587662916535305691936515700340590589204477731794712712757351698242625623479241509047805847791267302528096779977197400983345403900478486981948250088265208424342544173997128101867179759720343722346271034277773108641295481898289083203000660212693175279001082562988196381795587075394249436816366050544737980162828411382126471611945789759814596213461645375908608038525189302160486978927161430169682027567593731332636658057310502760204684274713298226377500309863776053329280744047844770218507770919116920038175853374533045187163732022591553045843012656188012896120657028896281182413832592507265951159174401763504413671501334473863737178783603835392028362015014496138726246571826227064464514245321929721928974441602513954052601977796307964938941652159490344149307586284900881253767985040060273702728814249305599361385782736188946146361584024804250541240116244027601570660543356619438400144661492141929686851383270949414383995800755066043799684526760008138795532933224023184302566311856159556935704242350658109441717028741773431385019264956663905462304979344076774898477661262724906677647432442785103016530663424104194611074244182210227004069772359196751804533165628766432246562983548395526891214462889393941198477882302505634510505209138731093606723416820754671582685946148496281213666475445898988280938069753317427264743252307944192193817742942254498913949326653726869471816351604392070123227691358828702979597777892305276210101217634956370365643065153016613322694731343581399767669229067515228543168633116415874123753408365768615366631746019082357972667430475355786077538963179220912549161598246016917253050448362001646929154506713345163838872935195607863372898610065891622053741812494078195782689765355438785825414458923454619254904616458981051114154569810901897596779605634518139467341295523809474438869305537596254093019767381035864499899672281655834642942373669713989053154994992061268517647270918200895746817494959597375388936976864614900088791996006102689378657757976616045568437337132020247358381766165927539734934242149109311477015052044158420641006779006143720326433389570249182959817471662112499217592474642381443368755211610284097339009801836565445799645674073211277044509147900213411317121901111831428924927766213430509485991594004538662743759066308401779479379019118954608850605974304957468652186833602883055277845312945040660323492077498370094617300283826545004326096912421457129077405213654457408198015616115227686869647272657919160249713601271662450151009243783372841528479599148621366171875154600665535388237259342024199776249210946065213210300901894507856249956430269143203421763607099339301052315136919085810970265566441394898797833468094771157889456953066761475225243046392545712683285873282477508818350487815799530859893821712647661872034089802345539868583324230199492656034045918994095533381663652207241877345157358551333771082511065068181252400522352942105447427288388394040274455444050493017633241194071613992618119535924537091116965550505371667140481750459086139485805113660417356975006340749854199665180566760867953530962772461380699278854564322942070129882072978063978727124201878262480984540593328525958043006277324739363169911874333539544825240525109239965444270015431436770392508609874468403007306398419923201130391360925672739582166811113045174542014885975581677860875484888549921223867950272365914184903163596419678111579699631591851191315613781516655225575027608878194033904102283937277944164900541797065540210999577174545200198540872012802383828752070927380202377355489842891079929754589214453718702312304807385095317695657433045552125988680686627079814090745431083506543068561005563040500143008167272763003291550637136833344202718385212948436344567641859783323839648490019654697421963237537598143965991917390456961222300231642719708339519505110069462921490826420226692190154865994683972641056615760845987867588046583698677310668623591319798231149884458685754122042423197529780004166604570349866913804812345033184062210061448036662088406446198251786793204390375320429834661684010792143192592621883662443797936583745391211713507010539353661842411677413726876419324784247298179269088572897709285654261085989513998610297389518272638920470748340874936613432555185637045415238341747743086193823935550705788873822757222930203089231393924752593853141279925729130861751328646363089703846664585011173040569425299573364134636960342542079568012566887654916616287708433230936922973230523664053477479859606446234065990467350446527476059743358200897601496369673959198552843749518954835313474000616777471429567745679981941454348102657117449138241279417238401823178870927321521954727324776191907685067130222338460642471970153299605639916418376468056698161222766155914077788166110211351075538841823343733074360715965777309435449757297233868269744977185205522519724867439444624596002267449450888339862756867433653006903770599715939412140053106541396374507275526878487268435274630377447295682117567899959007454159201320983576146645742195033809303206598301890047687200875418260183128313072848309020542089609433371143421875300825997067775428773423008017587180906101624072134363825960697365369710931779633911615661580040914564207204732247006777407278887668194808115886916159986780792838663466527967611086976619708872810018710108153789087331735912146386181814630534066605971476900861658482928249609856891132937394128477769695783035316346748555252343377519558662154146882563514852835615952622013223196367787289610976680805344028969508494009840635258303422712055009296116937742451856931439064034272396443699435965376903249215409693963784948938372340650585329611408778355279607231736062454008120051901897809982219921819270407847449945861873116244468021563953942030197560290337613378101091380875814614209100809132478255820453308580819521986713515372051325609322533964187181711620847655020652609729604852341143950835355603336646130827731636178029243850925613983148183122171211604464440272597703472038319341518158176929402409575715815613482301342624398574096395189973916589619128641919191275271085681361019617738159792341318458839775504133233666737273921660475032082508088001899831450219121961937356690861682168823887449270319180737446120236864065037201521941444357109238719865436821526747285010842984122123124138584515011664600103731667495001494000994211867932571245408681888735735545846632856595415892352803671969154446575223757199607953952552463314771255243975478015103748592868258256598537632864893341677638250281713574154369546382341622589315342326035582463507099784683004364176036320834513308946545924270003099328641890410139831683506213113715096279655075910195544527498488416409225978749154682294759475120890779988611370054879299377274924583938707573584994759826091465908701292133615180332900636964346598383402704276687079775849600960965302093927242286287227504202852414664582220291554605764508166674319972943663442324306732166561993391168898181457323525039019270228078186625816653648167652100009575337525737562030661521525887048890684775329816296061200566972726657318715451932706953424823208619896493815297772060605384827710003178484300282423066655469163125928672524972240005741520078909526528615373913421281925257353651925151571001806919475725294100935340931649720313480177627115558022737437213776585620089772369962784534291232511730198103987441798854133078392377796808060910838726179293736365598351341092621872978240350763907559387789863371778199217067068400953994212836122991896556753370192940006985342059222056831043316346012493569951247803622620492529509008671015031777380596032796729984443043261378976290273837348205640822574905014764343661494011586228052223095034893497386471981235906157179652925179198438473550590461780499217763066318843766829514139186539598357966955059570399750185597623957427711563392695189502225643815943870854719618166638844893889674243131322919184048687782511175228617913628921638192392889985484426398137388701697879491850302144574535488919161624097244898330436100882463878158108533462242962824290462138408084475811811233358070539692827259951292536886212524473496752494506705571763076966549585221872000311215783180777051798990695924804873648609207902630575976536915133468948992549065985813004228768520159106926356021322272138943698061240012801577972675569994349344380083012933940482901390117042964422407690153583852818373821390736287895143497127540976403161846062377276158596765192819330423937507114436073116105151044737077471448646937528693624756233597886079039852549880751843759766042813329474564602514842809325059698871422405921206137444375521144152300751389945986255454781696112051741810175086933927517183161739438446978087879685184064807582088476038059227331967821269383605452296405104997735911183669114562897726276167372310746137535054391191251542209132458102784534799036230113533554835109761360625140274298317821189377968820959609606280491000285668564069649042078455986628888035205367814674232049031714183213516067639371356547235295011637676423593327957362702148253911326299318636980889279776829936942268102618776430642851344156758906312680661034228629931502134409924857209046172240619512675731705677215164924602477200374057079038765646331669025486536998663338336171669273893733739594856784914584054419954915638832701809648033554902729577899512424360242618749819776063373200858146798076995004021472382211415039556031022167475854885123003875478903327202184979130346454488224208970431983987433941121474820875047589922826783236378813554510634452467557636275061585078752927000681295751079881452949528405068636927229441044532382786834992421817904401879897758078211290480474340214871685675920999156539951713905306082533385131215179874015933606885130766132169369357720502559245084042406290880876742868965068815683690247353747765700298043828839071468723736584423919556944352786184440045789010515227365239698221403664167175138594239983762810211574458956502723463292280729600551321440100451821334284939056013712116771500797135882290449779362030547392039071752056702560881114051906518261283071091355754322472040276472376795647909306631730824584334372127330649215274457722221440542124201486877429470220770011821866043002232237358809074103359672859795689464032942169955090981757991808396910055568069875235903130039264825783947333896569365575648620063193205488372025643845131410578400888383150220885094226164777121442136323935620438235667984012334923611551490200021157462027443412309855328721321419628274540401474354183161276615937678424931274443543788025581752252035008811142054957004805666781512728228773284743276217374509435047587202735988211867200470668364990491484301274016397198831629324379062871881385898372449056329763875115675904870343869822110549454806234799743660611022182731678385103733901354045619762929520386643130048928633052766285927799712229048360370555802661959481343700363989422768224794854821725708872753955470440747306762369341880043186592915724210922445381182930806397686436176762128054830766369306348779021377752035233357903052899376319268260158024124526288930855093967601903100807202943686965706910915966905423147992368969120075496009043831093329272096804310332238947798120348903787334419545283946042996351198868225883372286483386748353938532684312867634201785369689120552050236795212856691660756859953776813002021529064956024232794857697800614647454428934854545704115409174721588054536134974597321666385586963489845068961448883777403101122803488313251586028865230759788168113222474230068953429762953239966768450717219539725074953259080779767865238808279629691829570323728469666503069475725485978163046828527517996745406597847446366953094388718454389384343362207839575243006583998377576199562131811777252783666978981564457174837144671938554657304872206969808188898823008587871772562957442424834522751543316769763386085900902994677787086990956832795634480957209888252900300155398946626568434421417414766320775809238247537022523060867068999673541839304827370909672505111896806126762709253342465341014489079703508754848298311093399078937838175230697846318780199912603627956658101709911863304762721783999790769574405672025922188053997498993688178311796555038863700100353611690022505035922250938633935950264669926253158121022510912356440299013126634337271653782061443544776642133129513266738150195550394045141157265152568850182611366376343152732676138958379264878478983912815522224266706054926862942589307875733147634589932600413410984022898199953155208511069020749709146682025962432910615214432246821212349857405072612612474969550906305705625689403134036795471022430481886796253822527440281936555414472708690240237171169053761861652378739288133222478443508135934429490317368715861001939265032487356035972119005021514674191199556941576312842340842414164197021236653185932522468919064361254700348041939310654924429929112777961487009973559192064174061130463734439762051117899717743914178173933851776264926349599744701654346954879759009866339815200539106910868720341928089961314436001016953627921319523379371670199665704777847759186241716298981953072748502147262397445588389605797864593621343752647815962087859963277316885182028737346349888029167698128404774419211371712558520163615967339020869720608013512674837818334797155267554281218711798419292254949590213255103575633163968947530778160698703317624077516620692810483087392129533782103334043752694024463387260470983925140728024201752844906199223465007912600602608709431539475246623726452359793523045950094325445533764078937459584354886276551309773540542200135879206920113332584649027718780458717890618006271805632487398964443543276156786269479897749027214912019099508362728836164361022258228909352971144211099458213035955566725200646163222039222040926309831343255879981605953228492384489041693652075128499327564945967160269768079953956714093253580460474139955057188446493484513618803681466369675081900610331410725538051882099889388997497731141165180808771535999126978336026279168485302154416272572567529544976321388034606334511328979950879032845411560031702973192901701717743016602752571953508634375430705718492561262168953371549387499358690192504437643045237888663979706343966129268754002009025354642629763716465565701159786782526787295726805154822104648224929946345043779054740555014439542515505794519329904614388158363969950361855911348129274820812387958827835533537196575622491008780837709440793419419363434912013440610293801323173708033527713841134992788785630311284318724085620129003814738723458185526502108501714792871578666227223023409871530385126239332269040037946002712819024122742485231554556686205901944071603596996975496328707970101401678767805079597396813632514154524391774530339761772136960795863200504345168535987841497463500896122310077839927205884989885186855862816344987694090581524693917356313323211167282888522102404602393189830291751677900893033390386919329651433090364963392852111434553098644810146960872236888463255505197938861328650619376225461533572396815890761419110290427714530828323452390923216539587019780056567259842371705063409366262311401361799631216454247029517122771001638169648561931063024840416926974961944217032398191097092295452950492350410926689622343183938784219986271794923829469994427098787042678169534142350007840606042921318869273170458612893003928094769942529805688976707937975946663542891214489384050219121563193498181378413981940014035007797835294422991034819431182648401898077574377590222293626276452661375932268034864513046204408620692590725402610989851201730757148895296394913376261984335654093046901617430954761795291713246978731077461406188388049980596651239253943494269805677164486422290197506302023511423099145040867635213741243030220112739489016799623746924170223239171516603154101193477980775904423482096575824963784310928184921686307316462499346958193843040649651328284595637609093104119107746122642117150887513781156205028795298700279684406319732849504167999372446824064480284736877348421840314824481219844090165924351256715570167155668822309558396656284930390940780201407401341050153122692497841700328446925468069563325575512054038395914870021181154216651276668931765986239647440251020930327159365065578984635154951608422509487989518396686097618587042708961280452794171288193797972042313354259314720492440683318592304970220785883386479599749852647675238017282045990999829351983850166337531668357767239877286988541634791967538974340442441858857674287960419572120367923843115929202200062963888619154205530185344906265207991793216651536168705699693356720868084834873261516497650391040269405061370394046220518229119509532783809726297016889322997381479787177230342911294498987489262789411985795132842128424298117085572214435306217025512526759717161828487722532618710997876447282812822389487006098880682323357017895771060376311207817519656997258355578959213293675955718045340902886569843247513516165898012196830457236095143811956190665478919661250194494673749641856258203014495589870577988138095406637666191761004413928782252710680141090616834057375936274878672550605038066021715263457249472572543485281336418791546669802945025039241588005897847427524034425828112693555779857747541294107274367395436174418655115658271388055405505128101367695534978561623397105281442866771360059409587115941477105594286917294729491865923577919835781215026900108732859800350399333356311884531992425759460809528261867819849122490515300874525580836364638184618810920494359329258187910251451566488655815553801597704689710169180977013631100169176851755583368539451994981738430201097815885766719946893037207508220546561066736945978956267132769649016485516008740135303220744481393302962410908351271448656209739928091274130260035491634084301883999776985071958765198922823410310200082192210426311293387523803739500294285691186333249990453339267047086532684509329860622006091937039442949229847709998057848313381361308176780232424325576411143696682887095538531352699886934008676308170607505467777951460512900717346201769584488309694435069995910541719070316648191086059448196956469089831290957082035750959590116224463116983159230128955794879169802010270675818297573776936338396953138824648108494662040661811435160977963532385155340897778208163005301886263661926365246092531595422222556933044050627278186147218454667736860755106794856487121653310224825095634392031416986888970706350267997521204618237464203933187753068930335982864710707588584014803079314047253495524008474923788769219762741021905755173086429018285842619423154026857729169345832399276652968778173772478909205874550712342435861726101955437581473805310998962243571805339374302143020784410479678205557727852262086331338811950655486147575267505078266175406740110431289346426387867576504831763854647997644491363839818153913211967988753082810293661430545691578448637325237271356956508506143983994547441719107400340234816474222574356476436896735290238520109363991215608592846865595050108545866802481126486949137797663321941880584031861633694483601319559387451744886240766133407780694801228126888418738120560450244367708239746185686550690550274305828958970604000754835778329129367025387445189380858274928713464153570309578051059401009156682434396571613567874991196375380735681330913220229835037575729022944342496532888856640673935039711831579322543648120440308926992224785191719884579143350660120883987213500684694390480519701157758312988053473491423345676980870326121102168738375587640342289151188134492580265562298381139755655232676545764400075244438777008825949421717231766806247780173271430091404125291400405976543584921023614025293212343058880024534882501081147582316989127709706287228213549141917603406181087402420341091427488221764698133532229334340685234583547767745701723784281669147769437438521315556639439995887764114750138572748733174338758215860171407792837579307222216231340331740384001308269254227805725670457594850762244838438810885170660794048170198426068089664395317282363449983220817670484505237196229291905946985993152836801991491151028438028910645589277347226924060037876849579909203461835873473972614363535650258758976355711396998730777966303657975024385433391266526270078957120566444787299867320523989825569183095130681457668029471217740319808193630134963691532121105496473379396658738758906149249844166523002580715918160199086661745785229937369640054292573986788247429266279562840835776114599862944717688396331492853449342368107688234761363956949581946705437694513010863085432849586699313807011318480931611862366986978229669222205666063619829855232028173061254773176848950667981514762072474092627654141834843334275610587859004229098645339335554591307215581300146310175139344221808839388002080075851387367227598471571847152718001302631316307718696946292793010837626208127295853083209666242071811851356795510786019073006560863599316171688279786570349919213810285960352217217693021169169942601000826754629955995577753587963910336558679126091996716007191411238825157733472098848435037354213605840207765325870223000912156219398841215473256523570847442357803799659620681587884656833104168592858729369412764987090394989183411414325160881316799524211001922556785016759827107315809693027936258338016526350838146821170522563588850474409476260519803564204946346488889157285135598590109137320074990026960558730983558529866994146969695225366535332633379895091116963369921397924192191486660009329532553787708574129912978426117194304039671210890822255429784122406171305604982612491108606880628989987844536427165060836823765183713584891861075419638270383843942611278340027873621966859829932952347124590021516490030242606463957222015040618311241144533456886569555788953638439176558068148494415350984678897195158141542701287094329033675495828423734374894809774410027175459397590907387867741389807910484392419167754112292898577369220679047291108710113952515013768685483696395348387598563285682187636720490003349874860140342308818242537952338350541550471699671545378981628315464818260658621252419350052323972798999417944805083777035380306084566439711832775826732696207823592070483965165425474449685745456103891700254075744563639994065786218656720182700133455289391895595602211905298691100573479439501342349194182765268536855888842347736465014523263157016481960556829788814779342048531517620968161492245353395748453963578905265165129538599953663565503506664622839751352505346406697763161251979238850855275231312574166460969260144850462188641463366850034548836875490564084430867295089228810131674625628430722114258048502410067304710292630461100071879040932758470731172076959476447759131256637987829166435766006179419295774175131826183930988313650343093602842770300844755548370803308958857928715580539524725561315727582847559230633224299387619719230991061863194997457563233871937843225752215912403678828616906662395232627521275219229870259158385545235720965316647606111823648519736597148012965649801836941706137372022845616615953683790704048463597210501744292146808779272839399506847358645193848759848443810295862899827268594551197943467579536814796738826381489064373362248218570421204399976325710585803241974392797184214025835340785164606880795853725751987459216283339730384606513541558262357008907703864291806068082164989415282745533005310178580000926758808923924026932416771387331469973851084804054294821841491901225581703683759305911773912208937103789142887812695573659547770647369980424781192177234634373658861185771668464647612395755791207066299945870488142223927326195561007430493722432460062207443187135609904455437741697532339958293678921136450557660981876875687955485952128553984747582833204806084638408862564059482920618225658173711114197407856378300863844238806925787113985394248205759634279513778293461717117307947539861617102697603430109381280738467293092409454301665725312270604282935389294611046857913385927700239359664088763279852578704063274328927515655174565809332120122072021926790665231218885510581316163269858579455239428401040193416000991522500879245556231891196527298772120864173028793067108747591066571638029676920208307860708807440492951238512042063467048065722820851977441071642995298377299403657392467220825510460462895510135209110562297444588284067679480199903782815244894035965420421291368638361053787253236827753245823435779783489875781359430484394065033943394841564497394353714697700198980746695500160753672177793823432908306279992552271991852815614891846878965878195896037670671495582866554893668246839803967564095109305028269453245277054996871366471365393783229525199861580495727410496218475350122631913568610408357163988546081620451475283194837048132880182967760532677400444731052613808755302254819509295286746221194672217090717418019713375108467992782925922114035441304262021099820265002012762513301183595393839206509401801200215397499775926994261298792669721103834007816500759669042803859801798924362401268892807958802851966352709831531863021761706530989278978533755901713557108423887021112554550667055764856921987504568016121904286289094081319924702319401994357004979362430410139903359455229345149399672862332905516560576001370036461241345187890936561538163153184601141902704011284864240859455148503939966051350459594468437175169690244998731655813821407904313831169098787946459113138784124796916686626618643516902992360265913260627186149078497958205536488176678625158976039947397274262347928967607373946117910842535746653124432458804449005142719917568986214054323851352499952746847542733787943467052533538216950390972003682898615355831976407680568328029895032726478955560804373115348960264891135947314358522498690966945207561748684855815665587748982192744534916110590246367624022311315958667781488922021448591069051064763264586477926452769740973127791911023359014351090019736114895245734127260450858466188947358766300540827400708845832815360108021469347321585322756628839268668083301570117499638396985056474116911515432897004181826841409811690329098825091165370097633275348605691163477257533960544606985789097199709968066818956589793033935851161862133659062307152480626592261170863512686761596753479451311338576317270571328592970948529178274275589637220573813948605868272663961581225721516906703485986305672741684008020134660965162742006292703626372530576749330156647501862127528173698902659994632354386021974409915357619033609816189489784845253987717892256575359863610743194229383402703387158533251755218068959806249972182896788469377612236729196614196761095995023976629492137773013019430028449908802846823929559163232651905369883698559429927311935665413742507284871612318415240521722139354382296264214721648797007877624058295596943385446750014022360683066745280637349807278497421845386289587128546125256648719587783668802502151489626873711059695891901617305542328665234986292587014146718542361769769348277145361763454372535263701487498587443920825803844254806150163348379992279841102827323620398203621115941069872691989266537809312519927920949478993078722170167113971249990756987083935889569673707394931928832494600587084335958184768796210160944717870279816439828160900905328649075641976652073165260167882268949566994700682571434433552605795415538965609514528977537547315959978208045604587556926061626966449553827279706749464910644591610104521743237242288583165370938965059814719070910222389832921450881932184277550609359030231487841948035218689354604300432607884685997437822342537419755424120269072171809656589235983675794442939670558901057723030841894171873444659486756809727143586169219135386885919896774064628678882579568682269039068366916935561084757769549911394515590044781339050785302391348401653590819283329559374007166871551043635849319752560200307897470710154047875494014553896765058746932057247820294384442403159364462902324893582262018983108462236128104050228006378177871272366247008436783446173662620143108358526658538614195358479811738290072134277457438422625268810862364947805262418208674780676481379255521169913420825045466866253614554373612714176486068524815883006832426610529707784423848300282654444424350346352501190216496978782999532751958068654869342614679420712374394095055529433113717657746621457441186593587011194069255356210505799333070540963669279778444654342640421553539464043189107179233203562875035164093879862465802658614216111989021055757613327282177999428824467862818527162698009130632993323782321861956179351396124704701063478261231230715198182837322175514390481260463757087446064432195123072722239493512022207143016964300856543005880889908300810296855613522620423743294440344332577170972330396990251465882398194419517351288220121118729488816649663238911741470782475961728870080061281781260236895748040687543957791255051039532745490381836176433827152721420219154753582977168620058799504612442463082824461606602094029272230453903276832978194448081835354556794112129893771579039201984816034270433094424741607525405868784710210635920775182536831278669236109612866340652843462863121840046839848320823709947663729276689452591831813995481434484285614937369862427638551765645205529464516052826703368442810820039021376387084800020731901325741054630368617457537684863480100844883345226565618651261032402194343572139782618705935490225689592861847947695987012054759371710851280065009333564460395782870860150261907910708820133204315388657405374752624709742303943099541163967525671336104715572799481698509480081929484291591985593336109964003745770835826254332573490681240451821755395222801081201485936017366701718472191164527967969230257959551096885735620552104180341583647492246995305554399250794670141265685121907005867075689461817016678208112422523670943021780170978732097738299186992521439373020174660112715529946725264549545047123180747683114231266985147863168941129603390261679897335717486636768101158817252305243129940904973146150937363485512803932821157139268894956916598678274943671836379303551379179544077657434600696488761960566098920726156228739716310718816269048646949691916019255909230265647314206182387685528773532701576525500035187176652679015983813607910560258400381522347760249527840461015579494152454790501319357888029865688747355365870504648744553084084454544672505141834269774669106545147620644079586542189355986601299497446049125733381768704575719780237148069492295471077472145698726841047176669129763968799155779577287393054121730544520638667125416167795831249038501888007687672112115882941389006202239888366788098892463986148563617264251478430987587258485189750773226471801807140275613544278647235924604813386615428658441306377569296633553269076371063878199425162183618083228050622266938533176829467350296737237878171655283492035092363339194026887883073895720905729340704494139846900897160504493559661795603877656645985239090973686955098323569611998581355866798386512289903767160279715584971352078371191454034657510137730406017546184321308701701544130086971142028250693997273126785467804426643285408460443987261127919334794253139042199212432872326489036567075044604977100698132470414674696669775620962590794500935930043322833274418271030169762835853750972122112471727658712206578463269377609078457755667620855724766513220417330413467396954613905593877984886382217044301256793158993182366379290897221124592363130040181218123792418870807438540818837114547682366773118040573414354028892686548244785546044370322964892107151249515188756318166916349745660615946428263146455919522552557445435266750401700054784378515769082592569490277861387783867947513704568415097010145593291243371654127703569363140735310041424288967339474961692517274677884186766776819508237920566333275183549001994868858690584366752279910658365493632532081336501330509704334660052923661775227202280093261597946593374762598504172302507151669632551459950680984522063600638321519244969846758503415798252286548735254828545625731912033339868359416628375556015179674519588210323684731810491177267669439287047134105172019718095646700931104534848570968040186636625709725514522450272900755395031942570175711768965839452739035150015970227674839734191292994969058336547517028386027068044051689767034939369053070573223790413544329665376467301606309529192619449572410114587796769937941791838592927135587001184919191208546449423868175135067801082592171547991526449491755976916768736335504275578419035589334290443135228224551561665207756780636254890347577399813709778714076981946009304364368559288445502317601637305583287618259495933132977620993297267261442463971273829085199570897777628277373763188922528666318914026040140610441158515400434426620965833447303739429628932161499710494145772598917719292386330458392962715551041013594556432346190026330356932088633944128093899824312280695952722195682175646997102667453781618104474324558093719460688385628598009742050082509984896959264287212819713773519462644042770212991792419978264707056475863102800736039710683452704382316197668878337978645629405107996133922786151010245477374057820811062323969899139039188225920210298079866665653340472603753522917323755689895488920850918967672505484720870945379250651227990727905098684493372076294570034612158597049690127667580803576931893047571760681780321871222681374294441422115106322720955900376768835912327119136902741641863022718235003589082382841933155440924817280541387643531785292589752489213768389001271673685021287988493418370963504181256309413878603317827807789626105085051992271891562370232831306774579897721101005409368870457604882092736467476011979960065763874320283140617855451479029936587870454839929258492177757389064801006745349241309003452002944961355679700233604512657879493758526485007622458890178374273417788313731304771426648446340414137785378937731237063109364928040465031571298482683782585813610429734523195360256248408721648817240952812495005830819032012763859678215673970546985310062193129139402845504827060994483631007470626712462223037280703138550839018471936753254536799128105092103928232902947790776709448203064630144774561511681688534647065659688327713030931496706435325141830036540722806180505272434424858686202268214353942727302167624233972151553145251051448200340520703948404743229176036692614390371186852433432058772066165794726803881201985745621013398760262016689584829064440929161039309586098483808484459192969462893479562687373110087122659735215858046954589558746635379403518429731232289561545864189577182926535398669263289672035452858294867814037954155068677371137431955872598180212775208589455971595799686793484372913991159066562850914748918520392958708184588485327884607604132362714104845385148192664018872294669354938211469842194571185784231729872820272752004595548449708020018350885924800775875042506916435141098515493472974262212912910003354384933302730012629740123000589435703199386822616334769582872522635604441386610009664536187032188465871071698087161758318638744290212919645006869389277562774883949877295816986320187205244368835940553920295654101900444420268085121550408192780635754434255036254832376383724098907939600382524582565745168286760269568018883255631771775152353971607998925933666416910580701278980687015295512620656103590203075934363567516904408032597348330137908822197862817901637948794132923711807248526025268505969995061118367483317234925722224219221686130369798919077039371514828654622625099335565583662756499231335581080637398618504912187320071653500910772257772521534087998132033466293644964586387098609601172185854445790255033599748825582540211757213743570343631450605072480776557219918237015845811738138581997545626720978123478854163959775118050924330212122923312017351974852124244865362781531068648340482346014955897570229205366613922830170844665143198435737478815057715749354777507214211593879934713316798187179975144509509232717777991907024366125359388356041274365325521112120918561092311608217372526377005592728772026140651785645810298962464758166173108258121669521960125510634200473728424592335148660204352046909383674962196116199413913663989979283702495911289719799625764761250481496562992633027326182310990563276060366510216414869737318583696857747001584316853031538572400567937505962118252995301159227380244588116041313470181638071817836453583460032676496299552068388045473740704434079572423101782097030480752927450770681077794551045032022818569062680796026113429738184009944779493413853922469243291797443201399955378011405591790228058625656425567968206809699243591179632042199183913366949282129710320964362878112445033102480228685297907228608032145432717337523901610435493713363914556116271961228394374355476803123038441770615492519667721676654835919282511977230373519419847683512181000313814928054166958585203369898947319451981589908783429651356544353754777057975115148993056430454059329707384362509376116635713321926530201453189738809818144379067844437563230950577326097248154977138701738772019859357170579163573031037200365471219353558073215706883187473823237570016499512036957586096183352282275230782134311129664895246140071831890145102122122812189627747781533801373582636607930347276826301196790102346609571397451231557482043014447642866549160112535868155765547257918108150105666791346519251403783302979910584507822023224438065969104682239665799716881099556070384674071448649756686522240979608163321631807245784539967538272360910068298143791647029666948251854945105612595119753487327063484259105720410693754385787197577254343275114295192154869487533719413519329244697448636670975658505605696691048271358313181192908000883198809545131018122754547397276861341410146482537343097556482209711715155849682752886876915070500373960544437926316318393065469233902004541145243674226324690524893286068114200213939529234756200449999978228246702194948967022903507267213207518065732429723283613274268700848584867567084930425149716247263929190539825083660624393070927248368919722676416313119356700330929181802291795907725639497805928404698775326312200964961006468039380146728868297383968793907230293743605702133223645579803306065450755911732097564876050488939524049373193235130912257214035312284322096647843076206290966361967621473202076659808396898912498244751315009488196067825239908233606664108999243567072855620780397394959263452127487196081758569725070904034170841663543625232716562304933673411731450579753384156061479807044783740154695224647370911458629973202707035918243114241917610366408572972792927696803600988338889018347340381403837544777069472865624120995302802932635025032113997004233242574286765759719141897491379683026718968961762670881116395732922382585666166064926349748085161155393219009939569108351986021239026366374956633899205700613731081362690230659985170190136928490317987971790233198184104339592042334857898294073435449357781130832701058740641107363811933755576995378296824077426835294903005280981831239418701327044597964581080375612596949412747652064661569523986063186629593273845034246982906216679578486868755310518991399289917500586847531827764115233682272850468755694336508021636692580909336090251271788207362631160946302631258836743755815459944080366231780003455712835118674210032239581449316380859151279450056994426514667379953876267907167762523712316458479744271305486457398087456183425020644793207389938450557196722969129756699203196439743340899364424324773653068366388049053795564914385046204717238507986407645907918923198088157419725938692150032232150607719418067800213783807104263435700259440182197192329118948663890937627613710912251561435414102107463994404827299584369200990263539790049087712223639702082102776927564760323079948440056183965863839947127028922206635653484249224548346806033390402863802329816652191868850055513964451161452884619422164532449836042564779016743031074571189816601488098505264058824639685701693971167419647215117337436496679440950119511531041853281917159392997623399769949278192116329025901028145076408606518913523852345516576323786562225035390759783364006992222966195001017841376372095093038160176527767764418277915756807228084136196282329297674947988174235697409278586570102077420060426988138107565622563832273874357784118964855679864040612324823194438374283725840758046018062596380270068277269575206865824933384643430641443241788412942479947294148922084828281944279183302747627419108060954705576788830961295857196114409297731034366966263790556533678132813256053867506469820382286764286862263482597558330582937632831005625000184355397079038994283900394278263277477917621265741610782008708951808032411163502545016730759471206766774558448359296362551353997127804212249518479827061270352921566081152846806576153163050146754624656390887436614479974951543933248061704467185884682909102222957417827539228261154815283551562657911004008982335517146374832708586064537267339492875687173122417969818879806848487776686605119344603597809402245421091063002755739292594908387039586137559640116752892309692339588284921263348063034544185361025711106683186744930492724169303124038933864589653001082844604023380529051496928499674712495968239889749321190167541803927906595088608912768206317668878759994702371554437319800515720850346089584235819510430096852032591107467520298692031308931176560000486971211898627603850941167333882001310290029559591793119283183126250351544246969926530483716345083627284834587834610227404193567934722096599433372988157787497974337380476285482194608964418729468399546711180099333276881892589196866541620048140690181849560745496677797574063873511466034758495668534423786078051042228860992272667591783025099673892900110775347780058489022412912020798382630883584180680123507189360850019578928483214255405276300799065072666835596118316830991216101057478462085353015992201053313866317829046903465744440871273846438295055625744445056501591527248637286116522470477408153532757082940234561200325206462658375198060928015404339165592105155326562243899674665065510857683874976104758333689726388984536359137352669821344697486448708969852039456137680512838453569317790271387904686115987139846160746916629275192241022695861088155958646498658889412128110162500386599385751391513365050716916575346524467580114191379628733736701512990008475547138758224349316776503831720165955893810684832536101740800882409064524818568497306062226465616687920209214608349418785306153894515934707542018276685882320778534337174009582842414705846544143437532140334868351372463621041586857921147878649369996954331298853060694200461342710704476422153972424668868625679157734295127653283313097510080979290984875547660767094037865412512378507688609946947639490374597164073333788008156359940293767378259144540935095876294556198255151160438639296487919841067369335638193398348847810883188834230470612224244589098394981309231299314895969562662906285406065030505066951600367929327631419929745414831799198458816774479506019502128369419252356450663256536512971748178872659425110973168409308890965944907670006911002911548184642110703136792883140858043750799420474227930410497778413820653349522708307376831315201333779006156333898696581429935084970752292323798969745324195000921335107756584699481244632984937294704599853288470814308068266365403236396669626294616514947594331024595624732277001978502096011393640193490541661186530098350168131842373999853452923624986411077679463844613696518675336176924846652564352519141398827637421401279147518155667775349733867718940596413183547963138435927481146991614761081030191480884225891773605770565495221246580229651031760003537460270628619985086797442139820753457044002196652620854822484887207629997301441108802466809395540449154272254843787056563909964293146499443755250466940327383183207065438784234254175875657687735976287116308786414096531264088470806570644389910572964000196084206463046921899641754062727117774826212494864738992700050140528344848024949307768826396086563208587649402722816069802558087072311037093284466468182985484520390604434887608980493818349207927040741409163022001063265256683691267362014980880076947774693638258165125363309824076438954320464547715994793231575488281616277323391848748696074711781400799508860238461779543563947991980938420862901850929722065340047192222379857061499529104173762743511122519578164967864227460931232875787302124863269086291753693466001145164158248231088412862083680366575627156304410799353170813998931444931345247978564356574121547026237372524218056026350913852706572954302283959855257280158713938873000333001972809727706429436151866111455008634584491754894948049511003794960263805182728847463953343819099435175933700138638846143722364552733341674501836482521692580444515719119319092098991049028322497228796550997737990801769272880414672270549651005037335671329112647575429929371672561052686689545531125151654395045641592224819979475034520279544573494987131669375393458612241633007908428428145210053472119610762992399804820522479678896368477306573367338313666900361958072504350821775943285215711913041301868970477625361307076616625460438168075770952321482065485086030193798177637107013960263614028856541637542131528652492875500386169907578451056724393896374544765709036745247103955467410358910015352641481860400153369982894881154379931616915271686049092596615684177318166344311113964909114118156223840440662043643755742996413419839007122238899435828883937356697010299280873461043715994640611346128345160823557261442103064844016471565980747596503284978268155773190393875702569791055368670579993264112780048452476392447857465471607376390580142596621032723895754238242162478717617066834064639432801295091395902004027499235226647532296615754043146577059464445900795497280240697494870313981227086238903328086127584867481715632872144100546128452380493259197266630311607062258495189924187189375577427779664170868845427339558363103749368813357074764077356980821281894228964835217912575674590345052702843644444584924173699571613055390746137043886267179348826957554892248495027782143108429266363087038420386929562632494230064580981023816685559212175012668463786820078240929787636172987589978890582989499673909442924051690084264662103289358237932549711682407588205758526082486472452771043930306859953495209429537983308734763826294730392577659509945696506457213409394690599572803324402869528681015467706151900711383963184354411749426949027239685436595158331315087371664710684867064930207758661593201149686899500079311162733355446278995703366425199434507304831719344788808158950661130950247702769248752537572381276601243603861259667869768081122387296527292046242506444240893497354800847973621596287671069547640612151263767279652818408029963363636354335388995611854108430984718348050620916461655675165404831927364130277400516010741187062918237432955404498958249896787176400863691186229491027086432244190134451846757838820196688265645274917790750382997345880666916455078627622067380003898069765629151933662641510148886719035545035784260144608317572065985348696538682699846519195659678066004140281346986275645256269081819037791518976910615222468810442652070745285882781710920335199549306154716026079696339217074070782304231554500465182975100418441031718833203901914911783040760655724502895545910382792093058596511131312213701553176987549307634326237300315941929716733911858976808094234587321486715190474710366830562767928639171947634498991189008205070115103208793712179664669574482635571710439648587359142761416153402578641262261390812894405448763287229712553695594420514196801575751724589505044161516532678766647240101162104988132676784118629877632416247141319233954734352886453893039599470579025697016277243622027243293790766378703176612363722320176970837344490278150219972906599191227133043464764113333685278871962904759611713206947267080317043497120170158105682137030210840000850265520939614288579853999694271079989345641915909449044684414608693896925711374001335373864729910041394497280336207917177824076054465950002409946565198781316224323879219511893750238862580881995482088370655227000276841180282043909936854925579919351365103728551597587089809503458346939882362592647615486928682607385150235533582698660793874744464991535633428460403476499135435244995745990741858807443921218903889486084891706825023947374347050352055280826870395599089761988388904876511629009736300944463913264698948709789280726430065883366481262751166574130765304336893526892116734861201685912045333942102067740977009821229341965672029802224126558805356088036167959991727446575753795073239730549902467678165097226479952271190601724439567215370825191982150265943243833262783800476752044137748532959730029910137183755672804461833524786078679083680074717502213391738801444414636097861549494116589658642705682386076986339633107222388624908089089178184528360919547676066978685382625981039888919101607501199812330062266508340357545339708108049783035820266459626447696370005367032673473861676745538891500327833605925840788375885973565228520454980991419722051664241863880119137174811279952575915486806815029190940581915404214884041777715560252158568186109133574516756712254867837026232704139767921816298916211589823485307709466253239885563507146061355211727245684593536402586956192632178152933850700798361335925008562094806343927110709514283076395889632915833095722639388141036810580941669142157543038116577967722105490928734984241905508055036002322185944587595704322919387838518746628148781760084343013592437086811792677190570360526405712767913780570603213931228804298261619074540424024352796682427619201896905386683096942840385107274543567962129238978408625499448982520328980673076448089668466801359268161634586075866067761535857626054775650523949002943610932241682034119162365007169374049079181147022622311148377408909910269951964036364013603855592825909024032354900483006479103941068721594644746883261595340756697163558688759589920861508120063240988100875945698600970422708892584605543683830380554478861669537805084855646839828536914840669696585009064927428449981052672243118934587666467471976439725127163142411558627400103500469357799366294444038517967846418644713044001694594283704976926916648342218273457466427752534569320289901292861437528844512496473274675372933784493621787399117364924934235288693864940016633398816236014628694699091539130152167158111074812747341445831958335034694663864543865830523007321422536091132730657957392389106824900452935096692123799961173456639345545209246385165570013974020811850495371335260525019418115833750326903645987260973241603668150159978063997751449007394667075349124393503921601245026697390709183933790543478243852284411951773103766504920098206031770234235721107262621887995095169583636397520024880813050849889248681093198264004433860856780575838726145118906364425250041056894973003095333875493948838439691856433921792623519254530210775176393403629429115378813978940510596339165202547209096466944781324272127735546526220551465225966310910325541734484075412891137573106757430477449406213577654019934339521652681332457562992091820421849735595235883064440204888170837023151260899103864824080527431640257149140768247414727728546731798146905360803745595847083142357836040798683186896428454140262659346385450804409739409484751634226434599081197414878567978501407667914526917693011541170319944009274820016305153547104530454284132181837613447620067796948072759378686407102491475234887848009604292027788057072384167171902354441998836985612928088461431193032934727830350730197986588097799841136735834269425983125430341942873817405281120736491280947086625915956155508570706381779012869766500142039335101866974238664201161269294614936963019184203953761536506388958702161669520615371129026018018444708303846331003546401741326785404676548876290185485060353113094121580015415070900739788409515979810711195694513084905090423234770864959873300695579005865634497484706782621666671988184545062000490428410783395805360244361328456914580188445989707708826521527651493809310973198542145802370826097119226766825520456475735022638682806566608403258365190675533422417942072216770994509516683374742630041893784224883379170379664011185654768350975257569273400626805679224659349278431640727390905032206039549530689692050806038840326299140494082385391425183814533097898608251080363568394689922380229394098225573044016739176583315143494968939895110854059249024373183755757811676393478636938998329953807023670596994100161170646475362628125388576012222923626666981432108155750496732498713094304630523396877979029136635734574034835891716308817926820172582660921965057628542470417087418967034840476727855141435542197875305724925913514609743050387715593388986447280833306875492278876107746291785675281123129767797606250335553295338497116423723311798858862288356096784543066254543849409248689412312464892910150136056843490498761178699052881324501748968436159173984123363896462941164670519966692422811096667131419047152039605999865929337331569745811866240049897633734026228936233941907431000916653993801760970891158626092135988393517219456867904670266599662858824063903454729584813623924658931699596295350735396732860926210481932355003618935109447630942446828390962882546070000680159064851526863215882022763185906725752012118433752910577431809872206575546363289179806684789730750311368417995454696567573295762762209838894304272464899750068506131954650969601184955274422230946792653390485199352409523625149297653508418309845439623759948401273973763152723644986599472572233581812422963238397216867747006780848706608300031926065246997428314629403708997569414894637510075137360967541242719682088145091295737576255220541531356718754162059683687147056500350210214335965013986901446056387245354008504257146825381341160642103367303572693092485200539487338741080637969668770666416676726583541679963250773393533124269505737232833769439095144268935726496542438317239069324371016826237179816890037479303397654123524915253751478985299199511576538626543025401311876742018022389948945251825337692664562745419248800605314947923059080678398657412904829415261960302460627040967306524744204558913999452940764371664589226730525137438506941909092733626772317991334306945730722425606892911800602884253525163694968218114358445704606652018952427312794492653677837598165772836741745915585105582119776245913819162765896046075114416457855647274231523767486008997757873466753229500394025730696205602935646132789159819920392835969020434784798935406493399824280375695476469283528747803757468324750429755863409757618817449483109334247488296326981755546844701844338962255159682585110426216983604346984207058535754087063420746988683275837266808623578348112395944122213658961630348615860333003547889285515294419838485922878488284643567764935497820081185613857880084654680441210340902899235131233383831133713643919867982441688741642360924994658395743943852138098069844391960509886891830528021172358850704746050521015182688248224502836945421381585500227913310455137297930778731484177563685740520154370076987502196623897284704441848627741099637669638616575519938830726394467129316490925459442410376592909564014907759513129738649365017529432921004391429882263733516742507561722448814533553352628491693736054032002522106317099449244390839188632610790618467390842304441418475508214432937277759820741058252082636958599249303661971805754878187236723448605671477603030991520959960270778233286843216610820682093119759901427463817641206471454772596798612728699647923420336242176147941086665851514009037691467302769221265581274005604380400399349186873904864618545104911781759502959605816876388664044992062386130089218487692819318051814643707941566232682938872107511585745831785090472903878332677867262385495612646340357146155806891743278461074572039926208403728502249790658615222332762873467436456646455082254262518798683627464565601432865684776090598839940822947485169056399830637387924995956936793399719368340684060212360606955935496875122153414545686239781048061794302772667795712568814582405305144195019478677766485883092401482434680041672009112397734811391644749365330524862521548480840063677090540357519209278382830520045525304948082238189811860727296446297505367285705785198810728581730971832856864384191323937569263818895870778297149542249648052064964186589650879967122714322453507646272252790997538851413184268022196387564164593769385870490523416223938011619341364044936733266270161918295526312223140734496011257179252418179918092742351928835715947285195103683662043935881286914454408933039913611911571482825685981346471740002653196266508282023164080714235636168109030449093692568739532938604833074352368494737603128763893541530463613843783005293971287370877413573438518178790686066874546436226730203211753431148561521262508458514008932536117206159509957300252730718116280278025227226243408643209114270565356887613335247623311072218308754010485598133810378273532085695857369914528128672387154514421523452595096791811819622209373062995942046397798131951902581976613511373253230883117264359479462618708927198562835612504786033664694135943666908651941485636783928793037738146820568505611535393486188769310700576179742420273610198954303976688502468572553688030727304692099670208446016726643456665363678432897396304175996386886720588104280497236344915707017917254145775886949370365282204970566178489639820777648245298312905169340073265830655784737901864196069104118411220143701788669224939728662179420134811493390514562218393928971638793760899906027113791026960437865226611679712159602734828214364021924873462554065949702079021613830186367948059019709363852320959189186656463921896797133749820694329535189775138499784883609202547631799837051310687406650797625221420468366921792428364491937416055924335711947736822506899219426970518521157640611950849268853541984005939527154298706447406005393025503552522721123262863459255328702866253775638849697856131177064300439170188872662399533171222249630358925211714715483027570906724908810350822810657041392283439544234991910363134669861320460649561785228258259237959314729978282391107271623781355595754305824983733207246431730103640802713654343064821400546959922715510618685020012083063638414514339905591701595168183324486608121057649882500090927366133757826162272250732141557966082481053211542042335014277342967306090858618624524417532368206138760323306964670572159006720688176084252447617865970801100987535401142395446631245158645030384486668673060851490102297340845993975354326369422436277086514220003574810481189201135347881347408623012463150593123954771847268321147216395817869338577188320526591831728453589157575880198309578108388947698105357479701226697540957488708188026538964774052201032716787557881909555134048673965227413452404231675960637795021853823528924300985996205887007490695060350630303553254249220217463404510294843744565260924868932668399941709293290324430991899061239262025296471706407107826017553534292683496782621854765828015691701452414024763941461370821365554199368853969668621806544656844131996032823723953078432972203727626880673697597190505414705157844279437224162147866305814982583935361798761056105558900080449857817637833291655380115417144257057043834154197626227615758084184412533993162948364491597803835536646172169719099940171587588321648431758766246416358581392448865648250485251443972751871952754676292428099217576017004983156433388160073731955843507704172912721214723588219261316734095037096260444676436738984838111943207417847036496887040767458220268023589597188942883737371715304235305517130643672486000152068210408736726361615896373716712192196844221907836100779794367791076405425006780336099638104146062745676844824890588686201794245485430202914566704536037504207157016995075279954100404804065518959125897623004093358116522190283563184297709641022107704987331338521867572830607722501250668311402386882581637788853611064177974482593513575040765769236364875862626437578624181166434675112184998758459193649792117291673321218265102743237913308034353344053471879068569841570278811544019210291645055909715803763169297756474079598580219882347885808958112882030916497377591312883234544301625920531107903061051925046341207330541284640772831091326454971846594810500503311802353049707833421955534783248492736344914952826733503588977457979924996932379696097096246088732716935761507943962486670365695719309690534810697858234734225929714103515199780623465426254367424845389454785405163319656418980167169451015205440757266648274413444185517192070121350169990282010681481701770623483962864542660020223341543071533032376378325117614999668770323305285900421056951992789028628190590611895910052808568650787236303682362610270192090476691112794717305116639496032455341721672793267891933510750683741817220965691475359299904526951324654818754154783135543547782281442324776286677317645209435303590302558158672774974106109464392817038462617768213506578730260325580498557831817487524850684084930098852616317336303141867600202044956722588153658503341585584446362924970523279539106080521428909068404907530451756842046252887243487269260925290001175944094742378776011876165578413044906687715317208883787017450933148810252627097826466693999551888707215419107022690735965790797326477573691981601624706571312577001844214741164132930091654742415981434077106013752737567973663677359973591037756783318853702096066334523264253371809292126120638851884241353907142688133185003646747619417964872912058349116746489587993540359460629362696265903358560041685548835942014331071845383251904311327487321945686616918491079719169707963686100366414463549010915356536458940990180397410292785665287159277606610006556443873374635960733314963509768944398428165218497104283959564247456210728170258818550730771268550787034642855909504797950288560082739209762173062798527437699825503246918947184917562860779605164926607351699150467279926405164331813482576835261960963956741400361069902367053836765328927082420559307076004002637370938199749153745977686405846884803420117382042121281883810702013407594877836874690167974593066969710775572729635817582529306339993694645368071087405506923577297337858961142017437298424336840722555178342532937328486879200260221097932012435252353785480814344734916858260742002609785269864600138077787312937931207410758037705741607473173402811653361942123580960959543741178187293109990617525083462567758509200440735720971401229890886603382046205571273980290889481415644967442220358703753808410370118391262853523850292737343760107715710792271335593439653671604166229090996842867721464891239775202630624932676967547393794008899774283116664517986535733709834920682542415088287875513660083506877301277881444522780121331166743717863446242421547281319648876395267257281691545627276707280645083712378631093626573641286091753694380422379784253897311334770505606401042238313208003141977865611748517840488208098785204990759475313439363509803424420813402224162241464684285981107148781031892305077759675498998866247780930408388758766538722897791790929356330259903328221198535718467378747615675064431914530335788488188932632785709817567502740248976738127851252724003310015679627084274728721943951478645587386445417435122539131665264455014611000957605598396594285946415199959873974185592737086332949670297353530644323220416546286881250258340798372251476772532586271478114273536385949455486948949476056033055184142044091322341682298306755219916200856953479894515278656100074059179745491951709081000202940364410176772814702425048664773275231627222156103595734405701797172449085403707634209493849882905498451749178412535273992589108760991639534209644106786073047061345043783836220908801596831715547432394035228525952297542313992993628173555124787085437671320506319295756541479607806873166946402550890394354326142341608934584379664004665749579501628860465252153554246097475486346480470769738432577282570527528018333505392495666792493247437053905636775625288999264327937486076863743676324624076560635961503734992540967175761892648766399130693362307363829276770216748517795516584565779332537143098761650112527740992052578088118778425926590468677667753381018163865304595575621706949112565209277503870728241506377453793647701910646394782660695350865272518234585189361142327715508362945118507842420211839848864577947523612069278610829473520657225577657035760086565586449592162568270218079789329999949889437565630028674054540323915957155737759787757963520844456949883163581424265592449919229875309584839563709495360224535115262263063503442582883973115248628880191924309760701667075874867326659916208500366181702308879934132215102941395784902005774248699886629791210280470645970337000468525558758336790023581260198206785770919747617576576503460999992503107108250335363767032649732927861745929445065400115603135021577399457416729771477065035845301610377998053713373424695503729409780482729185445709897370583201007940914047708235988591336229611797971705686789878820206697403279304288005902287357619236200171597517949737536402975044657480909189400640264954334885369024598682438058980922122952627445671761786194308903965738288022933753027840915952957195033057644446408784793056169128890319423121897551588733499932027799122315672228361694455003888855433676421252009189557183414525185368054308349570261761502630463636113543142315982492728286225732886768294152783342439924090468258999261063926857935452133612389742412179095580251683762786155471075038716922159574093590955835325418094834238987784919167051283278132976925744146053744690616944377376040027669693541546248181691237041057899058926125099069639023514181912413324338851718080534280719513042274150635375328799811425578350395840930135328486327412193482740395045239959313150516260420629426887676709925467213822550222623888502406087399468749233173955493506904834896520263258861029664516351384679856695497661181454358247722378291962513521897651469623042840877065835651182327644031760938882819564223253226826221561392220144237880287969457819429756590839980528060832643252360953640058054536517885752938129652680474255963165797776893207792875647948153392779761980244600454769805085671835578060425621304829413161235054379243271593257340182867465417379960932819521720123403953862744927581442815666416565222457408471555718791964780617147488932556544790289014957016656929911284240441145222869661625533521357249736546036111229128877078247855016344846581259481987104134446903763263105214314618413521156123695348131759562934683720601364009856855977344364701295341289534180474803521777685144116571980539403668345530151788212192972870860928323827284485371138467829372551983054325105609611776063467281798138342558446510608499852006690685819290638808732790872670378640055752550907986942693181868021736241944427252750085495909045082345325977195746431638017510090771436077709656270203389368404560112452602710393389264928159864253139801332935795788371249810608093243586308968323434734040941337709419731120015925446698788605152276918177973385000568069980124185017784570960505589674023159634857349273724606090554694339644901393333971569774008327622795337643855685544885945199368347396518492360747375297347248731031101429628527243300422718863115252341289157542046244565743808232857895759178788278293289607745816662737685525052647777478718343426048831213856718713525942110661146652801605209746866147904717418109941149196584900807946125917797332728389531475444880701137059430383037479024223717121397248099166534116077605133110870417906861170555754505488960001910091085137463617387358505722820980158495818221392119726004588157723982886959121956765138444209776542399215519082326668070575600549532320110396272819268312369568223837326241895019946062574930488268983525923590147911517395242108495422076406533585810759603280691688130036257704535892517264735976116536153869254517495728523972610733519694678048671039878850810763340014202380883916304491317958134268128197474178899732417063422496570957434324201064430808537150857991065604413926143384288435816397976720801221430827004777695824019693501294875717044661802242966879072253903685634426060177457620640400299037633249989322711800766784226246802019669335718051904551356019486668670496055349062358884777691991339649574272789283975856685520389478276434093282767960971960226008929561097428790389268392347794328480094893694205807756807234545626811662228673095896013041757946481947479951936636169381870373839768850383949627942688846658324617806644982629720966422674150854304811621852080251822397934948944980177388774931825796658019937956975283542908184082503472058037206183955154550101414066111030840224586711054484049378630658238274242395951453555313026852599584175700115026290535378547007990781758080544805554301195304948284929436191503822824427316775429232052724892378752301654853296988384882078460325653434335859322094850825747365494680502432785977190074728260750485558885135276391197998161507689611681799396699493250257830514723859192694205940498649439515330675976951630118994302948150599304906999188697506742472145864104844958762027841365518193604966277666215512018032296253067804596356135031869304994126986895603647556692660389305784275975532407106453558629276295879765823951993094049933470160503436607757444541433583047046421731806994619411667171653789250699487173715141061267679996136679923151579519423538555991581930106100703124489171953196149632584558638947729165196501091466996765415306457671590695373985636512900252490511989779800633592584194649751474203453499912273996950061826290369486891436637635035511514900555035841103337235755573616326563756661929993330555757529185947358785496869604336435117204807771257929251596970305857779474801016815731188259625882386111324418038536278829320216123311642819048009465123090601243575507480350926457942722685573290155382246275742532920640710595618345595892956482132075229239533546206581336060616905815060495992587813145805444107943973747495129703651508553765821837090745254383160584568580515579160668072901679119674955388927137375671056330114083633785434845599585777208017905985142770455916094187487081462191985353774710563764105942823544385561358173521909914908340866474471563448921528726096902665263364105706222204264889039693398273843559526416263910893635320660230190500678755983389883258974470240276463769093166886099225619645114374556096804186362403991465053846805003423649531213071659882692197117098198073095744078766526927203194920285006106361533222607576592484347887159358128832306525100033617397148034047754703787368557227219513883433918978765059771255957424753880202192012621932878305059024308368813716018670412908400521198913235287591474901357893076103530103208290442804209447522546572565496195665659833257082144716894756777818209089177847699482747103994093822431420288082226191231231169936554888160283723990955004342268785867183211156971092854767397141007070731145779761329770606285874869758478472888930663544962518437776110467565838504019282986706506099112575566560760197614189983576145372500732083602931350167040389488189378843128697923215882089436735563459290854037500306739275083998347478223476465873641231493081248233867652859798120725384252687669016923749774758679446101179571324706023305587698427936193541296399104664728864212991983254792020229531908960805137132760997655957688444255355527640577258816565156860959366213605572756375497901930087030979612221125134740875728336991432892580451898633965224396524812418461210265713869484446642106937019504102961165076067811081336188193310675015322035902539986857258284479440816474104341222460878209323162808489712876151524044075513513402802028024086532943061797962213383583510709315144041283205795397777565005380660311411403567425442062297046789387808241548942109651425730305158240771643322424778573344282759924154180212618664004787460014436982025888605684530051548468642641379895172333297429962376302305468597442840157250821623782966674103318049385182351513728379704314947158335056661785603195795418070898486898777833681950985062934564568890206359212628923929611887181365447755854844880222122612466707328723804033556201046932665932500019927665012792888406770000296068670501300887552717445720012534182550296280071175782313592657806308237468705460585480856879583200770764454374361093103421447831363066626344716085955136310251616160976503768183690119243184726683241795911750132104206335149363323036520991179109796998721381052149859187295381328093105136130216764437520323594846404329848319760556352996003555895494641244100031214414188283665939146127113030997625657947314024391208212117282215550417593436735929593700747755262486077091587652477670484116172882512758048614677523467074950425567149395191560549758804116194213032606406696577816881890681158627680405906866779202116883468788762053109030012184229173224756136579835839685948068789086633764129980091995520522668798462844194122747635574265753428374558247327117396450215877182907555745510206086967603731542061836447276808759463964295848124370427614141829679705739939526717687172021918977444599021463027819812192446145453638581585549283971361454629852426904636836084546517181017247015936737408341285480744848800057498213466134817596016777962716874082397247869319001197387333381151829379084711316788539372074800607388772821305651176089516546536967080987282218843205364111929697213179064865638001880364512270968632340281752082384930184383904318184216210852063218339699843919520964596129057987609529546258455956975460018605796978180127511485994724626558342445157654478063775004046524310715583408171570237913787993583504540765260283450884234047886890566993408442887092251381455832379546376260604547428629710809737377639244336793012236643752002374697123299496349682546721534994757796107903928559127048574725761929096214941953418046082157527568948158516592589893500880690528905766253788660666221430599814121453504693110122123032697746602880323335620058606455004647963580771947418025147066383722793672668439004995658834669135770144242170642739800821198471160920900988870218205061928617948726342971138219612858239327805280337124082997131407905025270453040020372023380540959342053732179316993338670329763929109146122041487413053317840621920282221417498644578811991620717581900513020698735629668858359238937617750311868802383920704220471011540507333380063664766788444931869915543029529423037566880339901636697099627844179262860631230780380629956363301890715549806323732963751587992964295971098764338006321842061479764289873115460640045366393423615316806733255411700478009464950426131090435825064693146174805343880039872250251350346047926274472613266612180123784913626988558175474859123435179700522766976123969428218953042708032853959906495542764191143300921293108887599190710535904809183370393150854004724443045258643610736420813691691000497313624129391680592379634319912274453094602414354307786980749845612959781819873309462751447232298259711835168258778297897285190789407043870883777167751532561889632373115212313263190995516866332887413571594012743719145186681273532985704830559056816035862835236653546281730549264136882359726789876983274086929793058875580011907743533292367017222610109746852376237267845270093285437180512829782559329412088687920042801619684586470048540323884424105971847121394857136794120382018347182262682826320470066542054233777948124016934447641341838635064704866722121880201675138513163558445551249412798393883304663003193593694757340512540683415669804352495204256524234853077247349661618320977478518430869769858725343775602745489172663207967378634108325256697159078803778951211806896996419981147367312114716706898349929723311693416949665538060649780088624724386532144838935172882191880702229893746843579073962949292971478794668702821380423870799593958293976824294217095268556180118790058385263158343880574581889789253823999699523699081468742104653984888788492189294814071837799297103175726129559990635902181952432010053623324193894701525056046939087059127070895726425561207164837062660198884811171440338766766541427706928319943458856280117640834769007173766201390090745719920244231377335633271586457040335873946913633792336980538972983234806695916726654790215575912760771481609910330139225405114761332034428467779269648353105640798022780907890525894508015393943188509780169650650591098748487372918010348613505473609303836613913246573516771061392366839851060020573200839307991203250103242897252727128064502993626838383598329163642720995401591325057602886359775874177181547384702327767774502756622901260096213126148996065983841557892981366519746341742574875323100729924069331169463704069526865331245233871512750853941132790695970608481552962508635645824249223850217248089493538550930815721714403420725801532753981881785903718001247283853605398293502329148296713173698943310669682270049715448398489010881627031360181511445554148785922114956897297673246096362264906812237815768234560444651841088945546969162195403605945522001251195049175459462724872051613105910603445097103455993060677491121353870232397387944478366861287263923035926628807271520411057636240426311878373036784491837232683893755473364914861063202349838150074866034151395519315926151498395903465403668509333164366715229925503428614641776128024768720941257080847720506570601635433945604596531239864035714957212469461744529753276597255994306259671298769928288645567298586640953250869588266803591839028911719506143627583027800628523607514977442965534363109790758076789422827693892975856366111312487682096363663101667123453249971773961124864094531071655296503791329528103448176431177842043162076643402212735200442733409883704370499722265300521279762594017982322493760647329375874374277797203639620997285284606730057900181242644319045078976263256380657124373528360526663888560780993944372836078837413399409018553561313627231498745865264777876122573983657794616999844121797650853677340207583056313543178561981182023961131279387515580236191542790197793989592278109409640878743864971535625530117785294176944379085599549163504369451702967392528188646947262288778631848547296127661899025519963831137879973889953729896204311523382653675372419953631960281736626099538476577409587928771175486221692518888404467790835990055963691084360992481638844138743865156189347311361888552077049038652157239284456222053108780647232666989313100412125582377371728498728913617789636634183077007159559154276398638644346362823669062756702223276208763706235103238839158807770867428971193145843373498372029600463992325756225082497068993537711033791835169485773918416850496819974782517623193052602351683052294737581778513411359125545449412773288125921587348054210800354977050815752303979423829157624761450962746707503986928141378076096244737421154523200321504080545384656385678935696086289317135529385901061180344125316881585884287339897641507707792260365375626381135357350027563163155088211651855117354328279213093587882531209259066859273094320300474088746199263918941564443924021993068325383978376249358448862747858770344689410921326685899347498995576093176908226960967916759560765203867345417292835944595197396539308169990772478971316842771050937165253584683769952728005217180549260934253064824753028533170335198656133790319350825194790917104848452342736494213787153019755840627870467689847059415082127492570628710882352363605159701278530384188136605339074237925666972270685779156605120912610508669981967799547895686431047183495329120165265536404943470188197963052185062469453666503127031786855799290760218877448537285911975634633639073712277497999997456266800590295829029330164609063822508454988507962685518556395959962653269226075909811201800848553355263872755274860391781751759175981113260301759154211149820158292637869552686440898817349152282468413582326560899507825051687719847464690903881985783046828126074762023932829044250499928199797965069139656869867560701521758024770314062648872767674320556106139579635722377274497086614006762672573163961998532566881987009706630835141653733833361191096841271619402928744759173395114998650340553507363629280292815476416727850596017145390398865339675633368705755471919007020814804817633364515426594525565074937617606386048761712500270506482457010064554147465742586631270792171046210135922888217211769177130444263374967972840949530191139435356032001395993015429325862773356191038786503481415530724299752921705749955116025728420957449982184816808735937293944135397533321137688220113583991189271530927975048205595259204670897047078653089203130546345123730964657265526031729433367315840148875830212365272776726422835717573291542861012316358256475238266191968204555880632642193697181718611289756526181726126470773231268105813964399987855394634514185436365262643032594423684891986546380006596275511265864003153808564203779843239150575719174411025460805596934452295256756567154457442492083638298936086130984495884287423082309825636807920263253848222212036603985820379294232477814018366300619661167388600110399676867214582556839890884043041648991120377918787671521431701548120231592014155740957311377316902811771174552355988450040030830988727518970740891765786726674228599456027324795493337408724385360630757698160979807831417716495902900993803284336295892933293278762997344407693895186132281876438306297277005848958886130976876944754842737369159655038446700160574342276608326689678736238988393818520212744465353326334071076738077875236514485209044228520290176231306203454050157093815867024443776342099462887130720277021832605111761524156449299391091057613444209530722506311441783592006498488834608675291402285072769543569489250451935244571086026883597231516097271501284797805036026450215532674446713796996434695111280853957647872952471215183133273497233719356336759537824193796238174042741183356224139893115763070080885412757842139235751647482010757421359933201945334226174612385745165812770740324289123226842043613309046600540881078324603521418616461625550924414731114410066224337686651383356853515349996006211386017149415482720804447768903496035175274297546914697426999475533795822430620456474424193947729516596426386276769622071853237477617988597664973431125327603620459514199922273730240649542370551185403585452197418766770843162936804616907131463201667803027071881772233981150576637876070833458158376120581268115503949957357336410319604242848160097073927490674112010504672090772320054651235929196288483334202442866348369153944045778800160837020031314031199415940389034158500360945507056513734341210144666117142267565501146088673698371492041157817150872607289817216787074682874095161636464948632223204263499492374738640467983247608698156318301220762551941834197113785611039984407157060838500107656703928077984467611840009065024950558405317103984147156942654453796987610997602069624669900536870478927013721563001005400929416388815412752742899900999023328340160869340982822136962236716664358562207870942831288069083009491383844373444697621979301390069186458185935553081084956523426901890158105118346830103154522999137789372166570455277574173407391052399808619424758815279995238552018152173803363888896198208075287266885539956616726936998212200691411751654528015473767470540531441852192449196554102579068527591438886172084115898573851406453751379094875532730556718855381902392860970186679178387003401123264835744455111427291202022067312295503135637323201155681310682677015990316759989802781228230894802533334431019925054133401652767640868618759206475402020740377312533072420197990842270329801409349033816036306374972786357610753643542464825471380916709886817560603163915780260695379786209239708043461985048012049419925393649650067438210555861707654440907397376938507094808319174457435783549693767379357619472995078105420565300588930918503607283411999536745282040380928320229261199603698266970549797620989191741716577130363472511437968641312714728856738785009672703101822865970947214468446562193565265025041351094810970335048416108507935246104317950106117918937025441727948039588843549332209428424116283980963514474917280699642333450165293558619234624678782215318070839940138986357724502474083736805294222100959301817966557314319027512932396436684713643678262417781230449655626885185318741173974121852095681159303547207618609397793931942503805881672857133072032448777180114880954766700221118286312860066932060988436018533836813849835142079790372017565573977534431132800880439649721872951134388293517886609147796354363685588637611917148604063850971863131537316246877043011414778963331487759952220137267121840574245823757759854339257422069800765959760764288141782267523355196550625765586470512250656229879478325941193638695517849883884910322999618495656667110426572378717919087111657688022184582932483462974423135711006039227864126013050432183699202891735520145266300501473597401343581470083485365064690176145814239014945448841141976087817007980139917120037606613729892043055680809255358858793188815771158705111423944941153322739826141569308987572684483078565261758493907137264736072022417952934468996501437871267939029133454793871568163795999352045985227320929197829320181732389586024865653721065623797348641997791539726126510934887955192677761001525489487813655303885611887842772722503091421567950346570286017080520865503857483481292126965404486498235459289224923293217616655808056148466105663273285378333364882677647299749800708661326273325612159081340690632603479689595804815657599246027088746149994887876148887567195848024878889549574803238055530236685679012004797905751803745423197462180739097812699782460319040664527201454037795338987621023136890220368070624672031833604416262018705429934813079280033223789981326914967069575832246588252342431093104606746129347434340090241132460805698145705957533244858984664150358293291502292796687696498470989870218311932734870498924078324911555177372955822023471561752615576144137859868533925969611940919466256115057642832450554224923150825970059411071778703725521355002880182850589169289697555289667636187683314951352688872730992715784385448863882801198833792447535260245974823338678068052025712255929468901688399252577732465604290584241011299927190692396595760352296418646085624497162816622880611748743075045825984496617858486776125898964965527110882359626319821220126706503779376716280818908787449756601211362675616629775230633088273208980486470194117970297959712900363581507562508595451036332958214967570511329438513981478164568883473315528461097424565568570325323382404306642020718781380870627002090712103338892027044316093150644452361177845303636526545765880089138966170142052305962554668324051729978069091684587052759888247667413464941844502185055264117098333431133875503625144673001710692811591974853986741917683357426791825100360134513595419097288392750401546576425676282191673145703622422178919190717526569681278379333109125606051569804001140165243091263328460115104628415606475743580101426730187544181192274510387491086932437639141764750356608649143149908536523077019508615787593301799961819301323603451366129514086706814652257020528819625677259436584508290174727631293375219601855809635687256430392446116620648144439779825889232124355360180653452006751245745467612945684867327499228132623916975165914339432013948298416634480684983050389873708588720788769279919409704665042696420427240068784842894172474703265167049795619944120678736694461650351843947622684110246057406716140457243641842339287920595097410400442074477987432175544855436443444665754980440986393012186759145181335007447114218857401191528446496274142908870677884080808515076721708131337807583896329280385060778039427258836253748085661020145940355185458589063366741287995241227199157016552289869656892227753730715940560782141024289702659916380678007748946207019587497075273916955361616171651561386205328797408920007200694711133567909166461775174530749749478444746819197293893085965974776872689952640933286432353263695086207983417465276140458678484460758317483771272965180125554448218793196108985793924596671022988369803306707140673819303433808281462743713561185089083644289369557602286169048312271341298039968367760622490159482864381457707628582209142415689477419931141887530805415708245965962725282693579462141805760057168565008095985094634983785174382665337827517975588348344373069527808673704725736669816506131521930478500052908828988170450535669902118245140490301442817652169162342122106065685600146504336052967067369763821117825663427887918799724817165066788592266142818887444034077417188143564862038220277469688604002483092542353125762682602282810838019980051952638733936195152556106549595822134739557238113732359751510634677921470959967639824863322307426008186254633129217591408698484096529004803442978825503669433183608134908539269873378385180486375127657219622953938225229324866640496966753756779526296015675906989828198719226453038214456462513501182410910852500241444232722849317816674732429348757413276415676882751233021262912043871843813621122520393224322958309964422581047469468482475190707496403220864262277410500631000912981589938137749258628757429052294250409097333412253908403980407646480721407741176699680227861027623197861748123469219676211049420491306670502578050973392195544216699073629052050273936937092374555693545094554054004186532555100286326210933956989309998672068191386352440262345921983384141098229425855808813349326274063064476978505661663254590787111750809628305428397526142077159983998499793308951479859723778645177667356612121760486109139890412019873582897523727534492976457852785233176073701959759149945002039096510045251469415793173908667371844250637598074938784542108911980853535616834195272622955312777597268687667484163361999427408000178092989595161899135944794385721072487729291187288897195700518891517979388214949128977061830561893859472793174733903225642930889328993869889657359701264177004052522827664834481085681495946309699655412258239501627066530355246733721466162337981017750273848280100650393721624039185221693674738650872522098692888265570349096986130122549889178384648403304592520432800523210360163748496077238481353980473399412016670478493987247590896859791714926085725075435794241628663406434369306787408239569985943762591324787821269057053015028375415844144724938589194847627233966078741140046607527063936899472462909615738445245446196839009552674163965180502831087328620237935907182931721083007305769171690238271590418340987309187452259511121743944553382954823679621541076120851897189892548594950952302035732686676934722283591428801713774772387560472311282245414704798626553261504556764645560133058583671567345993090500979479898583279366004077435225565633000583457767151162688723002700598706903814572194267281429511280846341134391632719962691013081161895727816522806322080911017697262738567658653876181225165005636749056378883500927381560371267858344429655864237100906891987913278805840770105287181915307854543684329433045527229736437134038281831440210109987876611347098307660094958967328795703903319460890318749716759699933325909604852680405967480533550145106437852527078600117507613202521733017682880236260059792743579340934820214416020470672604031509059794521170765714683276865580921177029382100874304655301299629098569257280057184790695369320249081416726022282968044775322334250005957079591862967063899349068924925144009672716900705737293146817070943083516724842919504414650580856167688361177911932339068345047804515501192391222567301330620184705766781453165648133839867751144127931707379025740408665314079903141118086139138635840494304296291338247270399391111061031424614688536213460287244848954335891305851203854163525475235529439818754050477134449532355001089875933465384456402061388068544569987685172212330983488192980441505781685912401873715082279311200617281006101208640429907503326034984651159247411167076861299256535244740478982254594803177533464474093958616298910371339119838945170739104365753838435656060615275533566752567377903388820804931098113654044328326565130178800588832770816004336551328937097323884691553327809531306103335160527083335173173382361941812821816653970226023744714760545190709253821437131497198667285587482180768129369292890008112717824843332756847424069725885356079563043137390049648791212230025958956863816602183562224923165840851425967154382268510479906305020158691960962491559132438255944269244103572926224969542359341711573365627087587981201877586871580765499348236186259425391647635508019395318327052438994294025250303830198987112401073683469613660683400454515272020125890484868734151062274285910352171472514290394141923560348931368361971327492985511385269789808598578582912368454319191559512255680944591288446284403781876273689655110041351232884748587349849988188744191238746880238152442155473532161426479739620847313242443016419179345161601285198334115904993305405329588840658370649184884760834240503292393618565324741089271193409466315690736502301342081622330564291622652470306776737730590165633936853543173637150270653788345443206485017311113272628586540277223134221269429271411224349164410404939347804578938525735927131149598716587502482222554725925213579541505064256154180399573326734015378942491900589973480469710735256411994525000930343806243485984849151616730468398012018730516557630252700836256511019047525009790976009323925551351411753432124700229227205748745195378929254991961141923551494085771991336799899800068467706141850008395212079765344342148436557201109584161961178867344702464319680370564702653937429829680274971480615555623921253276414489295414940250792613114836517624054340485617793375042885393319666333966457839527987650139528387348922137835291888200187738506690414154270931314063014457370969914656784428749864667344794276433773782227093610769857189817472157298608526078266716696618384878408468853987922204215674132242965743121036336272273742294638059836609539179235326347801873812688406022983674856445308372133603142355323919261218668481008801420353798993818513005891956404865461096483113189816686293955617395766159932173681710570306264775023726746426757982346394925516793972698236748871122448217053091798104762145923572360510661990316688852019223258023311530108650645604042142116783186778841081040264888202014219643928244556357146609436490540887346172612500849843115265515153391619769550748785442829023465404150767126897455106993677783775510690668212993555312123915091604035447840985605833292435859662871417103432809233248846523197911480844308727429684168602007334086480461772362802745949418537711292210239038994977295639653256111302536409325497765096410246572570375627686804229861591932893444734992742251553102617475562209816829466617600465986122811477214264845874805967113944747064301407652293426353092460840470766102907390998678125678352585691767158004601017886372990451920170573008279761655828728734524376852671441133552431833268586333095908918410116530910334627879923611757005380267533369221407921239490152513901461916320837103250437689604278758012507500544567118669952153165194743390371374544576207343793130370734130414743814510538229859390776191983468225599302160770799494562669094109017986024671998898799313697507016955701196594539186885196399760113827686579012772154984652817864774058643921980164989541800996557403253725039389844211029812079035170071669169837259061391574250936970809013280623204930980138697287262110461163201423064907036905093089384450139891755977058867853061387743533307002368152519110425601985348735962511821825534480250354917532646612030778456371242836748526196739404416999026556582630281374095391486415702988469318253055732737769177006114726009386615131305327474903799459386152765600554782039840348453480452913586833986232345424342404124932693073507733262313399940655029548789782415881286181856238437881161773789099449861801783425431454289869060170704896698168126699382456705873911741255614226979818070001639775232226605197994747944067479538001152735477669370094399092735443001264000885464302161142662534183285714619480142998921030534259531234396161666589795846674802394756411005584921529888572984598856813392598782964412931555209399224088148006407860062747144260073221830942359157155528761994881027805694879354090775177497568833631314473115228540565279479044458802962825107200322428085416366518872989284278476171095296603203356726684034664899425174048231710936953845770722981821366227323033005992722296134035985788540176940881320177726951526696129488931157857774062575167573280607943718903428490456726656683330519047961947669659760863292954594609607381016882465440650410870480260890432617694131833327921303697577087824275929898601076226148716643301871810924810067265116379081709809383142836135516910038716815033421589185088890932597144787857371572715126694917645834376539477213669938225509097988476681700543440955923952966669767680024362282532599564599026922606220573453565901644281878766699276942453003994943961315054681130743585645390071330831875649317221622630238621058593221485067749675950386028821128215023708040145490260198135604512611390577141406444629359429843962578366634175248197015874154887294080022876747869560197594819181508055974261324601281786963088730029839570176502938981385850275791884809933387201490017105051150143467620782104351716347201413183986386587729747331104122403467020479068770904563991266826330208602725313057973343920387438359161447202896919515201807456130310558696430684700534151995592656687298927278044358925117593702382022048949031438757209675910073479039169983137218755394161474260161423739420145788615248439192668680522807529542956446254206308075107131692544058899753467779633538822942778857080098576259320129034147063783598081359459934282495422953659730066376600722467227038169552960498489357411212956715004216858144554771150982550040698371756107649219958677814362380382583137804949199365904991913884325048023328725730969047721238415677541347497479600241706996140050605871478436767790310063090188934518888563279863193193711535601585967512964440329077429986433574964601515202636921999332193653874092649320996456892753026988914744063765198572635621166949522927889466877658155495427085097792516711668775178702233864288659733807740371060529061810677076109900967698421046473827156240243827252101471724991467498541996291058231048842969324759025456452147379720088138427511856947098073528249846949355277747245062242988996002845355966261390018078134463463772296799756134845730124772708451445454490044375310242935848169244553738885079574090690477835623345732763432353461448371354146764923709438111128315556296851011065744306797531974518779219404698753197961731116975643728986388947175149950461737413851238927382854290793442496528492592183960668262248506701112856717952759356370544890890268441543802813611634425559448957074086733342606775385501933367215257815288059850719722118767317445078175229924660863138437912633285406777388559633401415235955158380103443945447852506770683465670214465947933925895614212864682351958632317565617675600892169233955892994838220542351899677446294411047699376172239153627476693137303524504807774183253784638394828690922714606636343516946721406064702930838956981941802739158584585275306178924023725682389944421815831426763386104034472467934876188250135070371927077679757877947342441754817941395342180062188744411032613131763850682162201925148116956461733136368809022596705591140820281734147574526740570836915285827756919239918135928402490994660410217089156212901684128543470114224730987247463134486436999900074386054863340008540239781201288851869768606977500413928742078039405728780535442079109269647377250749250256070293741234333003772950581173853281915143634801561330174677690839402397062547696960523486033775670518083966375043116753176724260927629624230894029466998810888859418182378507315539547261739267412101216943800176426163593325821868775861481634801761287492813976332450847218733539353022291287608670556745484254103894611333093820543726828654827177866484829821342804723213628256475429925228823909822919508889945765779865907902579859783890113227178580353786693912653489015254185375968279686020395171285544477871944928302894919782250593310913751777031612717813874629656316338845752465291308771273604559820226453680171132015320046966708014160069105868428185894187606761286285663597924563739453527721610517924469027738879698694045938316342153944293812392347312517937623257372407801968966819127973077881964543039894157891089474293658809857323324463494915616749825705343354822582231853866826471129452754954470241621178298741650306618227735205977896749363802687463147468867133434353205410333166935255144894409702157536478214648835836487856889734580414038832854863659210744092802610987695308805142769142778666529046612363862602924650629894374535700945939729881278579444353294436609225043573436798734787022160396390220852069872005352502949739147139235578589862369265679584955567156178256453029752865775836460321268487824351049974665578061477395973463609794174591654379607482856772911729150824616569008779484954084714761385264597002462130377013657655542515320172275713999163818380449062305238429774466025077974527864390071543894645406153657412151460230407593321250601395478794421706141296038347508245460872321793647831763712139873194076396036842260636435861199753343443324693673888329523001210181968915789891793809248314361832272526458167316231199623846498951341255283234457043729223290795206602222756174989537910875488466201939775908414011511696081768177367061089819036705662725830534055954612038694202173343121152367748836416623323690105172302292768395743823128854475706560789191072938988737801823917175937495004517353392252364235638130665131566111221746510343714970568440597506389970089657949901548038217750765523968218597055457481703759887252768493358568480513694911279939526939707119596297539166592028976922490715834671455990860392751113711729712507994762654348314928100438029455798476974331772110482931445745452803965520562222135946379115632616282379742657143722496755813077650984008506920635280170311739869215430954943396671288550743460673859640421827943831199540879910358945659128500039321141585112198666312529615552870492719229822931210754012950831164653296693102967337671501189741073780964491709458057841736335024801112558142304609627384593685438930288613021590130996658290445855754057616665338997634798135871599872487423627810807566358183920707649000004478293904196140658100296891388651727939374264438037825523049249674972321844376572708402387519525948405667517863687975227972630915809181962005003446629267807702985038947683801434687622807091368012358369033353929883571639497509947046208417732558788349258086854274938126414257809577060704265228323809351229544505534901181349463546613683622670029921506088656832450356286130241685130389366096531575756454664271774289673775409001301797722448044594118603585439896381748295962794140272913824362797133138345811175803781730500035675471644116945798213129797446958545845278039797474278101780226872985148875188278902508589701989619783177933111160427323661540929108258739478906274380087916551303708005852811057093819779334266836009148483381589815443357305912570683458523532095650027898366431985613174888959430275364463731618790984220817338801003519335215384859045271590121109770918260825967489191690477956276340809140020487426074166506555946934497707377292745502756381419414053962585871114275435393648198918808379671304997478342926684993867861390864620730889953998355005584222660185923747562953756008427010515718480373218254452786234116081769275880996458881153413240534161831374515562541413043671612555733475242045012639548910824806909408014608392865678131651929191076426427247540649564471222740549058908215075215215237587158709128486093058063358602286604513692994544561794784371102860048715748308257249312805741267200919703656670805173269061888360993158723418910843934220375866450612330028641913780333538175766080774486869985341314994675971156872276280233162910622499597855307294844063388164087469972370029190351348043643793510258749892779262070684556870624390307027663611939360902123830591841502266024710167768267880792181656894643842211286509961853484447976430927468495391100282353706441622547709738366450627554443478217356850534917460475672223254672694451074751908613625311173095473973662091231374253522062648328996958917914521030135318644481244028159947675917524464981054907844795965580828983449453562448304340830479436280800519676717703154006799759177071865677999694560312027221457183911794852132826177536497302845566733708075949593365240667640966174449574723056302419631023983728829517378990308905261727438366374775664660474413144010848600262366444807033422708326173737025263875647077392661570686652403773520201270837775886560136558404652590842860868555829389220772671875335646759013814582433025124810701991594651214931570649669277496850719564542082559120699870817068780318606666571995229140361708465689536322842883339076941607478325141608282547410476584750809547234268716726049973237481657038772657963711794746428156358601442991234028016001956609624533690489360842325968819722530909986542714614813678050188336285961288099120741073275472490805304142236432279913700996383834636136370502339919189399852072647183762075789555988794856959005848523960920864890163221160867658641682691145133189951197755889903355211131566098378149587314033793348547719652824132092936177813495224732920346318458039222861633919814365466697407811312352672971195237942956739411875744120049306398220041723937379634346266844775390000096163966650948279250495193768510182917270110987232400323090068574820717223026081618261392647032198990963573802236219646466578668526192923298574842009823491405101382173291822120027211141726198393984414856170952496261242589984268259778160201202991729530151802042625001535994021319764592494981499335561205226009476938728458722846809627236537096581025222946702521756891159380032457117289500548153700105849095619901160064888733836092929740620199184009657322218167653944297536034859211416779918036104989756244084983888095314357708947368734352539418174219142557594643114739573939989630111736241803144915855347501115264103525351928074530623435962536601350277861958493916430115080376745105423204183062453488390835000435420755998806429458204865355769044585164524630495114000721359318274884898281490297643753577586008579041558573502216500012818659835032384009098408034326476999915045102779598808844189456292910985766490023233213650816808015506788874040125558533228784416593566674017725195793408137973549797794420630501554214928681010928290473036645109944638562495219639066688507485853716368279108589603359618110949247357217003929900495800101294968736661432660522993567569105617402462204312203551230620121632038836378212064905814699498327837182350556368782615892314399593603112427249792760376586737055496487184499752429902618690824702593042001480549232715154813710248602437408336910313360125323886107627147024694130358002585435822206951831632679924143627651087484212047934294517073911775465512983733973747992320386960385112168712615905199931014565193714551917901240305102058912086918343457339373671489927238912364676436988537736109523687033386772538750023945023246583112341415445278643379983001153526126192641477679567735355468441649682107112419420990825319332814633996205500714608904522571737035039101248600135033799826839720831334183351565310079598159040833697062247682335217778641292456359503024248263508676999587394669116221639247434611991690628302289178186295904371863791186256531957535477316365532910175793959894348070819140650569081804851397306202078342463122350808710581078741091614929475560297436772327192212811726579870758869381647233792898566697066624241112644793269349887307133452399206200270077251312881017889889201639306956467816737313085579637609897245484747490555400449998529395970520310672788379012492019145861579208505845890956378406425275254798622718045372213320270196411720210828179282588045980433324030816211661068291722306448901849064730109358022870618469945948463440014852673476620086631986830561612001299880092286350711156824453933770201666285919784959019702943788392164249844349673991442650768453283693195690530592949550975060006718731861907759611785011047958299596108152100315426024234167796496229256511515065380267952793453997933973931075149350501986568463881503819384586487816809458862253281616337029265243518444929454579858646327043209741977635368377180537454913019622708087782270067677981946062716950492091770104442462291300881456772076060874593076133496663306930849266292378362124180995250434207714265713947682869057693238568664780840394907596661463449317466967481760026982887757221000199099710807972600796613283964990062395710041914168487391637087325820618819843579008666038048435329135253901513248672197049212779609698532704056624586261534093876620659027696972219675820174967748282452940875471726303065754039297548056608066584218286259938989435365771586962471170773599218193378743339403716855800607516603617664687833039856710871423331496941161511039451344417338551715254624712207273182950356858510864103226321178777465050657584289331877379424750696613439652041889198972828220459070008837427707501266720546140624710298836900184593809248040201572298148377546621426032130623766406095612918071219240104233965920727464664912556220299613230852199398259573712037775116423715602086450161166050010861714745878659686493140327272798807308196486735433618843696136319349443574827306206928553524976104899041180698527700697967681004689606453341223247986866526997907514727710569055979725072060996059975703778093830627125573833717980485953053520385847880308740596952056422812222422118815495597709553849683689069596811148558924742405937294808950230705713168889915846331761297269457849731209204820076796475596458614560826249018586946416911700251463117947269701636045092855451466521916988244218883103005058682287367205521002490181511755804789626312057459592869847430947619518162358442704561385050516517119973731148771144198113057439895474428044886268054119683755664681519643232148103826718258485557906985933370097559819627045642658850128478452217669650782612111492139211561541421615838710518399659503939385040348549627882897459661555051553024266544206773311915096250281078312097035218756173316540734267393043528189798931420085035392487737990978803531788430120670841314195376397305111890109848751638862897743514114843708649951022792953200992071903384533069716267451603984576518918134082348716538064931938533126727473223657521216859567754211971318122708610926535516134155518440251046631491278505448519945038662320421226185801900137348193302616386720715488912884284293837918424163074210337442253643269813921632357740695227525232817406180665502042041045622256463318361002496306550539682518713002315651612300999587624149753111853207952684294171123689492499447782252792342695298679308772921431051808945748768852723457727144910131328155766148398632049945553525075783616057105648247692082073608012473741132117530440513309632227501102143586159917277034043311680555353323363637248754341413402751006640282337529581708866929836564743132411272186055767724443322306359726069734643896210728394340174277447763737616707667338340062666130545754834727881494607959538905313269695977210467037445676898499140944113631708349451011306824330628335694013283857347107297627380206383159140696014541112702689826287454783318959609183707127806880247095719474784050812030970832783744062626762697478125129836518685178963555159704178539449335005992120393363969601108719240424832310038780672208873899182756181094667460644261696856052870465949463801911790595690439683334592415197108874519167996600702187700103062987102254772316201747835903341704334852044296440152150679162641703858153100374977377924225480173774148912304386466710944598280893182773591407622775529733578857441628125713838076217347044360141263444311794238591301026228267595650440918655521130629317061953364705019052816541935670299682625300320288975415275574777779018994567677060917599869694165568586408273857874829638664883973683121058964142739871848717472393559967276473795763614287918522661759385277216172196268450062502444753537493695609523193280083144588605862892707183918080381005977790494509621036044653561430303057986538776060270169996860704098262179503359948193238435230727150544671515259261544729808763333070113084133816640482281740907497205494275424097981226523744135492854498194513485661617894190868093391961166801581954181424767570133182670964715745644043911245847062829168384334764753070160831045636591259648784611703264468149844621912715191329582700188262423078144676069430611408123607525414481037786619544132095728339413284874871866714520981321008438307445410306570756994079718406578527682805691339411883092184394455168348728691372282051958884393254247942488409311513937536599532707188669154721089167151995747904031778544283211028137955801351699263508376244964502019056582963061016712601808976499237464673963329568607488572888839775563650650000414204526020635766519457206549572437619640538559799359614120741779268391394989273493825154113489767198201721768198772504721728277458475739104149436729081129373742518251419531116471246263648862857911728245168539819386807690892395250608730132956036070406990036123420084896322632561420634170608191081980015120837309208330595406465066108346086921225750298948452355830779514429510335062571305551501383970294618411005081593958726506767923732169508158769211840163035430826121973686535607701416903733250470586847657445741592447300688943239839287323113033503683709857948109986136764251588888937196606030023087659262761822285619151432184380210331831619754428342461592294945625344354401658801307051521829351036987179835869382911775643717696341142463531294361455297419240648623338483130350030378772443489681553689091897467432951291589004761383579474472634262009895011194249136321550509777670101562917084752083244947515250198175771961403015761872929722524799556601117636304026118164842258441947704215637849993980162844918094148200595479091977452236424503052072781818605348586813693039110046888567194829718089353135532888134714574840788529044925177532397649930948654453400328997689239366603352766637331542568372429967698054008182593520881400096832403297250568986583780967370432495083246731557668096738763307150059916046799410806618644865336184432503846961967965788057675806521422067999277857150709419133179516729613494617419906780909661261001402250095660768050794053053249514435900657516670882781212385478474161924778533948132627399861513240023378447502188370943584031693933437984442212062964380010997785932267923555471279038722042469694084251395245073728583595030661921804527473930254264669006434046911436763549902479816953939919064857821487618970068500582567385248723620707619997185830425834636494217276299862790867604994182197649941800268636443983246890519903180086736654130755028753017517444572384381785449311825273677035939467528026880755805637885894279756467133946609937126724623021276675851870216690397023863430009186512004573819417843502741405260434786970264043592817025358528384482055540188537045961844014110770850609553214084483613698906697299646810806947506612923192301830446104065931558097634404360753225820846870781744263077692710861168995227921182219821572905595950357391051978154981186781511141110505380103902449192059754904813175307659667568873532872418814125285138794339906407104089934893889407203722236925128520027800282503113203484671033515884389542136816931386842964269855738127702760768721215840886172100693348446201534072550621295789916177686680000332285948516353174984741544449599714591879287037422488026288411348536512001794112646154571782649404396932389361942305014070726831261428585852977797225288224550494777295024312845329873814174417327710603156206213721487030236541489690770130718114107692289201119386683916626528808121963354573025265067314397195391760161495915506105093263483196653545109028444700359717882049923910816422194174826069828527987554557247327154813225111028811432510951331227316245310984026502618857107161854431584551617596207453831132340101640366879763857637736645443949153901358133643101472637084713794520589315143419040969215720165240117208792226582282044751772534607694906548015954515466720709301634083853347058887052246347612907408718590550013289833859903913933810514467015821161068316935431145002348889122013795022727263114867477172999271062359847614284489647232906554747423730366570025741133221267610537650702641873467518971609173363389440378111799505280580004140720055146182695031316666191249475537223749107226071419323838758732074663786140287535092672017233748411182106043747993092919549069448179252445566668026894531470736914623018582825868722417901506874433698244620601856287418780315781399699170944208722119678621064869775968211281095468522705552613572583722662184277772493163247687778787664511258736238759923503744836639885019920756748294458552720632131312859825040614108332225805351444195117622101243244824033621736034881405146234038451177667250830431088871535982954785361261508434045855183772908999392011522470755330355430276522332838533215653084440996042555328819864718279310369351064620644163962124151684961646378263042752012080771963779697395613085917788553894921627695084767540843810124789865016513253622010207251233898754541897498986156746958195314780055451649073441054837061377949908753044881456457550524886956260155261297554974917452682665525210946917613278735703036092285549028755393342072415846156892382283188781628960930432047032534585437772255232818144981930540211070114561873511082231662641144293902193976321425159392842439636485072891426071330941625009426018855801435090938421335983020798470153953253512772657262923792589798457499936175254240782585755447624881064530589061118409738990359085406381485540700101854617014197176819903695906576284419902408612991022934196301705742998080722662016676158152363018096448148901786924649529977841861431502743739597796438314813418914374648099137737862976300926869069411607131691370841448579450154371883857039640498397619849430954856116197955075331203251464505826062740026509107468731567793811029779865932505368286874107079063261004832236620799881182368358225347029317327281125240408157580556903912828623437980049537869559253417752652389200888409689895096587238877891427564208198856095568118372866381361412014466926480554920489380045264860260288473091365190245926430166550407367559661729003302108701260143039107301850949400329376525845401026455693029186272248445395085017536783821766090090927543220167130899207193468880792177946207272111675862565419603482717307748979344993106552129030382273926999066735373968197893390704564724238149502713315748362608488056443722470577298012043248583736246025369041948358188088834812874173571041136186048235302454160772376274194318420567201227239772761491192570210047502353007864533161354598150372423996261047607040622173423651822288738284921108395010209371233087663231997676661962542367551331269571698888295768462363064638619470948762420891810618471310107096402879603632124163583041504798856361510221003415536134784094012349518394048430041447773731770723017625964543079846061366354504142509901466882486039856673847936483186685082487067298140559554634258102186152500626465770798029048884497415736064276912856915983198834191145298195697757130736191147731330062717065874626995300831933009478824862978148447079142305882492333940677903901126617011315671583878288208989260400684315248680860850011015001686704582900814928887100008333135695234227082551167373477606612652057924396719608142665341584833917630290458084074193563396428833809689066743159187712953238801261868874794541570044092446477912674594506873880690156189545879788366995619119027843424467338153432894593889302029201599827356527319042166128628195606741878211556449778377918873081214753284877980720043745253939223301700975508499933179900214485975928700800521899353491629473048639059810691504770363201659215248368832416184140102621511891555625848189748536268080052823531806538758528124206171387993533349433768345896402565705369059716311428935429344046800291861763137170751030463664698032952993867514783472548504307670065820094199635047034166763810754450215087109041231123870224205378576709652512676154365339429725389264261846660124939778568869113712872455361810032281487098052003067061099843392915751018058525803779636272956844696324391405088317516093580452902157515279237595385336252071676451228959323105212235609119974083780198007013862017338966338876730803058016263566685782513087213688995734309345995900427430913220663337071837282479647989537282961546231218674866203153516790404338983472757435554733137373386509581003715648487227483671254231495030829842116694355718372075581483050303695733962861609779995180638725223069853912952630563769848951529759378980804242680865120860740739793254955603131991717897596749788952347240324591162761589340234297524279831624613970452635168822647169763133951177528178509292196764984266973365204646950977791182795873651143426426069146158266282305446116420316960339944206201120786385996464330117359014890769113510448450453576832339474328098508110552953776700178457284674759554720780341532378366833562110288374260521651939744648914368105526888950165130911717306298145438142794689893378738220400842410362990909986485842309828029240788565960150242488069095165736762383274905304278203898927588265334696766530363099158367913649279236875758323912722725835726098594384474050759502604844018481073851641904383955891044429778432112000917753985228399149003538806874182418599880501954315381692895944633824146233819699372799606795688709732619827430313585259199164363820162953784632611363461621107297448626825947187925364856520636711721291379778325822893233292724222570318811489361027778346442299041420303420478408158367625072452978308772121313223483289775757562333291209747086121680707044256675176884285712342783046589744492239360435683425068351205086573131911107127278193682499009470482278900945062863412947930799563345525120627394116559867108892970475909841872765901204819759548013728745249342032571794015115908734987848432982977242716454297087718672807529871626026361751250076638236254578807942989802435480604407766729032866895011656716782053537311298674108416429884634354946660270836837159852885228574147132884316294430954338723363686343842666860551418967598965266105186271258634814544367553877934967115001213940643192297112305718456153479714877660696531947710081104850192121095885814374335114242664032177438767944397503910731434924270587233690234417485018748565576667657991389390043648845503080274742226763714127904963394278821329613816964813950698474759906335612879437038248954061708196920879470222923525103731017084820451009274674608124896469754542620346390950492069943202833157034712758749051747685829513729783524622581143411860391632233753345352527019605342530372683849277639202489859588738536898370675879156976074770128443289643418184462628293610495607691168863788724947365943212245957297461130830255654183166147621137658409187133140711588870528209651843353300493338470139613836325966228242579585359224981997641972558526926173209125045740544369142417860067452593119999516072555246238604724921164661013580978838536839310729371615695112221025001860229190245101730269007751605595359740353165565284381404334172828923886995124416082685116339045221482092740640170020945870471471004094865881025838589251121896123906427727771184479946829462715580606946752227475793026414922474326378903449958312884763192403957370437710863432784240651669555369778937670824400586714326118176969745465575306985431405440905701449647715770781839996453803104832168248854755701901901932830212380924506072366723527602051354054468022290118320148077529488501623334006325975904275721595512563016149150448434450383023017798206174780179673471890859816214464457151024900682682673585176709075615261451345022908882176515614101198573561776745013016302000164917727509092805917061580023650222355191096587129480598975523745348210550920588236975118545144803719404210001780626393468330216842317662818238031025775123135581242678401254837597405874881949217215192409308445623157306978684736500857673291428157905031139063551546947118029450432962300612756882496311586193439914951133695612406543400795355834519954539984931318567478941168312670288063503725325249141907485004542338419656537970984307399544417524753594992420782790761390175306801535873626332889211607239748115802119209440691703485377907642715964444351140158994515502449263212691818851840128619021369890605005163210948452059788384204542922238390368849751771845706174979797950852595470149394176476874696590038042794912981383591301078645450363422119681655961610056258659701524798575160010658667776275323861992565909329692068164143107029119945492141807659842358460989880440757526682191513029498141632352072428215840679788077450327650068326847807514351152750786777313408118777055909481744695164800725653291960924567625988899008173585017178441429637568149391185487289484798871859641483519329804474315300522876685280314445423092419827576035629588756223352494743773995560463947484912404283918801467606825635491204540996340909354677042182379447271857914993056736113093212810325231587163536154134413808036452034213780027149913829407346949002278653782294379099949015077912791417088224887789246591594039270915959216401181658033344522262880876070870499860871806156011942496839498481941738379749177925550512848507647221765586420977502169719218079812368893315903801484226785884057471832907136248674542223878706941772947689369682015658326749707580608093359488365800336707377120398259948639106152654583390166800911571769018646134094113747595399985414462979675693657659555182653188754258634603822992898643955517685798437388801609164431542996467374773244931264956678691386416742937280562462267841553873362774980115141159743422122090269699101384459993121683882591059730175553868051067748240263318070158704051633231397965201921952546986527417596456970231996086514689428248226459692625022269944531323970109793520700490220409628946881942123313957992665594775880722842716711141199802470278301634837342281470179530116857971516633898606869396562417951015095504151136214968180555495427679940340687888565372531403581799951750024624654948792056074371586633387428425708563682762275418486828510791308123701996440134306581247340256194972046575681625694192101107308810436645412293798969863771596810423141076114912696062807789018189567983442577332586559121127673619120657293593759549703021530708777685136112607362013378203080526528915389087100760771743107216323746052293228680422448584228129650079292067171386160797401747849280977563475820870774680138779717284768904831710863121289570998888241540953552745702898531330053536398271013451983329781467169245985216936450870707381586116762215582643486922439153193011621786879444966952823884126095503566596344070556683737595145858972078071366710077340420397764806947921370488790215449952643440820254295781012901845726913095196750462126605148914506574897860995716364276896570980967150494833690201292979216457554290869255963929547816933772970388489043423441870445921198794528751629409361947843880050260787611753151196670197544483118652930758895044850543011630315304422891339584262061133925276982291253089119264295326214682234648489688747862237798560197528838920787226358915429639661818747447833356634489565979853510519396561490488696485703091708455544453702205056196031715891060069577911530778755628619213957257257558576478000879935423375575302745329923503300598986928606895600599127974731886386971381412497351115649194123462229121149916522546871935679849956075345436810130338975875548995730292167118735100791633248417501919364256018275573695689928041542449578536361004818728212049407482002591565253275234439818841202771404594398410634081870918664338250798537906132982931879277133353033249811661991070879012128910402603106502380619546618655453387434458843839606122083960549847420310948621921665127414515715148918993829829574204895950791614608737069031542149857918306321279193437186105945306737072740617705371045584968835316456221769315092361369011843272080138367746297341908524569969531903113806750942336213545011276327360045195540296429431125529516898250161121645852645032381253809978957286124042239484516320093320758471742068985843620251757542660676048166499964911403079313396917510418289522582416884012444271357686834362198980555071021762140258023081555263748046964217421063335966440007498323988623225921253963975740327912521093690469095875474898633186322358787996438209645365603234623847065292060938266747817018768639417957040984304240619068955313817639726467165919067989935308309276948496808002442806991289156237542540298499077907310144348169445401635751261079183745261948472131150472140198177728857103514968746186728599863563016897950728419573408082645966898611200235484826246849254008963600736832320679475383578881502625897680851359190096724117332919107733559201574898466000329396992083219770109963460391227603351566183939471935924702658832812112886932219310452045342204993590399839501661926344376628759800394774192992318241318550520932675407001541521031871306080457652065148721127806930668144710989538192902687178293425448005901382362274676185417120893646491912448860568912716891676351451357600638164866582641722237704503982883170534493676123185464496907656462624019310724793207410677544760342826175755616607051298552090419245888131422729672689342451990326640889259979238444032857498492971559591713619861736884954573258305945322387798910743244549136419321629402008593015986161115549561931012764235203969153021521152128996628602804549692952929155569593084887416357165061144030726482814916725053579360615243435631688629890398782480494074859826748876930609432139546858319566388990218528540201305485384649813252883819137892788587180211505985620193296680378096420748812826228316248891687025680453187333658681032364940318597085752589520093729482372902935644093141005483659246305145101380441058259724217191708568038291474207858188482037450881806300449910102371499760418210017702828385916084989735077932835207798291468149102879749717121037398449400419504522060366174551313122596009140761719995254588698398485183228845928398303790780463268388214440855537997566738139503296116746139431407026249150024896884713886547725940999535377201702040524835567145607883027621715027721687823449901363440155336872840153473955532244185638154570129448442197331894150330816817269320603989355684564655566428178545349281593138014361427292110608775061402805178090803276508565071099005446467854224519736998819784911291621566495223625419070368829316039044987111170678312684433979102190653128713205887358168397887847826696360356760625929455055259824879022340144464087130831857633853576579903756609179139316328765328843332165100365797141965573618005602212342425922499455510558320198443407384308039744697837262274572052267900724256695894900242873523747350600186385273707087516843999848619412056567164638924845620651444070469313260813221883919485574135261407159434586056587274067557832276292697403800199891112458930706886926431940273885380888938273727522200005211684781186466264265589254012034615074007656104663750486732054679793754948498512546167134347642804397819371893996221457617433130616576956884925085026886095803597960975287267059301954268643508229147683208137442663185309140871485430320829004747024453020323055718317014123047050142686676230591555382909127906355473874077617975059546891611198745027565145157026898745996034371138976459864919546597673590797244360346673081981177994700129527723963678237478522754876709225904022045080750458334638125330897127670808389456702142805601181558650776200283999621600065055012592352500346173448730715309770987143999410004565989673332971186743547637699950466546941792229146012656232842237567260665147887552477157016421508051378213312478996368854338711339502502127182846938641666640729755882030306315791200908767794608142332183942106055941101116419518750760421590063134630126161352033490409157274947313804622540682830151658017483276813840842417961169171132929872796377000358730357994638141988359621732568918044171730365401605493194985049468146289872669686346780017904847255319749239880067146124443885326298672901674031177633701825078507642875611134806335910311417800551101530963743739077806524855799630074291537935549332455707729977546921103385300199432122351291856823651303612556102774228382350474665411480109484402919699670574388007219019907188350528271070173580695721572731768214417993851441930447064563573397355067917381318910320243560672906915969852083836612194222040692913932003758864626191088713650165193968187348448742473177871539535292850673411825818850493064445322759485054114373162426697764179253891146999772964777865131710819365196077511463554665903208228246623941189973379613592410246357083803220188505146675866035930060197684503759056893407259665819351504605131824091037453806601354347538990786876222104080708971106675410921227257387190141993622210851238248306604370703309255533281119965555833525194084632911364520247286153637834579658098106519903678268188269700243856332118764815651471059425747187509383399741092446587321907947071056808490501168825151079561148365851906639787342902155366508202104402607456109621739337500922669025586784169658744141235131382855698315749565471213402373356980580013393849502625249265212697256063566012215104824390031986475366482687645046746988633654618193175524172015577726582804517021290550599062119514211670701999741360934063875851872656902156162739180462847634030080062254904228756089137425732104296893993822813288780188805198146926288522207570334072883488771683775223447106142493935982588218703415343229328512198436288667632091750774863506172119175895322345021655684518477363750318149708029622627494198439990304782052679758032495537609217906615021072339520648533680185070396018391681243347238343950049930313348488751019724923785160660417623378221439791234890853348505956393264632083685190370319879717320541322571260946914288986247190619113177493597412826618708621615118145318809798176908992771243289093359827164298303141293906641906231188254201584170158057241006368898979989881411826808654939276841802048334275025824391708169208660382521111749924263764332497196413255689165328457903252033214599995559510424931217057652595830306851115477738742086001314917469338673802502117957385661337571467094117075119065394116259967310439336146991105311689956080393546440772596294383135122119567009546151130772952703318032541448567537199498879353584906183086925750310641139794944997027918879951018585928307813803401193947428350928513333519820872421085308328528155068104988125142039140658712626749342823056453402585996175807925753373355770273440791682010402912907771722343652233466492318389972169623862839645795558569415868930913183852120749316459825764649059846868311986876724619793495674508860351665245525883664387854315373469712677356034298027351058517749297716740816663485005267693734041896744684704032521792133932135641504108886692910612381818015590932546894948595292454460991464013712638190255662276931439812071817642204722511171247433013308000787094648794652403027914885500589786579804422642886024446185731159561980757597247720454225160208990817790154533304990150889219750581969056710738302867625630813917888880727195506865969356611040200383003639575595300710847493832738856268748013892258129447586858575112779685629428741475592665302452103361417004078139745718025055795485937791260425118404541889420926091144364992244642831605413808249818208075983359362726320053719047815508835401795153014212717190683002905075925730654493628289917901986233618067858256296952319054256260366651129352990076905305483308838145786679130013979522665168488093467010162418531903270109611660900521366850688253705266433326847597609209579261083211832040959026958212016644115995287879343375390268579436284804276688784953414223890616585053412273832277795797738501860840179412595397128861749742871622158400428767496879098078744267641458832212725899752245209903870824421986189361680088334329580638406582059660773111244951394059969679263376431840370011364399841278128414514498135511062093773224382007518679152599505996047256723122262446510357985627946903950205329627261008643475459514996368170439770223114250670346415847745296785033327748188361815406071313251013273800585933664137575772245433402252665839340618250439677485830000953685014098839701885945242646118352590158560247156748222401900414769421596868747620933292237262739030852494268425784111733138900035528287931350932613937890732440720447267756416186342030895495622751302096044600693828198805223839188778861670338049977219185552503344110255168778371025734742079910171833656409414417452670284012290320799259536451652647872709311494202959097126217243057556297995529225143922190078241652683150173360698198775089989963438477799720077151321170124005846298062254272769535200663581119825862275209156290818374365280439235034793590284403767137928224324672596884366947298465681379497463963668756601830450790592118829186592874393369967128822207439870283917607240039771708416563619740504638147752964294025570527228359981981654281532856506306518534099160891842856467437786680334733929873442546413513086446725019670063864006671179208269539380976779687042215144752495897693747999795313977185437591877897200598059553295017309077607579942022725418367198667943062314808539349623892962851558616589918203080221908673706377435203784899017256112317813632549355297308014995213851662302500515044448732795668681887609939637845249107533373983676344620407947915659311499571652687178319544179572908737731939734502188205578783730188104009522091699489565675749244264714302022602132646157343469163472915386432996346055926100045853821202111254837540769716686421398060206697492501095476441253188708889699073897194143609498856414601783848411018524448339365752588015537911470625027999572933739657566245337409227066884482516147191380213673992123529334792035676797581156943922693581135309273326126677510078877305898895132357224627991862073931078948906325697598122597299890148011115180874845399640797212911353517481798445387811705677904430846516739107459049554541758715286456267782596172819474095298002755009692825293656204547682145535808828113260674783272364829025488735006040108892389717935799122057936111129567504074562714125840560486751005057364270047001052742261083276910651848125007615295878867666738735878944872439028736055799003480197800155930881085605465600214844946502791583843216657589889435709901237495878683101182730181695884262741155841553308172893279448726664204330201476498846847639506692774875573957436104254699152800440269465627994882434999159631764012936611430005649332261306658925034729040913958327912993736198195641812149481782661148205897634201098470011870545078964122462810967345084463684216045085788786121064885319260718034501715745878160606364793318337375087355723392915918426683882659101128217931229904924432593722763301464726988814268166218034387175101332858263495452310918015912660099754145531159623643990798326624673371235918225210220133767847341115756795200849919477016969415395391286778139152140682343883178976379653076486284013496795830624258083519327609387010624745745359309291015019742423580380756007430160476436565863382928684451002868289525473609757218265575748475486248202042676855983737759227343148177767359341376586932755814328510273074446245737530496299923080574465547494181544275940328092853514856226990366853193590578384249927824135966468043288929561213829572299645528142989072361387177832468833100251289431637924542018847229278142487315202721569637065144422208883012330667438619514390351010053714869840063112435145375610334067592390663745319441689268860143941593720602338342222755539938107703712136968288959945220499281830662816411578114207848521269098175776906431372573753563531262668505264549478855983477097530483902096335335928175386351256026764525044064827640520683143253367087366779768805618150802719632661376808559594970078472339531043461766244565675889097438371506980584632824908490378714679202993068706436318406443200228960245622979897744642664372231867973604896643312714281948226249551523668528232965723577569120157121946330093176823423319505406953669589447522010097189522112456752451840881842521202704945779359359969215231608590041067619636851018788750240518643052605038385867268266839053708888573333092748404442053301804787510471604867490519986191311185134599630146978383861782963106551897632342857784096451425699358218282877630996338269727756746742730650406311808409960201703723111919901878048565240342918001387820731172877049410172677841155486965123388992119174959581823570732734699604118530490196985893452780238416382459010347604960807823360424770747066585084679262471642943294616422773503782885944217319505734852473563489322083367895007347373000277817270174426337894400308097144884277905306813593176711708662828081501613200249578098550211468348888775018164964497587896748797948902836053086954787271014109596201706306195045624760797007216210674948885760789459595566902272648808814158400849085316711002469781463164731423668722169455131820206450962742970487611280298187050519579398680966943374943641537719226177519622538257047512069393966477308670528111582648814988549046414089010419091969332463273098934545768764177882142001432796431428414064638740828415447753473351895684198553538497932271814064453225945823634086401770961187165970629388526101225922217084648229758141720810770229052533537841595947709415180213269120529535634054227923340756345860234299675777442422612618066196896494348495096341775864038521714155277210936708107508449305025275619554782241902873324793309731921922331072405561996491163592565356815150882030692780597302382067590788959178411057185753704179399693048678761622706199901926090868140672982930432760802414548654516404452619342722002671870100955226507286823887274187616221096604702725839761407055031027770818042416949633454705258949334897792117962504270967912205659649659214631918567723168782252951786281255008990408975347050173691688753092457255218520682640044393279792366864792029268610477466010678584206339016149487462432346757958975764255548719687569529569190803587930925108831562558487018260661572060606415742776281572690801354201579710389370838838086421910932223492246014475157860304453842934444435360995985090014619493782860247552492206892512690210552629476614273784958262682859898684683437835735752682185703169022465254130831919258191903630476407095845404664012033041157039753473299629909152198487079593991390631893729717525201835531542090034256746047313403436537014671491903637553366927812725318220805315756867792019243684320791904065654930328206198897850699415825295956579012742623009726364363576203198905941873538544007327758699849812754937499175256504175613314763404583727746083043310272175487263777201170908150477804578699996206043892914199166878103768149335371564649646803963252062154296723201028668476737753087205065269004837114215570580594685010153369049496165728598933451182982897640092183169335755265303004567049679185407563460501050650473204256726587451172587354055707191343601439987705161352263405256790168132795192319258379861393027712084457891093563680645823866444212653761386996105031158353324044293591417916054117473765657213126240324947092771345398589523483700673587267149822520727262855494488287199058901447930183692961770685850081713600871518767481065448123998018761595933251690565071401908369024071881405025340977553356796230425294298156035529204403255351750896068099813760767315237686759219905670299556735512626888575081421822709677095129673053888954065509011208913949198967980487372383791251975619646429952285383695036175625673395704064390681676775583135691326235444395815601626044130839363352448581284453401912857095171793721157731099042001424600833141858514808305268985407065208862433345593165045146739674939741998029540554477347314856547583686550506181297279108223096722716169068001995826909698106377556981115048071909794233079369470758697893057600153488674573872741559455727462381267407947687446042589040227437325251650613535500045264138490533300534266529018849952363322286089849696709712637932100562814563267250968208007899412131638582155827796793246878955127229460145500198628363988205421070487143427331356962410581720180233951359732599371179358583016587100233953836860117030669464102285268711294589832933888325000237176605389306443483794454938411691209574571438411438803442367828562639353996034820190508962258753373037752989798611545802199379313624113134951231169180132165362092187940155040302946719195738154210211072681936548179001130788154275858252184202907333278869822036316835345711169216282980225793549985749416139219339763009633640440628290453456284532150510391897368711375666617534826643634220995510055008489164620476806408464346623608684291383586172929657503788664988036235859369704961550798276244006649437570644448162828620221829180313691601773547135415551418759201755440298605081850434566081222498870713347682889737562891213463106653007942643590679505680753416825701944064141443494882610683096080063917773466694245790170287838227412145447864317526908502967919487264426286878032532259475217010871289012952536102238582625850523576910223516836798331833170981079137651249402230058049047212589568178753856593184935284647735228749146282047571353671863702947473480649160077952443590152672979359897389815947653250359392677643210466143759282686822236485525261492605383261837978380952126223665618344146314619884278423313046641528199186694923119649705583085912952640348281079457533733585454074084087354585270630381267994924136251547153964929904787069581443356233585549331592609089174346820406163092186907805590153910407115468339243685120825655112069427052976518854446441966728362095271698868352455009131223860079323901376424096448143142291565925153999466720497214770308141038276825577766406279305853443273990466285848221351550237478968061672214671883999106275099486443908148862080970548692227560306523538732583261868702161093369992929117291208578782076229652540573723026098412353688162887738829391745251097520377373037362926234265627773189077317846774318992748591581231269108857098149524981340306432943675927699911318359958679535640502103236324275192065990553911847251965592025642878403511284295410254400956221348844140519077016783215254237072394119410023155983755131559809980362862209571751310807326693932334590091851430168096365060997574692139652193081120795655180664815088945539128641883253823235026775162082829217666277301932774511703692838426593181869452943185503928543779086366947011618393661172628173821525170075218997998153209480303098884125102139034342564269627238173993638148775641382821607110588679757755489334609607792587300315301075146124216513892162821509867628271937757312019494953325319551081632939137941244078888470840821655150588190634882746244959628310165998197892886320365344434009717305685659912896684951521250113938148838838891785891958757813536161590970492940464754111294846046905075033408023593301296138481796351233773119430490792050708800903432522126456777099693756663999960388285777582928427200484461412844742723734552739805043256774991425091479470336815346121274131868295278288030960144797604192583220943911378190986026462698521178374070829723039128818548371238294060512782851632461441820146673469483579460649799202147384934303984584363794442721338628773776165998401570164020548574220425596643970115396458949453403927791314929440133205542011213794239780491863406729475009237330660267137993048430620213869316185158163257016126009938876404225606377922319300065334869793108008786492680891283535008341109137982475277317225043807939944494373536944327673687005744556051725566369490706733196072734420293221348825362759995666364303192329790820993127762717716641124110653498374877511615645287026425936445258550522470085617478351220943486334798809111255068046139530534520259779407340517422841652954393935188169427361948102396565633117204343017643811719995205943185725456758514941104454848518902351270688609780250528238862966085024905428536615198127430658975300211952724630556556579565261674083443058593909759152669879731821373656850710037309290709081376131903686465593128247041062898942883389773132531742494570984493904905330474042908010312090520316158919660527837586515456947351271811226225683568689300481177120274311298028840219965802849657343068292308571400103753830134017236396532920080668100323790841322421728695743058716951976575055289953080366516835594112244621557509574188118963655498151144681294130928283222211632768878829057188278514262604701624560220518142817595283373553278889338070735319039484787636365981088313387634646547837686759109111602353799120302287623186011718979239507686806669941691843932315574019119441722473235157615144681843250947238272630970631845075444005875600220973266286229045843644154936868351716761568872512773340429403862167976564491888402163192529657154937116953265070971297097435874345883580226661734930366392223575639046131512784983281964647288315719340430062702843551185205554414815536549582214140846297668016073613836914685193008946225165692289925667659616601788221086422892468244848322952461924041461031246365017594757455695937043563337448299727339855071725325898487453800247833517370051819091477102873191843328710956997303806979039890644098547979817380918294793715200343620750589051529545567186036232214201591722301631860597768045575029893323734319664757415043120735815297291462249943556688780508153408156773592636059273219576928444712654236591333632608941827620917079898144998262661821621603743708715818985418979572928168523788731043914551890772908856576517606084303391442364826732723224298223542655246550919705579024149375688211585103722966205764237768832873434689213586598840840377617663448595769774226343764713975535980808314369036445952555834665002443182026299434287861708340733886711734763173225551308926292472332707538591132021633375579837385684869884347334552272540883893772664321539277295968668616437139504999973371380068871157359756655488164342781988029995957025748643117928687852609114841524805743483745454126000107769443120886445134194048469620296475088473953018142893991266854582172653640873663250524370516350894750635770297006852710138749238373541715476050158671706214059940286341956754458501147779083572352335906716114513482195019163547193220878256800805714870984917141459200143244815902756438551404737569156638288653857250678093466127834110303471023369232494288357165104343282943136898871394242104012944573091766004399711512935721143854854487003052111843475734514544543902549431528074004975916527671531233312457310232249564860672844651832028127843278043211999024767580301524757812837482628007696681523173829368872438149247456070589470773906147677971303569454793554390091496638170821441222083725570611499043387995595407686063063825394912335707880765466370440850292478268385588881956256415518762313689566506189625261148500905220081373217906207357282716378650089441166372617996730401290755429510923079751974450392226362603947216819062025530830435769675089600193573504372954613610801977623775123974849272611465373381228718463551139184995295214370666917459961724487469786391224479069245011515548932820911854624748914389760945274180892565714627176406015580349307450676086455286969708203878652597416195973004765504415272866958371252520120792005785302848920229858848822620630489923683143510722455073854483493382620637513618237461592176726790161191661044159157765031496958209072113689124192141075468327050921038954679778614531658802299636352950801211046085062962151368759456216677212377412387813534368171697892521604092445332796609439261237670486655379495302539385992430408007158845714689191243361626043059479503021463446330270937840492634460138595025625352892316424566824691571034237960917677588239323619162670498872966289898275668773693527067357490941459749483216607345378711168066829515237735182164645010553697623714945496120408389343263666669254945208023872660421200421613013236961618089336376761711252059258029809821513364858057958467290967264916019445611022080725920527833019467844503562437360763665798009089517703279387783526019148920220954929235832372253620576124853456218896904836778929114320614827910950859180478501779050408049579509253888641136798158768160534181919706792405395607162893517190560450247190446349560299697676931779056641768082351139786491209728318681960041979978877993286115674926669938296659670987630100401287153387842550928286921738025659401605512955396204414247900697037554179549098643014393730895948432251647895829910433805939689573161485985355774078944887353373997459420456710529457937986808029608893491985403159824478771348330565036851333342259097008858045299487619320254371980402005894080951495348126840613076943205729851108862927689723381809250799131487052927984443217958383120791370478507217086327298477818544305415148586992233067052275639673507276314249262638367980042889639657454565194973949936502293446698652358251485578624140592672486936767074130744192463445793705137513018540736811968496364644635676102693565049558983998172210174912623887408365652280649840828290984625000826536493562746225316435822770469087658815059559522329604978445504374949369566682384430384712871262408202903317856125068972605672953265583328692079535135541357361711589242936615686523877601863385202006334578992958332123969419019733400204583518749836394221533172192746302504581104138233113488641679275124311280831814371578190214930753264888232301583064828081113178453546717470329678992958090205196415196989531256226811422791401374963001262263240253394924954148909026786266408050880411863501885035605648021563871505774507784330001797773119516806105318801131517684796404379171421673667944265554143069452494992616553974940175890993620685618479021515290560754523028497790366413362910686031514140223826780322039732497882117521692747590935602444358382049362277763839548649420916453089670516871691500537563870629329618917882562944015680549918539272859836301826784114154790017678213819779561264562552091731124926319686527140918164527498722113123117339089092766657645431941982824888817926916950114240364222697086231114263297714108935091376822223644096890813163738588135357738170514530198172103991750836189872435449021384212168594390041307045261187438267841954157993285491569828877150098632024407609407300465664058563160016873317431417236097791242799147097463906494401940161049856978983942299766913856545171004864086290840357076889185608162023970599346407889781786555698588286066455290172142110182974944573105528693155032594545785276139187026584349595685698067945166747741822285501486658683193216269862046385204603752464222019498831532593293893159209768190558289526970038932070434840664645393599120182198180784009568789300319416207293790804519920030208192228004376400604197567793581032243228779375532471942557868923629801317685283088638642318825235215791661752176573253536770309940141861587641011922201630651981068957938708819866805281811830852110032967824297642461758803793115692874399526613255793358807374518540676942369771549242985751092690248365408925547030510955618959182654402511989391378300650271239400893618861219543477716028870942322539768217680983474505601213412778379468850085199279479412504860443126000204061822343325830567253219923227788906961330286384570967614106686416015126963274662825562330542531894804195678039917198584526850775441930737202025645219940949745475164688841392137490293241241243584980449350443606838666512839510681396104306982888655641292811350582903647312336652788158905692233740072155741510799326889366130753474588950620181851414696659217672299416386985112422631151451559503210480068541272172662428615221951562691655148214425239883171036048516660338563181360437173977232663146254896299951447812294449037171175085989921656890785759988206880495501509639252332343951846795627917275639279960559472110178319773854845098141602919090095752844045371499190825071929661074433322229393711512021915042081013264639595305842587261913466155972290180674221928670965590153704989637935843871016819260696031545966067236109216098089949027246173612344125069074710458267269175959627461479302770354017594308439648038721855121708759758626888383175637986589854057023578669782941863437903756650667116896884710408944369353615810140812299341981274997083294324301511160850776176234126568856884626930148320944017854929022501543218196382140351380496773256116577365223949354374158350718423722756107204606750386844041129338061524340577141730007366830755682098203235039012554706239995602187338340865143651940035221695706851864201125288354895845785248570057071637570369354033456013101656154337367014175878284169919004491045231676419638577105829339872557624321598795424924955950039437773951399364246079286404774162100902379222005559875474637013472194081154609593895911084546241528126500940148074716682750763998530787748156449680999729738557665209415133733996059300492702402372156410728059775303184634554482674580019168099088987209729015567998869011338129665815099774723127360642118250350493742307321537680459947772512895351109745095984473206968342084593589153817562233013189621590998161306172684904045282319185574838779368315904245080304053964997109831714948585861391480687593958791295001920271879658997552822728693715099640585442696543178020297317525111877745059605362793791117220650896575751206738385472201790304330705954388491210888452240153991028779059095003746454158571230326138283760247467754757839922044851803329706024045933221771667949557937664117780998775428252155812943733143530335467614590597976142796083604376101172522071684240604427187479048278888963828412020846074848035637748986241068128294884563472978596345099327912129543482530125499938472893352132523728519552017789366868228039068169711151752418497193281935892144565448437861211725468451547467239573640739718854418797107591879419204822481109376049518778057018145251704168749869219903588112831081559262561231716130176439434800270668383515882875186344417503288314369289472431099280285270973056043725363433183622238767695000799771149072251283356360858478617514482829001477283686130798202892384239915528868208347258441932801273626834530984006874021579741088233692771968431763452537574338890807657891270423823622746351888232969699398758880232926388320626772289007987484248954781135572431371268800858397041260404008060499539787486500308091598916392753904328497911602445151823349055224846303741240165328139299490492470474030920107858441808614129628259517214191982076646834465145887473567639542580831326192083206711751677649625040874116579113761861638732224624613382722767227602595987306527312795894658440784298139080071657352938325471911792274935916477557846729647291199501713466671435417334464037810688161878722125381465577067052221018691525040193531203105738628498970371515927775554151792181643837291148148958167643220005939431536891406339192237733053715934189018998141105796045069751421555921514636866035780430079095046438448079247749492416187099908142381748544516998375966264022368476307205500698123462594883818402911578300142858550107544344618395628006618277574102208386316782787067009753507578031455080586230137320043272232180820294662217226178636784298578230839733364394488275586300454599052538963451256280824072175998789384450289895222484692302465964876294594633949968819526588602661266553276108261923651625371581726351658194610039955188358917674956453316654708842674770614733203089089600256043600391837691558019099831348728576123430006136314143941902950767473147148152347234851676618235425616223661544315449752899388193894903055746404930348176974433653725417629391501864557413431009740350607594518184398358028863368321462996573666352927486284866534579979875819247385507077640116537059853373913623192831514674821015547187988794323819624529921496111199075195626729345357161137733875567679833690911990207282608096964529606733737237907396970010536500377273419768328139749098553143821641007344892379294163119457619722386126450989241991966795863450970637014988521687500211266512913086859676356316182837629199429435952289990022339525581080475594340026599683034909106751754613290598894027691321358914225506274633369951303703080718474117587070537406577620875919709564740508717379362288001976519738633983917451238208646974919983354896570387014192585823718873794140661405980021190421818464303592607423436359418358708305817407526954151882872374716639989714564074090921811895165527649668734164993470461385639518086306646839365706796802984801318209965978009637415756214108245227870647122482905872178092857463820151790600401682593988098338234169255147246558750020772947885827390165714071897113328840453069217249986765571783250079766665891719280672127340121196356511433821810263047439024669477532438688805899100980790359664975620595336727805434618390778728587799227476924559201162161399165366060952550000411127856695476172879863397195589232298477174744193464918555317184183337903115833869468400615293299114616739213687924250679610303488450728702772757663617826917284068657609724549500880849452340630354982589540773940857264145242894399569939158381636238321231419576999800203344853592262360183031606946648627213921032708159541143494095385776754083507951339890234206183460766505370644396887733092130158378933098507307563391087788680605617876656577990090841623773548887024241740566239613740908528791070512990670340034051623546361688730373700342672856875545734982616641536785897167168434086245912663388549366742864595292390866358687995734507507959994250978871412114495261125555890852115303744809357286407271455897526711777887349293255397112276575929590705426950095988945532679030234942514180630535382915380004730106146351821495221370212294213940975798657402899574047055236280609400848327732900725492834491498882938498095950570866133984017840619498528819681638975110753867641491579953026709743816864845659951568491321190886205080727043565785609887141427734250354715234074605866845932993797760339583629103817603115903465499991073348640725259179191967746828452420938906325960757337901770295085217708650955728573500465568586628603787795246576378380370232659576743763523425328337828445186161954807991917491192395160633412748555201006668271618670877504551156804189604534101181652754678565367895595599902682271495761488573716134103400097950392924187173535085482869499632420207094513425108240564743053248983219412617651292409270180667791673569515124210797773075922378639762863216030356125250739905650349371630364109532079630777546987565492956343980382175267049990080994710042711646821246540785416871149759034165212008265691030362066982579600040096814387923017519947899421646582964460718896363091245649659113013569335363500304200843756627342330405584914950725330865941391575977138644435216338159509409347045079668966169052241046101472496112060790925720074632812163146568371878695998023770509442653018146076744600029070933768833901778224241403839493515127120320599722970966300543763226684987567157193088745064048505798470454949407960988214121038910665989604277244610400872574621613050187349957171426674152048551991075941717517736778927947048529321395694825144084899229007949825606723032386324638099393719390782316712635568713553510307258421882990925462334738074762339744223453094126758868401963945195912152394475644428132344906437351126911507853530698913046032431161443237028663452289843300287742362961979941695394077099608987219352777331738565588375298566108419276682108597874408269391393730731079387774480919025863452415019923376825909366463163406593058017348690564979897316136240566095766448587936988700505351805552355384167743581414220461406863850785305804741808175595616965730573896508136497943134857797856090451164665036704621836759810662852259801716458240054149242295983465911991649761416766373716204085970888410317467909268654519958508494678024788912154208364776536754090233748037947675607178433910320315909684049759045058875994406890582236204586917490730376009197349145503397388762925566942010857145171732051642196048769313187142730662756347121644567493091951890040434104742447535749846096552201115841074302020169045114512904066861893195367195588164065987548555591513899516039260155861794626871125672491115339110194472360646575830678054002595984467204108467579042264367934066164955573829430392128680898532423147273957179279488681339581442128486209048687183685242393591910735182157048792565613480586907610034507210102310760426503630925753977730944830607437613384880013479503231244121154150217142746885995520442140785939866650257474048161812650041554186586771554296880886095918334997175869402615386618588033644205314477314046518949508610856694564772695759701501330119575219364268737882049754332053995509303272314520796646989261699462899281977706701142405800145673140291562378345511675732853908817047218829642136682195102563422358211917979805607478426621487915516043587091663446645730484177301621566558107553438209440480485845851530774668817639132087026797021431753840853654680239831599146674648725604717586291872953506308444548348363942748880568341709172674644369752027076227070326332761800689827967334174239955027300490651912988370598762794674746514897884050000892188177858012749923650559596254242564119348572980114953919139528601309887774956312288063296510258331773543205268463392333615120921221856516021921481464468717661521864007020894879464574292044342029617470064294030735445638325123224541541790007877948054117386940326046914390406593719327148150865765457416210949027978458395369502537014041678925365990850824698984372523348319689294785774763653701589321639561537377196912000908346304111151874661797858056899921399287876488839594747291216818799932376651935132575923640043387871824981098855777271929319886500588674750091750660561086186728926475292254721640014347092924477179315127148858754184832755023540053165318860016990170545355015384408218864502737691821953942508800350465135674236762778502219033179016891657306739717655050149844629918104907081067583197308320839320789126362473352897432869344415555260158644697225048184714473904167050302169555333916483770433302872215147932602011778650797803549204121430402343104744544879822040567603103698847761155002367424907344244401385571809392056823597130207882988389029868384566929651104250559125359012352203821751863268239221941129399721162945437854710819914330730759475561352448276060434379622910714525099362263121823207916861200817093415449797810310065872973728246394417186784197472817292916050677071645835922008777176162852675387329037092899820987076516435626362875159506397391546646691282471904074823768234876043904560199898455603011816447389087374864867407993361144264581857918054517509506429432862208820347468223911326370937099170281019441150928727851727325538919990167048094744810422900413373004056168441705083771321994627166499903555871198236093141839750173876284964852303946866840733882339612706413550019987713924594326705360138804318976859352549301620448638651586861637886487160292652687634781497894820436067638349066172125813920701216500867780369101766283545084870640986765330549989416513252027827804806851169497080633723103739234862728615196759933485085443192595057251856875217454840402347582963640196155882383031681598220162116834258509682795262654979833071874147721857094880647384957927286853523187301468581305784280850186632424937164042121564505905518859232684507828864520928271022725535257917076379998781591271616085799349512128310650794959847391352689049781282399219489540875619805857080836163809894856669079914393047591118668430000793213123828851282554587582526080771121657910361812900624503106726649605789103244896074591185324610442318090732694324930962551966766302127741131939298684558780409371181572324124992329593550742791691494612863514879038101453221251740297017696140032882627116177061459359407647116309591671849569521380348193764284165240181921102506709339486780226400823370365438372467103605292138641975477131980257549592414224568387344271433805165591125105174080023608901284606463497877018778980336813066368295302109418931635682302790956154190519630008268156352523786131582572846746253878664294334712593868822743093795071069855378728826241981056380057667994591272145577814648253193678034343765921530365444851735993071647101119854348553252349565483482544078243088147385117486628595168944892532777720811338095358177624910597660557520338855364026877606935029702200215001552825991011457819957392208746277633666768545436181965570029524916292766796658225229816359101243580466333507400238099159920749831709872275687530058062018184561475454552194999231661426912348950361684360501808620439632121730647926935397574782993330190309437795163140801115158716361518738732983053017577951829018837943496148752647565382826295032221711114160074390735713468087670843499018092716316850231822511812112523959041037631783474481471314573760923737456854303875984302235991069372957329070955520825736619390138434647679388123063273628233585476749714909986700711298712379401667006413562260523692418326086186439988479913640311063321286788304506669695111311735170965692626965537423516426170354684683295899407749022101888897319501277923516092690045989050227847058788959622528539411223352894466187713173421132192865836739638485934027332199796837241120525568651004585088748142160464101007162379518166960827544659989887522048428259809111161091251335008244454280523999421844966938479543058929016663553684316064037301041049870253565062186643394199107288581892237286055726583895951051836224497216320534173848729906311264053182832702444876818718766079273422192758331319892104279325418793232975988441135045774274869153747400404930437683906577112961061785314363034876868423580957930462137002001425342162769078034949297557628255380279985339338905049031591519100241039775386088680327372421935795605169898131238026948715026365955533782083550066385405218109235925174672551604270157834782600417661350618878422490699397721428076372350007218705289500167201726833110560467715142308312182998515061823505342418722963623053958733765646152278512892455601724264819790024218873556816095736754015630098529245662233101089702480428971669497938083658063511959311475659738034809817759942700414486864907052272436257204071562680162402109333566880247165687540129710439564114395739086465136659513800859947637272133966373741107564899743210639405465396437034179812703051871146644236798621498273833917685704994113744808031146416001535967176489625719538528215080588640574596993454121684826798594258181065021686621719663839153503490408075297826365048235834954744027559017902295389752285498406461648434140454209768626675263239860762976637973914029800826233736294233755524021814358826481370774312212052979686139474003178492378116298173705977889416982323940075476253038080938885822286241208747337747039003956926936760356041521490869976458179142496386283176907914651051644945830849351914923741881058997033844215429568200791774133243397566432364090925443794565856336808540887793929621896615484562070774046214958732956723465808809742315493151871226331003693620092036821845514548576283938589893265717428570167372469245072729880905356964831033047427672861119658964263922274249590705358886292812706717648187494162223652278936898375598557460933122309487005289318273084344349461553561634870896753291214413886116604787250861762969689174776152379923382127145452669332480992681197268391732078798198767019663582143505639686354389089909564014324314503771344585118100588637755134905497495196791480326928751291621057519164507480769438169817121744373907647458902542021673261112596784624071395615682306967278487611140076235812330766296546366673263870494542130208183353033005822982131963975486776705479435529115448040933647913257672747260495989182622738434040252457659139536844312760956713325680976907240126072960644031673388019562541978310919687481965125854021412568736861147402127453623903209524266433627947036686013561295958915422967091608781071695040459596004918838518892339274819600765567645753396531850522763347655488391582351572779038301737504166619323012568834738160402837271407394933337317718211270686456185741672173398763818063060293750750851830525490111842932066514368959961120762776320159499934337434036352275948515689140137261484349211594942487210066732495394658224637734997851809146924174502277993654871686926263166085595318958487810641311496704328394133210699409029703932518098874851276692463898514899782369011531229420903080814405992715418794654069671326964198947292285995627281700173539809565851288645943580348595735006140013571076211094080438903634936096255078904729675736075293828392453198199854617322199948554412772737738107663930463594633973481971723836530955820895304131292527683733890973985788626026885683706753645760862565185342185700771491312438231507035232805900037733246270291095197925276489752312538474420749560683090317182374184912562984091189442314559915273708381701467144201927726521094187888380923160961769570010613112836188024295612376532839540069693829683209388773478587598539722663686653628890219203944269439645164932623658096232570758131058043670462074128856955016041335043346928662242521712985820176333639144799579080719693651844233661237165518694315982831098785279478846507475445756701263764977674209786274744414545159670125858184350346244984593036739678117124087400559073057626354795103999070917310297544933821740180273827890055910025871899284421231246919933383176573750324312737293307556992845032877995519286626261962962314694744780517110103605035864613676498351623607995489677558030638041920201491796004531910080142349787047350808950866028495750045163464862924863259141206602813398747346054444135996755319642459924421558068906957393700037320369477719879832791710249064529201692437875168751756887198897603064170387290765749023657628392493779122315477077689475958327113397635077194817039693934836845091203131329526153319646887280186976425330460081634967778320333647061503744479740307551052424020885065069896288014943993146314693235485151372543455404162345383706814443182739281556049964700678316215777791607010316029759056328150740052975607526224739714497449214115011994120484588851001158399489344391363724698864908504211534938307435143309551879859335775258794116834948785359437312623911338557390643101830016480103808877875411718623568827127305002159548745366214736403357014710748046039399237909737465645474750334957161529857473950644122184045350551345244353739146264638178517497452711426579828661317185406011671941214329233396543838593139333127655641258215147605424565221174704452135642950173593697174538426849860325243846232924471023954964525458531398607902133908360071920020673647451642100679299569303065496266404012799273682402311329958486379541386472172457080002834405404878599304453558368021006449219512155003947792550530006340522473014492744856203768296845031139626810639345011126277794657114837425588688121469842563372576047855315032171817079946635073407141468833350291791450227891056915170491402927184631546324874689788099744622724384462895715868713631618003162556563622394418515381596346753287980151043837347216576494466824566544937592037728996477306558178503275318125412277353380560544720930071616323803150729215694943944889217539663701490233398058884219369769461553367717949447038056811966969041987815079056448811595259125573734767432115262899691644764984909512412776341061029860146458609006726912450835310959897372418678871658218929980727658488342482600491946114489423961488733891263279954993398802125515319173434171516334423182166963739181629633684738412724684073969484117223480699930240356569380024563496209162633391451471837592370697321357195115556527498962944639604650979658300535831796335437558732959038615465860607301579517726519095297088284359381003631982533199130091427374513554662013457172093889183766552793299583527465487676127955462706565184758466669210292198601287551456134660897221915487464353869094307703363030215223149079133667057509077272378831477899208884680068886235719002758563293760940107523305734581078689346493183507317907229156358844714524091074127397244002361439772126243439879442534077549104164548030682412450348237663623644476478703319439685013947004608239015482340483992089199403527392759183845172658388741757731925892341742876345975384716765233626410056519585830134141249823357665130187660567448474669184080706487195813824523542622831027679989695928645328305612265390677197507623162147768432477197036448215400624091170124668677222802551319077239367376650788206533530731602331628830998963631782607971576555445015002221062508222618411036883205393865982340178071760347578653525134898514318494145784810482585054617440362952355396447966692279110441109419606146278273817019379766611773334830317295482050230862925453437887094521488303254682413185180585950577943271381851511807400044600278542251197073762376732797917502630183347283235639370838969894669649179198420411701489161177891560179742559684703151037878781864292902751002871648022471801626634633067122835304561672351810406744098504646181449046069487448527707770552459965648484201211473886202866461964252617099815400950543663839493677903338250075533554871844630653287771014976845002364745724371526753688825611689711604495429845706712240091316517171465900569830474535024804134200299039526581516017340798281766572504551017938814887948758400768336579916667272290940016606615547992777606893708467379891081866180512647689889357527524410420417636093272127105020455907080652743703018803054668056153570345431298505397958813155912612610500536690963282644420104043941871472173248968127650895227569525865731115910842453030658978512567495584131369936282264817393023699247386898736473767237559405179761605393408043295697527701799676173676812955929047311997546364237552000040828767320078263018629144237152998223996245002726857905572969160976159585211837840032391465359130516229087415224780754712718785913895646512351922603236724157875159404582821031637006124547836863752913872070927356562395734528972433508420464813550229182663687822776075589127682607356453356149466836826353631882088234746930325215806865411404350186001447744151390820559909101079602303050536536085501503905922044036177626131617305957377843000417602981082804366567178752220558668873092896715201547473788226717958119242299824241069882684588204930759207056498077616914546514806516341281320159386836196963753212080315128456487079223070423765678156907975896918521885749037780438231143870264711411132794272105586376997624798388773341885449717287982945564553581013256485617736172455705045931603610411999820245321125463066194750562082208351780315674269666279944898727220588011781895236857292154276405799527730157276741176145221051414453979643453880233145357655671129199105690664441049775524947885883805512392019859605286708526027745119079822507583010350744911132820697007471270648165839058398402069584807943650182100130107866101785636732048232391647026638513654233193551037988585117064406198322255367268034473951291158824063580873941963768637688223900268655028567521740370536892840670229408363675054758785049921463630576194525759555266424351517576014941038378600115817821202737003632448180824682756067416706339413388365806393821954887935408939645679890745673948604622790220769015633488204524284699502954373177314737700080699045745565323930692332213620150466607521367469387346016166918640863054145328996423470927404323739689948834819600997412985662960253312869508972989063356134276269819846324765677369229530378842036153493810941685000843041432760778933831934411797518725694117733182378136268235652349984365617271121250353615046799029678629818511904369931363046500596162696966086950086559468347982301984993334820723113511878080070450605178965183420022777157711380565911919033710775773322049146214722561750051148207057585169488651388098855116471518352481942885523281256371824960856780230230506653764091832118836684182116762393094686576883422666626751161648496916240063791970469009467117488011748016475567642338333592912777321886212542098269834880839206269404572724229504397373609206118108895059137417301159685607914457693169252798296626676664798689759420517649557231511355486685903462535954062961765412142950089261476618487154124313767803441454228132833812454410224884700789158259560701994150392020121436784604816893562852369984728882820082803585802832033373333111437999952855337374933026852640303931100988885224761145684390980738870254342625019732326253974971668565826741548390576160979017200132956777982675154982919919929391441946532319673963843527822936086345648878278761283813205230811878761434265392570006662248095523484167435976337366212768040286565564659106007182866963679159099682683013145296987867429769691571060950832860400896490017622304694244671051993398512686368077224105756206303309412177096205006429311445273412871373504325339277770682654458525635833878903085090767998907714112911167561658854567382878059152097141255483039777539480167388360155985492685417360506311924933944495338091357827957487936086181165287804138117944917153760809147496524621695662340744970283501158347309573500734248501743013281270546171255444491148083982928326699108812075304099448897442411659704675586845969880399174651068290228508307744390825174714827249075077857603616368793511955353096903680147142184424234417787268729554127419673588745840419724518671842516866001785624715819234006342626630264844737675309586405820845461834131222643624033875396400993910130720589967062320567247498342386315510820208223310654751559995729926316171129767923252505230620373450835389471794360663966889188849567917512466094492381658663733533875680184211047387879313787665412078839534806411299996107011510433843767537009584098724861722572449023348009872777701719937469109822232766949050517615008723632965943079935283144266019715580967633260107738040718724790547690612531641909822642595200706151027412057952683103576598154109864341320525593681561252379080431514672255140009897774737836007173653647353010538315786709887144459773102400048144200657794432433661339634639128439644276814575587200494890928174516104544227924333574515359660663012962520584554961551601455355490579751918136386964882245059253865697179069706119248671901182463681795911836439195191643778452482397326220957081048028752151415121491139064941462850335863196917401066701272223634662602230280883529114419939270590378815106340884803384497577470161218599703057877647475865939807738844770284740856985714623050026983968098007908017440166435566269249820968444569887760298956075890506962227670362127557225139913826644826976554819500625398732245102828978894618568576344652120796485812279440123870707153027402709547648370316893466871494844975233731336973340300932012305404415342325984701262865380061227575401031311006568656848311053094063089278652485338505672198495653169738494578481311257544300967429504166063387517547566733883414524127118206405610195807950496994452143230905823597284324402663680537734347156985783587454693171787922567108635196298639396101253473182439519386668296666890577756381918631159217966358933838098689370692874402574974992715612649572346389840717887823491141781616208668059588497616802857404639300215203575797834355897127996374306357387371817782251854553487974032412049895291437426580363291693774355248236369203246796297552188590450128911467133928481073501541271681306982469976893085813625350893604610477195468709591434654465917786749458185224936800913932768105291689795507637057482515052210062263057637271829460837328874373017597332120899802994421230664861311854859059138319466428903245537055726295468822668391385830152687850712861828664861687903094914661149288501557185896973688234044604118669794646138621321489313080512362932502089490592798339170763275245168359976725220187294574498345918629659080369258694423392850847424860946250758269443784803025094930754372718122692247760873055004082814284728188025709747367771999172394314929658972109193753900813258666796232996362898921632363187287319260059169583680331697871033208470727724451311812132806526246999963177712394357998080419383258565081020791844981858918010907563184914065713126304417310634104615681176210977013730235044779692360543959522108561688581517167631668432203933590121595822623163899142560222314456277141898422750052191738401057852800804249588681022102809117363660930668566429589330161700846747779580636389379249942888771849659039347108985472519493449894976762150989898088457618199102195065060650229129700988853684870608925147582592806923555827212569056949062011478274609594742507505969376963400085522720617814091631509400284337129192378912880419572172621756464618235457753414228132751499543601366159441668784711337737807896326375085599245177328124287788963085258408306293676889475880778540910893841836064493505879562742356259690344889275744290320998767461647939305873292085155080851789379277056969023020157072572128938833517207456711727612369975010102962406919974856483037097929450353101369844954110355935312834559064772358123258597773591254662590072350444354340414474952681839661093662627278969618325467948201387109616399411500094779198021695553714362783141882923512282273904628208880271183462155887013882683880717804949747270802590498869316812867663610299525684300532313124047518019451227333868692928059842721905164088992485453167437442988072588244944632075258875559581994495470584346845703505167289716245891974967331995131122702908890265331137793277349225906268204889517061728737015925840053797728944789102552436997971343053588251969878557904033096815660521116452655203906767286260018551882990532336767208677752989256955405086836202676686797077855125535394461083710119591032590351960971905160918665963118692123048883039136858732455340147820685625973589080457815291017850870146907580531049120660104421228976864078352557684049217189338456126506161769532047721346846312962213861809671691859926234188538266352155702427400228960268898020419340312812830318626201382783886826272537726768917083264282388754487373057986640310620523714259449229038343181532042507862901079685227506817584078288410577056671312868658204899714839903726383011203159201085938012554763842748692629000319950442184553567061927755907132281732302465336840346004761293784128059112392973977308807323555925634217060746113714264563838720012247012581696389800847442907785814874101668652138644413656676935270852333737407622419896480240405460204262287869065676853801355887225678128149527097896466179976078294525694993834652431017757450420696773245012218095948345830121095173678509525615898326171085806283201570767601656477187430428493191526314701536598062631946725653128572402371364538876004049121255126556295066295345299151570928652119782530853126392164456880795485338904308836804721382999340806975090492930097681227273042127373456027372690742899898234987444630488910308700142822237976807549173846773482602294271475544170171373931168605174824529346808717286404600514898986865340487336435635837054795861020306308026856940763810276855556247782363287610332348677513691477360910968639035252078520043486141647732507736545566707902535435773269282256140932042873207001768309430938213915573305166361665936323130717386871336491793885119671453253089610169067024270286925930304985801159752173450049874175906890926958060629949723323005801028609874482795983015087972424893403672179771083789112589061744989189502457140672341161684774844864755436456730886549760007937609740994659623359122138455182175000279972930525682455886054738232871471660003065141315670967848799214115334354635428615837020441753270765697035713377916544665936209211030236841573670156027435251965771320136077513631251678736373812564685482318048206650257802679740314672525112606543381860172220596011538211309594329425397924598281449043841400997430942040393886210949908410580368804534477700151961423950914876938723726857761063210504153950880956153211465738153721948798178758443609137156018035663666306695866243776702397347016136819663552846100349548141859397652864676984794255965428202560359757075896445460278901493100597070557132468353716310530295748513864838808349616323480975536232226888504738473549468521422190434203703011264008112664630006059705035896029946249277842558620723262171957571644451875159395482955786143800819716814371851993537953479211702474683823843837921803500982817646518050000145396646832804405162648846230328181033556784064316770316996168888788066968557539955844032173742266999396250453625397063461075855108230377223861896705972387550056170598676350505022792145407340234598676984083182408126777123818069178738901819245696779949326375571059748247704809477294936010240234821542512331674263481576796098466321995169436553941764712477158200497105469220637077992673900415299158110179475034866974493273560888743059539994102291547903899370087873378775794884533401784388033206604657090613335655591721391155360092732945137247995490719645688872507548789001811830143735797378940064411705325159584758578942168711046783237890132280075832759985113151977522782809384148204357960339794179572789979567244093900700095503072313953781150818271378253516200560130728735111169054670340651532467787376946948352882887205474176512592844471644010179961422524068338585231287070812955742850554271795176588897414235066280333556605160185444476733228627223292576877961589318669347199299175003342779522354125724954778198285047103206260464608806989431995230983185050865409812044594167676386864770758637956357195705914730156711528635108370500579962842999954953149765160517362033526142904325674415295730732425639962664909764640754837330266054189873632749450966757964320641934811549768974480545536400478455154473964293820090728752888904075176444411885547962090939729452211958213036678348635623798020922806140394473534992005899799034435035324657018421258822786241991642633633064975291920446006021112068698199092939666344967647376283750082633638730948231159113493121127200195819147196896048111837003954948210321087817029193998960541984687530054053526550560401020142116754148701951796550852741644513465282158487366156958519663935107552608131112690125157931530859174229076139290728381541513162818269870661545138323295180304564972791882094512835308260067779632119079848030958447271564949101704303393021823656089800723709773432050039504098772188285949463458564802705108336002919294769075940335254031248612441123174380263238606620694268609206741068731282149216490124228290953512904960746937617993972065576707825371793515570976852491836710249226572099237534452057015456311173559266405689490747767509376220346721812117731683191814364211724870066799910714105649539611168643540124484747816032977844604814886941773380609823218035514967277595204608699848678948829862767341291498952608512863855102193479540145999357062370894141793814696077948404165022941176838194523796146259975128853529126024067726216750767578224222805465112094053017689213612786108715533661248485584744291442832382952274930496269115809778671213870942032859882474182492365834939848370851012167287933680778238632785961900833176641040159761325801690961757895493461508342680571237828459561950322739181553164426097502124964600097761370204639384144127489571543147733553980309329596849917558075003877182606728296075132605563718232388292157167600020341432917389485959057244737339154191650774656348017383290434395082953677080387172857764834382088736990541348084886467221445441632233676245563714021066766268117391363877219566764411737235772592208669782110524169454063303618918100965294453400388469757350041556841678630300202430196983971578625166019786876126987064834647643645260706316849380756953490165322179863604646611727934452461301523531650652411101133221020601382312758640890381722110580451362423503121791730938972194870097871395516626386846129770476474426163614852981880301781316343696088796472330361898269306337074873620894759825363983712508092672344044260676664552690423152625918738763266172288900755152318901111920716874651890066608588904640856905204625270566718988745166191862955146762425387671841349452267019201227507291280120015429326056008626952849871797063648608200380527839503824251362857575683083351851675788180593040506200081656783978356381239657454286996499120134510084437031348287676480303717369474225061668437553287257326906457822832255401422169511831092335274754733108613251491713132633049631998616937365657244461787148334585846544828650018309441165308189855625235209977907453007028831783231060081820672747728879143878715990456424771651879757398908080814603081333650456755260809226337277400042867691814436460121686615088958774683493052753508740089329077184974802432100537117320640692503137648740695619358933626455410179687242195484944109690964983486722991936181954448185867888075384520954912255830870672736664416803094332406589696968030028338554170268575267733463138958571463727245207291364749426651036117182280158195711562380304320493934205645558931892714031659658631716110011052227260847527779719584238363173012623977382296377806438299145735939284523981079469262373855102090015903153588571775059666415477097332635771593962962177086496069639562297218881494261460290209399506397449837727907964894896116216006079286183901362154628943094495363787520377471329293472838953973462017285011987539170812936444129580034254243330232283366250600057481893774434354579502740931630965445867545167424896566214672484082239230416339901966547572714253901602753352382198513182111612803524814802568440441964327305318980846629135423629996004425113918929403644926068482482107831916345302469595296830102255358230774112660708019093837634636331314040684128740935468413215144804738351354861598842060092884014524032141327518925666081594283293105383547888427599178300735557033790415723400343645119654831488979653801695417251892389383608091086365734287550652993435526709407402073269669572988227286552451049333853765031664718182600078985816555351045629323967583406397524772422344166286296113385209478220506480345099198978227044166166678957299328202237165673532284580669794371826724822886433027277305307717893356310956455536991475985785119533389542167777084647513880232141180058025258275501666057232027152556694618360676107799201180085946895611434440358752759277233851178077450697684307670060311963196834235427551616494276688405223976100781454303420883825403040780515584706506094179743741418792413080193645802219516427708658868555620092083428898299183465000345725349590993955880882072919423393474846990109643240242274971883097819831742889451691568172932281061791801107273016783956803890509970179367552689780458946990848758436969213096615658581108266709457448132150597452384331667280165921461733170170678145470673833702261293350405097066805393278301305336789591664500360404917887133157192351628774382110015752770768846978063473113220202167901542698737360829414006656033090607204314727813899965641032356746195857335307977942927077932846446485465203521828453873832198712628583772219363012411908659627838022468199668061275738508803915352120798042059570336045868436311710866776676351071755978921430976892569288897741889163817143169938282451387749912684345647199428435420284612136458581142476718723851333677827407140845819178721897880281442454906191005305583858574671189858719935461719628464397198296805246902494617272340720706989902823852488239037438812322800726107823709303901371151025119045263755397783587797718565655005896446448100701800133900716896516358402595634247408756231867659518616738885584438350810850737338261737633797002094376987363679112925047786283804628745614731961693830935771659626678916087867496428420085214028467856619213659329744975179695062951331736043936602658577982668502072656732951143382797791103467859534873799066151480670181617967430805845784054761989073011461826190379805099874229547972214768989550544203748997214385422008143324508686008254111072194060312401262064417770182202009149460241591986265091947408938135183418859277182036857237029664459603402239320871214269146818638604212997639409137225860425382257026786317009831902599506912322342691070042862422805519694722685636947431974786595687559370301783959193284567087798971583437170656885161863602050747338661803380636124213998727893859010977301326147407461693816905183157628282762659723561385354817468624432437968844013373137031290672000094626272842170553515659756389008189301123088326693442670643920035833426884942711904183506895737209345290404806548934023964455092948816561346331483026461306576802215608086338861090377051543886047184668053334651207813481573864295423244779145077839041349021775194918024131481126629086506720087174629191362463431613861367619884272418918033242391758019119533362900114365223505432147452570041379429485227728233114160664226333970947594895535913229382006241758380790993793001115774673089635466706202129178867005178579370456869233597702629650279522809652915214476545964180786530139915395841383821920580337716362879461722556868067102215580445546514789828792724976972338172192108921289932357455318105220779312653518538161637206649878321884599428493605382546536949720460879238121632017054779768532365275029250044987458298900472643324949703194107957802307172055204604655718948439540313902577295468748193978189539976207515971234941993972624831172657800416339971515003706348212996011960454878418750332541624059385904591666860162905892634527977149177175471706891349315487634266481843944494141424013581180981851322168248292870141165166196534191581649126467491996739702857633133205390001240205718888908466040549312865134973320097179129160360605883155087882060580605050074932556268744473938240894673320045516996440104157066402590296949476632324251197483782600200907519726855573530787632220369677274446061573877449947396974795678764094008604120525120594153037984121858094521354898196633212395390916916377762650184447847562259807947285441485819346836235490393172398306522983492205968863896216265170871377972404521914378738534751518854987503776361653317837362835999929915029843339006233653898118427793882664807594585473538249575389989993683178204157761070225688158301183983169315347832439895395819230833912178226669701459272470204617327026667845769945477169606662889385856710745807423740128912559331301760184457980362957429370407326452273431819470484121730814544578172070580893171410657030767131805074333471567145132854292749643210755094034342776181357038453070742144500152957374110593585294618179780365297124160072273486238517123207784657807504159254637157126643660482214133075375593582663795538797411363075007474977493826388952255238859989587226169758605352569137100564144260969074992887093377713014716507898752049431375828336692997806799222746682594930907976390473441368601570095700680610213465249642681785496704850389442828987743908321894913066859355262926939616796551887657328776809230106965063718148887057660760058620163127447189282829600851667042015556483862076488038235270740636775716936441739407460947817125488565823626754796675359576531912146480697663435806355610013609589713559774580275378461241147189787759201071348251232878490823771014019864342259510774743566082862398082494083149098525920363780668654312295318618370738992518614139319227394704307702078898605860456915520030723493067357482090359523568242602325971192937977176229933905418402019404936477676657530353568427397505593980647198971353125977054668541980432041332627756850078133990867388614500573399103657063340990696769352879306360698252532501866968284847657671976147715593927774310250424617926367649255970066767597510772779208202212564261045674391386578526369254528581723649915340400819117771121034837237683651272962734328642327907580047457862009495863886130978053875856949645934105005966003980203946623552669094617407850841219367425323284618758248127852931869148351266213762226870437174484605594517388057148001366945014359015688253766781007280630225724249184827397373508086928102471976223045128417925720518980402143816935130910671913132277801099769643289338487002613764556667620380105759670609102947826210644995937474273764325135775177250030476435427575476650113296512813174054967851229734527856663677900908347821952776801030035746337040474116491156467423975906725823752053652168689613795855212840157324023253804103758766408990939583848002071197723389444510093631507958835632693726973213488039030439188814716268283719000377504284606344132952282325693548352125739887076872358352346343771703629132722565784659630055438758732491181771963979001126207808389020732580162409832991593292778325325478312870007160640925306054645445051432068281836472315436906850089418965200990271311863913322373009263267812325739865505782885840836597248459025500911835553941360788678523847959051102321821149580955392555006686502486329392385101769139723041626286520684107122670142714870251245282995878777920336767524490341826981917040374874650852839083466596956250733790237904300777951031763323176288560405597800066899367279925102383114262020926022869354759977247593075587047863437193006355675295688053775910630060733090373876278022142688671786140421702455201120898263142561591663885356972630172942203849649015373362417879270737612279602296005423917651964211512637428667179610858117773786821391883376396171342640167638062389014272629078178207381496729117076182659747993115247269167376408459836658713910417791119309891407826283059275391726740331902782777742434699746720470335977167523880515511941682521898276892929478664711489491257654822563581164781108896715688370256349317641235745139861256770316083006001012798020642447090473718969719679099898395693204564692267332417140087680487985409904782279983995546790811647679924127231694968787829110020911535977388899710650618833841046276343023724865712970275893852117847184993898225754322480678823193576940103425810537619180460323070081431432820549878770880160083490851359690490616976937629924742708740956527016467615780736891478280450161486609197280076364295784937475600117084510258482548399094680176077185404131819169386965249435598382435609850279874549248467700609884079030575803668885875806760161468536200505168557263202508372537307416803244698505598358232661336700350165010065245586114621483428382860254514983114628934844944977022049727863811144844174173911939904562618613977127561520535445770654711559939421228743700814866199226845614194532981848113667355798538281328900821506594146642623841265457249523894251284154147498190120610249746925360770685407440531784606118091927721642985385876174477196651334734165998317915102554524480559409767847588731173567738611379754480559362324025890912891807263049127843647753157819926839422420207088047265438882758808898262854049527735862942367604084067179030032688642012590446968286456470472496262786088325920336580201682019621306687164383297447216932656836847287421037277493873333453539634511141006344403887917090439291055111182988859501580300892613807642266893885943996758910255675139807794275342092219752547010082846546003937185867964152520466160237725769610988193678078625785034721733936078465773639801755911652528833086475676797522124006893288295813083379266229726758669727577244999835270624762824366059296347969093050468752267243628947486917071455118159433198756165021504352150854090889388343668851097002910323655244733870630795061635058375328876344428323128018466555225060911122081935145794350408490182470526855375419017376116763365702266636860901176503451275566175691299229022281518813488697758454207828241588755642692958662855396431630543349364572971647369615588370778203410338330401245046331738544691364414585222491132558915030398453389172807541269787974898005367383948282782608126632133338667018818086962361284238592332650193089984898086615471289122590802802043259963030737028890080732277935458005745702578640017671692309640774271955697726652663257463927585196988219692511394601219118703768774569108190708495815603853016270046697988752400740984199772744291215473352383343269380084266970132128322508348223557280961095629989785464344496544988668423221919220738158920858655164998043856374738012921071993927018246145163640455812209114078032655326091804587698025172638730277975073434896559625679877498226171114321857600586705255345607405417215348014549922304152623682299320794336952686093852887026672658002306653610789023108813583866825224477451753945838742887972700536953860775552991477626096759217784743033297939597206492407713630691938032968485079348403336204543175869516834686039574197954346628207978382572790758915911665304699523011563396065509260052268769640621824785360354834663200195254886831297538923482460287943189281140729388366433835893984035571907959110411336354422152585579906569607566736842307842886352933509088352198421077924983318948075649038101397743675135012921239428983490013935547448210379649128139387750173463964987624632677752773704232235096069399538755935113727550065082203074034476015468972525212615986195860832748745564753120496625094433960518243313870333474749452358565986875733778129201692674246135116293312467427751216690877039544417792265464570428803297904228004583082438416031018561736948227130602451512046556171810521465898443466681717820952040108857186474090594202728716519497724129363427515905074348832552578519970914177129723560047187037207499869384997252445502708767196096417187982501905684118834261211275395400940509080026435574320458552468925480937952261285686443547522628583333051187486064432567294954403753055216406129720357303132820971188195806809824363275998485802580597835024915774439680797706981670350806457980604325422077012915332611056708186516208965335098724050485521151772888798506935382837267143891058861323839716322132493642945923032465326801658353725382012539720427454156634067072952118365178042049360625198391913996133179613372061577863371788985109187794408854847452562318315982821536274275486937734044895208634934022691374242635697751517512718101512101116839308776307488624026751571763933644565974648236066430451708814430726426094192651761076456717506582852505509683086307828614171672522243884863248019051833660246110092621170540257396599038922661775199251629882570434143682283029285055938567618562289968333398805803621381444169803553810623398259547152560732278680131231239665325709968477765299834722830544619077391825074348045283503520995740429354254971489945286025826757507828440657415665434731148297618714618379511413352640665480089518170307113748994450684618645806709829228181635504531668432828303312840298081835567224448554243173876271338600156825183958422438385061355501788689898736662720157392879555792955484783654329524249166291013124945480484297322384609236950473287800816174299091895108423102145413575947937549917230847961181073797765883401387308315313430038020903481623542096064287384423876255723606068108615416527761511537233835502132256392611208504700223735302922402228271448877628173661605892274038965757793006111354126322091573528437918119086748755881178641680523721717296882310536467072087473032538446928914362910604891161146086808681214519623348113883658823097494476257724426770937240717702652910185445431853747154577040816971398663595141934715026663361197358427209260406038710951667601132352934371281383718814924132821843588274705046743735680428258727824030891808739711660573022669457702768313250071383497292213981512018482323935501648465432557069506668041554461845457107739046839803398561227761247604223996858129221457407775477524670879427968581478767864507484449180741934333945514473253581492364288775770877249547358607293695623428688773973439213601863752087651308234307532184478642510646352086064902539834258778792342013015595870223971328552259061597964177070100460010260371383002215014930975061075393493063389447257350691680792343734836472538754400549603882826218701285012835101146849982872175555582528481206141703897000208335246332809742610457701081715626972329619438798257898134544043046767911159511669940292288528732036470113589923121425601660653329929296716127494004601564871020806374740333462948108480777317113692243572910618353490039216322934557981106585444846811480583487591493247718382472877650811960526617775555990006928520653908579788488816865450237987223899150528526077479603605626892876221262948747264232971338073886076776529440109825119889512293740937877343790354569153413839832226362848398076945199053683915799198360807885005346344692881287680670997429329069870150661479261638129041674049074851735488482232831477692682554542976671612251282635540844669447169896420971342392312815020762309920426482211143458384412501906576905126728125582565181558219929249675719122405948596775564493242960585482206341878757377983260520459120611357529883925754060771200276027598820428046397108708569184652222268622232182163983592611660509007293807172992615144447772672437960822460194324283687615287603271146230185097378422383647601800530471589415771393897446193669433976807208079710383800741888545369126727707846663532734180457313148419471644715456354379062372390324914050351676923161758327000149514898838743101550909419642832995839856559028715640339816085856520401753791851037720259413856811400391298854763926142946105279477547747292421256794649056975569926320703409861966490473916182376220022790270568676942627049546133563727970991917755046167159205054865553289919631592244395427694070161297800105100416179923520497338477988839423678779457015870358625394557920329131604655197517413070444927238043300377907811287248170757443260635420920297397647995694712021055966242103097845121497148349235681819458927422701872491666345436212632088726614887046652591371084980403380993926356599479357684267685702553844708824142330176464547920150828192620929690514951678276507862550124855411148685341115501402015183408565398239555635161365483001888212292818347638207343205921933697572921645768077136545752788098454404997627532655966560714865951350951815452089451140847311790267063592745956197608308045140002364746342665767852408321646036819637816534245365616698499884055934564019422881437850290338041721516726614607789570722391392067699960209968543104958630129179604855658084134604034959042199256588242175272005951994354204129280930309451769919591518971947715408548103574431921749514068912010481967923645416986638960741932802739605087298587860972420083994574018951787815665867420862484351002707983191310854867840465549495785529459775728111478325123500676541076958650313130091400985327435731009194668449273049930593166872542139073103153881375327189862399285195041425942528392075606195842675700729110810507887117752308567817772434290897913159205457946212119999800545629247953397383177514417697161616924045391595502760703138432564243717468540122933444483600939475857727322455530297375168886987711981324789795862786764191642630551346097360775368096620357192208943424661413529083850755802155416885448369596629074014297672537884702784855184895429632061449336617051634978549817030558940887500106077319390696697879195641069844452664250009545861565379065250317630339656258037951556988306872437790357468136211826152348920972599229119716003540040065638666979068800778536243804232904450217414727878758999498685108227508770417725845357643892697604024086775974892696282102438569055302711150789172191136344102389078444010135290799526015233593221989788705397181822781161664200807469254494915668247296536101853253829144726711215209717563036653539972587466617082704029561572875795643549754160660751899787780483678577683225956699790621998118786948815028500016196369794028022092650546411295753100731726379871400394046082997358735057773112828562634956095191727575025527591406728750784315158367421915543502887208923905362198269898186868819002010053914493415246764454039709932688593894008109710448760296223649777307254767531028889083883239501140493197753694829084018394459721807594685515900993621370437133938989061886737386178821824017115300504384784940530435619570754589755473191526382668938771652171994617356444114758743343357764810713461235359834252767776773871676457869841184978634067485232369577374795633154950887179236850769323768342977477641282946000276615783556421188451922029293855211877308507546406152812417442126212938415689843714999019539027155241416618753651396811289880800447358006672862556119660778693529148243322723618817848905235498402784449506809042722014739185121476694625870681179621097521992760739798736996930710252223292211384622317691736075290408999563528210765534746583400888418727451370490624544493416281025712540027097246600459302239868992257176867351740804050621629387323972758958335043252827177089663223207990216154103386759625888954770327054021594411909245880316236706823778989360689674276873127474714422704192177692617359254674618870892903408341328198746962227285429977454248071364580225098464171354100684457827651688253993794114398135043569149067335423761975023411388185975551999988663693533602098985249140211837489228567899369982239596202952199571317987339023559263352870008847513781611491387896321202305709642065894122096946631656212760780155260590095153300546267023226747399606232174908619549578449447961275251995833655373384019143559249895715801867597265177677434121562947726488256220775133408836368855708887912513196111159103669369989526357798906596851525022182667144028577763467751486370094024562779492700325192556465192010468667565627794689233369268744111327105656537331368290438097519769172356560448062256954831484582348827017800314345503114603172723659895057726493441968611464609378743874350271273308885075493220490726589237159083233479212036867147254010986521177264848863592227100313744969117615001060378623368380611047145324727609726145435454285002430165818918986854741430709304344160872229076878622706203735899659504281008829442070185232151946926475509000162946303385007700450211515981423728847633407207520866446452841108473319956070897807148571611142169670868561427075583776296901776736249609215808608032983877067188409093334278531154706465383219747842557899515062170618147494589312191366870139478976319747725993934278322593502345513230807406449415436021970591222285088090775437889915900708322073339539585103714801329218028366629252171321792539430024841010838927750911667884551359551186746297221976779328291069047677015998956888105249470714475627983902467938520521180576656071559981246957772170737572744852047383341313491521095199681475197185628638386648898204265030219541080428391171829118381919848808144820678826045210084700139439184836114388927987742782273610397041443541956756027513659709008379904111526565312723555764696006720991301606373204844203037655804346050738523277753803863968363373619332132434085837415921198624470256561306662982498215665482682290288970663792088566867714503152920288721878846866472373779860918361871062631925666239083472072416826295962131100328155501691623693270255785084823829228444633414466591491221861988123694635680151126525021564123667659746869254097234439626928502924109438786899465308473895402459703581093812408332117775767680023281184908371952519398973221826608317926769256408886828334617116706704931282741130810346694954616489396800012753731788095745424117978546913162623205525859164399774794715468760144632943214704006995314665743255654141473776988547815268358940321989548795935278260647103212301932171259554160459732219494725367339587830423171356735772258824115624294678115314668790383968781761766284960162559076609555235464163022529623844875195245243970435340068751316827879335688624155793123091399614088080943189305502686596060660870799899223905325537197802552539688921419457927303344659519044861058158910911028516984041850766792355378759579628608186281592367777345185126916523795324000399842456380401158857537261570496495849866707921832536792800952851578922086781714227401410794453913011381658235650553682208999169423806380403469878254480058603681390976060057597338390276696908421210563190095036633128832508133206528705110173486570638850796270197478558838261062128102445951327823686079604503967995575150563456149819505435628600271055795018221461341048569372135883650753797308847601710517218410395923278170544944417065639990882031510094035524350469469872661328345232881713831909851709601879232892647749337831917302174574564066970186771698170526760768873363783844993362330041655621384832997365191224544037238792788408152388071322362884318147548595235969279093274932567536211978763281014332160846493249036420391073376615948994277001363648854368447806170986734197987742020971519143542123300918384353036476379598961423127708277932141280644806427983556167256785573743884144444365879852300853230853848839726144683776654345095744083036527455689609703352773103417356637997209365352263485561588028692362850954532593458114886180246342182882780027244261344341550732911790753729427430994513862386611461190339938545111252481617447517022134767847577873480502414725125604870669969343778757391554417886456285068249892142029429041312490069072696288874416872628636127942203324585674826877661861363759100258851583020231816564004647372804065890913501064089647052212386706384742045831525487493777758573322389294638413356520199398593306476480237678791881475710612511575193032870636129404172696815556953188343695477308392752547073215496567905248602983904016853426875649377621343173315205102817420427330056112648607673320582497721186896177205275536992951710779831009171417061273226670241248613489613624101303574585381342158963088161933255709862239963793169115006733534972103738551866299828599409644192606666644722719970946566016770259747940898918601509136047785497631457053053087183228023156043100534770270140122946136198122686288711052923733328669377967204390250783079414353890000298984194235402330344893083867236020566864986333142787453511598112748863941543425548843569700176893390603708374419486656086435600929637782023013028123794003343735260204387151877484892554405627351456681701062655476968455329336280577570254061363992007599334244149229263188678652055334664073530226768944937478336705143693808596168057272291450371244296521040874265202856387331996784181919780718514078810757820495348754344824415738142649241769139323240398439608428974218257057951474779244914117060037590026690463269289199220561894443417390070071987353864450999385267205862241745936116556818173241043926675388648574705911380140535204516868064133038811614225974295709746621720194050151469061877225591600385749975206404995449356760875309802842334279786971950461884612644137097169505950772644351913976261881468869655656749595026387984732796701456793986187848847484671783203238907011828222446252216213678749785758806918222020995144112521555200151194196948570741184361890906827527077634954222337656620792283615801633585752113285273565992927888288722163234917997158141254522681153588843151472619157408920856831648528252663992493449596816793066776019016466980614867374148594132161300044314485144624303013951194526684946923845910279278348353631366466238460996230845347865415466823193318799716930247010572332936411627775393117804091643821040037354588244450272426552144217256293169934773955768939888417049880234426028427568762439628794010600569778613550117103890097946498933849653483279171052069754492012491855665211838457124462710130077445633552197155215465448192893690060368621940424014884950097763406881148140844768019304982240545348162285775233803608398231043642469807202109836343523789392814622000870611462633904412865273061051420841190575439522897966581931895902906142063636227118338967013095271314403680936217486550871273545113450844610340219125176970473901907757397223358556605142868400998828255389118681733795969591223768787598267686947653683378021665692649857206825379456562445528501560215548605177762771299890466821766698081445768033007751959831176623841729017550651295321214135746640200725985503067418136675016118164616045159104462174805235657133794882866839354972136729834322270236240921981444612208531299508030658685213308326610841883722653454972209096269989632336586700755765830583085789636962065087483785526791309365233628507259248616914104240944913143199520532265622697321925808002823341500520621028078571143627959298523753600215537840785594337032626059207231782784951304615912581705033548218342586931261876854314019289942468276818258287060177450243617738034942223344334067371234625108367492416778651249061690821719446708328397997933220296965554546748861432132633492883605569731689400294300406767360434938757359225457394078983905685400057841265457599406450268411465890355744682535086103575169840558951116614997422548420662627920686384491006594833640566282365895339705626955740156631883348428773061871070346982475139071660891877226581979651812719512343646567385850541560045659390489921695147670452279879234824501743187603698071513309190376098185978014324565552214368023343413060612471120075839077596586082390184995248216640750920002907404409929952615285835650417727443097253404745856998962766108012471694762691176291944202867912776262097351459179823731079624664150767434218392129602053610754860188661107029432890572289305776535950226217580070422164849321000063859577197690403857697538989756913213081225810566543066182728813764466878520245515403384758984229075897528989973871807217056813366563994399370180658926425830630730502891069563820971812127766352746721714580754392424095734963013638672219343707200391054071048311320570689902426078842067376696091983330076211779120154445052016211527363597850424267991114074731206276905207071351224043956687862872649834531776330643432940094755142672221772961618374151705705238361537031056579035783328293719378959785884808669837221091296001756500607563698829233699750990098880447205850422532263192759524600716568884410460351667410479349470134281059334233986998028675887354117634738627631219280132488280909238978783937878488612681654403639891412214336867275919292513352783817402879346620376835471205464708298774883232109540603622742527900177916181798202560263427367548626581146892795938826454470900318863458532386059859176339187546457124579648631178280678847906077593579876547711129310716635790057620442172930444641284696030783912307866247007713437395240439618342240075334614090762865495533376052026105628053098471925776274778891750872807880268170281448883278856592341487706641281119890327880216572845699953694364510332792823655611415878690925670828618868445199528712723516610193478277577448765341690050653647070419688486829683129108624575563624564593381422157943895905209123848669645888512613488507496882389123605134883566187975170789741333740996868449975772491108513575582524738654342594249428752637224408706567556678242035186698077173119876517444404618559098701005029008236699679466414907473744032421631743550583902885564875723852430252582945458846174118136201486464610740307646211155759381959465633255653591533601350246076655174307321610275816832774625313015516174503953222197500090041771251499892218256332932213129827745179237561925194135690887276637403390644407586766379887914719719163026689734421484865333150420972652055881411737545818676389313315656237722689920406676347931899961633331980292607431420456688497700699441982417931202884225994469072065527259404462669540767375868896133475593530244735886666269603558686675864896905059144336170290563590595581409576586965666486505800360372673872480161612827680407270156759996528069269159233408746513974377592436724546566279034648525776945510142948943050826870987989879839910562195494524875789592396768688665783798353912618979486427359268084818518061252303308599017592381547765904206693165490217575497643109793654298470614100133324184223945721885470202717163110746842090759727240943765523410941067988635433949803386142388879013808248165360784407736752655219396499483598633347303281641886998897278390525015379800061371745523538028502353706414927895392644798910187131521070832044021906059516062308605994653433892462047004771085926788988566278459352884526381280189778444531600773098995052274349310903980175048911926081275019773330876528925491331991345063894614690120345999936479183355435511626624543571039524481579885200825576310298818127178141949503773555747503278635232655162488990237244445889335328429746046722570538173126428388165947044003634607458823058176091029295612792266590130414512223968470600986640299134378569108629993573963167399020892210772774566099796560348126963898232936964990338241894209285980190160766710489164039448789446137896315951822179453590232964950433259829508341601713194491879579087386760688713500655845382319843974583454050399316625585620624738321479307040692773842773890877458978411196615176833869985718300262724002889682801326705278701557181297448241454362455575811606109883951166349036113855889615153080575624228803502444174276210510078930049153181414752120498864438881779675362478275257669396796202370046214380745541554478091642348646662139686685026470123571138040937034539419159960268372977841691531557512542759536456858834145498960783882454949262725477782491231411504112158815444122155273048291871060646154919105825813823648510921919245477928545737838379435991471820216021030559599966700287830240465369794376907700488881469887552590502052756316490807988262956036312213156950434974974744614988538426333074502836482722963188126370803891960047691270873157155616381279924543278157967832697197122270451546275348627410462370039601199998231224119914187209685285138934172926478216716592685880727359256071994716041537971847584590305886323910933228917237612205703043546818899047711558288788725442866591459114135075920129006194305896561347008754948117115241368370387625630444092849657651276137668284735976546475322140974010107126902185127805238693422619266696343702352878440274031054091704834715047995798720787807239705031837082639763908477595683284003369165677446546839278286256669416665651703925552157936847377196192812430316798991712502582304224558328283929362479426883519452492029632293166110876256379661077731769834272752730149939242474678364914303475061842625664898335869800585391801102979318130904550176446199661697673432855161093801754570374454735266207384569110087389493157197337503333323017302067415443675195904472533703245396870065771644576078106915876299650064312794961014571983822573235535637925320034883289909610352116526103686706873486032334160542933350745490195643691596321518037111636291690277368832863341427843955105810213883849047990087789595013541757188937691779303068496980224411057305044126362791848684551576614462142876136958942860940087940488998968933809378437513502615923954070359435615993015395877187276517060627378477536602207528421095624668383063574211057230027608005807418199927949781220003750447488041505151918180268130206357887539683250811868100890659767505647230933214893140594378612235181920836363266192833681883513781425673022536600067757269715457705548690714573455069260261730913891567702667728907173495121931478381232106765203643702116676263121857669282703904614724046780954838434647018493026958307391860448945031296222520690111327551110011399300155478824207064996074469685390379718675201609790535895491355792262078034969428275809837097009667701617745278178389781820141760377873813114132508781129918530855329655062645257959970584783895265962307910640716928479360641293344429759180589791090379280023715449049332687023557105163052866347116846847991302469660460678986698318369462145098507679322134416465356603576090357536291067570883041728316662049690636061768226496061072340190513086633005720198961530625029477642418390487308485143225027071922905374560330362888651144132944169353985311538090921628341725512376130188615605813442920942160334682530191700372644139974570605907602776537842348540310173263794827315336427079325989402690859917990957859156112404352851539328776776120548985378200535770839438397731696103412078213319275569895307195637985393118034513579921778575483601130227711321132011889476385494999224103082162625893450392237508857245994733223382736638483236663332778445427334168974944406722986961611494149138024711571045332112228396705156043875011711285969880717022997409797883551170044004877701697490138399713766732831137387988896709174113264723527932753378183513353503894082933389323762901032965222340679536160839112360634760242080324411637156865347674920626594980396911552064522277970767196955799959516148266624961630264410159157075876780765144923437148884355129360942493543267774125035506603390375303075640916395055182008189394184227182853204134991293609556028881438807582996536390311760599053418798204522318382381484645678085892758486555191769482472853288783970932938802528506574746767449139011997524704024500011633592256622087366449198157862665036514577498164659125202198749784133816640180898280601407551667355422737701032158809734395533260110226978459660572016802065768467404435820261042207584592026567588596457848138334322124647673731671366025116744207216348251475913614172318450202021921763844678080645215807399322768018103643286531982908230089829137445896408476690573014322998108510584125509318910065651310659628154582292260777558864183909126381095681621171149139596824738366983909406308454659323934040553061417049879431576495683137643807197889091540369357106547655241048880374883182282010839708321291794392663293994768720252725005827559174822544329112922936858080703999387202262779653921862366437920897834305345005371559273188431139949935664007817049437705572531452611348825736451035680496887292372804852779349860076012672779834069474191240045165902074268512549110669361618522203358654420989217800901609282290838626068050845442783564748725870276341762966004116988133841689553311580075745380993289667468258759806896137946835344446551231505011206536500674822700315028524188375297944932190347739722610414001112515347776697609672446341532876783003538737750239259671456702470007734508826454009685976869255400327197581374866472911097735544148167259290282731418911482038723581773355270505643652949897562384998407367773558547622278854705074294357138874974515992681650958881967341076624364063300177213852658024644724794222949723392183852717252306277290055639824486983117688624636217873336234815451588071331052045304704733638169601128021621976060280358251492918185727924682839242869044384886869252344497825475038293006764989364706703835844567191887747688417797292685403211013079016700541802136915421696051157510337411633494748135860357787902294856572970442388325509491256615543331126477149312628902285032471386505332919391939936176596461957467823547840188019089116642933651327410810388469944671578321217453933076198548564496398763704904669049339603000682536065037582162831118161763051624712637897523933942225572504915574950181268176345058852053205784494405818133043318195467944335515779510693635555479465881771436463892817182031060704559877197950111407955379112829551002941018350086846524117240640121865725132372654292166736033548779699241991211448689797014351236277464400754486507817222354434836918008386198907757031638207634657104891308364028362228348204851024714658167030453929243881913351833398097849736085531654523715097815795467144095567062412907691796329837099434461324033123447119710253203850654103271407945020490070357546154302018227873260691226352959599192477365746352371625478292037760209427180491473962883986582214973996705704355510405663039108935869893372598173285582253583193973396368519645318383642818659603544249109030284624343076996263410154902990611478120790669943447823180280346935612318396631786008543117999785694763515829227339101815565236965807686374191556750138517331574657439030871113472825472808687306086927480262416024003327621921720231682552978421041362296307055650987160790243870387983596990632080896499313903094615875806501343149902978151164759087030384019691789013976988254951098031460471494719938655720905030040823852661143532604323558098468678319302657266329693220824313713006796021824415772535436956633098424371521093640652994337420951731857811885098949645938147382527554564848983269680244376755316075549056183744495674687107584186196125215128008803972849807456671959961461041798120719940289637529027578928858033153236596888210867696906268119706277469942546113999878687795175932894247396971225372045165634130626610891085419691926749312502151035365776062185934267055405554866233248867261144608068153373248305983147187558044857336608753911644847542279805396929166424841260106384003373546396542383948611029499450355753163534421384375045122406492609484898627870614419746150922330073192358232291307293164533780608553254793497415783588724642315104203479735971380419570570123737373994738362883003595109717340784417290288162474035147445200182333993064529269116670721601785434253862983454191145279365288290628214990478381327565089121691047073725650559950173178955078885346722089584193509540267468026507358419652384194544638486376218718782156177582192010717981999153224235127345973797995028402564027986546431704855850976378781964934505551173940216222337343953003775557346661436838639353694288140233356670533036543215942275172614886113588659537461448731447958006902035492340886662583763301848787114376685828183172589748257172363327347512418856793578747101276388101923869116120731385065703038926914318885800797147851316151567033331930820464009235314454216171803654269942590097971015255183365752776196948035817185558150432085844062793689469509261569543798322359556454115959440240928299820976372473711660106046559859779058073801723630437025726305271595769619543038503320537695930007153851520957449621608071575712094935702481942761641113406901434766732659213149770773810217161957189513647896320379621147830540283407587909904733426994522148227311024119043478771902792812681433459402419426205515404899504030747678575518832228507244593881061012509802467624917972918018292075116470827507786351327206063680311193418653622662623126875429364883607373441540386835819059327086100101011855612712134884326067588240455781597133470882378923485777669906939954561485127689552963269151752559728035693261103745354568801012650046410654585608462949146570382197635762007744049527415200087289602240252166628818114219221936873210007658561174107003035446730701396064952983626506720767910245916823950407817325757743396359087426636534534364108998401167215664769745192526026271795535857520862254847246112472861972712645132076742325177084597802132256469295638679588000578963424491192744955243033742887794275391241768473292325153295938346563883145334152593556407985816873345738527538079237737645720821806593411528972411771834867709065682909115025596114585076840029121505159777905335778904659193565433935144670858584742993167822771916304275376319149305476631903482086058174451307204850583029091615819470185100473736377025201520213965102285753584900293814148100063898391984418185077144670593839326014516251577659170539588673586614328683986228450873309514537972684562429259013568254898096421923824583095732608191247999524729688822275117230683429818766351533652395808228780846919227929728786741178670082652619169686760517127058505964027447314409435860751710923001016785023676112265353022120118716835295562959265717612526837554296579416136793524856369083847252721600295711588721940110753461599895121213031468352504615218189499764655529742158795631092876049483244623684623850865022643548879017583680847028397796486996026790489899890347460519681005996726846270706991675733331813155994146333449993083510896727679540783627570473023172425120214237154911569386899006765571710063505221712852577432570340455788651209595150407255973952259145002599763239850513610708512004003145950448045715738050254173470589011237841259182356934825854605849418492639667529403320688000099830053504053808621323856242841351663336435372785042136404388802091766109022159172578308654474726056011158801113105900127390456650870497797426650265489640214022184850821738574201072768395094541192423555146373560198278229366717702194610116546568864949304882780414005356456725518790990495589508455610090565061917648950400737282885940866034042707839665581782894205643137942474172562024475306723385198705724555695326279895431551844453393510756030971710021137205168186795346301994182053471100483314620806917474485347906889506050951861690063842846636585034699811072733035386107085884051453391970877952014654315804041463193537822328357286192820777903647490653161914235606603265702351418490008035811663281203813447002048125443963110936121555086890421097644775618288293011123608177371933668611248958495744277647714420518892328679635461124889468044478271010891368893465062201482537204933237194790366544638924974822111657966108691861392816427101269821329330532605010187684025353029653335405672936342661584357980049184536537272496936013840054889483295617927645642753953759676478268815300094991612163147581284291930736397228573969100950527787376010406065302171338655001011804517273934528050624729359243881877294149678190094242685027469534124512271411007192055405907746827817334580570873608074895318273403732567624659736780249280899583843537855236828600637530614330542729437812934443780906937738153508474883937062430664106841447621086927846158769111052974279891118582442120970118281607479758447770361124114546249966772167353067445452849810914817729691193301899760861864373166136213420064385054099298009536395746478463273881640942398859173144160121060038495634628282305891090774200659106558275294656611204294887149468381579738359339355331654322306359269069353769589302264835800891097094146774661109631985888799824031506184976059727559797831407034034767780389321286527389297150897951617266390592982401965725636034750924213318673578870515916841469271343492605881895145598002741460965811043286614692072050304578700770476982905682695228671429922886221121087088871213220357591753519378310279115996392749413705274919255032696006433104750182043967489795157460151645882771331437763089303744000301207231114728363691326763253601814672672267575745110306044256553527602478099723930996733177576638743699062820362223549222149161061311816458980586821725473782028973081625327111979621211078553076754325564552728650214985133693261674942274882592692057737517627569865541937649177744069721046291958489599413802131309391661912914976336335586408554957439836683223841168987129727119260585739335361303003344276711106376574247051881636955083921223222621987381694463554255836829755058943336371173415756326498259398514496704954438039279553049253510686670943853346480133531697090927472752724163381852169413666925606904463551937712543650396095028800423294007110885252478278941705255851524473427412532892161057274575469646969619202655757650835434449420048382270910041659700959420810222260660136772821924656580051613339255780877792360646108016814273134492443643302101255097012627303657090524258553165732828374084939194171800222881899070304069053852270960888025876967652539308344617926252943575905309095393926460116963635228515170716885332050525680657308455398812626292509139228220345241504303289528902075412367343511248376568469266163338620058763010452449637101270852743084690963355304926026061455665409310724179153023869718149212534175187609434432426458290544335712283056144181044256321859150592918335429859337329927901968832655145788907998935760288935500815445734692792700974350147723950086918146939654214498164693896887671336196944556796299469570272042780022845010387568784383930828683904069247729865433033179606887113070112424317516766387126817581098573189735613625874982029888867062945202743203824335867854955379805209240662522309517851802691908892782159509781202641577584577803262553503716917744164198045829984558110210337680226022817748249907761657208423239659445120279932851491565894496131061086216771616911676309140733861575640375705212518129617108527467477786347471620920567972724217947094374117931069358534684515552067502275513212487657330361591001393394264575117018089361244497060927514167206875941687527450328567939861382262337851353018457915606473844040323001506223438490408281943393006332882933723851412192368685461375656080578539976309962748393325489625705545837811053369932198944772060509925904917065441303353254344046937258180036927138197769922193632641925998769712651465081874033670496408759112967495000665240631414878417110731882401242842130658250268179851097292950021160653661493013339447136169024639702077773488425408022920182183983055328845091723695104355457007269509430434467456461716633751668027738012127077422808343738449054768793149392281421616307743119194097179862490997149333781467825016072147708050168968837165034625812165114246874406577112941653233045143375745650899900337387739742849305811086108512547679554487121812701572579963002645483195766838749144565061538016100400995263898087737928442498990091896325562255018330497360137920053153303897789629746777619925107734470404486921372487171913470697806335394153028342458514622610228799286192834792357429184494384994263290953828876130068695500065128946698507453576493404231144751744734610631951933161829926596904255656410351231472199626563417932126745388664170729797604738637904502945508903252237680734549939833409705275195334774415375781776852392194534388369347085565036166891213196754080677500177971608659989104273795759007641644646557073014620150907873801158478432588783940005545115425798001752634113033730133248256872832714303752219380364705946760581934879118942780805062997879061047343927557311978336526477392946796985428967707770945672522935459332504210535862558948001067409834852525898262386113079784168993297369703913415969995199558527799691471969436657073190394332922221568987967127215993693831773556153071563157556399578952561138588153061648259162368704404038156535296116652775426199213238252737321034969060024354301130134835800011530799756259161910709593031694050563790195924189154653481588819237582533070466481634634247788390256831969505337969056605158438664625228022958250162098325886624881887899826505019905986950150983967254578349391367136618530811864057975921882892135711388916436024023766832854213875230239881585447477878751595397461713081938617668853923881716089296819571897549740123517760919860236301547720095489640117823189993375756521151525474363248656957069729898667835637055322278329848715710880873208084884658429540375075981176068232135569991248893207382174084484938140653062650733803084319972527882135898414140001828533942358608430039531055705596663488256721355770168160908388133810625566440982935209938696405549738308380213746278963115709548077587969440700321916583864110571734823926409469096529597323939466586834391435309763119225756021636715810572325863901580862735270394971319463018302176205086518992318667556986963632948166747894526402030613277805085536129740225850073991837186305470487521592182512555458036948070439235333478241114394114857316819070673320586648428993990960407768104908498797988763137236826098916672271681356096304943336634687995819347547626125372113773485967656691454020382637648742925196339184335481219736838644188659133631967001879158342719864680204455521466125678234367789023328945475552727009757841216889797761796414859770176471711946284847639737392523473739770670185888693344410594691169881841154546365564933200355755027498581799425379783583806454057656049978330614897168687953085998527484545030830698279624059250786300031844610747244737949527617985631038337254391821856447687344129175050884768251904418555276836012016539291505567106969902185391511381160039285080128109965767664899532890937446609555740955091600621528881875965236889071570218201916381349180942971497932164906840421990634561001703387036145857176760566752755779373879915468314843902222426970834063599637521744143523357992620528729209119247619175967242343854565112638446618110484002787322299112622614675399326876600407887394284232224412353905016146587497490650554767489023722002198945225761385896463003012850704912587113155439861077090059725634032196424040293175630470111046583788789331937914962796720585622162714721150718650967066435782331728770492498089502074180493998607640371986573407016918091022442261901989645157234411751890172501853848920355551261394116774949793068847389879654478670282909166899779499952552008402955804540996645773497254026424913871743861493695062786056479415266913920163458121858870814134786740477308787921148884109131030799703503331854700611147052591640812769981784915652972246199229774557654369728989382242252396645314974349748582142362357183239856111500115819202305219174800430405822363222436583947860699090634041298365061643448426982634194446351046420626148006896479865069161881436712697502893220125165865306466879475790752847494104553569120769095695710167137152366920418547598046737937049254041754532307847336006544272627951799405142450676313319523899630471422335195432921807673378055784582638442022252861283457871125108601741284801800143030200107021438736564255105099158998279068703969651584233576869470482502396644994662263553293510764979016957486725477268766459196686648316194821165436131485537762725852480926895405954789431012180369355854485380482471923209852375635828565340261053520564057626015350171133337978032565927962973692980239978040316205752902795809014008338704869334445041345893687215825650936592441004207367722109271715093784533233068157959166077227141156038363624561897072922097989370268586251765606741394544956869026830532290068372949333762358408507900773755012279858619209164489029343512262424699193630735231777043782944021740065638454665349131592032867677207598007450824645438947998510546681768975855904622241708978253322422420766437612063877767446441726483018926477435332904314189295014488778886423077044193190929178102043706029740870544351111036154900515715052551763608757555647203192907563997548353737386864719264922017791921564798511283406915670720999778926499124739866194497465644088085607264274307364231605328869866441455706661072560542133582823413506308365357832262125799041274234933318639552798523489381643639602406992166910016813622656337300970404183532985924118970132825078747226351544018203290669570891182520167498283277410262890020106726373588334780223124478473158251703387584230786667195292861954655149125459483465481804752281829607447958588208892219012948178711892453793234463301745790158537550977858822317585086940179728578842905546684541436110670128399523289314097765839958043410930650461685872325408253099984672296709889836851833310758723265118490424268575600581830366730489482683096057772719674139561431454586066501979707044802025945502758483003231729490103518946713824325263495978711894153972373744659499193070149896215982370821889707422309560960027626961069738079226034127219799524893494762175661487074286993285625946896188695338551109596202555956540274509581277893784508374354025076005757965884067367236812028756254792500026283029563935468719799355501531633636272957786222740840442348043557302822172126329404615711414138843826865421284312828663364879299548220782217136064211112293301139573256685593984901515094190665641521055571348541666725787608359931399279135301100391765249094778612358554354877192798934728404104004789557914407375244013717824160868799556649978631962730642457662470411743180955477947523585098547371642329385516645806668077341755911500728145708352441683040318709638220257807092055778457893066068297737651113895388625531459206125994255676845725263720979448686345337250306555744725199422787164484154947388648080184060814661394065140175509078687374437043893532384974918759989076978697362395883237853920731163519125785823695790503866109535954175987372205293740086737485114302101469525423564348147675200333307723605458763036749299617012687759947478889085535424683191137517062692872556071720162108135293032144586469599094169832606093916976579429794556144613262973057142168307732096473359790464718371312579755467320649233988864574738117167976357338833981548926284395585622956773911530985058062440721572433458416592691143369849279590523654355986401659046599219899844635557974899126214445293869483715879025028873708502620440490275234548914167739704680500251325505227480461592414738239305007644069534631484834541360299428708984141054355483930151408736758753357783190729877425174490426800184276945188742537761410081262958332710378999282126369380500483079335401557537600703379058203335928560247079142299007720002227928854776106973520641404851887206902114346745309125445889215504337725495062472581949122197402619097854615943886669268303761690821949654599497240753790713312025509764177511421897058316625647587520412966663709449728347980267932421851300230280877207634137150707736148370508651234456574174858039542574710154983896202130102466538738289551082251236995840230329110972208330546639709573351602087281648387578112588294921049880948205596237180451107472531899469877264866155570592304597036210329728819774100981570902109590755654802306128549693964466233766807321431787079238297299630611070805434284568999139371153423434856278792650442915105953812180910597253383700564454994641868659350728217654246170939812792354677979117204836349317893250684117798930150104094672626572982694900309738882271303403541325378990357027908687035924857358121821059335190223381500783880605917086689105601900081132287046058124053851997135698305932279388000586799257602942380538695909402219092983991553840246925929491514843904195146082637017021360939408828521007296644624432186357076086221435472940244737464351156505436974358950452208128035372984019427698278458358720265416322013167209537919833479537516879063827001178559453369525239934777046090212325752141663414552495478508554135657349324947640337579344907931471034447704047696234026934516375837762920832733798712656869920454388026348400246663275515071924057678398899510527816045456921523366003475134165746902259271299368259342234458209681348375434451440400266201327234150050578976892142188113516050067233761752070521993818707452046397881235846862995190597766669777879932247669526709902088064120064540237950790601743207894862445254634383700412537947552928080548914823883919850056780324856819750046057795195713691263405931275821840669234167747902484701285531337223452988897276926145655345416907467167895401453049928277435900960595885319076374980788002170347271433237464445722575331467929878095698116178014512071218160656906526285396667428658647877309531323066629892076560589768007908590488675525833076299988568765702690216574245460977567882786433424616058870519884914431373019720059044408099121897081756211756025047897027319287399488789536348481646671372884705377500324128694664796413235900346958623332499841956802113092016197417969557521045527076992838070534016313580050348488207585125923018922286991155639845009089477062940902134555079538918133512987672853655569452335182768691696542640956324143767138758846674583175006817808814330644208448689767145677223926787861059920360990622540232062912542622537830678330834805131328257431686043813602551461325620048649193251253706759195209189371113401549538840517524197238026349552872129548192638433287963565767327503467225349241439622370426972733287474779989599544460435823436332682173501899834616800786362395015392439152621286261194578608091224238979358806061051099962204078918844815747628486258005635775922222076131544428507812909335795148195328159350715938211786384310192431138121134124662960617837969983363818868409683606275037737435796162572057500576965155681879129863100848532920350619366498062928359105371259964880621911464658814172051196536770439713958001202161754622799237447482373014303246958385152370276433822703357113900679230326198315463403075703525260644881162851687463380308183154610561703500381287027482179429041696033747805187163753948404225518194133848574390689432686933824645701808843292162063368584078089519768313268941311005553925472065763458326044784663025565898439960023895920287373362595686446888347949270556481749054505473478604702683953867052959061167127768147521798231748519538726482538301991845882398920882135056284399355155451596529312708173372686048989889082789919035708614426847738094585537489153548061492246770842724621320482455653052471153559222407150201768223686013964917512791616903001930046711784836938210939769330384385385336767638434342221230429788374541717729763258605637705115252335850856515333941960427806285673525752163384901502257219147033897799048731390368054436902473921202113076295914031732930143961383481540934997454100004582789459520660660403512128874466698480880469699304417604162975395469431922780857056934577192205454729269364560764850724547097886019987801351109475631158275216330426526670402200008447835592151756836630561030063608935088212078672316144299320311965040930091106296537439588226471245000620057857609238790814156194057560095949180217619453718325759670121185472628575575333687043486139284349104992193017543418037001236010946112302032406146314046437591524696259905341578023251489595434378437673345640829981371443219546957538905644056631474091877178518080976760736240822315053393355462261006735005245161499886420867270359728368335351325085937963892683568521700409311745989501240950696917818799902570310989427863242687005915642089293615435716276583561611848601963942745882866946953342388464702205431187227098099300069932148062128336534000586852448722596829857438003754320172348084209312812226164961831445657000180055758290258998433275423577603393114288907325381761130413780583126784575123973136594390671791685774931181509054661042542458396017483848176861808711317252289632758599286336656453903681151040484595898190462124574845711933922357382603588283601817348066309046721650926949499207334687113390302894663075029732390724460800573184444788804135489142620015981379284332597283532200725216821663618299447890086164640215511246060710621166097799247698271877080705693634807043453910827908190858914336434556691988832078180316635124757370430527468745818579119646572100874931034988200718835522254349954409562973034197013060713652126193879270753739518233039649148164089847267577182967612361867769762725722962061909453151750800740536998677302175588619819443150115596576073421991348036537073922269036669454292304739104565915468919189598204909818081042455953616812564448937814912613054908895674311766088724113073848635961661419905865092316913761156549158420671372147373234392482125186543048357750252744341714512307492981377720953955323166703664460151436734666045821453586337889830251882769249605643154636551585804845132036082251728438980707935848698008624573230788323405577833940102567365347290610979791112903402194739120170731329389699107434254702283623984977233610059797583105335561492425188063746718317009823263874989347032516400614633601428272901310514387838317949476076087038248225436405153548144721746053623174682458014090601550438685555647776876937695288995535801237854689588493046922194995074917349055273027593882693510151282048131619264102232568464330344707577466562940154429622590067435367397941328119730779069257244443210475782568549187323789557603738788594485022774108888814501981280533266061888284018060982843333211327037120066672589791554992090723026595974939485832493132055512295179653667029694194434329405947636472074825763710823545080678436289641437045270474650647895331119086739872484008906387147345333835157426007164523664039807974697776307514987910881670001687525741405675457655054095175100792834741583028748242270286143803706457258972466370430032155036508705741595335290322192150161712558192586044086450101812523795449647512963607141084666365968073257522577757050764533099972958802126217205780221459112181315529510632706010610438782997725240904497224412629983005780872886773860407817090924344643273102050959802356637911128158928736688962250237535123138826973847720619209550642593096062574540194465806055941778841137527633862732041293033090528030053896769325367376721238394636625870326097843495193940697901337449396741431814942489030664283976096804981528689795550907089931423543907723598320660432666824305754043776385211367514774048190699382888981565698929659299549096177284729712308833578789064322476872498658067604241506971678254923959910839116399299305734829366322652429302029446574493008130498856601664049308168422473859230966647715635604035408365548577627075961995505997816536471941144387139892689080762182744440782222606284220810127604132954445525802721964406284407949620743899675944598939726315071509767299301765362574292183587528300327731641242625052778075278937547569687010366002439775326366929748246637065761498012224518240171184838017304273480630331529064760854414692287944938087593063158192709177488422712430746583813844887555762971499068630732423360602273495879519536832279978853105491810688789480932451374358963239778761822467932802456287937829370948383230531081171290421292909548947999101259464377607199122211374362281149485665268385807085240975255610822480015748831662602601496771855992817783728033645491270681843637357960856524986505266022469794279611789163617100131899605398757935224053652085614223865136678888394236143067986785305263796951016194126276490954521870733790976723857747600530090355306015606015800207757844501465968789640795109634705933530087804117163190773569786918709883410625769387129801366170358752777676673187577027485821570189260158665937027890203334265565117571762421675073773511880175241896760994770750414683404889936928724749920618874164703878029186574754841711435591379539489241084043542751084667020418952364618113617858617622903815754461896842534774453750629509512739564723032615895127318237795804061257580285331314046082437993585795394541766440376183231773881953315798383806291447893089483513120879277178862124217215951488929733229005581748946921465710338762245156274750220209478894715368670800332307862894685537876483414431225340824582360831019263486864805477382402388666035613828005730676616472057144195870906833913998167074731372181685626173014910229257168005673329945588002882517470384226604350908587748960730063858488900344701050637092946628901018349312030081943274955235019514854648352098110760050389496359906094922553716858279038899500342832398098069863786645758602767583486330130227926752285442287919841107013925488453270223864854820796215023068385764663854061141334892583397473406519868159938694671902082943120666607550989172058395603054769662497882365946377720734956957753725760269371041728080392633323451448165665435337228912649227140738376522832737006417204683978737398963797095070405561000420968312761185058185635507513157186663901570250047390641992823233835374499453407496657730258082626322966589329203200723864618238958180528195314059825396949894289319004326003574306159717515291053827638359675170253256531892182941368931568345976065250235458656203215880601372071340569467680146358350986939713391776608083375899103501456080276091598364707835237883800689791425518355343361758596531733358035456529560098811281431290176348989035741608832265496757650994351260209076140791122631145350127470280403165108908488902802743141936607409037878334142303346125157575626573129683170584319946658398005878942864698532538582731022938897532934725967993655831701831245025246330896811174584475529768083007780364918268933230503797719299717704850945729545731873961995842763126108350838272464636344834144748097609091759944947745378547228200265027246827551332863479085413585309389174807020887767477087142157831194743004246144543805538326638935721740171884282981551988694817891250822439201915914472197555679860059482895091345284657785406016054661827499601471502274201849503485121765859722866453868798226127673226977151268564472225698864275750677702383532263783933873969611269703428444351340841925843726606683484950786565291819854719354518997267714719867584776750301727279879949132996586234013801188907567641499647139316943043613540081559896042704095885083984398280187613101591121782531506489601130682569927312671162952768174335117172408275637737456262830666009073481827844532179824505371507438647950408000748953150454417100093896995178172322680126858728054740531466643476446478381869098125252709382108519835995651888638913471612487599058793185420822535507699268506670060760110227494633802470485532144426326884925907566238154305436184881680955308739187980396651213391759596739401778673829807805664342436174980661853005574992307850157916924615435198165824854679477085165184359749378997716726347733826807951907303122318670072802052833354034297291554529153818521341971264449982611105467614055816370610407435832453474033294031405956443850930520074981965102321960384032064350002961773272105516119125162085508329216834287462156502482153758875997283582739545018131193024454528822798168182315204421764117578403966342889554937198189069930768013513920953838333000534117410319792738202538745280541729536274997024719335349893454928899470151041398547553103445244062068775109918685843709692272849732797567599840989581027058868681924238423628158899299618234206718895730081288380345388830463882508572335202545965336901937991337429408111319859703647503439110114320836741106298878605261226907897945963968133553538224325974201740322970193686834074651022144591728125149354255929950794187410612112362514506575666441465186885199969429210370646387190344571729250188245773519467628285694341160062049138454580837084017162204749132056656676824677941908490692975872131055639685584376772662009368250020698963995206756760534592237973462816577880890181787476964682041538918811008606313843233784773761244544883636217245885909353280680656436839497287180537450925484952143292284320416289408242215489603458684410321481470287000517953187700527696725622606821709585303737361976039467873729997704290987722170968830421211492316280470577034663196274803377702007224038858684534752726010362305203937734359261210836432301527843124418118930093667736772580974660084705143688583902441407633501434655939547187340094279847823037240392578765050251467992251356821923090037126963054977110272409160712788790668777413781073492035966944455965908534565532249076294903661297361924425477044045306833567637245106080220523229538905601546455629952380630156372958509314704809158173670058528510274567950619305217213067346790918257613732890748957012832375468250706571042600997307026685865461706019983547820465904449527708055735778087673740430491549133315342463845102643836951915502200241526907485357129892519029169665615004957136913744417352321735429627582891730058530293978954583689545038004792602850951856882153592910210198311380153336546543029048319245967070736593313145210497157815997715267741568807832112408638041921482921087724216418747681948925672294878752705031387336148821165363729290697624314150575236145551044802682715898236335691245436730985920859014458640407328447831884487378855042684213631156094361530834748917089840164855465281193396808277674066618881419774617406946455746541400557776416993088466748059557215009910673479127721440103431115781333146544391737541158092887174867266968950075598084712958452780141704840531015168245083582133140209023882964609652187003884678064824515300179310765879523844084519832860881490876139055907869581093021053432916096079479707945685719982412636958448684554818809131055106647546473297303917960037760638799115819870674126944095712699265046846473150393958788292397850373945418154150824153652695824863188829561907515549948078592730183126085744078855788306969111394766044059175362063808994162563089866091597624809524318111361301773069113025748576088142379536277512493453990289246760567929715879099443652563831607939967268633801617125530868776443502406324599876418639826458692000883904668333789527746085154282480839442349787712849305881083000741363435845142862875878141805748324912490268060530982153520782148996825184286615643338846124350793726985322616421719786288877585118902693699438713581717479310157316228995873134561469993646390464768665188058345913660175666724239218592172388133016337816964319043222857121028164185572654635625761388827126078790078956683559509465539019049942760655836488618999606524886026720591537345636847580798232993168937043879895400450133685883302773034308153423099637026741205327527560009031355153159092091737118108618924945756113526206582711547927996209058601844523822883395405333823515942046470223905387944963282894397278486667669208752255867414155421739234383353909511851574732046919397207567429701580187280844392132425865414544493657497396407692617170330311000711733398009155218416875250824384795475858027493562876344097214565496540681633497210351907965004680318508288030552633750613106848106474873088958259718088234669819286816432420602260188668057425900192934104499134234505041953877000575759200835748676316761159028888144653264344470140027060752144130448079164558148159709549064427169942243854115992364647169061102331714624596955260657886081742202378699631250275778347569311027325839945882105230065208491790411929290665453753683646731120740727843524288096956952041306965343868062629176861075108181093283554972679766436095878476432016081282422297167460951136795437288777695554486211639863963669419063265080434012646833570758405654695097083960275422501939343890232636698371179516494377053943696543709896706858847058432940584259705781843333267669062679839444916682638915969057395155902218121023334124083533728588352691002961573179644094432827980494075911946593763211566850864646626442384303851488510400056618465707535534209386269581262661493342717331627060181987998599933661719956231353981998719582092878461721761860584877528289624579106107380373950219426616730943519201076731211398869721571988066743738301901090152279681530383718713796859044359781116060902475739780401035665478045287604527639247422247726720508182131113102700445243912849329699135732000348664990591852962738514572705943218810621867235331904434904851519143268991742342887649180901142606390802175337372335158886184925807322436218708515870189253371921725924350642618104516248232780230014967836780160125924676032368711380300488156275297000662986773811796807965941805847488376100902756393520866099704886197761803967157016170515104178363997944173112763476676566963010310074185817036027950807879355754468164512339482109356416733584175644159602900936431467904301252524910293123547306383044407529928046545986839850992726224137948805921481514426923536201834535981165256765416516257769286882623939318343696870435979400041241411369433390639980507066486563562929239814734833934145736337106104112636449407095161256987020616676162352518217974474465206113317340165787857916694647097788095226121244086589835009421053487039892239687159567792178931045942612118781752942521513088946737742665830025671600238396257735224744009242396426470192460755823774973380025328584980638056767029878353250402875421701051302613221152443560599358180225399864412845190925043554631554610160474875402159874953512706332606455602587763511122821109892249818251726540751583437921292063400054270153045658989388339076416640918390445030036432311617160678219269577092185760118080434300133511299476069913199650003341809017250094602927349983591665522946976328442868828463488137141862226381465695610415890638629062092811130675793341651440719695586098126636835782310625727432824995137744165956968561438730351298612667345861213071428121174058503904327180471875418028424530766839131994683569805875221310092613308945840338943798449782834696238539662268121757662004147628789365605311759920590431191679995041007870696073665436841941928346277756361779465132036697170118250799187631726269593626244727387040769195254056122016308864740682203533151381247535385360043144710697676085320501241220142973354997424346876591550564357980350735218135407405208930315857674977419072885091760011272653272904787359766489138039559553434457786735451304801638723756541578825478307316849168881582711427429363920520714989109414270944614175467328618040324298844294657276687139358048438837097428646323507180028238049068513746407295728843852546694941851220033108368113475453486300166468395254345760231553332719390440251535613010357837128954308387484452052685376896139186712763324951680944787076807214006788062451003828502554433278069854577595408021114913322063760307756316651453504321386690636550967052393287125218454329242490644148175566190886988540429599208514531066767488232469747771661065464339326476806102634783939568173631183089729917823454882742258402020957846626541290241755449033605450815137220799225852257747153837430745852338054122126394871699569741871203396148882821868780550771877273930822197820112121243912527767255129265913111215377307188721379421854039676346203319647154448854903288783416542216064620208952574214340737537907547003430893303834935295323410992174225928138142509666795063469526410628775124727061589641192815609900465503175778386859588970442428889451215186836991079979855079913564999749014094138697120167465727516537986626328554333317965274749483517570662418448632922574447763967068794728042767549935952836176991460408998549916879804139578986068894270623237762607925571140015599512575921250788951621695814548558937988604174966950638440193871155172713292847448574343181518781128298405351695798394007517385579279457862426100658664041870716277629651229854206841772790183969493847683834821528387622565349794907235712189928681207793624024560464098520335795831354442738846142004416097384204449411228874591045724601414855793528409958920720194952530543156940060165236734958313461234711328424507375979421132858772368902663683462257204631476047726204957797716450566255321105188556274445938513443064250364102679304814820974977998951596191553530261989856645882195493706588066664653710845531823506906949680438774905033523339178237202496612223817937476984348697933730049910060996629585401647439519029967877479779686135866088881974855590218080099020598717706388200151802619114724265089649387875492750349863091454274689024336267715118257365765709202062292320063599379121899569169784204427369393052063643187394752531114894838750444198423637443186797315036753987835162155005489797028397249418828435501241981851476414808048524119183557452222542649182442922500492781026574016587870678069624241721382189120950977788982801243210047269523982035943693958851055480350011044232640472560032536759032568423396922844622252658416982946361744546107431654580309182000154085416134128054578824000803613906743040394633737097129958058052829473468223248301335779876755381567468163639943362525807992895472143151841227447649969520863577762828023744258436926550498727863264193176320327973011034483838629715053707183792357005133840472691349602279795190564933272430794205408936202182880027431430724853109373200422764440774095048145825719015457993416056913990354651877668423542796542907209300705554822478120803816375836192182233876470992864697034440929800418153988508566315504464299165804638580804534726879342497437315569768633541463430703616936077923070614056505728612464353723238430259468720571521599003601736425371871553894602657420534530762121725833061748701866311383219256585454448727605778087785947995232669668589413298628248349991784003077122659813050152580062329867805927825063003061685895425323014119026437269275273987425559878398678136903168785128506244044629402414269131908199569382935177917977892900993761929025118327172704231408353967604406572385261378421122094517875930372925037628515139005066667560039547204021654076670891777772062527064946755194219112252382039009509368158865429520590160831463986740773590721429880334276470313672698345352501738344281593450334069977928489047757855762488905113787708683533925131957037492796532086202619603727724629289642799521924460324951611611879346833038524980452452453793478415732036936129527441711788425164139228180926309026752614969417883652830663745174696829499113599293922287625779595140920603742613211991671516477343571899101605197924142757866323184470793884053971248459522295180900779038548086206939900620321808183875825247823617143996778561335905841308625177839245515489460620503003884164880110344307599011518820831978269981786702225691005527368044316836302931663422455203201246613044878791845720755734031853868541302849479149171984972679075964783428048207935987106484725752478017601926309308271494628206694319949640567453226634461757090444330798284443843181817910206048255942215786396383865433199059732377463292302706327695100975049145012387606367390650399427255987920082839319860127526568358258593409654447433585630914750969779580568479862477905216872630383675206039728970351107537972190011753608187062942984720034910224952235429095086011215043457240640010404979640436560526807586626385929110411420414039620289919430229651638717759484689795505188524709368703267001832360919354018952487190344020626192962686475958334105708794506924809011980288372082912448384627907383006067804533139741347124649761737949795389756464670460991472097696687306767881595191068668369174715268180551271159877422713095076641542997881504633961141548176275025262368782241484633759026274756196500109060225677733575685800774134404785601110292232199134083652443206275437662376310871151353179459711856677883445648404609031288729243363646298928839167119807913213317422154659826532438950915821076761518729176967985415387892478685852751437336351576471382898354617377277674718576179663948081543151027149001562972562457361130653799013937975861454965140410505161053742663078135339228010052330749498639504956090894872718414883666407634483192890098779380130542513392247451466850794666574734039108570822911769310408520382004662962933932500873170141544026056270882207282776619892853455299339722992838350490423241925012283975145463771275803935304915338279645244106431624693535917787502888133434722558147782827000401867591343334261319726642593464492506584884260593708293546961148367455465720505471446016574453998550820782192410963171806577155660352709269506728757276554245676106100663783821063332614481635067913767394005490710453084458777063759523493545741276143853754930068162494742374547172207725870879831594398006479106985547956949581350828168561961210777731153358400706885933487676285156979926140003864862316272272972947826583636911378926641713779575765488302002684673942732422908139105736093043950601463964948850155300030544446235793986304928802908719218697505447970861448795522531802139471966397766075595293612753547177379512105172629896642320502577837939287030543390659065514580984249143803163341548792928392836093622340337587930541000402670526389054450187851759458365884904017733597477182025726948510402383244762126127369597996645956692425641390917895889755612699890679488287826743732432555995893829631602268315175800521450831504596793352132668136500029855252003174890803515681452579642530777765504378832606758209565352515167490258335269452936093415014075051219480670130479333235645298593566728843866497300407611578787933718830942901867666004279192751926467831090305008421610054429722569498002252996784986284323364515731092451631312110521611865137045469310069460668990986327048929130125218170537478494689036442322503808801849250204969176807323912840696875703741515487075284011421220842819199953327969616601361143393138839543432454836638364055441309103987305813903571951851919310872152679785816845851923822426108540592791422441034104395330550946338345040670208095487656939228777963262559399108691310477292273310709931298400868029881745090005560900870929916557549702940984216603412860802265248784928790995308012187531272866973032299394534204643006871229992646888846642134077134993821589733807566326711509684838493860260984064739773333845303183792452034691260905577841532569393574215447345589367866111442785582231787998448447918268529155685400955057140815403517409240138270580963434609691676077737823087750690759718965314415021298141452993313975457728621052394128611923988937939228955062680328875766245861591737418522945817287487555737624463968318101172486903268249054312918090743079108753757715842499248454913378236773419314293893124815984932248205875714402589420265483961337362600625137456940506627408417693430619693503045109405567766659017989027340607970668992820484566401106345204748324646539659145640682767649358571531037294561416883825559821249052135951835263588177634084124017397967541170321511554750086971986115542233797923650079132528999204904371240470422097907086191435879106295766926134724082319673996953653078212570344166118119866181459399719985152039084336230411745097271196716917944905329615340551567422625753766777500460586449344090237925130167675743401356453366483778908847549337836575354946480307002036504810501736844637910213161965936623610705224754533293128515018138785384553855938138648462081335039811174827509925682012150730964391948571723739582228075481608025959696456287469063258157135403445436792078465183609053769963673921146351328010433794090522963834964451088403954266069853865674649772905248808921230510631686381384679878538044310598042724970707084840511326212806816554384583421932229267441695073678699410463402833524853101825816820285505768856783847837758056588094540199798238915535128996132203300289320462603423535224245270021972280839808780536836212100479355397844424768184412054323369660612966433704655066079668195482084748630885328495476778880423952756400009332465119747276447422889433427389150835645061608563524607601490631755072944515208873176342457637724385785322309946127644281503452807136255007675154314485886714132664715686141406825902286925956862016942521254087071733682583501474415691956123262426953339199997652502780960731431001678040529131231215288725889193540564620104798842101355423683914291305015161107329533798220395349099619512674187478743930428591958160602827501333338948912196855101270755559878729863693103394934072906813217260408279821665937980292598967157341039376715042910270920396591763272482168900506307561631694473009441655114926148384284981025102470846836378231936199700139817112986216697454988726867133457132576845277506170129400344103552308009108967803331413382926192866245951468153314360064554653426385219162824441485545697692844294644808959831739969629650393909343946948724702834480229888276936023453107126835140830567937370123391787574741510136750020688188031721204544651896210852719772771653321562235630548391839299139549855287184843022823195756676122286623397516425061473051756724207227086438662248810445787887325858204756434870772273955271949506911158013311652904785322952386869072245962277549356107253499715885921006343419186763498033152389271301429423763138529587607469596062325847898259914762041336307252762761329092361437977860169832884910340093890995365151755920282507557061198524726457093478742646724278355725276073724379817685894793263868900364538543530625999753247429971816118567509986322128261877867145141674224431299196470548639061916949930206947676058097720228990193362837696063377990881001081199969739371780372231608745932537791544840897873290518727967151491432272761345142465992773304770640814032303643870024621723444524699941307439290777845861467650216767680838638856338798536871133091007712886431231439548598375207408395129397989236209106502743126311365122653920385703315664858399398626268792546649290450489380604433905854076001833682076145680098545402872967154079809715083901995291269006934994707295937246989061228277430790081726940088616332163858408855354681314233854294739814540474784177222213020555903044705933611337081741620931804487327659111240863740026890659901937036577572888028104092130395053735151265048937876409245074176849117876014866797964183431518426505411758238115599983172450875874440798090238303232700813112303600283931443524877176487305666129715401502397024143542227251822456394450553953766052219337229610033277993698710116410514016596708255399661176519127287752395886690023729093467550561319342242504098793833919997776164357094056650183886281588254265865855521652187948716239275031710149791015700586698419704937650743335923140463598058823509882093586013354892333887594339948648772901076027185780452953589982220183702451466029017652703831219739359269015114672943088919284440082388560318042428618078870005325800847733086246279856165349723739560962972702449249818129970523081732446068863571611979476909227651777566509094350260682376537731775863123796726029342393424451522902557574905699006018244313622483001978564681785477298267725851443310713392973996753857043062885684272930393230086393826952780232098364867002484000926665410061413887334546346625812390792145473842895113738959946737536557588712462042841672246629940505682875444788261851196033157748166885866741088983659976298188578241137226864400679477322792083662210252288251216785412384315899661887777346743442324818049196294177027339388082411318469404431560667025369613393215021272184712332693944650834735054369802677750315473970668758891025371020281102760114433086627692988876208181019725924122521477754353389312443934993954557305071438452826048902132092315685940018937595142473204692969365500228395213272482080432407973422320700948307394315490562232458391672103846900921845557298896378608376207646864296524284196450819197228008035267127163454753773299918455160905035886451361429932821336183184451075109740736291666801034125498293439016210471447117165041033873650761161492380637769253385426448814974316059713106182107219928539149382053557921346571976958065151962031071677165421007324869925849656049498771911725269502488126136390597893630256681164093149004942537054393674989669261908356214336991730691885392829703006342633372939944495386986540750192768509936332228963061976762650970158783517343293353694893778067104638409223392381283519860378146812546964494821654119855775246574922871002091870815229613068333385000156979116634708131210742363282973542667159718591481244248643727825414095013267475932497904731362866452326503558929853235757568845208193296398544885817925351877801456899084853897347621603230571965200171162782572448267913254597521099856602394224342728808751185507811938150970658936102437842249732591688810965794094791221190893847111450213990585856361570920742450125496075489704947392684395964544178864291274440986117502993514083994214834178575228474614412994752886651077393662062116659525692436386470698983943026700854661166820552341647149226174862851440694013961852955595284176346800787005803934921013234044356099134769129467822220471279003670645421989839260784499770506558127004032491945485704595067737788403683025866422183912987473431335954973679727059725494883401699056445429349208455631664487527033344524166689774938235989148087983683901459140472455106303201692124374944738142977301488446747933650124690128601895599588067790338505034223919822444456040435937028852836005121181011225619688975234871140615050713127542296684313883009051907299686692052002173321457843826072299654343045116629057714797529853678606876057855944915506411693398458303327744446295451443397371472021368933997379051303961726509435402514522440275740634434950292523029572728651448673710695957534044851581163090210770495677509886290610311477073717868549997277270763467012507349755598844570018404109624727744936644709068605587808213126726902340356984160047690064455445675460668524788260209155439505570834978193459184686263341193491200363838401749521930303554724158521919223868360920415879690524580039860880596319465936268953433347945117176130029075609707304995475341418854291871015189359729105813959198561342764854756824852366668817396372095492290843024575425478634759382779757637420495474865901583694496120440867737992500524593704646213499570299763795082929329342199911244622459827137387547507154273162195147315279198215138689951257876211117198588657695549402065832901197058517844431731766174268664538647089480652977964086892932025357736104697329359400457698908816320706796799379880025811556796726136691341949165729685032351952275407118469448737418582905462597247746430136593355035117812360934420427069174052317849916215884008126681537491569827984637688754676010035869839992142494951977123903653166845002855887798462972870470099500869327392201629969229059839769096461186672246068605412409269029993737429193403369186199169971424673842379733534959412383280714506899952328469563477859991536617641237324801684432365605834990954161359933765869694280069844572117949465818852597733644696412430061888305433920595290181484750175265206217168591027647283876244250434716227031039823080011310146631856580288550295871318437133086607840054651932328059698393179252595615083387288532647956742462802931318751237874933701760456366697064888209331353723727221564264621254518477663594331290532847764463705668345717103576971746588016890393026665432417241557872321666106438161288400129238278942762031811077173570842935218987524022165106863079570512703245774434294378954698042826456669628219576636032639802272187397369359732602888393339900059464528620753500871210074468052014795560771878860038824423425367192495356221266363901829240408268015137415972082440670011453194154617447167446831083869290107293039342158580310624204927327558678469200953414025091001351513506715710563366221790731862156631137083963161328832585008706985019602827449143252719471366661782622917364453466748629769259529709941019218844239217969138848878453028165594795864529283734084924583894151557495319101224874801127710516309560591308677032897779635764001385979181297620758599504216199846182822427024728926981043126870085529252699522739309417042974116870000605038007379532476800476823289351300681811848660031740646379368821823184980676483652344184936373445119742572475021345655216691518221828237563691956928614170112360561550753606846825506157244606311225259136565553656651134385931576251931794954822493078996876832114546272462015297349878746362022839100179276596518739076988366187754794486638715859054488078426827886167942877520559016030229494803825672109153702994419536491011204445134780621094195050245564926125956953695706713945789727364127368106551134481196401188031130029028130197786566036029680248539357083564983750530857219558476054728737692625642339579457971566606725971048099352165884942592552687430860389841264035249770111034499895328689180148134802341911454881460564890257658458377538588473997857071443233186840597675013806955214532467914288300769762023877402192015567177243656373639928305029193460391372122017099032394520558932140812122431210763797953375385545644924263170942729780682644592981393862987453493985237814190530780291393562187757021033573827338098886142517500923796592797565522595182506630278806996172777412811392578744487265313659469006605589452147662253317503580406558417489523048709516803218631263595410922685542138593214109480566290416583214907341836196079146783364432142485755089278185422413512571648025570146458611393294692419055404062078587089212044636439890428612962000927633764489959441788691611135159413352281429143375351257369846853874871681319817151692349208908022343888936082250993685969399907565040946485619672252146481316950422870644039774297215689068497827736707177550258817889638936755225479863836929982325721720076826300371170825640492661214050859413595023656408090405023169153704550419624391817143154491532890312819224079541991990448735360185885148507088457473121136490681211053419779796108916105272728877401808337831639368178022020007054517327181205815010622200218226175783706965313026921287512687847550259704445217670504283706251209425558711829463778147050762990659083565336502220723839675143277453705742114157473844172186603800757023286372723940513988287965922284888150570475745505234972219991944435541885692358764665058661656011290702550611205596372280428656547948994240922192945559312862288424503834634283322981434515165365508561674421014399937235241167253228305331103434921092763366234432748316336072881180975841566701893729282587540560281805272350262536933503766585079155535268034801709696746281755333968698912558402473561924684536326662184576168485302892226220696334493686834802411354345538190278236082174239260439785116206933516175518964112095701431602044032902978498733755526378027525897353112330514677288904035661001216695624555180389441322100989576122517420181268444964766904199064428698790360479379780934833693290520202480831456289006678568779893244432960208639707630649022971943109366835556956917839229398646864947008363884211999703119959729213349320455789561579884401144864195010216186841923469504570135637724164006493912031392912516252068359988086752971099676790694069315966533106557585297029030042231808703330758000697632802342770787052439031238796910555679093811171900900040061378613125067476178757675260452774979081367651191782446829679878537848353529783423314396612680328577719317768435326326610131563262463839057215605538923707963173941228636424238062041679318246985417697901882873105920460859768064417099156861878830789524616283501137554466276561946706428683287453618926681099347726806064479002393755203761274992388748350073736894472134036516836984572914470406937721295102940157828672536463265655778333865159618668890133532285012543906245788416597977599683074359105928650417667773816661096176709974024575144466426100064163113365520865778558490337934324223823542803128834009702511823216351415112924665766640939907386737828350230488457747494004359987831666204513850116893962612977872436386584571070886941224997356816216139795766415448417113795595381000193303386040266518441130829050383331129926362518680602673767710573924562942480426348281617964773534909355402018187861357778291136592251333740520676270072595485519580569706232473488942344080092199940445990274857777541245764109678228099140257942777934253707701180877852251478349042934001006300258481876005949319333695625243316679499026546324925104184777604214452579862864444295040429241054603867629188926745723359200001720077479109882612373639575622810773667329419317476506240300972398754786806061974115235307123428981220376309973503841936249585043297794601926227754570046505606311489625337032859232635787002229696228383512543287915532133267626610173555059820238557593310059382036106138467511735767992420937164851630134781913111776618376680682289524943797861973146499240963354307258461907276209648150447674734062162002449816418734470245275981327557005393965637329877836957574126684045286087668040321002920094958525435192047698659361110266962380716418311484706974921142208370964223984220154887134964158579775392219135310143486376549975626726502138277659959407724240463851940686054914662735318578087575257328254149682009890823124452027374748617176327635569199395275835320058622474567551824554655282712605718472020935055665147697227380587121467861946483717449768463155495197058204728939410427892163447827638327219078951720823871031493422687860015391249459546829105664792278436381973456789707263378764784533976683811877942949309601275035528007870857111620894640957340223536115298074980297265190521414519759456960262899541828841233420326618398205340537438233031902697367087842674721944496969275710547870063912997400541489884958222988718675686546323639358428678236082895791341913664391732121014613436632761979390554561299538827383654510593241919165097523700636777310756958670226298565880154783598656754209226097200712258138711485284439037942504075448459615985666579448262652029580667924952929324536004218228878913656798798747248156775862746245580206456453510543225192401836712746489697630834388413289899604001797799292335680074135518093554968181090284890392686165526503254011274301298483923865094069302543027413330935357777876993548501855706734733937061871498174449018686366548446349817974762182913923692154926119474486882949734023713872178991186309774824128253442223690007707526103539892084427493443531565893227191762739945061349048703195340802818050237162812831353096259446211733176808511380164044249929959531539498745006696550474814990421649711824295084232234515666709183970943937307855676867930376194253677736957647646126383330635211145775501114134667544372396454022538157937635807509748103356628921777461234845345227028147417208966712470621740137554865723691189615261504739802782481880606813651461195728947537071482757172154698022565768236195158959706163830765491682781801552355857127610375124893675305738352763339976013185569155037233444455273989255075091520953237097849256656733945408064215184114753418303497208127700723228622755250280942901817330538851639697795587892853001528818847481389934132117451231456299591193576399917954243415808908033729118180479048885772005526039805805556431446122475982715436812861559322458198967704432311568877528087335242977463070829253653149093620429160027618061359128823983481598577542451249515863144038058869325554579196199330458385355839014257451797148919933502146511140471933690600823355381456694068415221724498495153084690381660124387935204991478707661065204526994656460556408069991516540771016206952216404075347423397006859024369723237273043984471368177202852700226519264667856301454568470566946500038370547996029359711664583167134874000208092776949138306847171404139821182542921197919667188475785597440228603380791841818792132292893777942853468301360455534459024328747196268608387649278976507255101573528370829618491485143468604380326492133769385912614791641089313699354838047211111254968288366195886115827409507955302209293110757740521517874634223074410359589349062027150322759726776882621170585244440904415149515317122244979223645528259063388160749794222409114823720259815637879078795782676878475212664119493503039376241172669070222242935993678585120170693780983454072462101606335906269852597315349624854944547664637546117096996129411065061572924737350618639855787367730556496092400310292164690470333065670009070993477604583783167473138138545132686815437181128783862023188367496243929737277752147759529462035015696556286294351033662517598734877212526478025358098356103707022135314023499275951447923374050265533428870231561663883613545385465065018756736216466179944975022364853100745519369196902061974608431728044830303649423458802649612796709532804962908672968034265163287596948884885686539859241524045225513303681296875054628203849543032447066691541277973061269754389425872905466748497477640744569000000610080060515911295777247782075427671169248099559661501238221388379000545073816909408545339298064450689457998356116351987807902753121095005429653607530101170457936562908005683074203853724261367924788339371923957401318418524533096341279848530138033533236415999090764425730838792507952784105354926948756813758241647309927747252754741193571928780110668414984990875729745860352965631769345762390426231517326052232963319571119502582896059333689085343332120857622498038517883615459501378002009558068447546859996553473983311230092612856287584808327702807932958799707454143212902580119900015368026899560756833780898953763753920919390517746124653181656163120100760487793136660523110405518963702209960709068295703003988313359023050073745878957228903581988676792801761938138411811384197018140606902646270410164543849011883974746147617854607481134051121493942841594106508778945167901720989637719718250243047006477017173407937173549434484367673743255122542839361646439768997457580285976749087283396160823541197343366181973443020272387948296542265626870433630948433448610898413620618313174314849565714098167775322685660184739771394855192530055311234746524326079852411655616204325949393218904527910206750521084011699422760588778999293150156811386668612372243539921252947871918208531634032668394521588061558809901261350954991949787961515154553771290161963686703459855339968427070996793379612130770944152487318280981495937842005547411438590200222374062812379549825489988465666984678572234109916034114682272974589341050202170313067190039837150101482531305389651782746615669966528496271426276025106073998746340774033973874677166425970618706942739482629742868250618924592735976092242645816992655753860809574334169361871432253405379142812151332220443461821580863804097937448810387411549291541174612039220067079073197007530181142286027670124124869533671935269868438768676601130484425616436851331937765824061408026298275616874635507048248318620667108439372344151028763596628358518232505828304243666911731487987901977015094243712315803067566537516332970273208733034771891865871887835169582529765470282586887772964216211314584521168923363557253158808818438302361025709587022587982117345678925578792116491713607525023051396984361274368327118284811085829966457307856161134925966634490806600493361744386114103207561019658255436466347618631069735813977742212621399302128497087969217144787571438448350292913321056344292005327257219413400600289739980134876937440054986766658010370372168676576361006133922462126429637726969972606217798910052622961069253333010737853817919374062652683606708556543345220604656949312497167665668971943212681426541722568889968118832550172769175593931395089367643252666970046220881935213508878145445479666391427442977523090625542828441193641476542863149051390834466474691517028432646618507629745298059663512238852356288083326475665913670874705514333447174958035920603655495567253290872949023700632628415596692240079554553739020162306371515713120200292260925678664464215153004515585699410255473568755678623941355230584440564657960474086501737620576440443790370138372072973608354150361468733391986969112773767526749259121054384149968038203787675949176503278788135123244055557601440133053067737305375693870387560334036263308840823440534616019956055889064377571406105238691910710571641809228968571995044865891376448227327537682231127658609392165449123251114712994220838255877651628300722054368529363686453199408800753607010105879971978992489170235498424152160370159981050441276380398686437783433420691985998268988729026698407103160054969146868008588300320883908827337427936679001198597232094906668402091699949440098323349776493892075120141304538102243753086842891876572300648307304948774757403354729383309213540770132058748083314637642700014206335846572988758048886369429929251264901949188660767099343584962999400835345302608689197388166269057674903872011126603034670213284462580844189256934254507810142500378409890668369287851785361775818768030735982709983612267413518817238319722229306816121715060557214497460090373135854814076594661334343069423468842941561348856267116247016599040074099077692623689004866751209630684763569604374313328750938220772998547079292490089579455632959593419342571316503267010354927007940104920376627071639744822818478696222769380748843185080925725497457387884464542316037216990727011371951533221835729105186576154623603938007885465677166392719902824670156960241970002490160489041313706354677584344867155224532112927038820246103223554141998633295075406441494583932690042156379158294161860053484666278580667747025002533686285978687283529822502923995938328675155282038586728563675284423760573997947992402304096127900548717889093938937161640001563764436569879129963888210213357425806012390829913473572720004252319215900683257567335438951140824016281311603947689443282506374037181658129811057609165726408661303139685659531562431890980190313737673988330716191223967115944476184968750572371726385804380865532245579370384252537785886112425568398970494364332179453195588718380870640320636219149941725856738046473907242261414543828611649851029236339067085645154013874458443506793222160204958094171968915516641605919111058366445231432246281548848815904653497639644123162543049031586632576521760188139363460083063893994125835970853537612054995611413904133490872865302376521754095206383140065667571291634400671244585817596739360225522050985648611184395414027634018431684384651580455985926238422770858225919969204604165687581319848903287058358451695760435390438636165690496272116429363234748041110369702896313982014819157244200986275105984470020706996990352320327230316532717189366363759982049691901371954206539667467509491009524495199008929062139402414325137561469545865990775474424685211247797471310581959865894870883231726464709781993153526885142621604489514901137259155595597058251177848441436947010417450591639731775560810834844802672284175213103276791216182145896053013756719821775112391557237100181669903869515615188771484823393269569869318642707237837794309077568192107914893259182954388345927845063256311402624444519708756403230705000913462653843940311104872173299404089744952754664767461003910904065461333148290967423895507825870525953183366084387436550534113627753575819207051859415364057128244363212189863368327359201173014993254751096411558708530675942651770443506873593262383207977339161208138645478199859777285325861189048250289527468549693330439505457607957994023735358052771223291627481054355088679265046468832980686335576830127317390073596990559483081466391882243773514688418968276628595346905936603538703433039180425294979790238672914185650586856974642331113189213916716638698786712314542770726589062825190507855726171022794631863939586372417008980316750231465912992650169128041695520089845202274130427932580112568456613640649006660814106776452779530246012897647175180102031242838822410319914249681581188350087412222757212193968409161630568079355013891564580457976386794969513760458115937356963349020492842371417162579587592136210539773753168220967574189067925517206424734954054691548697247253183192428086445718062542862216576340022853294324542338900882858948322699167949370116082887359388070719660220930826423415482405214240142178001269189759778382388462186449776950813548121111117138695630754362233563030715196462485518358394390400138357891806876034095995971404948478417838122413870572306148695073035426198107350939453660799821649090503594228925628608199860228778951824757596522021150048288254653235429211452692167090809790475553614844474680435571345699334132908112388590488063472392580573282846531640952472631582338945457815573858539021506137832021519084334445285150838828806479559200482181467635891259020825570891230990078858634893034296963991059396582733544788692873676795567458031056058744640088117688476883636748993146720305990389195965684785177205894084344801006526854003236939347207839595788401576034905337699505108730405313407352831011396732753596925784686675927749475446817227176221781330314585671899025377889976403571445179671849982257145972441444280213214882022013034822574704500594679290053828730144750243415590317649918469609269750213755947297829842192005976983080476771663986516939857043934903694200186171695828469586460934293150513535676542205103857169612879363334049076287284778100181835390372697599235972774686703376272285880814481604628530348230455691999184601874049987319948286261821253343928843579403904492017798407770860603644865883121517425230333698875441564635347241841461987899062943045164313091914813274871156542812352540595142051866536075600804835291427951062163066615566329666070324128147749954167294274925738076049992809603498856707846038534846390991050923225195570052882878630809321172335799415528417147889746600946903653324865164396531476310406201053095526978892324038055318537219428292192009112841481161889632096937384223318126526143699858722937368233105776685738733129694823061383423561552250416954037907238850700261466500153118786407610464151040770669751886381129983264605767960611049577957254492049892612122581693079436807368948003044656659184694541250090401288933511547140760209559109519910103146079864566688014938211220748851503105818853949027820715183298278479881105121476797942382671252371787534080807686364298137387011168180194946668210084732787157943048265997688390131589423012088582063817009549135725399248842538532222957498210973541825141576493000292949472599994210631262418401870338215123758397661842975596893478099067895707496376234651652255907067781423747384620259795754400139372149504076872123260152436352631693051882564139795966292893484471929037197203968186767569523739670633118990513160062772557647786118593246889071371157627514387914444481555721444055224695048685479776271390847659389173283244318520937444697920022741702510333587612446338236525897703541786439470050346297761392903108282199044942373031966089509893826818176282256003145181739031771254605876411369388073878963902968332540662138380350840466649593107595675318771349006162881506498569376863949373461313425656084659506358279421767285795526007172134696629954172656617170921753987684022975530492002658258048081122870802712951809235631266183484301524203909383921078353256628995286186960557986170481617745558839520367923483778410963549847880383616067648169598569037110079739585756751832653529299618054276717364308141263673525162576605594317014542545709938035009887052950658837616041212158062632277866018684797294144793133764887231214183307306123461055608129227063520040228646595960490370798783878716553630496128623260198111872763407723189310962158049174027807547020135926035328060484744918436610913251884605885868232083137317072631767238132247432634920492024618432765875523018681603746150933286340242181431584558376842010032857746402363462204770532757590861731311764658868406103730772397576298921862597355603846894107765807164696592264643143770976442635392734053968992388736581749511122030104120514586361494399537717109625588117894924514840332797431089391403529703084565019275481065912009025029489900202169041941193114216501307399178923906719437607226101529953609704936881416555275619628666651781040303382330939756945589524799184007790253605162688846603550944244430647251901450354589898076664316355045354042140804098623574735465022141627007303925134912843514905321728086565660136373457476793117490346745465272741007678948719723575897505975218879859362748800532501363628144437265410298383407402057926182554276350298757494075870755941786902705221190937787593739795880548498509862813574709898384318516381918223579803953758257756035189367157943737973538938389076760792484950904599681647103958877252705448392840828594903929990129791429738589588929185151046132287976196695709718574856701752808866306083993789061110071879450860298573166770641914120955913287933156224123654206032800863827246488319884885677054912992867307759640541695197169792272592426364888955102857031531395516492882134254267192549049608083418296702421554468246498948257933206217207417442014063572392478185092953392506664577902379433604511800771745685198324337603151608723465173757391504553636315390521425513570872400603278820177261125294787365541112380360666958248891123207279379918700508477674765271092994895456707230307888737083259148094500076331012304549838201934582806687380907005573423895591433186462677730277959478229260273012796762787438294382970823040668662494083835050615965104149749466419190361006292876402781159696662637079043211276260215554161665490924461355972990894338900464942567163647548001286707584123328427589131602418222046284981008766095439869964756223892185668328159543975662873725230966213714589717829346210794078720250886245401999319041757344588234966749207554476812464356370174954677197801916665366787225234183403717345468296018130986742349935425143905046239608551049391438837823421471768670723592130520680297312422243937922068504038474099732136081979634716427056015767428303668411128370270717134313026406415172474886111114868673623481149902064859591219489209987000594097876951745599278454679496843462233705891501090840194227098987554081182555606352492558958662267533898581561647589110258596431302965479488637226887326651665982859230656608440416387088175502668104670135037868939353269871688124023788103536626189913267057114567510278327701392319311086104786763800468625851716773998671314090891517368334245417294444333502431018289632345576889969201454940227399001002329168996766459419486635262532652233954274315667228275243527020921295833679621826959365508791354138910640581738850588133882712045228465301082695732126617209437653046333917217040165267963143779380036848353361114126089734672423452185145056994411998642038922803225070902460344495146436899933483375559068051075735750375018728384911917145554091376996852267378161621328419470416406362396847838233467669079523483613190773292480321646995714217446561000436754445445254717915282551315772442233758783923330013040781968495748383242985599941618910361720469436985904957126169930037039835153670498656137212904879376549443170723082171065417021688847950367447109976949168223718148344741740634323258542861473258144129381460503054401583112116866196315464399190128436052969937758431370440039882247540423668611645421753895808077919503505344773045340116265214226695646220138442307461835020222793146831463414799936544173773126232880307843170325021169075178127842473171042526293087771959319712399044581083644718954644215375968418168893429195686889469469700042293517127792053002300506022555215530091179558897091168090334932779649474315940620907675682388013463622305808028891441241704523951224979522495359247826073373425832765837203207893269169384375889378193033235324051450809846801372119001176119923269317306658768889734246813197356502558439090302465217650964864715250201664802108173551495103081902307355282501310086206404683691649541649079192396956285446918018159360165173236963536005792574728916148160691008459905528487211802189509488780982431685831504571520947382853272409054409254792348119059665550027757640332241814232357855817282796591746873229952150487671066442749172271265722889483352159041037832078109003226883776874566787538266924981394470257906567793938166802350231645844505667179303017514998670560998031300366884381291617686649906884688607301660930644584688692671762298448429190715895763900639140571020000110516034171894803666559945914826148834102194750645642868154190196941943287463183777140835122745805696187735523655155419028135713213865543382687482859534124746852442293459062989809451139768179708255929948709449451956406590699265378944278686231385326761640219496690365183537441131124494314482100695775329851776390901883988591258157406618365653632587711637711237735543197638452849433497780815207863219237018285907252822636244750625292338772957695375466422397485871696817313697515422595847704449389352892319342447152467360093786207546165150159635609093308995905047905070441461041673724694242189642994369771023291474270602631383681647064881861083365992234834120087940125099987983012264270406353135201453478216006960334884290264132541684135710616259219595557297285727723209909724902809814145352937798783829849262348384709369826065426137126199376691195171815393466841999863774715316822642170180649843280042584426332063925671835131963872765126884100771241004713427985323190987633848178786328284636873729400652657607594088339756861441180530883764516640652002115112597041176966404022302929012151579258516003775768459202368452312612225935085196690795519471653761190222994257247356210381279698048833238721569514622077063553951306594590733901097466459971385687538820548478330956381479086615211802603034627318153600280068878225857199595485517724146483095130084870251695190929272275130996164772446467292420286253517068249000374124731309938830075777436694201231769298450137011323987851191913092988401039120082070643529136977831864795873290829844836199229846281900311621893642930657156173582815908876251051558717377667933722889975833418190071450541074352440603872936365883271784488240214047739002936857967355265942950278427955555119605060386379525193402191946330309083995762853170589209516956672582221595837827980047294287155865138951553787208663787732795919893561687584929344872749484045095083982948518208190092203212314949971912251629638931296084875189175294630330284209175762606903811600492884011194816820963988612718267385801319897576282866672711391248357548082262538678936182622082555790273816935901206749418991522412322003561835965411088578085932812943596748364818379578630696287328780241926433963115674912636389259184126194456022520464003100745697468823495916890258703915938571994107334112967410059412170615471550142046730674321312991021527612754579982061887326593299674470916223870999883140943785617144474538520839627694565643039413264726118922036521246003993623830661916695699157790748038133478758492693627832508686831351915018709992615403588878005110710918500818623599417901730986501295921386374979145398483189336058233037376909812346080086015792552709842541619976912306747281615886551702483372350566599990197544599142979933721627992269949671070494378179194595515845373379612137736374742958297807608923452009479629938833865578227577359557414248975113162393327093421560952912480709733687186064133482410950122465134026414627465892404893746871394151034120393635896681361221939377040677815380082165772220702875671428853819564580833555802194439950572290887074453162445299602035634855479197733020514250975716600585335228848645053507180031609923252255599834726949431929960177236293786258098933807997418749176128037153429935124565976313779470583099848777233017561854374993297169591541062083572889361053002268047604809648681612455716713514785693286845063248877526157575199848534013030361275120441331722908973997152103521378218637860853658054757826755691342794173076047223962991885256376252592466381214256109429207335728405623605061772804605909484176159625659633666996096537689810889987093650842435964820031853369627392805732047716076313692265143865190403474996166468382800720342084629700687922768089591987142330805774470506988905134490787903107463240888849546587490034185773072629603440583351078372185964382607613360092315354285491682794961328176456505387668966391664214793168553401920902937927277858707070110106316570043300449174996676712284502928937905896741424597218526708805841841270298081621601987594058907261505882222574566966056080327446410013915012254673253641856246450732217346324302138440926188272868851392712847919757464534537356850747198726160723050528824896176326642842193392930074899081049114846406537047068616017339056870828649918976379453675787636080164764602242750582088879293308755373505548572571608058362910756791555145444044758368067945046709590135740850766723031911381892080310692521207638982173030049212761497032552860550354541226028512931876107777087367218652644413945134608672705653218793484424913436315617639197388085527794306667459117708623903185099874426361963504944762485666380756570803758302422273978116334473607551830383001012011010319179235392678864559811666622387862140323421237271837599566355578432374237725122339078933123530008143023996081150111557342720600279440376237750519700991227261856400367671498530505754811179321906810871764509194996745339948365241718121009879114130204068807177930175532566268870421487749520300667892334701494336291960027517605276315099295017873169903834399020586611572601133542487444744613107538122409935359626319092077196952486753600602860414360374118396874208069105427069164789929703520666077307016588676493684000715810907459190616551054202874380201222866842395224002243441370316986813449475387522302377387817319114534519260610130895031167399374213221191512208488710818256734842280382117920204008916903529036942949244717567656831285604861180491663921684187670318711165734221531545610677111831041908703343277048209371034359322432759928213418705326214014290134172078766971657598325077895042956055559936036458329387002517528519553445788631575517743778311169783387131003213721997771949992141416147261847758863366173695533154789138727966197224294784648358650264247527363378306085644142212194792792663004417720396650538839034614594023309039219088644406807952077139722750312663799637075924632925581581999160936827806039693239235709182067003505790785691148628611424138402131257757942757794696883507932125453003162395503852892206599943912140638650033796568174875839350246045036182222875004968239493439785473480210716514129851286617591308134558362366872530317366122681680669579980809498190268875192550359825144282658333290835880541077915783449086005654762925109114782452300310858099383507368560604951445172531294814686635346411953040933659778777201982671691445649415148781820462225139501039982729732355671771275674790174354553751730521463563802651883755686933145737734227158323345220546485096935517528974957615444872259581785266694411860840501601957925381863147239753093076084744729796236620892873920899232882007135211124939113830560948991160435859421419407029847177925898808437288473677866500321889140595288358485259151925867956277552840498464583597599969245684004475213383485981797098193159302866560038672585143143003895230460698659882120835000066848438388707802491856667674628733111159041760505293879115123926330981066424575904793970930086123440038998011936357237093235280535539106328349291809680086609798600101919031154654022848236427416950857966426685002808012032425341020058334652309716507878664940567615202034386490921928220801490783341483230784280687674892956987354759576351970126539505094086433926971169189182485345332419966985261571809266967230715370591659008907330798002854305976202954784356599517142112876407312244037861980797515386586207972327680456631207087774044255021949922696608449732205857175593203154811094274708966719504510794610173474232964151687529993472312314064385786787079982379416448568682736438456190245397404457773016561881337434008670771058337047964273427691985197416534764012592636841471028080067912414179596125329890251360810515526030624378558130295710934891549558175402085159391965425868228755519181715304955228361485979449948283754196266688331814962772915484423068173616765444761596847604016983295653681826062372008164232303191567400062420131321384578432717919888212755990453412026924598678317537723272417500262796165693813397793792854791213040669413926104693657464236667830841555529186189419989797461902395660820842011396124732133774951159572843384158946471837972224305181987919034007487622655283591994184992779212943161928817244726880737018420693955499922857267697196206859599868598516105259530894848489452532098715078501905902567086531222468895712204143083850791319353010918543235850262922793391420830316533836083978136034964927581395509330155121463165676562646813262230122207214227287317746950574660046569859484318241876838021932885973392266975405740826118650066204598078547181642224686409439219116428356081502922822725844636984531229501483066680261814018567963702462263630278877967649476852169822051342344457620511614434937782916960828524114718429838919680544220341629978063829777274716119318204334162076117433098435356305060794281649790288665432362443306278903257267777513979593375829012589533211385054244773272309827306881632248928807146504226431680040649302123208343458665770137656773714678171754675526075751165789772430225351028379913978676435719129736777476131381977472780364842783175082469498812678912223502954911211898319012168409727573320495502912850367584728640106021967160101512507959000294558325721834717639697329325834496517856834221497913516899300110914112145194386088973762467874852246395924846226209556045928932039257274819541747099177281308984137946290316874410171250260326645546918037633811254585432429926098790623919966926900157927159155061931027872431523284539988761254077760848350777282737367113087858306468945564166267029358902532261284047505487033984183516188667297285672623487892446448307478650665284295717310611134915201237970197542077343505288015266956421098375499520256329762203630414451540496387798414442130554713651709316440116932420095730443736770834831460020178629976777349143385964086734104831642795857865884271088475424195554654141623181726500798783324621781202326848918402408275194496037915398475077792643405374747954590737900790793840798393518859523670394270243238386002523137378143945909963308977947412951134768863709350894240462245937786410128612053392461201630935074403786648841528254847858817056538829114998114366640725987053197567012970424952412384849191764576221592972247979854734074534123805614474271666649920156155049988551261732055730970281515796437124052331088199760093010034618599073487680263253004796026561134229395515047854064856723057902462977783627402842381423053737893596690792525208123287483841786692939595620127191938521722757728216209443223254832569555945002908219727298889596000198258953862639476246253736769700931673513696916503504462545551410910692180424716576548597861962936342681983039477037919439092968051593005655292560365559874832768462564909079298118627111889924697949559209155762368750459043266458964533119783498508628187337365482197248507288245552779246493542903574304324572334800319063685826044489980184775190233361767855499720291723388912801120763259279445455947399445660115082248249037900688702955165865456762096144394931678119418285312375421950703824278519778878694188280384220184055524704131845357042035120406502195703882542179177861830483891325185413729599347974065977666124014472501877589393262946575022550685484634207442121532836061829755809012053886270808974846275952798079107283744953592796951687563418022672885477738199523576569919569030319152885700251426592314960143854979534430988904730356424395104781174458586186059462557811397099618369648942885049423305358573524456028371711826009464172897922592009299731869334563472331962567695118214075091693437994070223454633494736763174645082716124649252745370655677005867138412194418559554538904843366749222736335127451659654430662307031611160017530390849646297144656391516504949990924571951265419355345147907847409637343544692832418313487762082068233345163858984433614740911481035705454643411653988994583766834250680086770338202827342520990295728944517638049749822045883158154424838700249037582122020028305650032232299919804930006432133821489968814630509192913986622907200434532180249573236741653716508705291262055275975109809454147918832203759146578223449309810266054360958007082578537946635107305819783355662632719663702712920474526220628962917856343194292663042736207576822350892658707824320917406959870935160900131434926737378420296529292143965050562213333230314949301190570288667925742293179385977021623697142483960227205149917377756594169127857491343985826765213256846568053100066430889173944925902734537843970154578182552282553184565350111556045098285856834234148794891795101190933350467834908696488353324893490839378981984023412634266434419075826348157646111100002744614196593031899039360984504069712043575041031284384796620878485177359269226434858387182847470034426010811996748189670200657819341280751804440989271516434510053864109615053851921602229646063521656250016696757219800588040979375992206398127785374329787053990789797217576548590872174430144269857830549134589165251007150725429052248353427963677208044077779684532691446034472398630816099881603168501537113443038208013685076989797861857611353466852589919055742416598972502443949907690933082418319186630177116323706891912213933260599540625110572110679409836615653626195945613758785062180535949231039233290771660311161266964630574184938531800382304605093842813718573220212395856088038131325815041097366076764650353230457063531887012973159377104003835504143490160313056394400624347105642447553123767590446380349923632212043619103372573037566217317415918624935224624941141566320994446376732463213882726481213938785831960333956768866818933870618363301157677344276404936005342589804137658730316281560503746237235358321894490866750729124281489648896355585181400660928182153926321121104036275035946295305430055751521067685804649502314487119916706803932426327974498708413958823399992554240932966826569379017913248832312639031119354934459345310754212600673538805235987746245450601993159003054995386480362191859135885227189022598565151232971043881800298850021916880232937805756739253599606422015854004098727196508186956738267116849001438401337763431007400922653652800835713443721484294761697238309046463594200717599637278543643478497950916450441118050772920487651948239826580892520656696576370097697370120426822083652476078115554253311791783445110055118507037547352911961810323734474497911278212303020535458879410975532521290661533317872512738838814201169503129328551223873899899231284083506719967697464078101061222164155082288783546355704724475193241325198489193828032343593958277403866998912795080972655511345392890372558036163887073000071742235343257466215977367065059120362364289994937203348481470861274697686972654052117468341264170744248410046800780154677460937793834764933793002050549678459799115872966148945534881216297953247716776095895275322127098011506439104794714911417510004331350856250869820154454764565313814705455850412026260477717148148155647154870017773344221737815537955378741686361716821554609088240170532411272058333287903924829288100575851375774857421651432516726884166353499978990723140273199562540616419510816205635129753637352522498760670378453662075795753074063821398485831803422758176689813327685492520421975376234150415485311268167475902346826326233050554705491261279709529405229379614364435179255381208223476190275569647356236556322643816649445316719820331413734769569529229083403318992710138527582419675575748938882997325184955022537058880397615814352971389941514746231742535498828538717509019588284378084049507718377679254598360172786639048033879249423550663294336483082158475203400053496900985820038311655627647805073370663148979370939522635507846667824765602363951000479365388309681423008399477156639079078657035876843808320607283118441647259888778844188297003180554739465391383873736229095091406338032496045005815840959993918358134309950623967396763774747063273425646365956801224190656243679730955978446126432663430442116286313273405494388969031263776549470237801445068007857302427581905543711594952075795145461030549555095484771644927675062377623577310606191063238373318358532996093315594902457370186813947610598263587648099022670186575566134489648002183631369904515708031045446370676006877467382060693959881407648786255219907234438018104877775612328608450159585423624637049590966850484675888243546597712945155773114083302583304544590913667487088593886814453755213095280562447120451048345269818402426308246712883252801786129381938381610636290492343229038633222147643568643196597093898102858171168492612743594641139273976440220351292088910859401898265866236881751721924158241411846061707820905320186331668163208387786827246179283309993032343894354677152603959491117514427954310524943631433343288419561901628568040930222522911115122318330797473222166894011308891299843007452599105016241925619551140382546215538141631534486757374739135303756708716525915992950843188041182615031303663140196046099055888074026433284796491104141051410373953376227410563307267856787385111781038021511484298863885226640729117406493438743955809232613207098878990935546045339360944538366960359388301937664150001300643993017719239452349243249826052121238320593062802815987842456526660477742021873688593300506707671680464877224075777368877042396202527313621518485990293171965639097405727718804068611569020317636041544844547432920654566256882673961750304123454957397021369328682000626207247093573748441540785228496183511439888984638824776472806684878791890708795509638266655838499876357993066790004684783069895620145015327922861154158319787315143965732479643134174298054842381258098115565741212330725165004002001843588861889843911734370924835706387670719273659425501015640280829476498579490654255055669652530330549692422849712200795400046803835264954450499875374321813499852754453114658330670587724546561480200453238338185390034369210495081659241662566190046462050693485329894160033813505674938793980137506125135519473659718421092324455449759557826156754667616593960961323142916237206264349358059318054635820765878194352241266892199503478810937348163048043100177668645864714431188865900518180633082701161010381493244026139688061821637392521250134285067048716808772779185416621204589022048256012402775920927285319963153379724896406204731931010455073847849143517814632717687788160437722549958639149052939469984987154852620677780956932966159643860827021094519494908542321781277693997527117656768847808452159810519071408639305854818564584776870847525491983382800814945607348367642697327661331104354844941067583287481835818023084346647079804896509443197417268850665391041486824131374150983206389824772064280036469277904201598327278699619761309633501858354061675666430474319988618873687272336977635630976855191153088207089205627643685710921600194514640166807950992057110070724374696110871373201305753076774363443453579517651807503989997673719700254712795578450854948998453205060071825312717052443936038813676528208254293160377468320185820959273505738870781191116861474672819252742685948890082918826139270803292411820710034840503297204399460283541810082892462591944527913326945509759423874556232393272482514176828103622886974158306900127590237159852369711241640764756581319076613093597114164650425047451954109484870255797001408373668621412770321278046511467779969356208662854159226037930092670996961527509515243183901919607698118971905543529932613497554609802164698822615793387779958334142249271879365672740913802626644319235747092111208422243882314218194703994462188179215640293337220432906922988284665828668993801307781843325456989747218771314686677394872379684298586487310375541578363882302591964343389510908638723981460332956205545592395440526222833721570798184050875630422671648732204312961115721178085210485931765984180543949527451719970038693714982670504438749117979673799946127379387909744856261807662330848321694730243410207097091316382685245343405782744120894253627693420712824815908262723507874702444689023368694353773043243123791081266787079769617954947278689149232364769912925540334433593291244345160986294716841669027896841202375236864387678081542021099002046692327782562239991727600664043676495506097014542497319701016394022059191319653406456497282115220557561953508065605910949601510609679409229809225307433833746730428741724421233796804509529446421247470680600231083492591237089961809174560724467765843589554330078040681598407661506899425782156337121780771619959592055390474819608722265535514014791827806683060758966662364767340654475202366190422061401156717664186521021801018116945828653670688872799148673008464348818464372530000928770146135687441993818952719505799098669583647442483277427988943430645716764015282915468425768058209989902642565742108543502695864312708487600465975284709171867613133608886146651698448954153166077817976409569838566208181043380898519831315691393452066687841436271593409044422847199497009114380120607893911694699591978744897464746765833654260931630550057388944818249749596954952864292000535607676680708722822756467668663671879761602587095827978028709216785691754410693200485403845830808914517850838897285945662819377028998998005702950082273080643134670867617818107610543561548231223283334434484379916449125369034237222138595211521080960362395995102145335037940111042662241870855486989826990100116229165636724766033000272339859790684973139020455120641344100722533505435142423578045352286126665976086946392142739048363446347457296966200263791853767355785576177737747951353255980152002135286509229635533869439084812883361830262621565858806294300066001800319255535500069598613387783645571358167297538698360590845195864434802535500104811192152701298382317414884295071303172661058564043422778874896765654096603259102237154015446987714198332302488871466683523986847349681814726359731096273696944546885576791979016662754874430154001108150075759359583879501395017490696718827548944627131963136883698649905366278591692503432027413488659177339970616324319870269572920139515593833079092504191719915555910375741593360127699098757659651126923355594758596149489682128503795599281253099243455732219025048921468364945763010785738048175942230397503735639918070547407589006990471847461394239563415023597708269561208839853336584008974978723791195187294728316847367049694951713378955819284042747643848227369882437465992567523352837819750786656529733189260039994979289116189079488843441532038362794269651263425342719071783283564595687582373362696482130491681577080438699078911298390474940368076520748809625525922469869777487127036700113754541543601353023837877121994676465390895877281930306494252697023587372549767610771478229576340645486733684656661802025741660449010023851158384511077380849019648948291857893850376001157721800246058046579926172191884727674712722580912448436415127709072375419262964089783329379732703777480954054316394937060812801454765937707928123143996601554060250550868654571843096009316428117213405957873305930187558142185880996565823071118195812869072556516295385986410001571310028256437753277296870391640618968910755547518293283468702365430347063002196033300593570523295453015010763841588773061108510147672181771522856223931240078084432567644280208145937897658803135764573591553757867134010729304348298440834448280879876034846511645875283263848712738094464960844804368338098074214366066819489381487408456055654578254729131274911413124174891801415674238420112010067253479302847987034590688774255790930479780918474014749880741152785194469140143635256677156193313929094745846118495194451178235578406867656337971043302175330042523258832839573654339008795254102913272342975912575119199267421277675045440098262085899019634646083579873611991065453664546596948888299227883082397569154478651160897573880323488298807597972972026975597352664688562758226234677121228430910503561466389331644441846675107947547386483418142704372391362013437188753952943886399254395764638618509678932292183463036715548186144410855927950466555858537042036113011696686544888133279594596346670081292256136492441120754747401991218734144361299306192669823993626667717310746847162671571539234876731118579311576394172035828870202478199141030013564077137280136202556988602343321249372324436848872247096376054070099962004613317357514250333183156306124964226570112246719374288412726767642805931306458884066114275063160491133623548465020243721897163685029427097360217316500485633546056303732065152882238955370597991764856116858393958599738353116608411959221870049884444616979849969197474454202567951562299796134892031067372630979371161196035179127558350481465652184190224611862793713581282583311561187980054577594790103223774149337140012404770814275021103730808067167223904449868743501119962196546489219021095624227898296891913127720722901850708631500555370231328750158118625444303583810085338623276298712408098353349554350170385301289467245415667196177900529925829617998282788043216238664994464614756549678546235310092645936770745015821085562127385652289523949028726064507612987921292826532656684166025055480408806835011023211795915460446379646720128820623201215667053277724808361626310943368598012014590731978665477981615300077412365316370321438278550742978420755435422908171453510958718793810388442453542744985413889321583213116619158990078800528290817867206219613805893501371094504754758272089251206676247098490006065567148585570218026770283620759207944940394876467243911326166168169133043478888548262037227104378306255588036457817488397851984674517412159995229079468128019225130577814360084135752072511689381404674463207419377490558390266676697977592833777021894667341992610922659729807887824698953526896020813605203818225247059404381551588601431873187222935699243010580005239298187008037232110308323351514690100941892746105754261856373148049392381600694758345135764048545332144470202918726302532356847822441665682393777056277506958498299502074430592812448249935030096642377742058534925784274270765512904112712573670549980511969748806059919013556515182434618689388636523554713309950132508089360433788225099863067440739080686513062756874673068163229398955182470420197048582562981903194018818797893143740163012465169977527670594933284207003153236891782138587572280899162242945561838058400571017933040335639528850329724978025448990102393649221084239275291320065921060604760227824200351286718879971528661473529605236725872336925652965013172706348654781019609055138526728382563346880831890887603386212740999218767743969286530179501382972874958787963352055057058875017297959575047520709900802702132950852190393730597766560689677278666761806050659226125280144248830042798936281864117342855119610939370218964130576680060980097546516383544554691664612810493773965870012784920560259122921084833859607147780319858220376774458375380789250150235495501921314336468207052004395185519071724192046831210384086960265791398825339542298475967949917504863309626796821249906298426858055865665595638017751416064009909008779852869606007426791598557879423799802367011225462977021020475679726882672349178800210524934626095278130345889021111629548075216308776969501979206352097436595718487080999752574031365303089890402229675567162536550720433816100426240175241896376241337871346671920684278283499745844544277918110269206083346421872847722588692421760139516732604208172357575773964027409248054777771431062027199113873101001989365404634579008706260751327659181044555663694527586487174943647539309787667068996929282465668647960273545468765147461072567903963550523507884813664631659932661547645998146450055241628631857098206836998965869427050625484470510954600536683941504503942650630284890798164053586445475722154895086839787687203765386768155240439953385664861912825662770832423468097502475160257904176981586483608579400408767027075868951595710573133946658906918969351144370505715278968757963086012714228825702965910179957213198324315610117083113642468947691240715595575353762044503776986896678373184955783737752895525775717285346098448429632707743666757811423222688774243403432133824524843738741288599884947743869504575395691682694686178319245176754910964856299833299860354738526130998215516661215237884455542487406683574097503561427293930884226783341374151849829863704698788997476852979578762472849474446807371820454741886450488232285296406930059361424571071849452606694030627093630438995024604516168951856969901425129468826143755005811995480945507431864143597509912882587929330279704024514524086314009834253714412575573564344948305021761795020623146099388253746491544146851014557571396290765195696143283534007277686640931900961617103041203958468759146640148244554659576256788055441415399931225751083740296075424138589366174165019597978380297256860855389156494189725464800339195980300893835826950982275051813330224046808594658550995103244866461048725391052355854164958146369599581656708548716828960939073793851165754001061601156238940359182805760334416280728012591712966723901921798965490243845364650807027812041360598588008563988552541554541865984966636975682489817517883853408661912509222403090055185382866519771309702946861171759033165268904566372966933507631130389164335765471341410381906255422187110632181379720577357326283956400861331101924941220170454314676098097532180241267622088382377910990666379521638465275612695074016892406260326668056117333262637403930691579866467775717200324082136876183242044393585448377819026814605047529247108179546325301777275296078160413763157490292398876521130932344333335692580092614305306958492403103576277489681352814339987231875679989071644132013052362317171473695511202010469970133559726661971536383581205778672786244066631131277162071163665089695581304479850609493666462963622283391351658721396242091433010303935078876343958965057881165658036425099026561385223031849639915314933979535812831657370477794222204746360479204436928059297329423908589239894052068566893170967293430383814935014997099360913013549634720830915170278225884542013133559421359085965051808836409140262329037219649711325482690508459178781108200370629201261949997620500850813031925095542587768108513208678490603590479745942466275823368103292556538912553894660049241665719255114051051556427462095544043312021332193423179730748445236768804883435419702326456182088578696581672284312380793431329773159809845002710046030029058825093787822528299348663644726377632260668138942299399443428275465586043226920835716796632583193398158544029272061423957850817346970099691991713026008024189886843987611910895240176120022646139876032362381291484370055573371591578130325234425044890567568327660505055528708862316410864703121379144588892921928985491591827858426105885719783161450268088170629963806278788539366669464814847434932698053448474964494321094441705147933300083032516706617093937555379573122841246554523060730507850203010591145480627859609963936664177406749033966361756932931109358183834472029999121179087475702120364840897610355683170218105598135005869919776594615835643511619090057503938968800109315722159424340913695832094487977612803179021859088100353148748071431068932915477945945238643420006058456787090363074468791647357692637047545459902294029058816994045144852282179985475246244896021301359822107281814817939329676108736240981558150020454451377422189095153571542324834348890969405631934920388980893307533871169411990654819654629633472568707408920258911925138210210964123570435523901955507046987084611112315235643168613671704392937276033111182363947867956151936844711331585395991818220151216161815488961189774633439478896316589732471092093748776845692673725014636814785003291547150684800118480429651671197518428777623591780919749456004443610473217457677699252556646424579588255679488261835439582005863552799236131116530506105009606650470845273748532309634433399475674162313806283432029012235998975169447408981384956076593909678738292607077038107270166631863103616727133821682193905148667465825013394189556501858379379730995182809905112947959681169438361933552595713358059520576579263269598332070621447090022209778197776195752978789013916313142334826348644955506368130138825695136377034001323796433958833115396422271581955811353134440288766525088412086460825772783617452938366379461893682995312824153810004906656478515561991677535022408420669893195868162691980396996253347734728971855289550976964160530910233535067175905580496051626819227126318691313238329276992547478749004397392722193237947066049557948553984506810798074967837859826760387104164546161905938711862677057967287393489471648807539919115322930430933174819153732132317953962668373496842354263442635440607918546036530079435664260585971838235705930624580506081729799066791486877730169326217798679837617333317492329523673340343256722014701693280266875985992703230319676558174258518959405970878622262555887952680219879812236017934749927143196841515054193207675040533634967730312343865438348362054447637523555809112829011418207409447805233246004857564745295267368072437317266217011074367253984076206808456982763360240375444423687396443032418299082942559334875159001398159905151498819596263267426065937966415447412915768573109715856709364794776051710983229062885398274851206474194330313575591955922701466156567594103360218703130261719278286672155704177952751988394536281223009230298972426593135479436765907509690930907216230309763197285966117917725510688672064339127292388488644725420527856409343693669487879112214443549379779691070681596036468322755126638057238881840062354559239168863705335934530028364958723095950960212701629657978626483525332003983949860071612903740570009777447169896604507712984049091411362609898227774674139212699722577197343765968502406498524417012729988856140536966632454497029106070897719444674895870038263023177901081156882222965095284498752704142996365726469772135656941258773337220223041670400427636849043906805049338531124596431360285178280168969349291996382443912205027977858861747831644923642131901029303995084717220602718524070647005275262087805305363803454758078835770942232397927360225556132260180464409135958625317635117026299231657995134601295836154793238429288612052502690562859024747417454830689795312360073207710846837238455712843738381772828433706045683887984703853887966150374253330172306674965543880024439019273454410421719251855288025573123329096501593695689193840771545823665524101613933729688081493637447048354899269409795974030484420169291855494395190546615160784300482253875620362444663496387392860747451790654373270278395038176813288500161908370548324064817665261225868285808584612969122295479979331069036169196178634107094926736170975444417168673580719823519188233276611190124694642146573617465179536940754998881263002638827471641776481155198922578285940333085879175736150047758428356556865578816498409545781388586224715890471063246726335109743551147360026016097517828614613875445693699198308919755440375299203035532182469936222695575533668699201077791952859677562765802522021801303962253145458148372662014109654741361194849451085763205804477448394709573979774321073266925215052087788023577415049732018589483483255353158755499709218711412100108301171303574666741533219598435647158340934768797115185491621722595008429263531279134730702914137637101808700731154231132864705197792646731438459872253664056436887311725814990309076678309583315194212445293009847599230445175464495482242591095921918898231238475768059627608765555577830464733401079976682087949225135956209704191416481276064212823625184831602363653046065286357963715763584167273768491931292594344689852064535240373411495200619203633562910044766834744044091854770608899693668176064247298960425746090598541008973468369800967421799067059840125930489954000509400737083056188702000461194704319493902336669686443759287038717341206173708819965319939027292194074213293853519341336679010680619251803875252561753225819727718608130122600461350413821405091245598200003144339288854319732300718385438521851910639140448974898570617527030854730960462499332221994535991405914083343550825732861197619550597400186503683807117056745557041680505812079111041100162765021625302431538509583107768659637237626679535521293788966648178120263790837513554615632798661389170585082829865386449091105496912543809849140741472558466709310642653939076133002170756808971093087515083983027123224133957256847698013972552693677976372040505553268110823089005235262486599115780621054193379309624915734556141103213513715597905032906841423400486861316615232861149713212364398818533836402524814366937803114856949807755269147245351423421037824026037160977797626855563037119576923280050647381564093449422719037767635649283903656565250659750853691355438223839957015292791132291429443018209273954171564362949197042389297370247569154585430300852111040451307310691656490112426031090525911430952744545942880916214897563894139486880732097939446485937827207221693997820311669510185383726809795805675613533742401049623148956514526453711057896738273544536878323660924339380357270933469678290989829606144719133560270808137343081892315466919097511173409856867997892548724168428804346154394209310149933186980661927538449650502638135965329735891052466448115500642009345757473067657343442403173145252883411273733069697429900877755013934159166553844080063332132195228709643005763442593225390299066933548113767778524553513200843393231291719549498946975490898967208123441162764892735118293192438244650023620022395038577698990995032844385210815476681628379018465946362626190927699332213919934476976234849816629090710676700577440296505269609665598772422517515808677662064226543686012419465922055800628046883402518407985723777840215033037742713184415609633666179244424692513722867254323805650932478351763063217634272541474181437651293211003570389682670240039483299542345567186487391352120810264684163203408462687807686966607033130216140086948655416709553639605932366496505664162658419543122157562493218914981125832921392088232682148591957527862615576817406556622752255100115435984994930954142462037058358265005849464338246565910539326609408543403388657942198024119746238862441261283908209427144463533104320829479699891187127559285515719443909949513804855882550354555071580118095030950823495409067550716234181019466577313267135732283648108924644825381257044553914473023231646502798226763889031642138817695485129613704933912686642776268870435527808100256868633190506990360495520198795665686689135459708549732143667962363811350306932718394115224229528030140571087895415398015182767361185548547280377198822611618240127590270329046544995315275286585097090482635049911840560866009114527279239915230170610720370297694312604500518844033981502303792604597479248232561083243823985208862152240377374566949605792601958093806313530041559754740311030954106552223205666157048248161878686667422293825272399766339599683903227802522511861288836145776190426035936381398084429646051963171708266685579850585102844718946153578217096823839206020739751797696588890113478575627165531599961892325901131115206756295505107332727298485059699118868521721435643066204932831206270908040423552384977844700507631947308064990122360608226923446230997764290961649714907776005245289044166130618668471871997049355577345285928247098546262226674797333617964346624067176466224688773768304088016723028005453166555639980108648956698726717232379790654210381922915677182743292467267769816556086313575966201325772335511463258450985046898782350325239895470321669230747619661699662896606989680369714629675123116264230274400410214484792385650894800095225502958885473096738636552921003698041739028910336308057078816693601377008160461152030107015372121033501225480392693954157208447251207374705440700241458238019399169689894474490096823495996128576579730664624877722695053869949806025355255614826723786187021431381610108431738564970355601874064065978808543727381743852706894571310324801507630143188661510736664659811131564185289407705084186236435314356873258845428859370087461407758567417874689340544563309168729551572936988785609402131408987916955630747357098751005888593069728965603357013402130856806199631329008859693070324920659055456105237422559354469509665769665577040511584479948396104980736003499233154463620255556640323498518924443767328485085029872464784672791501630617772245092578213955530090436681798823716546161593075775791990337266426013122345766159202992892869398826095695772610841945206838856255452622976644978419119811224769793259873600078709947916795281881794982277959260762578122321313109914593331589610837930285900082771512460567847270813542496533530623440408852770398205375192624273027628064305972907501006603898194143554693357592746535783305804364476442488759619062397666104491187607504171794759739405628376526187550922822611980956947192366515142950706907306835309070439796660450468340650436767625165716099846459012947985109874367853629469252951002437715594666432562609883400701539116658873594824634664415522888148630595029879906223439166618286007866090647739783843921732719367790283745134091836429395474754529255886729418634360483966338115002583479909607390618657253478580819286985901007368307705825046291177075719990174938220393932559479570467930408519686292610589979632795896143965318721230217454791145745915214619894059671436075986763686742155684811983291565387409416102993943000665376866457742021339544752694698687074903610688881218359966911826655762153182746576004277830862808736177088956661112701641951491109303590497983429585006912984292999757057097529163026790615935212447791723609509821319492952544064763769039166817217394686021648249350836015642360385927938329408916590045423562773433736059880932745721457975430848182899383626560440932609020336212983838919945207705637750635587381931500882365811308724872752651437325314580018078072865139483570433824552784978700148840697053095009333573856887373968220795097850426575067911592913560310160383582554668620071119968703881610654300290246164017956963620921372740566895320862540005412812399131114492043981229637612533851892145000969672007898261291761626820868199102224945652521841553944808988887317255672501057834562335262922269598060212361046916081900437261864515274920624739167286293975090381378400315164411959107392916149527329314835996336436227203999394509440475465240079200277502736213367940398660274586314641485546256297518870198029690605827952431128555053566287204762667260859533608828038635209763688963244259374240736257188680950353136829965765297034735577510386310175050824695695679882562227566622922725758254343132448634660374071582265255486713424594202987788396720774545285552171484124604419186923642529882740322064042877377346012716254533731336790668220176566545439296007148108427382834329221940553817069004260524959308466399163405133041305378335750710004000680992262594884557378832134078757426797296913190398453774803422314185022490423775737386046280555962704499430331328588154748361748886091989371167099292826300241575037955154078105076927693322675322003179475764210781679335673101692903670150402430288174015877458153500455051338402391739197104104761715031934712579598073317888387672686907433489886177556760642239383578794158060956249543397685639249348087376517030125875871632030926611136086445839218640256220374595612462833218890509818998866158224115160329858375166129225317064638794997112890644501236122814967631161147367955962056859151778589808134475606173326707807156682879782879027301557662578950421187815439145117677709200378922542655122604495364552267911982429404613497181982028143300871892147571938494348541723521088418188464045361857325117386459110440684929246243532172545313163117788850410218108394612266272225965533538074494472800868054665184001351332505849988345198596695385283088553173985061002502178284955122264284651545460779180434600556763860666151454472230567479658469546309171620312044994535325207180979383423284160207940492470027050936118752041115115483589703656975499200771342002528144169448808772446196989663290828484264474052890862429901337359669539234649882262200588072783339659323967287444298844512080088112085873966260052262532660207119677253260814826765367905017240026675937535584219896504806199971469113726814343253617053701791754468031128888282984902965667263482466686345967408655181699426358897909513544640965730827645986855036396035352938393335398648212593671444999543902851511706495517452948167558710264443814388703494705054213656443581144337896002536312068606138980224510206084681578818571900337730334453207430304674375405579355044040499034161044794039576650744832525650007645205989671071412716823600816847895133696576585473174760948319400189972933225437552094288946966565168699192416943822739889988908858996514613542981473831181681986979280569407926953999113657368497884836507020267722354781037897749905916532626755720281868853453248596514166440105090893572612388630018493484077921690856137242736584089799571718268646762406619042654916974133742822218977287631537763133664396200141840975474950831055534216551679927376572104974973148394980301914747396243866667282089234591508777559335690675896997483057327445355178093390280873408310689994641131456990497752791249476618350065536279789732566842560569712922589128709756401010465256424226329166522124059703995439460350826797845498733210829390108307189256046478982165850356920919438035573920889386689275190943467903950794817737766351476888161334481154429290477359885949586878431136188943411498453704012229786800473447286236096983732847145297141413194684938867959786190912961781132818173103082952223732654346325961457358979281927009436481475606539152330008228158341958293181661211443364650216385081933610180735682450748702053609681372315501785376769510944029432668291148618154625819137891059402229690141159190443980136937365851268354043538340937910802339099947607281322188879589990323951588143014856129571693910118458720855966171379317444076630555870008172529211355571338141136006634344925972214801638034407887785078016718548044437833982109874281088388540535362109467108309759872384839086827177229204642663187003010386420394308709836833712824843628919618289858811553136965272457874213847287752607388754003079807693982367797476323937881856771676417044981442704017728565454891259357631063782635252355649436489512980887918187282917976383883621180822257546969383544270395789796304692578130180101015128473765660975472025759674947379201381879348528452368285515607204118083430541136705675273588812369688892318623537964920231804353654260139416490423076997527964288787636455019216124946782837900507097985589889672538403104722867626672178386215584027521450857596957034702212574743782147091335832802518872558710211442798593540625009461002413009310804791023327299765602509713957230535088201720576219880050899345450402646740531630235810009658147115459653712928852902698974687848900817806363585469679343914958699611044746208788776362036187453380721674924237909754121499969739616473183037923411361580626812444675340045217449396538078972042504697656290670781748397442681546543197659798173772914348331874557462339884403313673993753408293593976388285533120326361498780018499707213537398394378353063022704115591249142458829239336021248395913887135629054618492166461575113555463440161628186668180626889072671038582291526586975301220602948624468996949832412999762197718520099087905339734778917585471621043485475493572828977219513154910452842184763525522136909974657015284596730398041463273568364025975349134419326291193988942157205220809215068792500153430184721652341235239571472766874838067102546495769430188515912760387223734906223998392484536875671964127033361922161327186052895017797858169823787520461522453463239488203048549570473277653487825851605947709218204404744856429332741285938947586799363800963704932825139431630969780081715956193596145729364799830319965874963907640204477601710330883829754821615371603922617738236140845814563170306766133305176425362354264698750281306225304452417937205100318367761115669273502513995999984659831014377763580464875268725655567719522906382132025835878692433452286950890627201322013105307048084508176829981549649637809815883523944041051131115145988544954118315618965306886226753500592423712320691844535167577914201235224281526020814605111083523987900554374569586343576083126886654266736442160384383669344945364472632769278892999317145579284142284393418528990572736485422563257260649156644876082632737835936646505783873402812692134641423348339951389432513548821423901885531086655043600243103112956786439593379784760538810504242194166943468265713811076028704282867949713729482349767241038771387264090499113712940395810877101410952259633020766313286721348521231733497592157737925065727627708191913898311175226453392592955155936169561771515361043961316026710020870336760384584727719565631304643252625351131690992703693927438671158727612216965705085676100184965609140346745109043004039681044391651656360540544989941037086045582710933071712781352295912916893046050101196140290087999121258844181036855875286307190295438468669877963407593554000817868520260882378063754088435193002845240704238580639596178978367554362191851442553827991211721529445141982215795707463924350369016112333715220063469931419328795936513869784930668454937243302793666085617675514717980285622027790192897823437465714356693532028264656085928144897895552228348073959799261470168617943088317374819012335071270077369667900423546432375219029891560147696805479324741323262279878754516717917773219983210728949881984042384257904496046073516503439509089214022302972337702168022349611442289435233324818113421909576431051590820406043923005376829388388309312588164957377469258814767808226902381818201339702913888990410982342288515888438894916737938982734751065297638103068531109479754164984637557149206363193002837560219025017145416357894977770135152520339529628800356281335774630869965883328794662081290727288940007421021992344294729221673903283160545483169187274374964968558081642474779218129780684573801166202942508577588745030305935039806760732532791860263748750671354554720415356365900258683570444177346977005316334955862823826875712463897477582214116318219558257472487071262204171098995804808208958889148082008193892742519708966383803043970465118301873861618517468925282775437913454277289690198969345672396115312765674779667512493777521904609421268428162103550532005740461472993101225301380491022666297973751942075371853669156453808110752320911892059646120859667996527522903078310440690112796262832668589744623081479204316182426782901599568065175072842284546061123170136133896956780068580022469031091037961968088026969409326875806139504427222638510145734930905705382415164929537426483749406316706182749752776343683433668215014425859019120800051993256547966513290428493807938834469027589913666458678368122238386536259222750730619664716010933986636610569235464567376886983356518172045591890835854567251039886717085576050894964433816995980625551143769014914026799382192919565972658263582431931662116788772938903985584849884060082682939860800831711833591269499846184238183987642593932581977407616820888845528460008599751346887448616484194009002997589972624820976918724881712798292522291746085982071104990775175130937508709933649851452596414543045387213893006980672190577602407076572712681545518891634100752598424866221891749852008432692263510107744276423736769781202434479377521516638056394387267635295165332336746984272400451611641954933264918956501746070397086430522437061985076071660156027770871151551741229313799516002918096629396096781280267798436000892572522495408642700407371252922535332504655725381755348560705606201703261022071724081159647632171874737969031614063719839505845367733456602727132004380199251057948102884405922172293525328817472256662678013376406471644538625321944226001296982098704572237458549622845185405617570195283692859162255879342939387357969189879549927329782182967829819151055538621558164807205816856931099146684267900461575404620570782801470385086977559370883155659339275451389055514410360595638135814048280951824818293542789925759737859516842359216385006615006943698203334281134563856283271690951040089287258517029893428380705264625701028230648950481042593480296607945828971810446046173670192553913007766467594541886166824064193225762006854151812132335775432192383064555902524374431598629164180622293762484767127802551535793059835458556349692685800469943155786951700221945238151674482700439839408325096451214383881845404932856205853830923470622946047935609778490446168121255145714922819428756529026474510268342673991438204184948741369262449346684488527843380002221961703724188523640478885264123013429236263084455410701851543358418552609265114064271779759376191729332503212467600995222637756068403007288230826917100452077244858857471815460315124628412417972278459805227317230369281949038993008930902259578694497863877999081056578381474011656237832636105413235462657443768710020299642374599151554114533567029303978200964799296695207480569848387539318710517261729611341120024600573333546895490026832307583171711309420081874481048552149965175242209906997356377952156229207355174827192491915071471324983204809500939266021486012103438095577364813297216582860674681114072738605856866119898812563882188911446378187065516678251784248019118859827587220063662932180123976332536058618152500480321043751692055299868555425302862287775384925272638790745206037995330676649556600039506944644739265499917161537468702572047324983531352970984250662597660259860644748760365334608454342148600906261076908011118329936304520346643885458059915371644575286905066786408704626663588302590492844031762625107987125601644410472657517107968071470089696073970498314216395692534505638739958666010133210979183201061816961571419544443796449389201758743271552722349218879081256267370622103298582888177728745677526983626541928632571488176704032058505015365865126648659134530363499986319382898598731309451933266343709520889012143775621605369196428980189673618132946071593389029346201380671424460853943165022055625394047082418369885983858574864318260104838530202030373196498993036930393625600800272851287823189782842141824351600048197841702527395477656626251900060603259195606627252940365744452869233103827896976450806986615505771587589474886779102047297905548795373263402732586323543706263282456616686855747417104937416545484724629874393008505095633118509894362858431135211242817891312403210801093229278095454109941681624625265187674517028231903176068004600668534377553688047409738620835314820583769959135044485596692877571070374477319951274840581520649454137578978712238901407740943561658701080211116459736499019085747490511730527519858014391761723750212482090655383666379981122776400926227997051832682478711136421001496255495586192384114322592695668941302989430810191105034995631714442504314693470564932868623436764409880968149545408876858092316855892453120444795334968901063062594462965066942120859824549492375813981910179276858336547198567811631738757103681172868720508800192287108371155109818741228217656682723348643121427643945899533838677347953207285351882240184602872890601630908895296282741887252245673484982481748792755941785832194748386633838480876647412841341099792045671183569332895668841787561715480413471488735416063965730955338591071831113924672358863014598633155091777485647691760902120797316131029288120786204058050486107832511646969394375571581399654555981262445452834960085464962963192425395425187394699708058218086296281740865193251923367736300046801903734979732709689441309382330188075223345680438706640173913386446070097451874603451456019095386186512391209903904563803912150239644446018147947376738298814576672793928515534892611325015794504197393724899116995603670258300015978255207325001126769353566599529670000196264308710108641405274229184357802522147600933837185244808089415685795738157250824374583563080716922930253355053236068586903030884000229329738207260116787906935853676020418447451167987924849264225358206226442043163956687226625672106130213319215532083016378628196618544915331525297163586682004343932787245063666790993771729744667334459481483123245305739687214124550384496206891736913804892029349946090027674353121079580410388227928007170057505805517881819954476383093209658218615538494510216544097140161913695606211251309834201221620131692086162595370374545923649447995720978302953010572550116521682104942431567763003084904516388038499827626797855381471477846843883472680289822615092300206453144225380887669439904836529584686041038226347990024601668202542483945255570450766441395375602973671459688199300981082966599442921912444820152549109849400437228109288117742536837891974042615129806023213318805365945858038875229083846991562824746636882177153105855680432037955676914059241213141824681236903424106256843619896919513212960264403199797062527294501060700105856464550998272369055477980980302864820606370902240459880928543936321182095744933544898051072533426371538720357499379527808037067503687543886819849685327453895426391230984785395873376052151721920682299875489436438750512930760782541347951217292153150054334642163757197392258602867645580968882440843217501602404402944165357065329467521145769302232739490606296340788080301704068872953156405897555651402261770598117343249012653486354173770265354198877752808557142679337453889874693774805093173699284338465242197200896493913563086267051073063896375150619007845925841104461252062574349517899775663458556290459953325184141166449737836436768433471030565297423555816192344099675450544761452943765226651954738544082204702100131962874736292875187359183083038967234664510036053580797799197946485522170387161091071480095003411010720377223384319438799951895947065945311732707030404869531114763595720858722892336407636801438460473764507945302406947620805655351068936586107771402513380372143193765678297757457311576890437866452343333495045320841349351739980731855203069990479186173920910933918586571840204376378190301629816135631547179260797500440006606819441930170705793418636520903972854564197826329216300129125249793583505449116966549143345986360753459819498892076297379198376921793869289997677406196015362089531295085813201934511332140470775797386154605700149420353498934215282423139435036845770711606660005524869172139678192119577651514118448018419531624282261477792658813524206002836393475987969120704330629700145370363415078131210274107235467980283186022451723685109757765501446426339822357265532352959893318531466751558221213462106526835312210763647779197321006159674646593552388964088460626042729749036534195494959966404787006856415957833031688973571781872876025742330986591408030047839637148335618773324361830775474530148242989813046560143546766982595628558165832398523503156995385025448935809189316743330884741103708060971370767513216418566860844262628828016115047418771064999475883277631178913736434135742619012273440041093787915193025901441132141619819127924683718819959434707427707542776522384119338194871451482635009390337085641481911090452964468965698916975250677661104158190745281904579863841820431809338885303202142587604084978819402857087730129265171471635237392719329604935926839108971135508941298249712063497209431305053348230701746857046849918989168980064673426755039387952078080903346866851887451621944246848741517157544086223771928326472230652805515665889793423139453641017526871622954305159301951637495272252832443995792364811458569862058163590072342312993217208134369525211588542235213429192753950877665648761801713263529566769743657820121243496176501443409145454899483290505046445714926467645719235747067574012157969991332381141532769858994177732730112880602678336604015004952994782862462004937442560617503428684699294822981486072311619562399115532732501752335451032735308655974360582681325868558301086304689576670937351940441878266954261887874495024282957809893617092775761740284378686643504021025083090567497068120931490489350875184639821886980917781411455934396168514146438821491114281370485357024276007156476253058740214043325605305728880233968564365688992634163711501320008960505617977269367072743877717902191764304698079595356117424777908913643477540446779965444447407517497946785678871202823194191239154876928846834313571371111975618602327069879755154145290049201650493294661782238647712992478241459877349344439133358068529838879011841314123254639326632615727271883674508778855257359676174081229786828105522544780700220380593358233980476708205528073982095839666371629288272599079015723680350630642719134632482883947522396807970464788889539134381997063795514986842936089387049061133001998001173750152849847934102709843582639946743800370599890314738019101008813486329944627259356500031412277352893322912707202999984353775586872987914435317053333869154392540786207375431973906554394026503754164626581349866661294257560773517672674681831545450636821168186207158891817012491478158640202775016566070160133119354731602582510854279046515245248152415373164092584484036543460099801485224988424207355367841895592661273081482428433100732127994681687766912732537764757477175759948766615784343696559205181304443196966136411500380676777093122916842170424604791704301083649241413345878168300128242880397787905193320158319275792258029823796178038295624727639744626505680782627207309860128116701442213726032187379078335871064550857557693094919450013432569670425083999380140928242643018109032970926366993530810981004129452511821346002845890563354844416138371672740133264416435434958276106512711461421167355654753876678914647762114171198222618123051263556458733404855453852753539547435516437331637925580187517283556796665400760320800623617814235480563924806250433921516660907125115374766666124847455604528116125554200857523750949155511043296003665296716371619601497861214587844535291208005567499207148048643637858008535473830948001540500587872385235083480022971323691711852194707371422267858441147987758926988796146289602999309444590098817222263643936854499258079470470140654698624691260335410401785660182473096398656141739871302391239497896199583863495835226393317266269696996006038650454219539200002151044133927778000252925130457535464410899723685743098985216306743821432992444662917316902948530315139123742739161660025592156177978000645734237706510792886239341069705337409363231048078814745678761302243481472319337722671621618272041654295893349494205125192989522621499997837527295002243993785776854703141619564663567100601653586755596546700124657863105967373654159061369552401764063264498157670240765891413737139056874868479725294249211728858535396197757478798132173453471296807729455760350810596881441492321753432718189566954970463754418933894918345960390235344227700398626959877898507923359766313035466564737605318520029270782130000753976861580300910800727609355459894753799440166282123401833954714288613783564076451443991867567147523609295872038768756786382478583782451451457799397445333730169201156811298533945246159932666031851112470039333465504815543221845046419010293203321780401955377828177131124827541758314241055121930398255671557696729155516693771826161034723731553015980556837821274072390925894374733572154790253447524352226584007568888939149577505159813937550565398626760316874941025018028540681271324567392820615319869786854441772088745440451633386300962707336653974190341422221505224144819961379916481974146069673267985573400604583471907849029436954537815860608080850229926910075575918653881322549645617712131293109634389475412628412736024166122434186700452707918666529947498564956072829925942555470212458286522626648795539860442364871580662119802507051408367146092963177712846359500887150490603708560288022588122880663831872408922542077600413724921885155877489190256759720402081119837732682187518499101185625962493026183303708560599951615738102539612762477762525036890704474947775853025138931297878221067712877084769501994385300208039283752114379598018976958720093016963959670820049915010967075240057435547994475160506992170404337563864364417646773644525502588936639218472541958553652232093308510519490398820400597976879853185340780559533893768051483230022421384503753944123319987733162304358639224400632802041371357657159582107736336440184206814234037870052038195691060223252117217608279642082898092778272013171867055422296235152371864197144001523448861981787104387912737695950679655941851950513986881429875380665152478059744768129059331818786477748480918306854781922055202175136562388419757331103079464862210855933964493597110184158119047752285545985887636309719986423949447751950802130307450896959692712031396945405041777101705755045087195793657959927951752605555759851050298445771965503773154267515489627646855748239344489142542621128716761424243654103428258000309977576398960495209731686323448621984939660421554862729917149166803832199096261607703727933730659318034744706089122410562390508525648179805260970728892892394011508658814390737524912810592553753016053634136589095955977546537666641047358142695920953144205167953004445411888762648720161708624397348508857647174643220597995528282361399549629563487466510424137097666004254203872818170130262275085510821110567112184272045135821779713237371068489589892673006560669644522391875379564645066435960322068697061589739325226554003690302340391826002310444389023704409932363805276372060242075121523174446381154065287047621974034060343605123406961006048537848155680063781752238500641069021407574626746409003576470074604424755657647596854119794133749315840270808107528490404146277887596167897968298076461733071107283851498407970536916367938534032553726260341638292754667013015504589481758497243990284409587460695975621380146538161263742271255075094921770925880806945817549536498319934705934058034114405759796485797539056100626441181663326450217857006666766937263128015480181824638509022400338002607826116064412545986326061220932589678176303945604415253242028731228602930262394552260341348986572377717131894691727853487638809766245382355709270692367493266473391001698619211713165051869306460549513006994509647168235822695232022164041892505212049031739882756600215878992423108303978471464664469356982482980083246361577424167622569666708087002510623128881409276777596080890058674330802048864132027873795498667320473181372098841242811405074118097562715941982617907826511908453095282924596029733064815240851704996670985795432159351960521773063332215312395458576243475325686710964690787004219803333587461779153646392713558680741928454173372144325439167957137762706642864189724984252062167527880972467194769322171783770787888898859957474046006822739884165484728504329180192144806594293100704570761661489540093586451343636694083622063741675552887627383448732644306570298858147356680607988567673277268174938686794502139449088776375132836765364116428036223461524013642913769449867596679644836220906766215131607468407037991920194832630036293450389729427395869939673347011331616157490075459460626467373045337153868616780025987737576546668549837328360214185417073286558742723881573476358649776785691865096772154525303237824545027287903976561002373734451837423175069923777167673951159016345285285953743369909644518750840967924071804367205908632951597599281460547667514183098795531410212849151018258898537384815715783110681605916979792130100124953878547027429284994564837891842697001083490893642815073357005767475397527581425952414847359948664704274331250021079413746679565287844278981393395055527250331065241886673681325316149315371778197269594271324934897147428852598850825819099531271986172869907808764172867410070513235766434675939364792423199197079227622423503427668570725465416693886468194755727390477341130897768717791696504221736076599210244494841637806269655800433923767149686695744310352912780518164290781909140702786409697187698770133928989414981047900506513288474272783064767527394263568428396569345650465905710650573392230714573204858522057493272009366806174529487097686412446812969535440124734634884444138779286357515329810391181477368439387652714280201102658396203538375030391849115083894398931697524204381891081677708967683115626773274139022804460347660952240326837829583509179218229106101003498166490914150832527685624866510777275417137437297087128484196573178865864132597222667945530038279781820096108440237667720423823816557100701489454790353237913168197757616416899041720910842519189576799006095761810622470796710644111023559360482395747154954115469909209286742058284573698401402003866399283520909356082639687074059491720203650589136064191149949127842483969915184178880148669917617510491077692435016821572675473159225594056319314661948750062685323504089762509548175578430590283229809522246635282055227441329620922611418276753965589627377632850873419386176909293852925852409528361728270470183380994175824560988557927330462296202982046751209667020277304120866217781440454455039575768247144226104950926851664738633716462481043710926281308142216566580408771798916200327971190823991863599502179048161844327444486678901247185923344850943186473178867589283791102344454178894696953331862417427307567264349804695609261057361373857894880212588258268406927826474083681234017095356391712584511544489745134769536939500836783744405057952463858519150965931122978794670569952124847379186577692784762806615725853805327891329944051456972305569268493283869437192498735260461506758574264730034766438787244012002908778815538212233579035895941422348290360979830264410540997105273356330662287048673374987910784900846187588215115877056861253993622287965572623311239285238491037172980937584248571407398865853588672965509470209986278560915532391800695373965274449842122819154259143583964886767176473696791650930542049578562083321313455661705710886760428047978621823848245311696321343939114233268574316196870423460397209390111176076866580764511219920161131717325720761252754022542322357857167518324750967036684268716451071006660735406116819862105442284531139887798644998838711646936671992520961252070513021464168618457278297814856888569821380717896507919073258561358673939367007112422147975284081209347498555420335066232741428516637480974403825058988612711963788518213596127131814673738807770907767355002127054569640092099759212630432418574877153674919192310133067467099256880725783718943638062194089427295454125332767043807417827248766539554560828694399892068835764478053197749217383347093370922053768916993374716734331041092021823162673975377832050267134832216645035684855076462031013637821345491696957979134307449075459144165946519579466757516811626792670762977213083734845857433677622879228674856497006695833406542650668884877996800690626238387722906299612661513156679645907129446501548756546708326551552170203501635215613893505956092173251502929146463331566833189278038761861829894479775825306437502233830783960501545860352976688667992296444224369163299090685454397776038309666514077558774982555352948341791224318427831582242362859475323226192587071178321200244336969282529980296332817844644182113219945148392539325967021364983977045392540599436942254023482910346239452544459883105539496942518971511737155398907499711595829686319092245762030744239127726487722890877241404266293693603819546832209220816855068387277225096156152439718078668701909942067759133765682127596031911944340120461013433184755604723220539805984040000835364401702058186131672600185053760218351641465534278914198375747728464469595361883356807960776894662072886648487296988360145468185957413178402006375229874951415914849386899876304047033825323401443202299733718326560881218538377641130200847941434379745603528597074086478594427384743470768273805342807988221229348877132065170476114068799702736796467304235590884533242484099669780268734036281874999882439060407001894780837305013391854130975798344600976943233143735287744414072768477267268852768458104294074401729273701369597899930912963582329254019348535879914350385394666265974498364524944957723787571376391399942356899651510808734074063786197366899665991114300142119268424980733272747021215866545927436506268341301894066078795177203837769640548018334244213178525069918749742061811181616069250066254237889395598827367990286886083450499730577291524090684401764801395352459811819792336679878655943879500455539461849436041272932000007395011780967920174590603995015690893629368865621450347197513193001330719604721603803506286985557936967531243197423969554143261065624434611927079690025451541254455627142334283301732283864094344620173595710506974465624161871261069113875587087574336512098243878712090288174567467567564838793983373658819291383974277514521108345517196252701264907545301180301840115203175449759296360791975342754614392163052599434987037075354745035566235466394733837933317106585166642380916356495792007137635029246624097866907342102796937381437828171546026759828012504282354259843325411297861240476607922381831757204579691899438295804822568348718320875218455486358791077576142351613282208748267341384981991875808885409447911557363765945489217813071307084304137131498975799630948238513737560342217327255031951697495097055623384308977634293548065753529240319523539336441863163031643794687563220004169734389109660489752750548633342442200123972620396135455846487866061054519666923924504558475927191315554947972887305395069274920729386394069989075617805152160939365391837582559513223646954217957401685250851369674318947595900028382550229918748404780416088272210508083212762929752765840915655716581060022291322445367383006413226607640738559739390625070796166682618470953838601988194848890875832130691984341648628316017808709490430654717673443547204967801241563300509317957240417512898615983859804516686333015243595248022894480004219963600655245747189219854160715712270560018989192133003063709489465215740001730323999173407493914481671720960985604682358635606924719466520772116046476206291078304674773251720770494121682288703567320575223166509456980908034729414868218894707778065905540278134579697919581573392091138497040636037641216713030510473069091037238931771284133419102165416960295743747371741779794198687301738936906677413919080240023154838799667857525350772629542770629827326928050225459622341217395938130445890926303732983044686492562905444907696830698141780643112535999449813339579878495508115534980483740062619848581182320867436983732203812117012218619845571972092011817074573928700699698549973003707245970010726742086520067070356038518803162737483842001631502740070468069410488070341472170891144434310723489631802651621316109279754500700259586704737467186130951572457263823086072251774352713574874620983556172157889023659045006200177478788572504363357305518694695567164805033828533773373867241741874833085097830489919781819240231146308489632401557894777665783717915264206395218276115747887164312560208930903502783054540772605614940689152113544044656442304727459763615646994107118411739722366812836593637089083491236087317890252143630364973027679984196218290016926078681310593897972579375074211483177129302919690629607523996635258749904510089177869437032155836287958853411190307120772015741017066684129109498539962976289338929257984477393704517370813626555155101486357459776361384695776927882413083741346615049913978902351064090023838758560742598816479608519546596737436334661019065722294021361127664725731735048544381096052208643971541759796040308771647823156953479826611298445974878144345428553533253742626528211890056905961547779687297244185524943782198347373251485339991870707510233189700857474500518467933264015067940165082467096286410902076404375159763839038633084753346395918422740660350191394383685652929315245105693245501055185976068971046780510333779338199687600458216623786830566577275616273626178010907147491788826885544713401615666730644867016514041869185446571458481503102644059796840043392841074902746604457001225408081056907110289798024693042430230397027978673435824942882627266750333078520233298102355734057896937342434130835287534992637801670611187002631604178410163170504902315890891815835967948011874459526247984588629641076332384514907945422922712493514793441030458781456172957668040981520219015321831250398719944210581457060076818077347540727385015823633776724678772239766137156112232144628200498408457754970061808023350081093131529006255265071810765129018334420248429896016781222559811975466212808583957628476547451709677626438051866906590285881276890496029133644306665354646601404232018005826120849433947991346248407904214871489981656460953371323249918837698487013506431944749803026750324157538612978750492706071090509577243664494155209666807734210156446398339181141297499781197449288015773344312647357491380450482806554029220797977023837715907078798287960892778404513933995117505389240906046665297636408757060093002487329720236005570882154297828315253760291445762024699090019452454417514080496729055321937796928691911787277670017504173216444561861263637447936018041983201853958762136331335275973360438025759686497021284355971621973558620928023134320208322015383582831273497166004232726206551670446860715803774613736867572333210475581791529062946260273297672361495989518235172036247715732074207699563563483886470998701031277668082843073378957455587525384992619051928441071457769800441708475742813035729543213707204049494484270310296557094974411760102027906820398024744817671186412783830331918702513194044152021897951176712722548248899172778628804354568346956124614373378631594281554860417117651694805692413784299321030704083559758329107464661613736780381663670442076971119776328643089899920893311563499641374362798542596533846114130599041140846114640079146857065230719583331941299921840171435329384884941634990299106471816372854821818548872923368887427083372538597323346442062586954049957502068403299811119889860754340324776855187319133902276577545324938364862679966787474959913132394234469774625923631315914088969334825984287806652483986921028485591498447524284134307885603554968770801975226870805936693180686315461254868384383962856224322818416206343742927319137662552371816694159071698210382820510724829252193038177518751393595937255653267685517941385711553450680533827529679963342486179010564810762425365822650149570865726519536872196017008471971575658703210688019612234239072531012241106194330269974397789464935220984784242468425280297649468864639139130035655077153269096327844342564453156217370697442551154850010716319327695297503488487974201294353285549762089854088355401107441769521880669250968280623469138800819149468779227742464843448532179052472533429566988514798544463682442188825464753026465834605716486686395156548053870698394725182303897180433288898070772734066284871907068879356450440999662215299510438638493403632239167997606130718285981446416541714253802077649356152679363860261620740299020045175037944599513089716067690032401929297954925787718239536658002904912014919609881949511427002721641329098055622656199197199590798902150471471127997426781929993016698201428064619306099845267498787276298161403313096501179620774244746614472756775742571279497504576910661235033464328307040096567426787320801698109792807670723054093802376481296490706868158541956821251677462408717492833406606562171908820470965911021505837133339043372398016287207936817302090329542933082491799635132410382925930763241150953695268270854380508978676856818890232036398986797465289590687860832307125949113158163263010542327852957159988514713259949272586251004785043787734722176635062832341257753598513469403712875071419000224062427536739803336945232080309676448370117821921348838528797915865947099399486338404727552523471404507747304381558210805377716951734999152053511680181107285684511347895004974408730102528779713158597477483818969754853851448603200473781799551639466905289197534749836084801926955827091009903250750080352508821187787357282071499894183711920882727030372398911086440269391619565969044170198974644786928338974581277442220991106357176615643059679445740507553676223578863544988080254587195433500726525941685274162808875373917091780095881071801875090421377395054773804594350670029329397686388939072185545338774021929387220216850159685988462447332051908758838198274121300748051973137100668266142375670423896558731518324242372031683467894722996874091454961460262334946347447184717766839241069096129741250020417738902050414661857773386123264297626885945645805732751539584354313122095795920691092116643244300657993240309005546215470875037273698428195811697676536658435863876109149459365738021157953241646252527696654689896981799035936879581369194058139637533100518729111557845160040032249816794536114287193513086585430839874168905148948205289029391728732410172830570575302270754564639792656698426509892741412549400461560550148526386942503813088522848856701316121982603162482121795256568323396359409611512307472739713423109546861146145130446088098879041326646197118422814199510899475267967441622294309096074256624319920073882816312053951692400382169591569387218082454175287134798182815465628923180800552134241719111924656240355980992829337313106063197691894283257251656931662713337087861145412394719377084374285165624030972646378061503801181084033315218284734899365169572407179384179226254250680002806681820571429891843609820816780398185909875626505375028155458840676139786670906258120342921345213154005446865464749702600723930961731681750403386082165920461856667189550791218767109859878920862070581504413128980567322077864060466927720414274811830736440136906205056578758840585739091253208378136237085589912751870867719125974523020722417459561070746444971226659534089826940088499734464018350678081250691145681478993749905029738673406228196678266630491588610271167883515521268080329638941323257414604114177034886498176398592827975320214305149581433680643030706866600684874926641120088617993654608772955765249951888361500961993618552823911167392887521208892060184821879817190243679593782646133184081226228582597911102275368944747598951829092786955483856537843623337729453706375246919292794108242657861626449081026686029875045626976717646374884002109606727592671606671433639353693889021394647502037366337590025738491887824768002519453937818933570683836892189970163737681511139792257921042785031778212434289110388878744881062922069593838547791311394242791844343176179764120587412930192474471040226095678551925676089118852300623316498085533555894599475235889743766106800176821193433666446827264890837154834441402857183681002453764997159965571390086146009623794117695938904161058960751961638977108192670213618188553385601060578396400467712165301742211351504848854376177333832740665361925148432215469231932424138911354827346845706163467917419746379142153669125808144923611052835628657536633060570058961163274989537415224406467774411794547553823511937729870212809909113000708922991387197418601406023903502473679595859217880763912602542804220895810181384083755393664234670119705844570682925914344042384603759062131885796174055045737587903554163333572938891356783612150157820606115940773524044545641840340653057122894062064003497044511489098332205401775429284279002578792974027901330046747857455836199718296902412240704107231459537102921025645897443578234122286258496208078376529337329790579229339198208057500024568021253707642996084528757078869424927479173358605199680875672504688092023136564158883592121517996648851622744075606504642310254121562347053796839580797445795406866971250870320015136252674426026221425704157572129017137429725307672017012458041201982464458513798910002529819244528886824118924629951845393672638367309300913247629412833917533121957902128784079678708678129903771596878496130753631654555964324517815533761855079290951663606023674491141825279786790016082234444787227540177930024289156477955141187912267406480037620673401422852224400666265765299824565231780685593097205805778724236418759453825818487000100820086672160471546932353647609434836620352003621814007817195678340619957870511917567464221075084345882267955678694018394677521146582444522011798758131086743047020926444243290170641802691577848984830023428224458384898425487177397738927174750708501143635055726191197272859825098340953007911446898704518247264823539763165709738266734322146384068151343043485370858154126306333173123668617994223473338613917789249642058738573603529959963862659572473309348886609137651574757869471754606860432948479703273949831110503751145796558809075557489558720327120958388675844363608859917222044580599603149587459557199101795011413921653440286246824976807510154182115557715903477219201599779008980886921582072421836500768840504206937609588714088822352718814256935451878226941513663029300392877767816787574490993732072124859170389034923855888274123386287116357621423501212896897618561167340575505894791227080280160219121490782922043216811851648508147875685659471546563992536230639102274905219726466685370717071037996397813656644705244901535821757407660110760197745880384245579924693419248298528804691714000432132887553382759509740902273966449537435409696857627994322655523606195556388544050322081827663136343820504579719001558226329041821567507094120847516578698003739108687704271394684577680026934738122665635866649712402587327472406551906334694807543572560831398711994519272570257153290920101675512655968036598970707160487772418855588220999935993498361691749623655681650953710099318348844123856268512137788721565097194013872968531061195615854664640381147438543474458532328171503157563315620238821172512865723722566002216703309474350108203845200258511861540396699798047703363233908639377974814551389179547927816787479330481757912332857776076955504853891227812692854533006024866381478461664139165091737132626701762989203514406983464976638562541243860754613639238183762419700272105277802814131852731675617950428320400247111110749594682218658546363089559970096113630861578146770414718698903969854119035738287325576551753888282570113358234818934496565947128374269488707170556275437375505694828060635392159151572097177559614915969309154999193051643302606545469045403479176596590161112074439325338813880910143484567717370154161283430907237711732413686923904888513306939425289051464180333633138405969977820662055120433971960514390285447612820045097404543177202538471441471628215417397564763817321295527542352159368864001289835139367938345046096263945261419094814160414605623754731772431222921918284823572766433067833024736231735218275279240946633880720084107938805075663604890544499552001483787703478972534339313229241268690445043896379914475455966007624406730564525795934018972540303990390962344699350681792581025359117616251714056580737198064543790515507387859635158919901209352329739411627963682017419212522892763226160509566578966189607791891505713949899889480191497261020474056159756818021737437617275983181632191110578182214384782621594102563838112500526258071096216377797391414401829056357373197684789056095953451256228064571993871859202807079176012246928074432729111778004017996373456211628335334027850460982783454371022747501639895165782285029470609522704632171319637137560970837828205188256781184766214266144758340449276514576286350723808215505041152413951103939777172017955629547587159055511978500716372543383016605522643948074762956576271728656314194290663859988771424885914692952006275999232915730014573191700460612267123106051050866347792821236817099648649090716903608193206942913964008169671031437728117361775689477039137000939361355114003159138093941467275801661652611424392692788387270086948780467596212105267851133945154754716327010332964312433935982092960853328421339702778580575172068158876066401399509126441387923330998323735811885713574793692655762523639303953768919598569544637330021194820705259988409003540394512054596675398724351500288321982459765428560239028612678375428378228565351328514970316708978113840060018451019120988207614692601173465364972252056409235902943221300606178910603060774525497217596484763263776402010955476509985443043468029842898586323310112832910866547533882519305258727450667354353665820529656280495740818004360293948280164941071867785962869260414519262093562331414838802694599619481364934738247610841226608485405606925946324283393895019808016266355506589170426560652595234424938660799119281180603572352454202695149651334265370486181198324748029989094673711040089614881859944139759659507286351504348618972716794299686784077042834890956924925423250720942624846774825546550778215011100405731068932477209616819755904049144162715864091018053728161532378953617707437526566893097213869754035027880142984990567089698526541016124858436623615194527213462923692864690541765499582125989997746918065131581051119075338593910274808536928241093851009150416130442643236855065530174564871257685395081748478134370776612517886266083163532865611662805511679072782251135132109714319189256540543835282914509095488721568357259642723875177612801813927969229609661915477119737700336619926697443239588377296765798141276127495990019714886287893578681693787948664355774383671541895247622283770911561979075149457129110947535195764553014879668220254579663165974715482510681355675019579075483949774443722181012557729197846482242777987861002779919393010885494714335103908476982960345135217472948358576991869992001151668481337056922778946200301893532788258918278508413160723980447572746335699187978436841085223752433833990349893438586675753001850144220086049893252472700608459121957046313355349986787639665839467615930352540755259890470386366356279032949018011494444213017056378604823848980554971853267289024570533459507353604132312708791766313522168534886394415986893435428573901097535481730280792695084368085924220806187592402996237947573884081443546052186509565123491946111906637703415348305491677667137295080095758659686029115200597465229913143617115071124616024139868798088139942589254766994542416154219343051220046148256706249251565717533647215759401211480288987378225260358283200547196725039627649118412637581594927126116656698002821987139066386286884530637999573345596584596005550153158620359798173666458846499862895183569565588644303236001167658015529003469883257189803699989838732664084438673572680085350320821775761983627910683836561680282452729434548714078720810811863669874764996444050391362140198638600565242524528216106174098968299236980570255172619271886930163662954326728364158565390308146726697729327274113666565146806556714549994458364223643955614583464910345345526451738561069769774717515091408548183480948134652330412041820657598157625179828691443469089012309312342784746656805876685397514840378278274562334639712037498842979512337789160499081240995795450929597660912218195259956941564679029862521668160503953003101155058587313258926549509118717133631548244471494532733936420808420777696812269039717425324135122794181655522906844955135019895320663676051426906177749124704588445573526034576131457969709390743173305360329435895824370546751192066409255836751981116461915762895587459555506931850945649108054292933809903142249842160804230985741279557354575366301572511907917999960967031964387484483628425561771496908717100802219023471190533660544225511712835078448184327566567054324793662813121600241964318003164520318972162226424561341637063739112066970083280428667892345683435392454980687033185027840437140321096408461043146348058783863926652684513913463866220576408502279269284496972898481957468759354374327743054903923332218934891080238452576568939192398795730814304209926765704971110209003643914035567209738323765295787943884637066018819785025423944980506632765326275020844299821129988276163821635805419353496223892179775683754330960834305842843180369136017761143043077844790106223784419827132091931201268401163501261176714021978602640616141239978199293510191152989193158362227753557204490370314366378400141215659078588579649886626465823291785613542401772691530683230264392105964470948671860016497493803970279553121412466862834088110905455281103402506350748638004106649968443717634051946047097738563818842639914934038847845119981896405253180395158148444552582141758062579982488058050913193732235922250277416608697754042420685787295889917175416880076841370935699823935225120450939625539174706978155839630482099015917376640497485827106091455153132395024696244537569144782334513272873061905572966244518707784945977675059043776322842921159539488248977040982355489700835150283328391354268967206438226365023087287326024442752792353816020493853243755366739154435549181573388079304960597387906552247301848279538920701932104953156772003503452935526743052612500936885980086113626147207623712843298348105276436463355041736424396967638185028748841587547251646803528386608618190744636775871147854652793438582709622556653878342026901044863003241680926271505280634291779427946968728875305393384851005056627226313706456542525638101149105265377885463079770860643734828910531451729906643428811463413045481634720500737433060937915651411976775306569207105749619929288887794849511323082217778672494098736959499183886730261663311056183817219296017542199524893504767628256303427341337538093243390822860237532729160738104639904207771873947506838320170066673973583365503518326334071880892814428888060876965180949767365992584335935716475211565345351386445534431808337664243169010272684750629562661096739273626356604866355281049236373809783450012603483262591577787927474171532009579347218164078039308768438964372941776716049784022305913681808472377419722483436384882128428364789819619778290355593347884352705280489911241072453184023637484256656539135144540860043223344335326029196869169394599378289204698408687684471441278177526945645246734171724800214478088749524974509040771773511516032270643078485232512721961870766231462060902483631315102571023464202735271583027400786436363401894229022656404606080239140233155995869017201235141886487141602591778182058416196308549154600147211507588193471448341054025333801557237867719907748370158465702064997495075001258390954246849067552479886979807936167417373643817728488920579078545824973394919670434475912735139859040395150323071580767363813754740267191487539325078815337811527838665425762767466943078787244084864423403209800014287045748863742927656770240757321493001571029394365310752074377735586215325416881560217222476364784684201502310709686744628056313183891336165233993441664116382413972045892660484918800196803985784326729177586210670081832434371742186726196273260979846452190600205098931322471965850002396422592569631592067810272756050596651938266299183681734981550831330068028964691603755365543890906901643250919260636592891776852155177249650868810862550522211301089541237461089506582158885148755382177052147256189822463403342042285380657669224931557678964379035128039377434744251934083411150463959025200402791842110281320886020782032014799871200977586593325831378712753793494728012700933667509911927573715454346592400031177051583845404035237960455999606749447121266185328278290175658430307037352990615119729599751561197535831425276564091278921838379292398558814398243268470629583979604459099163124344487543733314212436583080425147075742938879123735716138880747560933456310739066126896154291477921478081183119793808327021441782379819618628386739121748514177820563622286052526021064404828940937648094925509551709046406744469986924147882088905790505527505758156700042414998494153576640179660082137435413534692252890969285622616479439337350436382725291708311201737569251200244030297592997304318750525232988702285931921073037195936579575619411630083791267148924667719979512110855879395250338931819338269609608715913468593124669000419856205283271631513070790947431995588388562284782514525282845214731345758337484737897452201920116557875998859248676712191505564493418896452282168490863622927779582212506974519605518920640768511296720751165952100625763180110207945570627767121370457482656750480597318147332437757093527914325009579043483132956377328379982863238588467084541544443965597842170142161730214311874632099860687684297085597811619113194344241951044780224310111207342479708649710371717382054100452473584878919388540294656831805185365918351276301387336915373782890294193623332101657962363369512711381137680599181430680395731473861482850611511501166964011043926010164282103281425068395324282995104810882637726517913284721621733557582713685060392012360619032723989219836395006982578091716353887101374384878958264076278116964883543031910580595642957270041230309428913093415434782806891299237144765249845539894506113347021205070084959369533113200225072138482007635173263869792097319008889320761290739976634986097060354622923183459180099030035993886199971261882780755972570417606854040637573827265111463630415791919708045164577383908869155998933134596706372244326930975501065374178857664364843899144454761115501642754040342713370693590245570598672595712862772077464274397508100626441552035757002563905261968029866601376682876184343648671987550859963944134659127938161871587395843328071057632884826437201020897671280365974393556577706932964095330878806154312770338556437117290997591583066727643563615013091017142659801500978128128692647460497662343899926184746270196750607969697306080747460134580665990747941627397034878368593075969865324349984164687988749442710790328854901583818589774657303719837531669505947322257508751554775672221749995571306920740943674593947785321415685449213777873541749421807152982584454202484887053433888721773773275481160413066070127893196683036605416890564687698113860828210488503799076453691243290621641342517823606256951387735609551251897313523268764634610369809221495795073638059433697887725232520905808399467333032158769842121887804150469705303977653512973124170047597045315840673674607997129358053264775839061360706262244709890365245873948821970139855387184320892291695055560062692930114234787487088651125977609786828168691723979328095285361308859608107727890767241540234980090538683353497087722998233934409205017886551957416926831034335362363253423807082749067083124134320574465274424814976199187338136592411901430182133397710099326200583359640767878963325379025452336469392985943099667960327476221497453757683268920093779051460740798384265565214123147941350596394485824089359428135340092830848918757479841118198416827792902942972683577915676966742595217279531520624724901732797020826424007633290570925417714346215992581676603128759122053094226934349988628885266061533417042800288532939701886158082380801421441578851955212911949693803849134562245534988208764743750796826506631736398423373978135835345281272834804354071134565063436776668165253280822537908118369515415187714602082419699035219676880468406060734058699596733815874429730579288911161790390707852199281020549601102399468225367064206173619672723122396651125652050249609539541320425159147253557727140207533985059336187283417994235339140164992925250820719825435436300114857471425713353627983714946415850656522730467840685151080312597090801970206801703294970491330992930057449350136750373164811298377139539470852991614701536840617531397491937136047381597796445434624289348067011202542110650497121490716773934894491370775252674975144606418589439795061058065729947947925946048422828627267370780502863450392557006047116030429703392717019802962581435612343430276118414334832619961435009999736185219317929558485183425648666192510113414306785752890102258191111866486429905278326237980173966935225778306937027809410409055220280831493824263973683624912369854891424646510016372821221480474953010439602153523545481970028031431624350177900616409084793247630623429018159114523834411688936857977834054129684454139893475533426071114024343093480666508721338316356503303648250897005634257493679556973067407187708163547743641923469167067903318390255166933393528553166949233800865412135300943537421711782266940359190715787000108934358201482958048456520882027935620860208977790478879386335425793599406829905670106160068209960240680730438066634290070989994989973717990851584163896954375709980168548249834109216161842100481304481535559957521172392883819622967312707505290632406940775845341954402314539055421079984943404822528616228426785596365604997758756071573495987472929981802561144322658111194672799313069568105327948373118967692304151375352124790762054130109099430155463135320139985529822348903509713042867057309764039787625642579758170897977425411100561714535963068811552535389252302332826345413198030111854583653769882339096046841162918514919496043404754136529780951681998341894309260270779263620842081737332736432260181887943437591553165979366880085666153784551921536365243366171170904505647277132907175758087037709413046260120441738425217313277925056985562172242588581701928619987258742359769405261260245820952374890622124736316094281485202221044437515096847239339707168622446712021359106186828565126011181595456253042173566839631728690556613135067887450895727326839812717623002559197542112045244534849547113556446747260361078109182444554483232241187284789957162036011093105129560718655667891784299371026703533688222230635701386323913429494290308531489002911132434276928963884630081017108079181624184974220145964274471828474945463320775446349714117241817106432792543809166192735255852472155808110361737111702626448120195615235767951632934199246121568201867277556155040263937305529845274365891524278285820066236153749604985064151749082487933257561121943089199887443536413845885215958769858183791787971150285290424381163158790752158860768304845121628009033947880619944879261847241144078173896919197563861356233374131892359086153314936954901741232043422446186661274234830780685152445465990918395042772014176106960194883400242076248651169450163548137490658948123084667200309041798720753234462272598837277199962132980955263315762890092267772961302785317298696691410756345162231516487937908141751413427610087277088256691964911631565465827789916078292702932847913081016194196540219470305007330285133222551957089933511365424202569507377272812426611359942028139626052194661031380033483926672231482974766005182377088291408909776161114533735891023179072496294867560244894702004863927317762206605015349416993635690174869925711731604213334306905169173208547418791488891764722180242623375032928741500763321512397322554176267370503715095564673404034819997707313862297255805149744268703500163058573750429401305888330235251759381669300674611117790425780303949043420821022623056182569796860469170703512826200673320211456441240118977267093276915268453392153701076358028597630975703649244962584017982699738336425160382688797011462267969032034567888724332946409420565092589532676854701196602962364785835967198085277366577950636918607247427411627212343622152675038169198270709785246687027848605488054122286490372701918933375084637673057589044184480555987503273959095155200649114340272128726491821161189141657139472386697357790568791920159576100788206562675712753791485774132014353535087996393975762879491027546892869500048770902422126693952045030983062985912434776460584586160976596875045687082338173614051461019482784635892851788443860066966468798751844948551520848055647007801383410535916734829707889317061922274332848727024030691968162781820965745408481585719162954769350341340076062914867134128915301954025352431323629710341181074235546310375997939332583705461790187587919730274826504301435510238501054070445987046651235547411303361175516904739894531233340508838838241001103316516111595079199027496155999335749752362164033010298425201293728299634857733068868443835496560593292410684580769786597897334308104509082924733487084118465592972676768649079214361080825181329426643363614062912412437063915941422071520714343179607025577187844508154820931010508346347514538055874558990321060976192098231524662942154081173777406799470725894949524141648047201308599277336206771926320747101369723944760386332183344695160008107328400059280719250724087689812795292737319993083325889545220597351974613028774609576164798233044944857489785227762138643541377536566817744638748783646480289165290574417071716332933238078472874248380002031148134843245683192387600994941803201987494640377432766515198246672445822105796104368859858836250306384039719022661242906292631664921741780555510916350563615675276827029681212195315600903255288431672076329418635241326698870414039915416792415776708669241458856859426326463419145464987144975908953881621501329803111772328819200292724502700648127955094620535494984272018718456502269766469868563287914950672544579359412317125423471188927973269573259982398208649278700880409834526574980584099679800861234779188567980493747305133097206661656151884447035929082010920706752746628445449553163839686148974943868930704524933927708500781591799198410960511417373869307431137971823529391266080995199350843727194938324540948305149113265114592494661067481607942629977972304296185117798159933453233648450777100790782394446582918708990851500781164255048357047427194823641608383639105398671434489251896579341707995972075852319997672669483811694710346295267333834927134131771845262107302385455884049066550156707828492164113998434787345558403470140038777733126510870587431833052005062475568383805171807475272278790390349837561450401421645045919805541157338783160917329237186652189875268696256866098053574393116876431318018390740960453690360087240474361046114015275139948790379568630065573705545185642585280827988534170659100619780810813703772649074780870864321786467456445149724398347666971658861006427903399635737478701605397501240582078317093673538404592390960279894361701972316208540952629881947456317933722606793658244177655384559118540043347009849019502026744357013587774519129157246445985617334219822049567047455956583579849345644433229972939694632003052073832738974096966498204797660011047886685917173193976858813072641306026324896757419759000863724737312855081763225368885000198593422815562345386752689415376414572177497341571770559819460991578899582434459639858273081442728505889607815342844071046252128792667813790385774355163223161029920616615797577021508064954717343571154961915891337002393178874218751812969127095655075541296355455489202727358836520083901549668383289042262902835401571682231371147036708682871817684849481910061135946933218869150850631432819851422358116546597843269200571206477666836028403761476029789796156095221647941758076461073618895605576439431985796939680324725224184601780827342501318800989019205142940036261139228190112008444890655613818894274333668109224173304275388510922476125114879971350951646709436334305849841602593171400071823787094359504826401913043028524543060632769869893553682389555853005525632963826960360794863176806405536143556930174077640433205296243902197474491546534136263537274288924755472811682406847668604483084207151546976042953605401922569373438468526302257473632080347012917382626468741114007428779734152475257329471460278762266404302074496566867756566862931206274844083731100220232802487699420612525946229573150624210650035690748841238518832263429591864661087933942183581401889093997495621913600111185696127002413547686651721062969690829005243741028577778261448312569087148690036872130704486745996496332514654106563922020091805858487664624698809514659738998591932557969057572603570457867543201919316742758998883979467009490114350341016226507529776344012719842216957037898343157403427542155579526467796013296142239607510627252974272917288628104133981632373946917554514385509690803236570227723609704810739405269017880756040438774523706972052371793469727923969539040558672682395822456778088358403587787407090683687872051613564737718788338918912749685482776512877510250189547245829695577179953904772986775765651841385455534774595615283912356784490101048567321919786009485441060071971577290809971107402809912837717715522652008448436943979551256031584280947638474283098201822357273973389740293534960799806386978044451359532293972336083081942277211836676657332261779177668149409258716614054469443551080083516910748999785853426364066009552969655359848143785788153759802363300109565809956468245934023387769654814918574580924176788007986783647762534766103315038302914624936108620535917769527789145132628083572728928812327902109293180831204642385150409107990394253637853923851004441025969977353328338502058059221789218017525028935121585395871400930549106062989731283807667746566182003337913952364392352939919580254488171207697501320555215303420151573197409505979938923465546393979370995413720929075510513345044239639112137126168663485552141332085676119495150067911544523756719121883568037993236847135262456689124513860506629987614482911569647662771688348625579406221855451530066019379586950494816631256186029255643688922577437680747339473053738505730685464997164203005227482330321259911896545856744701866569870840330127398002355107075065563576305840209248111332391439393766325219959765303768130035833248812911594615719807815098662633253031467875889375142275239807259959696855106474206610879296308621606972933050640054989115592072284140863903413968333866951799225788177298858380412696068792963156849425273851632778534517521707061341178438796640503258659022209297573306435510566000693995195685274093759859044443409298955824874788158608581110857938639313861013056730206804732395922740338227081608602612835380698941570196189515129913558107540558691773051715780705663549961479775251713065771217740146700649102183260909815830775886377946009778580327605738581810310931788200784464072604794770567418942841847577255668716420769798184194328445222158188203142357131997205993513109503611581402744791934087021257710078708081821414175475154515391461307826240586764000990668449567373356378180706800571234349599241671361792134218720198030199854076199334706468822712937086260659229658013957624746788693350047390285247860959026480934378773067338526982968154851883335617488758129777807200193115605577985667256460023483148900028003029001813420638192490168518690377093475484060188683836506080908175289879092724366874332839063282802533291903240808805659567053376979726799534417716333504476612243985243897387178060970346615740605251231777861294115116101132139379458134219825684358899953664985220031669150320563758251486291742195963362525192730883473474402558219898389548774554799684991529558934301163651200631740631482407588449262133217037017819053327413178626476031369096849712715340580373877855258944964221095678215232702516907579561463142308892018438543344440810786394829313048717944873427796429065665999359311578473508125866286809882555467854564583193664020562617589642751783438517364764079807429750959318512917218743591702256065615652498099142204182897399764157383219981371089992582805106593107494569345991595222245387478547316203713135370300326658772001823195094805012026942247313548908059597841301990661507390523324738069231287415273642069219713541360646908954941764003482951480889675185875248579216810442817654374168339254937183611201241123465556142588565855261186033519126200539904029010291291456486674167904035678301751865725859532984185836489685715549376745381081644709848678554171154491117751378655169496566502571187937391539402060685935538883868639161442377877851674700570806993735698361176227564122205036729023734894395550535633003980002705457167437569422211088574309540869816571018594365244069141187487206275527998781608553412122099961211313450485849782014522909473301876414840672146268809624159758242515366610922544981708636091662738449191485502501497844879849493857535812551873060918796942740367026602564830019057361995701397932344561582527454514297074423327926369941474617097302605934181825248771830629286445419742458219783969100831939480325552935457713403033731363434855327420020109044804739284047245486223963947703980132921653645573066312768647466252524524469155920642458080100053490435220177075045343405936367226694449152574065060166320559691465378406052494652776744740292931771670772561847336714608721837926205589423292237605945311966581432167971525779540096181583605882675269918243518779790930987167499627555142601869856909988384186801445046268143514923363501029743017048711773849108469226448672327747183311034479244394164034329100600797673658944086432771881223993541460663859950434614752947440823423760741639213052978575237107298431744612195397914283186194044597317442379825698123100095373704634204954640600612428943783115457902156969119268580354349881142394601221512653585392485815757009829915737961943158394948685286953992723412743927950858484806557041140902105851217406754742071311666267928798167596856835026136306383565344232283676670978657024611257346050394187364927563803400324771198653089215634700401975257232953169281869056114575213801885705731444169913351019779145926167644048475303771729988087931498724942680568295149420654004808173633418887649598320993557248089711785538361709325496587402425951062164262705614367288973127997730763659373770646133584925984826901227733452458708856571621975345227272966565676075196024266575135350848388356809977245779304508695942468719193934554273631691256273685884571132836806360039262579324166719250023835540516791775864506055484095032304030241326959690125198161914532281775573337593712195082924827943609426322458156297889200901248177843184464060837872185034428087122112882539145367642741694562403657650394569212352833335496063284932657777044787615185750376093317331585601488262013620672039209669491718800942350408046628257686551212721869717685207388994557922490370005819614596124915313885241857188421116301064694205408849372888977829964211509602995056134358358809625383771978551094803439985086824661217195568714947397295078362118279335086673778241784739703255367379925135005610961950776625508933274384177657908668529944579772877916476158973262984510288713596404254349062259986741751381215526794882128206152156262595500222426192976634010900293305219664674571557024706703747522475667225213808868081497851579724441701588355225338045593404435101839664708584742209004402571655339924885942690308603663462994096099005715464321054961820245303883606789579755421006705406254482882978254076459739101740158896042334870435322035871578613080286857535134827918564771244994926053055233675195721092016279129516521385803020860661275806103345769358861454026116648710370897541310358925842626096449265438020596644015991827397277240676585886662834927121475928139533741791171910872501445732895129033119116991874362761144795423148220048021995293652317393728516654348508244881120177673041640387016845034344936373447037958931539697531708991753796846431384999174187609569581249962465044073439779053122251294969975620746728599040596224165939725433861779393317951482385114810513820549136382066844695003430575656661375445858105257524699414121057955906384100376102303851845378778562806784941658750182157535543340138276694003083164792884548942045762454324426873520515153848125791961510286686238547134790641731712102254257944179896113260826792575277344652676122906769493941871204240883284723565399595989032741294911936951543450376544687753796137098465551026330151033723252691626113230922434096649424535051221403236646319485255108558630287751355750890432744794054920111656133297097019424164262873900716214583682520674075339126501197238237408650190661079592459543947584332938127220969158645240477567983978361982529704842718529477586060294273669583856975905166477935064483039338239303981732428824007556028033742929178832118885750902560690233946084325160820330526469768886482816928069314913124679709948728770003036051011253180001030079053801928560211923988071002837916564414727988969460582951358020773105911805659397898093409605604932576736990592700891364382867255042883633763057813750290882661829336759707190572801413374836823084922915121551993504608590023536188138434857240445427124752486201166333715447178522304151110842594853818527373924328901966241469719735773825751046289668718637076898872240380154516334596319506041977302850367435441140741211079671971394940362218050250075738296000911336200902376562531536013399924979516530907502245168453257642301040644888237087647512992380262189107087595182497603766920627026477319701393527630037277332297812064942666970124910929253867462665399715331057400799237084979207546482682449641354081686661444385938556456198168252607967265162987628136940829786288357927094251917261488340945758779159641357943603873969354361496439479459234836094596669979688373670549577582523509047705078653752010017028134086699988286155021953127029674441269557336023511351470389239438793047274948419670617622296659446156322972573612528212850367928422617627691164029916924055149637429115527904864585157301705957616375723850901060566777728201828880810703950103921791035602222412630360956450918414886962312095902484812620364987380825342665554645429970464226777588906271338588098126012744864970284610486402290381739525876260445700353547632207192864791031410271627764701960545641160823812987898578829023546438215266853969129575667411054366582369165419899589523083400820169367449132270426981439991752884202462306011641021008230774170954908988881826128157049827104901222602135973565609386835433164206537088300619864823603974341604127611309820176042273673011989504125517365309119438456236544574842796424383505515073395534827148086264870824655172377912768423188560021541062306588030854639478961337522124959210116647905418883159890015035435541166511352518066138579009321027176570038682628880647304247098779699493909289866366794816251994611273448090772799093679309875120038631641965276447801980867218613079830358770704686692132116622731928350838483561821712565197005517805023047186404655580821195536924101490839859048335547838094629471145033464280959105513866428460411956540475077473608906153378761527260677915419677344889242960449450142404940890261446932145102615904777302608496149207949854297397280112867411769388894550631838457100200969195675100225527012675740800897773517049458494659049241538381333179036326319330697648282179957898661559547651255662492691266821223497645802009017703814285758246039676728883249946830940466859454481638982449171330643306252139613081519515572419687432026324865247543201578741477904305870178115821353633597806317077043571837734481609292830810093460803864238334704549645213427859833601672112383297878501124273261259140215243940520192748245641149743080547485616476577852066313562297294862275953946687174625550095748143448425915860796453683644246371703185147254072320869127131678781208308703101007463633671334789483672871389646877862236336448787758417383224987716042944204010910059382718035392091639984308548242406946901315103032387862960024350868089376094962834296790945374545594956731405708574859453111573308921196466229410242908910895860764245273360090453623559295878331477242212571282427706325347639351806038121131195153006169309399016551643941840162718358315779578955190702387388500543504202877203338535817287805068680428994084454620594418503729456920793381457008720098228886638546481196660420602046985850035731731805368808017681010959570020304327230191195689866176078476711459477861570754034130154380901718776428170472473922984601833422952566284555238953635119809173330529114059058630670323911169351867258815918771691993155521154371508298936294019784432777143586980375658542585093687756187035446578668628784641935936633198765177940664429619761396990261868029590827700801460201530944487991194630992041924325275652560023575024246802618525837928429454962303983936970097629207056548601391895061628515485058110488760999885839348220355655725571299176760108020119554098947180759677236087371418237246758134313209893214360033045940432479659163075660998565162152812774631300639569025107494594206602039067162084208200265050774631635697918409113186797376702590871064654987661706277281730277478377446152538751843705895777015096633428435704582325675161788625271268149962723891625938800298342111704032443853772316863917981368981851266467635613317993549161716008158893192218829735292930152547899994961747343795692874344411187018212169577466602728294325912279224486231158524734830637183671941770806249965327221533816600788745850475209704112722416981632602876312643780010342728305472786960977269504977510846471653014234036121962787513782468716945701459954816856166761221482317501902212643704655022270463437579151887542906214825837701626201045918057983190656245934501790972514381743234418645417060457707084611119132832432090378583599975664953149867928066261102345889694847058451890061418951813392988701402649237465081776435557543863834810673822551053875322732485008851770135754538254274881273940314706494427466659744400344658946523677536957402575780928988483469621593025367653439612199942444562403573369621743391112686052861337888170957769278835973466615887833433994288995300714524688394682196095819600330602930673553616914533521293133295399353901455537693435912719825172273087581290758962496429561622284049513831814144679667830045324594460980178411481481334471296062200835757491068071745789100725029312184451155986558991832636466571914052135957619730193674749899740233395509246627140686152821232108823219211872328598033420873408912754935442744826085434403165716161711198526562319981508931726968561157907445928152295730581086785368935697717631253359081557991069925468738042524502393413828460450938716503309481156381797310186560749338102704259325956668002622524524102449245429691316052236510825228048360058981970452075559980416658179665336201568998622859510359849330674121030057893721133738110552772950412941988248204399888551931136146872050820129910021841212884150325898560966100447625974401293221022500600706983348084630073772278513782900058985791866126977377702283565083888639298871747425757531784405349859671855379637844603410568864061527850156082606791879697799855689743510533478446666478582768936269427582558344401335112272996720365835418484142672538608470248016050633882018465863770553957220937403110308864360693480155569067607187393333696770356183013822254281774228892633438353337987603511082982824797621093786399517997421311921773169455959351728944016141448319970704903873603457194060966532891299567854141202828292398624554880616070272040434779028003399806928304188739570815931395044735198963500219983116895481819021908900179332520178994493128112689652090260273134673324983936794738711138298281198026478311774781353553384510091411561502365159105905935498193184711457114226492442443825224495909786931645764071854911051895611030502505839535576037175136002511845876104400992775326977274949410768220400676650587825597852771000987240093614132170962844608498060403694182622418311444406199158518621796004948073420020479967644194955285860234987703608923966979682689312628704932104657005876944761555488954378730996119006906832693100714230034672216080761721413498751145863738944872399811864498714268976081395194755375578897813304446973660805879056419731241570862826872441917849433604363130820867009298877624641523924424962509892317883886034056913337333853348203815922840832915303140028549725826761909133980044563459246134473164427937599353651795254408812606468143642222702092062361641194519666542605822149912654352781934715359410794105981989136408972233928224719138127970994979456743093650345406186850230904928233967870261888600886035332352549460323989837470866424596255204825961983255070291648987538088188235422813829357725746351502067795770499214174316839860947787564564538724510368921176283938177089510975104300978572301372758291320501244206307965216641926703880126718255315353988542307338543179402498491865154859865107259228746941548661203100452313999511620297520284081075776866517325694068510615330393916042932525369984005160060195904718616302164464642264708819184765469719203892429435466848680411749399656812395399960067373581099033040192583249459618532756940799489759900422746250451252067805834668428569890305917796133177240387270791985876317313945431509074232650693101320761935681644532420178818202587121644085717526545495510566810220377810219280851952944023744602622564606550410822018210955090784618246549210491389211946254626540712377631117387289794733897021764869965086143441501877931878735793741146955147826932195739049904079006394464795459517881502359881849092437926248536067690883902286103653039179480503515479455391782725666368199488338408452540633366290967027875883164720283329236680925190423135267189562101626377257757362997904357399831357985725860870232586798827005446415106282327754652039139334461856730767221167281187596360865709864236966569242457487350936499410308351717106605646495549980673836017032458742976096238851825745319747420075606596760554710368113568941828933799124714822512566793645839684858045867191130029622642020901217492775125879280866618069443766868249416708396822762434839232150821607879548292853258584489563167707451017133172933806941257991782954216230064163721315574948169434193931173914131304600987848751188900112184396627131833865054073744762948899149871679068098339009022835766078434042265850375682574239963707792986774522780958522785258514964421106594093614469988945628018848243678172442409072112432690500236660501121457870934486234816931129581293283645760262673615595250524485453447017735723066035865351916561831373807828234502483316996343120733520733981880070966810736627902620893168844181393411835060154012364482576900622838890042356836557696264232153663918696202449908359961458308688778211687397610894443613622998801940487785708885072364404544982060830641794099134075936164515456388217190840301802520188411387207783639584206273243344981913908633552671704825271246441768389470656000093175727589380550299138948419694647938839416980883399487417008650054660323256316553818060400689845555722552157176599747297453750198249596117659033022211217707185781760182239488740402074071830565050526171775199230679006352012482655179087905842962619623878615871382078693442420708476070899045894443945268659220302924902655569683266659494392574686307240659380158462676472026285728398643108528873672745138690470994295142003287568847703975182266377157886897420639791195993372420550670243404245346855230772036240096835144350578120953945168294254746037198348590731179632206476795724171132216453251260288315765949358538882434174446458003545877706346797132190591714020298611622423905345218582510776460894361253465100821142627645885734612113620262723404943993962373097691422918895438997109516834054751491073853512349227585494095174493390977299006711136097644729490378455992126597428567111258446977577804523408771143246357257016765082048697229621458472719314296848219737550184724074272409502342540352136116663553183175998733201021761375063574665228410511313184611546789458149382162449521839378192646706095191968101223544803493564928959026136036766176163822854087819234953619692459387125834775275032896083531275830303709650804260964916778753035560043668882204739196177206486083356256960218521700383518320816888434856943031615821087584043221705639459553549033174777283999418356425014296259977761088634915357463942494388040849918864603388381516786659261550127866102966092941389297690569751670259052250953188932230405166953899831874680429826050420984887629563837737621624075587639361792091990966996698966115455087129695669110547349443541616231746357740848312169374943761110825044316607381563383913293700482986762282412912915107738107302293813853144478821928003582866582670329718213697994683665552732599051662707827172124021435195451979382655698685025986636308473545902197358222999254899805894186514561767070713391798553616407065783172266408203068177511530734381711392517135525228526380649729594157677654579891199988394047638217614435432786659341584954289244942126590405740493346397866741106525678773028833076966431472462241178190409083524903245644008292036139262585013428100028027792889817443339418667367153253909526444303199945568393551332638993348597362448630990612145091011719069617379996280060340843543862111235532888124384437932474751028152508964540633091901099788402845438632497803485319378755298692670884677106242409852802337669962385966365371171796565646725188625885794706361118196766484929130726298163406323209653715940548266840437213673079226021824199048086061724933320616223793798876348748920444085439916839062968354814448153807544405484855191271177485508649864683439007307721979331683114244255071157598251205161105186671562812632523806235045042245106028865956249140676524054876425508915280520011622329017600674897233739706743794767943846110609862504236843902267076050835292518650508995992054029932955078610633492888498764149352575483934108411041932537068175111458886526144995877726815233357646392193581854241582241098105092580440163728683100196803126164266373952356112171645933336883528245468608358443331488871409429039645667751626138649364546940647253676962553545090716204897579084476799150942797515769308250264766690381085852972790107461810494646559175496528816344086377341953487797111679573801167770018284925919831440823129538087080009430661279157572477133470030747876119549632507788979547323693435608438573381969247652679945913997988877246954827461541415988485910272539075546175040531528433714116549152966097182497574574847024542271235039322074746052345953721386626629414529402353246321329733203263801551292912604588929437729268846472356724035215989266536780557587307585481041014934606021677409542863026219422655119759246119437557044414293996835360066925260600400237053192094608546712335069984035279408410598366464755560768600625580260397203157116072529528131808783254323178157924340759356334575733902223283815904825735060123461791062593894572943151876696663278192115673229104376955310724793535416191222814138068944362783838981446955592774466664570800257125325726626582164924804730885039776954212816118122479429242706904526502517959709566581972688191398320086468984099511364020243969264662888929212359623052503007018756763820009155731192061239421244804265390848052203764695620232444353938357059927878329376388389929550924177515972182338968471693061542806833791594422976688042028861148764733258163399705094297696780873733178561043297115962986385644493011284769379050191915567036955443196131485262978502735980144182737290422969551556200565410450514250756951234409903967383017594426326381796373212374809815376086873448088322108089123434670739854986241642563128921986609288125212226209492310945330677453209665700164842825767737242811193407890095465476772856005764463375310675926216663326117096092999717099102207638848596454772977570826481578385683652081096888468641399044913005994684940886867548475163295374268820329484519324149183808229326896937059747413080503076944575564099953556641051276490110549644362804867885763549578160841319416335829595685564756661248748436569695963069470467587192160689395543364814939357756930996374663891571751053916467716012331819269204366449742285346252173483581141159932206450880685211443940632982912373591817796879635735814167543672461105311488052725256628474471475557618824176968750779978219808480663700908626998536063167596708942133336851439755733008533870970248706140441500182219602342619098492480154788084260969434288424113472039829977905225808977422506452166713300923512010240753007354523774991862022303661741046084831434439605322975157140259896345489985849999900051065153723851057884203146468133284191229617900595812307874057321374396943120837740497251679426209058910070003228970456374735245958371563742420332034959624018022384546122628692021012667676474634324520979586532461223899106239948243534419115410526916534635471049602511997763314757307357348620945119077719096026416778546030886981785373719677556122022339486581407403873218560841358827944252974561379107589327534795133375938221501085406397204671294854354667852725220035232627057461055683286147553078733704528382630912554095259489567945053703060911980082911878695412858992648972226255972240194898480417167895468325823325493219993838668731651192717157370846976415661039854102055391975830126061821462548077072545819672792798755003871023841403234064486754160778629668276075795769617494973663189826327117692924701760669978210321800851354752667089324895856422003144535284910016997405782859114282800021034083502591745416406289455140976556103099962319674224443155464767643288244353438731946951913647616682486669150564933358088371875422973380691584802751984888582806628482283248578226039163027517295958855736930107713557913166554600211860113990842747824585647286452848187782919702474816199425900998170181431541003970466961363139516311242844816577696641383059800274623243732935689337778332626783942091593598705255607825070103932336584649919273551191625449409347617039857528054789083037716281926333773526260306806553418315347159186129076917647729978361364682976348941232765943386737356518454114076517825465485523765853420698619231687896723097722584754186188966150506907800222390869014703664413782088829436490576898487327425480958133333439658830402938659470673115218400799873031143335540518525393595048448855048538897625679840323691786875656407153357633624911926249639674900271691180709065467847557232330692730661028031832878068400686952138053991814345701878174282258871765063744317172802018010780566967141699068540888945629438810691864288263805393002992684531078939418289219058403425926024460718174097260032142446208054171691258130329503339214047366186817685248989108842681325754712611867629650687442529122246236903270739542872012309592135468442498088925114706888435294465825005487347626539296949887998121459584490579353594310334978772530898684027460911029080470743121355552662850493041230828601519185436857029250071484409665273462683215377127447638342879720914936028835860611449894372486114465671928135994572382413579473446003686983821867751601125844268136378505734985094285810127850168940672576898293790528272488783087356651797955508740985591912509870823693278068593986536417358980873186390259954726892482618706837548399758251425206184153499870562329763763509066723489464214271734574396933352747446617037508974243227251040782185488452648921657076494209521170324211452933839256881691874834807196437103955934736923405457838051311821100857004236808783866608234444500695083039445207601205639917456403345772051840637849001047613454855328906854385819178852317414057616001191294349774248445683265081683256301677049321346136665325200264626887055431643705844788105414272437881919588264393818983453707558573432933427809051179917726546394571276959397727766090155888295314361509999484989844504242162426160136322076231471359126440086700167972063841728835414628512482250610770267657799971234963525946943403100829052793949514938587866163420054887168076556456093481576203490009948739307942469667003740725257574453022668751821358827498939229655412914817583521315127657470620625454089632824237317965439901141380941194364247854563658086972589173024316450372826790304573042583464758921534837692916831739483416067821648305156716836166994456053017828507498471534720291193223606308548579513821063103859885669080829651678061777963424324084857084825129026069156118364320930154937749841500608288162340063238941080058054924999683454826023390560026849198825038127002185621052724108009293486872411413230228110256794471675230446799141291162962895150820545308616915978155327193295716063853001829578819837553372244890990829400249918467866344816419295185760509017838288093559769612835410604795878205619703141925588537351318569345239386187432720666170149072999532613322453933486341325914651466877804403639183757658771340108754334704841453111244973548903475892662586822221604133863372176584624646643387659916778917287869680943005773123262061054263650600084884998667220667452073918039093051646915426563147371846994357240183067680257651165938438572193466600962633145573624505660118946647264781882421912719857792955505614271533928629885160979062848170628350121158717813793841542759094886385541618739521731438505632618104107648212515247307451215027570991618883482356814246523275065244402671576108809943606244859401960792151640771088223987042170279046265898527049585775040356453521997539947081961628679786796582587006035905544685962085814118267807203351489455832346810716782362847329697202850364168277154304004251009287108997258275024436395464521027737243853240765690411790812598944137357308856355475883819926041471078635625034175749856245437209868842415043413849341155337228428247286667999455908621553723047293712346845136045172625610758246509500211468980857053904035677241794934960850547091776625192537720360787478659191318170678611817667617266886327164383486586084399670780173250336949490007648061364272489610244324083900977232885996906489609947097513718903906564282495464779193714867419751256026430511996877336464446589450216953193272966745775345878042359076443812062756261350981044747228912109556539558682786770938785025328216382546303723085143813156396055356916543314238432429098011885025057029630518246448257817481658897059079613804100446014033649088226474494353523556649235651813480820059018277514673937535957591048679505038488214201903969768186226253231470773992417657085145124218846290370344594501731889008918102895593009161601195616513190079265251219120128251540875615921589321534941026434743044216150151437825391946182679052561826960567456688098981732857203435949323756979690204837956002562891276984517600396997747640967893276170124462821166129655946582845762456647229540207795107413804855170801556641679462343002816880382257645963016084944564306291454970220164827703461889861793080480923144045259340254653917077262038245456175600008156433068945306746995207031469751161336624552537467216670848962565366468303684791024857638930098379049201834060454990515216456352855294739317737302185848285546024406755418065648451263550823484704994572315207281251368288837078867313301081781664243344798026221136478056148506351360081859658538605093792788952047325914639686782993248212703621640849938629349656246967741882274581871506545360637766354782048408021018746164019946982543914575854176540107760929704312993161924883204957672471750021971467129967340232949139092868780956744608144642260756833971624725837533809299300987794935874498010469236286392683924260898641051165396282959424437481340060136339876151492210961938037780111422963956764683496665018537810368094654196213400781285542441268054105551429884087810385021247533602320899397467363752637126233123929757329020126630369754868295359489873253524826901506878724159284770541387547126888283753806104210728935816353296939245245893419417213907826089483259718513048610733359134594670394381222210412566915150615964510095004054943980306254854382559891269629620386180491227126138498801568473265582330935219921096152549389674921578132581391831209937513101908554529057951368867238551647441366010916482503847685390738523433620715520977537590086715538868499359431058041165449564912789059315593460395408332997565932487922437822778461793839772790697078685043817848524567461447549143438684589990938438862098563841554302111415609864136251923909760866382404185767240272946182407624613700347580513310581293779165105239504420228786735711579250314851814269916613386340037804004308660758983670189503325485248901393827241666953414591097531063682984920951742113507488706519926255808772411202396463954400933275051469052394486134364628071059974354145639017025613745950056056943915898361842658814332260921342441988820370368066002748347276832181381995353250235467854544984759562453457880337736658882107106557067406535078374553629018066251740492971320923048807675220773041981992813893257825216734501012213422978870715662276717243220065363504689245576141115639151953154750085711574454055555606511142491522647439821063120454740171520965909726175309031468386608930150613172302217505114551807713846046758234963129709923404213396698923360575035600120626256860575825639497370958565296175655359062816427146699932655649299491919172417365724652325686697625519141685831449839913075086641480488357906667744499078326843041860247998256576638478861301977039823072676280515850235693136849425382442517181272700460914607825333096810904325320611027589889011919137069217166279093737657802110925499383474877648140702610849987665531265382053697490353508539848455790073995779348218368018124975338677224245696515898154699550943180751315594831474204197995977093785332745469014342350018244877260480048969703163312315494545998047154228805525314315934982278343879511728373946618571177651588218677695789764277881736284833544064525120037020900973085480444284599277773289722954391005693150022106432766405610565332436791074797039790303783966347193957021501278900326418351411197195485028053360856778015591100050176168678960688585581044334891438917063180457223621784371837305520505402443634673993164579109604871874457268150191361772152569840965343750624880083001757661923083736262008403349897465555516386422369269472864801941054374189565011601155771637990315132251809352928639125148814083966129300583687432092914877518966114509257334228297741713138574028717639766760682968244481841089552744740741518014289963184171032410996212168819311006537017587774450864361089766818125810099372591633670184897163594298628179113460964174062446448903943916646883188646642663455794647994623684615106909768634710988601094479915954431003608831817255150810593291887071368258513023739766860874102295768979456022151595117169071282760183151237998595021570753051674130861648029875779702333425987750536300809883201774451958050234072480928938011113492602494290786720915353222586481841096362787044769872273487577864050623602890266512379141361035887060060237177940701617764312256643447606331464750743751022431246435618056074347933827506074345892580485985452161681441295705429309025253084571868094847869628596570149625941352927738121084056324784105902578475181707185594324941376536543589180740044525247471943959566257785659756287383516805875616659859375423360697912673451170932056940978347762274202538855284891342608706546864106653021265877429166190793640819450915168863268280521745842062107667281873153137279091486808043116694702582664022056730883964052381343891377322570247560763206359472515093838815519781641336815117359370026842342700446235213282853693726746191152105251457778571725809956594116621646562529623087093120891449070190113075410288625149146876231606573559118662371834385550358101099444303550442839081284828953413243847747619069271964080197431631500924598373401178874269677586440755742526103225850026305502638171237861821637798657146344507184333518261694766751771617848907063388055292483094272319132334905477772182923114485582781535128252868411804608779279249191441385379051754621480332403043665223388375041331891179865724589002014869085075689083925909787552427949411111385170698480620096711131825261360950358599975694607902715975768178611555407797191354760748459162957521073784133010702248507944791289650631977854369634516093458543495323025947395797490638458805175560917185043713691974582624608042719137593846388905192530083090706668083608818772343384332365782623732160847929891552589657530529188158854730076956982947606022336527482633879961743918024108122252800337476864196749601992047425979013223499992321820657120349824018126840834445493475150772169550011849905580621714742825627383925274131535102227956711590136961913198796022375581057298571391539214927201588501187520315121540730456930201275184657668376678724952705927891584211817873891936312703957753567858553819964898432771787509420589500797244516043706836988720089393214153608787599352966587602279407337405947214973048177978528711429706169528199868541338905241786594769808155066466605478184250465710171547365729215991740529387314930131656275252077146229823188772950519455688160789232705479879478101292564082164624833002989358737405131902372077910271984189348548746396222322049500462540404602166503113650006193569031189770123114166342820643688936109560567096190376313410394958965111733447052188687935746882750083606900311976959609372015682386811349377278669035272401264736546997699244586880011628389200010323813387712600918272239540070252216107618256668163872607118916737148385859912865036840419063117615717489399374734266921986939457621770970830545424091345225894110920265520704741506026160581547944735350626858156324795291351221343303702398111807279761353845331231716002639304463601808571896525596600434117176717892431334466774920344925639317920152360826521405854483435619877029652449826654833770190110648597649330731837255979981333387755495578135216763691776105658390527299230745725503493688585360800997066760956188458564445154369478292661570385274969714409685076660728361364080040669540938342620739097169140313357926653447133653195629460898437068286454331610825124754890052451330732225726815272527147372169338453220711418359691873507652997349187646574831017829071728991058273504197299216408874147761785016473051087709568754231147042572265831032501897341959202754083551307554509614390457519344163655224250841006487806901328496366124236820166619899360392134540909638669771425132167916212839920395671631835337845358545520946655068425647955385389417820013885261189833493461392046946367824696021972309296716065424263872641175584264693803938536302160598076474023235899458372671923878785475393255020128034964305029736173078918979452404726613119294870947890351731235023605752180305606187578745959000049758325604261240502747037905845741859824519337612102625518563352291729014753929889093480903139202028767572813639100224704819828141000380263395075765982224686723838105504892603716314778387216383861515678384864234567131806861339215376998110719778394861769294204816601739289098147781087064612783081641011941843519227228182195660218123946981382293296886810752724999015850031666439811572154334863437820941173334793782705704109555865143483726354290656823421312207948374075304572722047387896809809163568941946319933843587054500438571597046772684590599149475584959696243851829141922823983185622427544489442889004010976251233680941379635162584068022053146649776125269985398346520254938949550854050467190977124035307054597210774966818360689498845504594930953708856168397416877360802555542244515638124006398047620003085166881484903839233542644433175316452135693804351533961124841533796788395016796619848339835800323329478046511350685298430892452985069059825402812843825315354947030863385531087765448098239192314060205240179990297286677453398114370420990626723658787712176399443424063807841760999487592511934470945513873836060415368792233489078035425818200211755029487001215459942914746293988459057001444656464269423496680823914781016661639837544594500571701593543643676777865890430203604099881690334113900893894956213957371845464425929562746872459136560411045184587967083212723381922404653985386106946271387795143458058222983942275170408620864729558470765812070540251364164945005285303683116513505066029871110589405727830297249836635603744047984466311594732249375732666741700787076478554957488806096654589543771759555461566438598331163412549725839315369463040907562264191242230504312462147818060281769005089228211533204271533194782061676692728452501470069520635536644603385130768153568160891559368130028153682113248502067657094657209043082634378192380811955811088908441749056635382773153360541655380018336005235397446761413063760259997876081571042482248470873146567481521313442242375023878693761975985465129032214240176671814161553635314545966258765354104449315202585128772111906862401115613516413576970050083148544655523179242163209768802086284018204900434715442713671937271077184352138363469506958218514751639975362522906197887223505441543775332854194914100657278551505490974994867351980889834021478277858695081003187402648198207271012268764374299556720404068938560306327325499586679648898272148911180752212374180008847511358190768982133293153454447101602315576026182450225062185772353259942897487859118324006443266010148904183891801210531180584297655232532920347130536588944240068074747259644294319431561181754588261307161248073879239015077616995332867885666062533792303080936153558136189736706542659346243643014713534363751443455819066752717904935633396926205252572635779919650785295017152881637266207846939190087011320257580933334334950381770538990241233992399268474831517052820232762886514502937816021184559020116346060469438422307826388103704285325273013883014140212891144745099847109454312310318300959944255523191564894530260649002687807341956131983701669030433383635646471091337294913795951154120826013851285138791746747047274171048365513541128721171993350095956066871049608018242991298269757056587070654655693329539589959807829538703708385560073193352141841383151115838125640019800574368058108629242740010989276980624207309120207647428332758313094177084394778441915899533310105190638117630038868951111432970640878592399352837723459771310397205170319740178961940699060538514936502002162374994113726411397886925417224591238215176450383520201110751028841591286584253918852963329067067284701016482598669932456892560095263588893146207525319615160733664055092526343543928705154195146077113211314415779164895009855565430926195426347920542333589060120537764731408807021632128636241426269860804406713862887223696517337025838459328285079997106813272054024401306640966726110604737987445156883057532376821228697580165206667933576337817258764432757632623142753376984416083449955182515388655948722760096978668371743606695405601040083937122660882605324265323933688484584982097742477375938687480853657739529723849977812776184258165964852874535674911542977885486754521106492053003512696178865808015006344838162631070316198837646846659288821946079288875365006773755940202188157856711267487647087721383088150179390890653065228725227102945381269172123663780566150103592461088088301211572400358601342522459236900644395034540991170397790931501970164087802625751502281690755637591562497732183316912142898154967623254627433149253668618572905856163285814621085830249626234174864065824282618046522527146890099428540112124480024850627065744509922920022296409479668198513787224427759538723927793996395118310703346295738508257481659118493451588061536971226617200296137744588720743614909874846975763158704927896559288708703977075734012973046439514184821373026378978560260885527241232805858568509259661819288669314041913048485517875838967265859459621133953262515064793029023555085166533697285494626529259573984247316815259029917955754551675998500707475591021090162716592071583223296897130221955602203789865632962212142037464604814916630299425264747360136778399053486282791682288752272262337726835748437818629444732169343381939641727170172535477240222227193322101432371425330934538833794787475334317351040268427088461186715787997663053594817047397063004901563077012058855983652426080683758980580349663868703742432650586412609268643940543049854870020696900666119126798717966869105482573830635503842090650000972648694153868574255569384287985344183078226537549039927651323751428692788747020693351318777713815809563424897037529684522228571336714724457693460519915338704245370046096322767530529745023227810993657260102074709469051214763520472065605303415364124594976776475536807941113266235000709086103035630701071189776220198254811504544735034621960359928426920954695591030646401511481902470075380437837465004772870816030068098998436410171095141944380861511950588420811630034063425485845124746968903798968883972189130414615090571688133361100738094302117291468215902232795085425220792534563639721717429134359622228888062873383477255803463664634301488189511015127066418406980472526948006575001189561796304847222371145772129771184960661002645697337861972853964890985152827804309434848466697819272142023561490606681532250349600676811469407271428160690069281917732812846213944763890751908417397878761566054326224419077946178598224421490115498409046732282948610287237993047514867788160983967689064849566799565410550068461194400229999090607383707419704802092499743653386675680428223446515402929371706913913729882861636010049579787589912057310510894095728436387746807875826328972342249371506921653961915420789377590871728382314788399737555761699715903501118271990456178400542404775950387415875436471396926984406925713011861315797627786196875723170323485310747445241204510843746934572902760376375800222689826938547402110083441706577841892191350272504401086656725875641235053554329823394993179945646873621432190300678317644169398114685863180460673973508663512005577916329047878325044829610375370634703959788997634207118069056200804940217101211310698148635050146987226967784309491627375139338356863500072604285819511612086521586741362246096170020461133656299325223613636323222908700489703945047961005588844393426183709459146007133884338622106827558558075230420924510462753331556404974997934256572165493048770132498799139998603308952339629123692842435821721212368660595247240000135510927284773285833197562261402224228734414626827452950672375747094227048855205501238328884603194530754968585958546757582591459743084562441517330244789146432391540326486952145122301075018168821695937869231771030318677664706877300254240600278850580333091067357765684859270799984241705375910638463661844782275606283046754248951192220277494634983383164038247312177332903099797634621088481308898732628722360395994249998256967248666216111374081041477851899794664874836198745584729516070222422403957568255292974406484707494701671510734125234202047598622486734042424056406933385435847089939086362403864749936740606222347006094067482195625735992864590624459735275060973775446812337654742947836563053454998110801849520981522237085858383034932780731789707928360816026033057740774865572002073786984634104781168290749536350784840233985415335239916623108869746350269567977346745696161376105329519539770190250366577115987676375185951038801144204728862074800574120862249406694125276133995625812957600631052370876377384770371960427006134243364889092657436235362430633620445703221105945727641920211313206778925630152352836144841191318930996325661917466364004778611974725348152083516728596132069473555092083153228276296223973512574886518426544658587465845486694467857739281945504624259911183917347281648153226101897879891226139194198140317702133858661562624626253356088017711008383991371437069044105036263247705948226128394627211787371651185354183945367642946789354605453120365096614503966089525172724094461742089821301733050636997723273170930777801028959328330225261338627070632342102901817119247785531751996341098959666395065364219137374070733029750344033375717634643428252604667640167127089896472537441058462438242554261258535838507614740909876116857442356869401828116341044191263559937544035913140514968860256783196164443270867208797369844079715226307797951978968574458025334518543124255388825175770889684050565623481796554207637151726618237104231529063430010159329972789050619518605333004725953400982328738271211502314648623580976214096285050124289124281897270266311892306465477719843224953865629930541808558312473081790483095282339033023683494460897476592040877445210506491320441121752387407639649128237139593109007679671634906566003563245438396413844714745918717923556429530405173611150451454429353129996869758094981738322786393600993406891950446919040177111668952218637181951462502954656683040746698021971121786000334812530774326926541396040845932270136061784602393186127555107127218541423998031584290388233107372451957910199000946301829774489156639115986917203254731303538810337960679562091437724855096086738657801849796140837982691788043739574634156016439502152475082452022513932590865347935593459752195034959669603789012254316499695369337345490897849867038568836320686037795887377273094608942159798846831194239145669677091745145223895022011251802977436422720125833188777695766619255928608179261395664189668057496004186455044581689639208742639974348605684664989761688164329678938716478397072259126356786286227834601875123458467691171333065548868881026202789873410693054099645761804114323048113224904176170659078461516847190257161094120836203637823139323618128519242625651041640034786303122879935433927988921736385988941526773616292963742721327137695028126514803689360028287661695231803638693794460174678718621099891097372724490490100265623333265871058886913739589539808056507483104815303477194317832591985953463701509125528844767607632587966347819851401048982132080341762009488352136924924788271521464022968013431825100849153103861906577269313957272697136617584148380268955158807078786409485798777604626862415596673762335226460520888139425330212368218867935054187007812088577144261148087571345439870575236566755094150726413801021707608329353889323190507702545533087925464214334105875136794549000346212301138382969276031494275970782385897227742130036747373478713196309646953575727320983726097419413908644136628633897900771126941562434660680110070935323170022799697391450074279223237716667373145623040730686552711773317293699094276530893866603048571135733237360324096396763680281531759582413469891289267797271796972657396116377072852600907966767753413002894751750325417486277078841594778892389999397994293032770903640802911870021239578445817426292386039265113082784805839014167707786243317455793219669923357439975846573534854219303274029156957392003158101380293717405262667787099177965355413502785599271672863665927329263277799252338203932268924962146239084413160874956958095041135108125894655877601579659679876105703958791393110965113962370299958214870963005097341657354144214555798070161725680146902270053544979845053742935815857490025569356854638447923435771660287088156034712044111669797056423595113638560453270992551802981736584731892574144044294883179637124150127768817194464052881700147650298912173749082367330314120426082366947810661090180368289260164915696148666952290651083216206422333316235569002145324174595880542246635662877929462770038574190765198290974169791507039807096146336524557240744326846461580800810287894867836259073490007407400299059245842677813554603408260529761298071055585776564187614267120747864871201255996662195075123318301861940454068731962169918424844742463965973854360754810092651881068351706111757499846213014979613988246301551117472613205658172993697066695134787315935629806878568420184601818298913328921790438502201786915575766554114196097029236129263663563020108931246880682096276909890877322386907945441371924598964377220011008788466469814948077835223519715444768438347190989911620050917148887318756798160401474213847040889580044702720205263803128691511959177649003825525185042224068784003199504800294504623018558368736644258171488211424802745758216131623679652659109808296415024776162451320037162651061669867035629502752939764661375995610999574461308969762647194078966552523481070861591204519089776055623237806363154132207878092414751142863159135239668634230506095676297498595030875098405785434824242272991303636616809752724929473801438510978476036857390381613788743230047916666685286754469485526213423130371511484296623327225306352864352516133441151570805308081920494785280334234386075961867006293212114188373925298793822760019624379747245752699348556051257606916797766680394163986116935234153108269348524760086910590073080994460494042578858280658426129210137777809632026489140361672675316273764627293551249634683820670578501063909953739292650945163819588431119566885170025004385677916430701469059211166851516594591633603249896026631669088257952839840790100459390004519175274597018528405314397302898009226391301910311369066520522365583629943985572742086753099270197884870126062256418688321144934141759921056882088818919296466368043632122944554946273717186847335105226694718019350578197948342770017355821127801386066244192244889588248739359403761222230223238800522560259587985727422684156232323342944312771866525813479475121741391402505125628612635828097374099598911294041733141241016069161834821278183444949580419017597044274411267253457789301492707373791372434586503249456876336264427354540970687477272264933070273039951188713889179904825751438899234422205260955220676530589293366452655213387961061694179885465376850546149772950841887588939003633667545206602997799134997540746804882215908576000377234642691347912690084023379711002310471140422198955864143872760124052276590956189574088762203818233401833540822251070607007336534477803095530578848359478592744566838194595232215754831658984033115316173290985066590970699117754177695503114025476634529300933058706917719577833568316241082796338266896467398885294629844952193332762837913247145917228178082674192189068544193107602587653589170711698621821087283494102038219655777733858804969015949924681055001272400994663351235085937368033685421343332637778946335881606224565052836916908480624914879896125451272701987926127994142515293772941300966813444744469722873939435996786112840707550954692599413425984993938556996426077353529301809539682215494767367684264041652525688433174834452863494350246929541952047894468181077800064530798089576092442527625489015282711734064091291611878530799199113808750383618762167917725265507629055863770279660510750169670998266930850709087178848019922384973424683721136513216515008673505881086122138669221559607550233477881557878526041256192440408114658574181046562712242068777087491898257398895524617135997030846831913600914695870444350581271789997987593705872776055730511055530821687735521626619965381447635935483824047735611413179958335460517695125420156916370472122152385793982660642964075521840627836995439108522767306220622544026302602828009148990678066509990846461316698999995234430852669852241249982373707583260226924251599488315416645294395411381571768327935622046837286183661685380272477623657757016217148307375522675897571098206194748519215601424034258332508370756354425028355275265811457522227784473014725883583821280144324553236102388610835177950300062202229152064604432307377138255526601610151097620237108104518025105049952768152147366056540964458558425389799458754674097472986236106161460589031445893605714928529204496738388692870472660818126452565225000911725206124670953569878802801642209982874471112515940799882545331002482115513581405063121301843145479525542440658243988162756946191228907378777469486170055906269115289655506860735904897281760731213376416010346683593811494923522186337627626847590638109869765589146428987098118739482858587713429557999264196357115603635129819136331845351745232908400647276236415704809913090136270650042839042707933212912018787446808993356708391403049381967931719884781279975190510670670233811217765917665642380885993444462313836158055100352322415415459934158147427781678871021419453351832831687270715068620490905732610883972702030742090336225562710907456001775726682354257071363048313021774115772665587687509385634736568708354011678157130920292890891935774251681241670490192394170462391904785763010843293954566288868017935193781390615200146543413456295339499784863017559842879973717176626850162843288070495661608090956346863537489210365027576473660586586534892806307320637548501564630845392173177215441053257368935998919625350649431090711658320896304665895579116114543673993293204459957293532953889926915078092989763274199258921799825135583918561705142990490804123557048439076476745408614123632241380538073642400428774968593585294011749566502392758999191425603426093521802284763940381713610153400588295762400200510868908601786907380914822097635972205318863723863661846849108856641783023837541744741133358549968548160757564296213036016971057473571525991165128447164860797492169414140002499664972314608352286798779292500396509224549094496472518291918332856133024440962936876453355156445024952831861811197489904255641381477248427905659631062499406323072602060650316179526689864934587046836152518387670658894360389257753270786240232824862705147237180387247677756726132171781231413126317201267256363046187021505343726186874531477710992592335266211054469586013481636500333937020191747106248053261419433845271483632410160494438811891880829153819910026166830776084567232895679362698019232113534889732729096779219144210434390267747004559729990491418862581183606516553370342009441819417302972430596879414148532888591858876087823166273539386082533760714093294719002771588401469344507170912906816728009318323688881004824331064130143989046961812487311213424208214859952066250934032159467129624592831548026383337880461410881505620161219555176420925422422153856398318647068669492752259649891344966187159249788937151399103003828169148104616664258284839135870370994859053236601050004385086491848038464385491884304841035473257329582441703814616720210722985489283652595402099426061933335321082226693550690239125416370065403604269642021863176934640346158034870178049591224154296300282501829402937784581964421242740306071001209253151939968870032974253886251199465449632305492921910843061868176397000276512676616948769463599177223089415938403045531947193803801739739449802098938428932887587146704930539437229123513244314808245857555826534776481237414477470345828786784994129587352205305402502338542903392424249626233453506279862661315240344555879718519896675984521741684138809433158174999419796318903644403235975043496170685862561336696102313995174686967283563255762853083747482489334235137179361726675256621168606152562795014381672940431629798635916246043842118120476794154011458286996066277380318850301609431895387364890797188105817419485960502818761514768845856782970063366401903663968259273824937148566643787060144241639813133871399524585568913931394948534707770198359443703323272187866465934738328676881444002878463792896345984715829481083443818958595117767823775587486760528698499245273240572940633673858444278613095027305711029381068439110817830933781639168747837917014607570015078360129908823933321698422897260097389039599562362591586072475668836042687130543483753125895055432123217608369860461523982474908237143994442202832646420519053041877742717733503783320722788139019124531982582158121329195415184302293555401901615478581087017942814242126023865967142952680607048906274758003501280048858163120099480257866562487057782532516587165606140045964013616813374510381917697282821166262368605900451166485493569417514770002622428179677861085513877139607121070505146541166582410639012175448088124535567768323527463398353737746712641104259477563903970886582576659384088681419226035159351777485617994150466086467703830927758834990763944130049543087760314398258698087712244711724231377670183382076556979715094779820846684725646262723744102923923260726088393668182378872102183134318427381509275768277881729693946983585486010426080719509363362951023152598595350179356362761644492329488935621148872814718858258761162328811077874168707251120767537526850508061389350926313924728754962449592727803190826005693447991484748434300410202177155730373871535994852902705135359827502924500204009534826690923216841283634485336726992974512402872999039547147973438297533497850882479998722905794726475449744653378611832931703140691584016907286377149967090845207704195440952825252328525184035397015193920132894585187326558631260200726146447110144912742566149607681461209030586755458502990154958540697879888633138397431700995513973917226125277312201640214168442928656664151525864152072811730194523038719683759597869847649851583005606370949593443953588970917964641009285653140311327191084943554793328030753249849444792117223828400253391519847165512907876091343790658323242575354681731543123449231865014257190978055425047747266726015755877071531827067051351530962566901768932372942808092910222277551944580414851714672319289733467716709974906821591168617083316569450421966513597578228042117280449268170015592949869598653745295365373150432658022115928207595356628195033108557871364914504998377869274578569826165074887771032881515479905957487928409725425636215987009570207621987562330380785387401453563910512418767269326542661510945148548702757473660309127391309851339918250875913430680242560488366995738183449467383693047232735197128064150812920512824566404103015960184550775793248737467040022840734068791643866157193008411181596094498046711166225352129495874488369691413937541151133963595953701418337789556116384238955288579253379093348499077628977620550109089912512651477810993995291932435930473843701173802140231588355406178405554603665051947087466432464362788342971796053119154994241169430037232158111039934837767216310330801673078542565540164932255642918638320423063978231981968445594120002804033573863984642331617023825480755624907663701828651150443029806432174046034387930853628968601670167683519129532276775129541642446185335998803730219359790452292136461473480276398152782283960415211465412039129900722306441829578231115734114533466014883204601512658232742305559606716694393091668337126477733942299564884256501013306209336264702885874995321272238999135949150894354052599304584203569076529569606097980747775305590517374978967485488994374182187484096779738180044429865348830512240700965058826476399688779156775440681589673904663793157119337502051969614317821820381722014075344590257219129261725451268316902093645782131135602558118734110044579424363903820538654378571084282981729479214844791414888912087659200910698976603030120908604096599382914462371067833941575095082091088307954928765477906317549344312913229403360497906418237525796136446614303447094755277733338933704975124826822272803759169719158686215939008402654743791436629795827431593648986875067427620447524891695168998320113177911818720359083951017524966242637760009250385115292099672167367501109693878129924626819138903648782227691227115174814598081465516652011497284905679301972889522845458511227206010907084703075236146155679117499928790809872283389761819473509969531922507802199484088782325513817609331670032639382611562249103365098986987562480582497696649692648193895773143234667657032334987328604934579880082428339154635567668136882061843327940003703041527768196115733677877890845730229850582758252512206020501298210517303364025216542960431796976197582945391287833795664687882098495043930322615046708461192780455194084216823647893931782237683547304088642369813904945368594917185859621445827655955374481176553191425779364477216964822254156967698897774128672251092080751681569181597010268645445556935678869657165979006230012523646672556505650821970886392826685384964375209638018715868051634781920816315725678655169968082523434427906374647112455888358960347997886774689345245813556841541162778499695337822176853472212062866985705720314999802033501079049399493162210133457677065495387587580666804780971589526190219752690385324753412489831115562572764138993346545349768670889163158474938570319285710341315307881716626293870278688320715575316312676990674408656195078169191122304197570812243681902182811969403672538757358321790485674524777126642263018893242105615348465200862371500755896065212305346868921187948104230510611482477731326652483483209409938773776136590877723072822321980273268381753481072104989997193145765357108776119012021694931303286252409964713490733424466206836027180520683287676244968115899643964778055638859311858669746800178928471782254565787761689486836175293665994561395594249314455492054154626151222028738404237644227480961021009522988206145177029968325672994863811472781759708124061413383860944596060894979486275175980831810628463849662727961221667281005671948360657386552840791202009750561269646832234321072493822154850012033948898737362984458998740723997281017339719029290179258470064811320708900481744266720799673919903486570443950820266871716779784587248569930189544407361097151631391663106682509488517241619273336776946634871056523420230708169142904317050637154255245815295087569851367885209292486359024263465060391142804209452986348887068275887208501691377898165959967713578885747234862031031778869063945623735881503208676900471239967631093937783140964357937360198404648099763237277668331430003944509425537010950005096627512045992066630223232253775251036261317778684198863371521207334998123031542123141376709696099280885969287612723345202855908998312721946774846629405750070274742132824487602138923794622893204690461650271057020515926594334934755965264434313899881418450507065184904667017278626578950638971745552492912180669310437388620258305416916468710408676236506731563103004230778594738145126620062757616825595619546476198810959961352869056520438371653958368879573046560261234783471529066110527314053503398346480374528358048314144276082714045532173052103614404073717660049776358375423970235807931253395456512502985297127266669808073252788916660586865027547863361111431985407895037877937987808007750928462515315231899068428089424648408273067988668112655604783318654326362089504587867877426163136636165392361429148224400062074661309464546246043300136554881297057428156894089266651606282429353215641433796944106221215470510246571932396257152769701854851108306218568273690023548739267248019287382459914294729308826269165703869883915620852953103184382102087407778123055859633287058070899823145249555042931179912768033918731917575989436819340652697285364382938686379879914511381927949710681036056401712805574046673890168072604898414829301601088498541344095525762722640574819065727434735150420915023588188973641546865679075084343197856861383920899186607584747120280512660058833776164336709005208629544843067513471183729066476186669272358042903614269331672711595584315508807980341541498883178912340330717912348974764147534063041189884291321110639750575723545717613718681810535182952293693111203688010207733992801947884202753561264811352544973128951120751058736712909021302871232153128045320775435750585151267924681025065753270250411831319037790510912769013720394171090268063226217831270654057242377064226747988290698955820782102427902291912416734900104900724162134410234392535714978563135786656029276327187773699585394289703876914925623958676584495288276366317550555639773626800384873787370361798359524976903709240932989968936864983560537048155053209060538770305140239746798835320135352044775195251627441609680548172738567797580088146258110889241302942416200009339949707054415000791334367478188318989366533153751936227335445378754512510704743309711754276422951441348607358514846101387999779789763115018702960101845688032481108974027079559228930151310985126594928196910366434524153738496796367114723890186925436601620270279464972592479462256942106206596293785728859261245568127780039322696752793464399199630794910557349254840099888701749927760419350158024182306138983009380380760332123573594308252318988611316801567191690529715865756473260182748803569118211082753057663996911365337332566083123842426723651345938229269691479355858834952659368090962279957855192069416954221766737867880248129236332565762125738725394457791672988604327479333455865870259175987783134687737487342828186161917860932730213372641810071734905476524873013102224486665400667354435628755753074091541679180357510074524211971619887961059740483000536783588735588563248553781448210884724663785826832493569941714537231435421506378884943351728338177464006809258053048885956794618696837752465950037892100036339422317838146586160956645916441087946178400679987141963346756622398368782185492305185516923460650501821778422429225256277142131606337860539366361515048690779968399327618602945699985121812488187106045119820071240813541338514355234479603421934639202203409386529163273796044017635231221000544068408586843428773998799846419098664286123303499656939972590036274120537741642340264291867200653991975245784670751911563423289206613690354065803487530541022369369873473252936971236568803399502564748791676044146685101892680004683239919324518242798727299861751204083874130853445641407411075525553309439045237675612858062300733093206394944591391162723519626673584051781298555918349416292375162039656145564452673522941573031316735769970733590251733652317295390505733402222537324208421662603633580458564536663481214960886171248483073504949361962126797949744901005211573373721179873323074418728191744247492307294469005235224200575174825052197994831105448181504673940616472135743475547855213470236230965106810326638716595826700809636028746346259991350083681903267693141821016749988307388926722138348395819546201020550473117819842213547966391006566836512498910302544195133043148795750999010062333995889040110448551183704209470497814663444115365520892049808558106939684475979887008465255256233010049493121921613803340982159216439922970732119394849335596850921313356528522897321380487081833849531770824220460978523863590839561405465961722820185614226127783576955036890198027333018626244990450576799351688804409501901280045085759756293350410403648959255913383721064038253955560648526929821110104152183663202310227629154290719760605592481942920060174943070935391682848348148892412676367375953752073348345154243240030473024955188034732784109585312298671911018780520384922199937826235700294722104071684714320488824590212163959623553994344103087953589828080920265573726064850296175649738633546181348123351068109668160756379464925454502998860963917665059435540827761884622385019785630158338348676847552698566259380350298297041666239776851253655533873941190959088614450448457734588305596613897883509478712500273058913255727604885854740055139400386123159621065416013494610849938037202130012151174210446502994803632762322923960122037635651926331174396966846584160468533354891881399228428701239080369532021931296418622239602794439945669280337013597717131844210743519109471725923162837029403204230047120421234046435149515084552359714600257628919512638454745282953073489122746013478120840558970697569783515309623722398900448161665723651824374682869250132294821185024980135390292796814015150274188603921330497160816712023163810028463957432924295778672360856277728138843087857305122582438436489813122344294539550014597276874798599466433849379980056154137582729658332696414728028350682901333191895099805705586092717958974605380362358846207383258664277351289461648291792552272484619636537130575011719738421552605578562651255613889458288040722865548419856741028548972739304897474597984616873513554397600182079635779879884502310056171110049829123683636059279071406214473683881962995499223079677316407075140603082954459156069442953030287967423001348825289086137769673964438948220088886824510650550386418975303173283811402531239008348706549716756501326852322055661743285997242378869747756420866996516096247117271678229093358468214449663251263630526302714616351044525453422008348056926492590351473160264977600405475139901956505535337709099796524863551539220952495099458244918932334124442722024755888013795818204837738970207206461416353434477850248580976086742110778776668886258410087706076359689574653961515017556785313021460919084825988806750661971544294766880637949830183576354259171292362874256425832530315389938442709642072975883946448914741672283056424368917775809631255957644616967876912102665384803441757462158478769505753495095078133194323526071494023240128902637581488517360452918678757893281259412722108516092584728902967195007367271288923298212086836122418100099085975276436107968610940858236795506385491603928395432246955900063929142791183456752469721874668841921743395328583796183791896207320800415719394623400285143028496244353805151113310524458764581414459887394412878172116861248418690207666143773805793951150972200204870694700641309750182376756736135422827864420671112218878256551185051111957723253545996038859941000785125555432338331941703372205691487002559569880377729901918192751071724907244623916829600446666262690411609583980918539302486952524068032057459126578742660468042113794507590187055233152482567985585828199239533481686365351448342687307093325433298447346333778094368029514103701887852678790507518626578969299724566901466039482993977448177832047243927869485462028142346536632929861765806232711151974792355312855483728426852733223727650300503239610498699993392424032297138914921858579806224289754021891012665747354613761429422431931469261521783010846395703153870542553432815910465381311951810103402660563094191770403764919801515400216069585409756688908819783616152746896301803588990818073546860378085738817452041238970203218160097299486478760204687234754214412832027753364558672428773084759467367421866322280936982916754899409095463941305396526046956213956095170916420482644709325171702971953126309493761687660574083620216002515100615811749659790376306850898454392911388954830189490144444254015261127535536461161223475696452775894741464918948985682543361810764730434393697539464577555416415797959625023640570362266690984052385317850990069508095898549862561843988474615096006311414445041614697933057984155964243999441613746715994109532189650443255178301671972251252406090765514704588325909987830566437871298556500719958688566103133680951152947739145751184245842396087401005589605972180746975470323871132551433290164875709370188276116276649049116632862403983773238707254797895518555402236151335548419748980926336797515308343948043465046756038372932006575765597696013250576409454864122942451430717528056129353938767680049402508605124230987341609687421679634657456597603503755289612031100177673858318328668407425369887277653126184793335132114509546527772066857141245633487972321357620704809459263620508432054128327726856675737003597296820363479360330229206611784204766061242628805522763123838797621483010946438679573014719330740502941300538760091523467366393122284863927670843145190324599648581719953044372216978691991594939162808989252396553771261858639556332638571042889720632280117973223187591918222954471840709642262028336637412422976614545806595966427640551701893729468712719928218319394815560695661969317118312921674678485642558787713905489672513853142383074714692727055428252949794955471932475802781345286729566071761646970021396023635981353608168138232137341305238760173691774534058463713972336182636916922379056160188472418205431945503025565720340448192450756737777409173922415988282832664125916082887707004292865438813912997753344646008577457960188716629061164123907530718418982635922389327681736589816544691370165372999146956026147208253490489662894073400201105517914013574569056151308699176927164175133167766457243376579568567480392671241925840182667551871416603357575012606773213800255397944846772723349108480833966131202922777337552241293128879545133138203287792106148264167627222943811552054509076340857561253657394861089504197962720612061248579086554450074694807579835060820587997776232010598818350607420192243405337642342216650475024772404221178932386991510965087994109038232020674182016051532012415544725753422919213299207490090883211878826116619456288338152185777876536868756607508311702287780003763204211660648939631528658907640664135962222539711004522167730424430932181821258248195268786311147572302329296948085954934913750518809496186678882568208602526678262711128047305123135352947567367180712700053708433161680094585847025977757108978209564304433533566147958182244905586948492980796602841653899105053196472124494198352145753001043047146085835783441903546803447494699342950757357178851095755955449264514741373827130802602316135574717287590416301231085510630253264519533562683523198986720703983516163626904745184711714265228231006635288264431490110556587452135462503069132903232100091801854811296436713615126390708649631141809878320934031795910381653406930791004625588403206803279739257860577820097283675264312200537440065461255006735926646815910187676338452001717224338355575822759244079742134263489472795647651070518595387420809629738498296789190090893634100281976128405911511196829307871726422587866438975476577772999884075588406050593789079490527338600217186257951430848677502027265727166189391423480598032256834703423729061945426396282278112832579875551295551301091115720802302878888207186793751312559535620157070625438685535115495877808445573163419453843590581783873490817589111337134580143762188084879654507760612573140196166535228238823078356093206108373289506294065761142831647830689799570199315309280126351493839660705119915818266533095133708292946764857940686468253449868335953300037155192041424536275059198111259044585122769395537367343262014215048774211526333870373137773521409022505947857313568643384696708043331105867635174243174304327037329525652355125633310090037431527986035820551149445416821419403573366034202908049931428512267171411551248234662722574786519762936379804023182941510767772571872318581530720873779489046529487279319586473817393163885188738942094467373246336194189572611721702197510674617880458936428208676868493083286541738593988373036456379315854997070954920333408917027684377506881629828997520910461944107929016490205948850442812038894027069374335173826660323292408745614530894625117241212794663188852486830209867179477466653770028570561655026872028756709664487588482224314264846420844680322595386850069283838298417170663685980856107470021681859515297194458792019631683651873518076300430848118198024283858644151508759634792434634104459785166962739673484865543878145050742429032371904334008206429837107325877295596567457389249804780756119510381274587041315535699539711608713010927359829290870087925762900575211171271949765280311467708193062588955431367365638500263045378339347534556113820757064820684940107995331951692201887103457806344054321471632915602300166943021626112077400442080087129342834281899162472043159608730363644452465108621774100272659865558000370310886773361810389590327313208929727437995553018671046274555316495272432547299785182929863285283529441482858827482192435418918386428868484280048257204807795970168682275434352248479701770205863573010579582507289553872788537243151925982174900113102809679487927736555999694997932209733957700393425003318069356488904670294045564801535946788950334732942290303555576543797916146341580532518096385798858451350358559753802038951517332224344856254229565580971145656393926257238869293401169967967029849892744829448263620551404550009159575379705741739011856779676700694299777462867705100415323776432238347628480267405333640386814701039809880135598049532880213065823434000054923921595733577870159934061500768574353665503510676816358618438237852254160572784919640220537058065220538285847879821885400289084838930541450710923519716285786574973218789598541515403736710101735934727349946009771368672280722507095461887655223569597184516626559971437306349748296499670954725744134797535960768796489577079808276528500700162144892076972731045443990368233194645655734965673303099447372353884921264349814599365335953447339014534620861304050638016453604429834086833319698972961803788455299956757931483119403113144364729195037879448537992350439423257507334107353936767528519868519803872162917803504545241159041999480180354562778651709313873712753039048480801183765336150590873770466761754344257404475025195087217604917327860261163358074339728859129456849765001772912577980929444239555633985900526071315158090675844897013181942401665734581763900811294492143906260864354880073443273750995195560027290831781785706763044468378664170236261209706386762898290686775395769130452541847996844199875873723450197471805563256726340357153443262679929903051749449888122335838677237980568891097063120675836832509541511597609238992807189999083362165425238438769595049345959698335238426272823969600683961057839937643573731658449160600990144047237712835894061774491637123890390176912598476917178149398824641330154757858673117923053823080060574916263003109307909297942500887524910239377880710198822293222601468339782574854584286397191833263738402452791232819081127209244376310948781600378633577841534657778957200197246456624946025067907070871964333577822179067860932739103716292869170519336013945629593979991051704440670069671300812824174468545347624167514116489952577491526923962641597593975168071489736746980523126457434568450570739855399733354589224610893523302122902195152431794841091126348389193499422950566862086155673669489458381089897302007591633719213869249018146665667284083238076344966534716016221557407345489410124393563592495910997484672224935526922231257579541332601248814881315872236116700820291904044709779809446916186478017312523182426244941731945510634741577095884085466453943990964731546872839091910597751819809672046438425221978194807749556317109891368939423295049162666584315976206391407430910069795780215421783445738710722235528896036052311009237900053041674886895640466795158175709595625130232301077849397234870196619854712009423191609031267656651075173493692216764963076862344705506506664971622866495376661200073989063392854822805927434423726234723460517938583409961809916370436789118027757860565973715791248590853490909962395898792513767048651325773670957220600038613136200921429412912194813345238552805576677934235743095194662283932385146932599029981465740909331793782073592007553082398511408208739123219411688716085735559223453948334802729308116312699705735712182902560517570001138913523695832273621923006372603459266106916585248922450422989456191256728748639483712690285543197153596565223102660107010003616838578619113097780407092918411478547903180268337364276883899048678966356113631703717456690194351599444288943394005653312923357625468638885964654197821625591338839425965361837547047675743370580691867672535925448244869618246968954435168682726512967731562239548841728347701326446557715903164315500890135817464697402417683638951591179088520622232920896899009522256663130498778476085092911591550543775807914213709518883679407948880975677753330712277868606520031584564354815116452655444550148561306234991830986252339220880421392464377487920090212129039875202389413579753357461289801577325392340074423169388826828937213964127915137750033477383670011665852533972213622562936366464541623719189344891769421039070496494428974693546375448425219636470850844954446077883924968423648491196155368110516558092677023296983712746851703390536796040371665463653435292797869953820252742957845091609472692375974081704467770482696798149583588594587243232721504398579410429934805314161052668915705382643752733079498379244771896561359888250937648771613605594024458934770789660865399296723405938432776768449061628972081140696082921859843866869091213264122729617149287816251139877632758876877192914096616561315157335520637065421558730977033929332545596938805376013999463624276289637331390365372203290579267689617712450475623148595780989077250748864338131517319681836324465544839305862587496897553407322090334816577615387180941787619578930970083804151320277173765269576028655235022381043238702025764208923480363939038770954580100257019734721669401873752806746044761953641746848097836907816319119695766836187259906344090389366346759908497085160691197114986229785050196266444676291703899072001524251740284223375088450443249707179758585275597327594556581457658363245904398599876469515464319271747703579560117142084589077639836851497179234978900201062770336441320524063037861469355970845628367638267892083230180700918287252725786546362356348519408504729159309255166356030290591876174739761616086790742000893913058922974327449724471935456306071533033833305949760737448367814701388286560126268455453183647670923487244050416022268723990320212365069843593826327117138550175870118738992094548085848467468244028316542713584357658982657064646655990208445940055104288722647301592378500689111122087686067062353715654590854292248510001442375997507961697911324429733212750531320076457917415884401643129876602966637721031172224067331082228694053788170744682296115656734995896143571866284955381964577188135427974281401839416250189658266901971857173433382230684842949411751732221016440772195179433072900915814695687598988549777964514476734056063454609982131438353294123320134203259941131957801576852333277156806992054280378391268089172596428805618511466110096571607626666820876658073503496143556377974580885201722169454753161356715978860488426091123081992371352297945651310320063187643516753199007563236103620727167313330206350634621854429201818465793304417623985414790058298016405925552140952404021290484648204832362005467166027466722007757350682459078267376041004511983770711502495953409715214914536269213633074118565660961507061001460260132560519322730153482072219990813632596117266780328542964529637489129729197956444422289565470200974450093836576925971905402815914786361707892485669331897492351064653862117793884792136909458503174915712405656052659025380786860370557617963891614594074815149475349025263874210612095046311892476882900447086421755305046518169474289805190217577755053577256256715711062662725227856122524658408354229163732252578785710723187158772297983889257288537158936120858194832776699385811313591475223961342630857064098495077366584968218444264503636532040463541775720247613928708869557350710087242375098341892792934864065472856966156994576093691403622189836723198808622041828883057049200636327493700236990314621163110581110158221066272855219917141188378211972001333848972558959017219660919691517443472085526383457314922092790861984152142522424147995137852050765039507560610063716110742714310229877218221584475875304252146529996176127685357922076770719425877520579715958526396979210666444357462979152573546477040711907941683810464099492393096057477531197325082238551401615669959590273328328626220525830828917252762191749336059106296285510219516916116077055948720190445934968695842559741452153209207194684229391310352600346424236291185269339688324035189988827787146445924207878085010134785257063822658146743114674025625435466246910048058669724533461617628894680940453011534172251091105939386675559438308328580410798495808452925362111284854493270687895721378462979351337393604490819106293955699075045099541927972542629969793782462484231595413473862368370924870809573299402915788404275231335713481020902273331893414799908470890720085518902684947900522267460406687780172759218281795962533291253983691201716219742590152294818554289910241328534760850914697693478073528904567762214283115866709523057608632754770131532536064433039722319346039587483481232889800419869598596487689999480393482151612478630760328821341513510018599151653801959412206651639407328317655076859902558520961695390461133532945879349925662881359086515280147779522452519957694889650736144667192522091811658226076314978204151678617183470206039565282362552027986279512464019499237370695443811623067368906258044674635990665779971984365373479389477322436674625526260017656493997290893691740815781539925542018092148407859330887738267892016571904713036570252079829161359453961863006861789716307103280279385690325703529311335612194571135693206546103734361833145570651514624967379195654559486272141549555665583258806296152524014205535134355611865898775193858975470047657838263914183548284868700693007261956132916258502597058505204617386756136220183728297040912788924063717198602101980670928007829553817874516042057650625411246869086937781709247638936530006313889476979081787661437863133028725162643956479480243632369363932887014448165346293640103091898425933500113902286782086755577686851566676225153255406545863169565129398748215541613929505318213543471241509194108023045544142320336353032103403979652452153245705907531743541484916145171834765836819189771135985196480577741261029122619110643323829961931593785322968728365470720017844446890428531630867473468642614090045169236111990410922268494374568063382616929776518601237376426466499871412520148440819166307015368167626081622456432939235118591588073238960571720756551402711619229569052921042880736602817008920744140515950631804939156293109322728921122984699031008767370028727450459920368801896730120113347934629729083052273849385547192307308385146410387339516154522241697451034612179005876411214299835353961324899104081419898830570333302549235755124474780436377351545656745658895461779553515518067636544731216650365778727386958895313254517091586855405925824614538003942490008814842846372177820166358777309672036627566499961406679931387348120768663324857151241796810650206097275761832924571618500162406041289638632852239149702315334016524204338674775096228171915283459612806062021889521909034048240890943658102708049479548086197372490379562465410523962132204207968226330481622159613915071960727844739936790715188252160594343255032294108282416737568443032915687363469680971569964269343888778700772942620887267997688816063366864197444638649153740050333276525559849853996685738524609481085387722038401356134339348018609092245628260698382881449029032377889458226946727194304217747158570905980310395388784576519363536992411266314917810986852380723486530583847730951425600533427031449501411915860056781299847264034410903606534252137588293633298207535825339628048615737619072517924189659420283314151736666342323326228457051811730030041234191210386788108104750256421893672020468444103369932819314562794088525130518975537599553693151012294446579375118360376083529664391645336451900972865737831879608728652868720705208807631204576172981651284438786036464862451336664750787554369406641994420945480536657157301134950447226636280992199418504644449456547400829604059004309720276926285337739470939522658196296956234601722873911512001487381401407085353379836705306800711044173397066491736591034024787868725049502020687790542515276289563778365911302102083565326979636774431557437132539918022910570086558717271268754934554690161232826471986957413193726052771338655397613195667253517845003646264822694029182798054361822627798486371204522069752774623696715607208317903978596112089658766808522473946528407515867448379141556450033936612067514338313871486802563928446763048160782200962205749293034708519854682205660836704380649872862725287388233105610219650877579656981788387950368763145606079846228925057219033571758649483803236985342825054127431068005898086851097450363069512710667193548648025116544134967766667068407074172598620048779290210923861646647988452839746362568802460562962930774208902161791953797509417675038842954636656600651240738515144086053281309521135542072480375713954896479591406240859077532062961745546336860655306486371077296801959598834300931712552461310795610135139537691483374063969603275367214814817492942535997771370461802384526543770629777657217643521025035500881966461373874890609429768366721874430638845449266163149633133584484673827320891980333150067002943881944564247264733818226462520438019134986232189562851956521079629599540582835584830769742838721060909193200730666724796634745722098597470879732868928712035062067128487279873105040450741598975567768366063733240683027208732495612943008919230152381035692611936959967315491381792853885351107030133340372079673566913685838829860749307105808580290527785271502717654082489568089206718170598915895795003445513106135100312792944227893861811262103462250965198467277810349761397428108967586366184630745344727093741982768509195132014354614610708863489942353748157511515703621941779735264567592359449493975271443249057064650271263437827011646299491429894089895105498179298627462223978625455740342717938290241639848828752805685453774658216891765976900273502148487722746995350171802216836864836759759015597841460329641381616238483775593292378153991492971594086204276576256236401976550434488239288001209553465317977885776462032122214007589003423113192818006941503306689860288301791686284810230622040630601223423040627653795607851572202941438518781875810298525139165561029596420178101823464610821456082010685927304919788780072201135273948551624509123911300747580907908673402743876785493895099609832272331670619103824548506239238790671620955643965930031808040956413955209200585114267533339868920435641565111101890074046493247044960184479262371206571428919969666659351937855646953498325321339742886584599154089431293730705662321808785332279384436593784528205672279911201894820421984668841093760300917659528974174757704733470379844607853004433908928960789291028949272715502090782250761944605819499157755978075172961842944318204464216794725452876304387643104461560383396297651838519417399935242801675054770947762418482763470889144605515585734191386228475114024001348577054592848482917375265918761121161994819828975541749486841440956423621071183278294737575413957368414887957035570938188371911756816305773756868878268498671781932356236918045978074955529097603960737949976216323730432025772967349983776985328013760337313958599105658142057059725478952114546685880174303080467377163692496639262901740490916491262949863073676404527866883543511677365418066050140226727996095948582920621273299302924529798764818998977907924090255245050833829424538044840667325308447429360806728689452589985859905535886854616320597196814282598487021611765911072178828764965748083994403909881071302443935331421539707377922501396888426253660155993948955800254793889684562494813859322541651683833851390016858127607292170286916582735862143508615190087275309691773159524211235773052024754295475253962449103824356084778067054607445585006330893324305732489640726740866838239835707960834518552650420831769121640469871876026834063093804159180148277325423326125841869653023320620897054056670583002456806323967314739059905371508267063126395391682402892750422241761269583853236683135015949713946556816233107278337506654899471242066058724151804212754004181461172124785925036052206420618212737886007369743380025079880184076773126607360374101849150734861965025261180125583877856714136302123344702173595544573243698204701099976987615534136212474956464176575572155525794593755822766166513906219382940430426183597742464936977547055235791423136620712604220086347141274558784948773689161592173994768729071510285819656513896758362761885256373668489429903693235709477284740089853280202733138453482081949719490474901974683612242265063638623177483629117917789101038334384265672242080989560571181954465170370743004825277129015844692862106805417907842020715598214047707965299720081743926232493405291865374121191612087263964243830285414556738198231343377260165855787531883820295099215048740511364698939094808799148510031467213584971452626301613813558180611827710136218812445797306747477642495330118474931065549021431066465229925210732365389990052724646862352469080665676144180618604124790253153861614730442299280344515918803789667731549064093921590415449026080096994358884742214979421681130950695428817384012626800947850147682474155784657885016445291862506448610565217715131220216462801593765665540626451745274223417991849890687233105207817007267645813948951030105783351243714184011654731963213857927205046926727018890910198340426124386234426997525982618896935309601751253709857510540088807309282486805084985191187940854852945205247090699776758528945356637505781717460781598717434011544857864759571020531185840186864762981718492093764241294863016603425847243347954499958621695939684713550029499617250175135332583964754095392278867588188027684487681885956645590221199110389746876048130341534120372607027716591615468390528948728338863966827959515429557632348016107168759092837872679210281806533427194129044476960426504012455615680421061174957997214628118406667435640014674221288193846632260492736698303770018334760611405989194031167996905117212054546016147879744894220387634687919622494375823597015774364756135298602613158437661535739400682080050660336323076005714730387147367021840164919022604602754516519576513650576438242051981932647421320123481848325312431939823892061991168795602543499654399815358781730150419465693147837832403748464278581111620133639976456270435437924651226139233266473413712924066032884228532506136277481068796165679887525949816010994722128027180155495097416892891352408940327337002540147242783545508147531073796100711702713027908598375747254335530810842897599859844441843615904954647576636806622625489408047984660120249770384666580981760865554138899639172482274112017077065427824803297033110834426117829366276074289135198020518084859944595112037145734652237448888469954916933726672098473709039141874989444908084035437968774370945882090353947551820320331925994872586200884065431963147324963403914013664357472111557675014348329122813156115864316252173303863523029079546422571500073800008036318954275917800172167883185357542226735980667429157436804818320200638583013484564404493138121044678544639857057859214079367702903458729941011344955046623990824978435266371573655694437201075282077675567553067532606201802351964739510451757651906188770056452283796696896434666035785399876833995679333345474485606110707039312929664205218103412169367159679313002751564022381455307960551806064774782912222257754030363197379377598109320710870362165539353687151416967585964527322521824357824929421590280401209919607882532366674975983237510877013307842631536044616161323597378898844066574112737691454818146654851918158854046942847708940473013256480082845424617936483734978796764483216980860967734963336311817308924348174140903374604859633319558401727352103800392617779727132177735712177373198908991683186488533405977118025516183735679192055091499166388745963169048505012225492791462230374561796555143262243785314154742232801690399388008956093548162828091040970203103793195949026501472042391681118428688715117558617673859415593895908290054652158019518244733313357151633472610691548973184244904215306729642595768518468435639222676155445388623909128689975015546865266265336369741348767528754782551968178261489684114573816906998749481509820040889521394001667779247542309932564918368966871163334949662415481170291677075678401649669979551001786920816368694481727781514310861873879943310377765555837683415546931367600712179228429350923608733295818694583701310658049470748699555720293842507814255411295910184732362290551817565182491443353150842465797712721711223651403561088766471107337681364175017102670415840807840404015483096009687266729230499737884290907245344069076128902119350725311959496424420614641662559887620274419963342457368627110413220727626312287795987801532162218541893416023780340476434684625200320377132957147376054698282885755198668912844656084351418121157213535232178070528033291251914057691061097851805184919617228465853259341777670094561270300073374973225155982402978512371581792119122906852421339849551269178161851259377131781372871420780754223931839637422849899260531915516455780343700491633456738521200440039545817212029971649070216355310967586009985482585311301069222868781671179660480716266140193776740325681825675450306738201868284368903829044230426803620638122089180842149833502519627527627981982995363208808782853333234203986546717706531665147271353532826967703251165086272049338850006478292062671086011851163085041969143501967023232625929239571632544763850307299511082104030945412562332305697524650061575758574660813891199279594261008824454653299443025571375758096928681669090436163315738840665112832472878993213920351472728569564174748229895409081585431206080104949339591696540504508202776679625840564281450703664248260278937925840594067360275017886994092021748681852205438779481399504535157802317519180819365995943691300078062539253397593220500758713931093274785939137718230549209982669795333086386011369619008043793210011890202549450827607647799003663978673879594589444279875933125597102845271929252255707102618433160437867088553657138446205343665326192935303423970546821510704654566021150703448730337461766958415906062131642112024495109937852879413977410385481060159741222503353419525680167907857089136201907518222501757807669492462863062980039204948869538027567093056760878139061230389572674911112720772375703550719513289385861806697691872735960712757732312030964996058775135131871576382975093209924772029521023394793038023448099243162193191433497993370707726146078204581627835479610912364739981279317976310001572820012275762119594463085822067257921362677737456337947435708438043857116724934151583350645295109268948454116666780007781408817042338918666001356311575812617754097309944897014789342039924329392348074783816364850099524220957282361399984934183138223742962921124603393127107639150987604486399294411822387531985571811628067228608153955892047690303651094908374055789309731468641300870862933593842861779216625110654188983488686489603068563492552878897486062783304342286701782138368294795388727542453852439990975242387744975027011629153672030884763565164186615479008406080145482408453171677929005801091040795009982894612136648033060599872302031094266310539435565584323484169867164156426614038463488380620516886686567021143742549595313611982094537756982940147532566119514823923195743654589358574611181964683022807220253296770257769255653807623504642090081601043654318596264016356551358904098657051477762552164425286453413755617061597742680218921571847536492497151361556891262359696701852337272699795796757345317199871078730246110532937296182854438038002104628243060244824246078894789816461481879370536352458308621458259567049310363630314377103580076063890936571427843957454713949962542462219773582889972367147529830920796745834035447125007075541968601838012017358861017956532905976492848940148595383003693732374011263826525862432925410067192725199890830455268361462334071303186690281465069904108173152479071376468620914983689658892044556790410259095514816614234699441371099198542502340853866913652335539338735017041915658798788637982270426465815036064509014639644720998382313566540671984084219080854423785040905554629749366458452247787894547310085358096534295645770151749410904412611311054134887856179562692193083443804092359376528499818152526583754325404311908708338038696969843886706377319406333032887889606079412503255431151215777463542029865820604427691014424652030192842549633918028724901308039389496847822760511853737203525725638670634767240102695174187519214914735764043255024135770002090287200062136623138092536995943395365855173300277590566048748695856903696244453271301025597261034034484792711346303752579363132980124590098454784568747229320708433978997087069083625362031726169650245774899186089893238889448739054967933238647080577510027689789364899296911036772547938875305062330959673087230563996128400112074798475034586572400320296745452224700188311446292008063824941489338263114931400456844310488808109682859360789916816701443078679587588769801908349635441265411521504770832870992290198848902330488935639312835792533611886338112361489782318284586052684019292780206200985348963958637905906156435191367665205876009841578972641186647782186593557846132224697639987540843958570660765867049565698862605708376546664516875198734823990041928967237066092126237047782537083058341214405531879249579185965766811094439479190476117581918681474044232413249462684701047072130651126899061533539250695238245282309363476741740371292212125462647613344182642684313482207174353118043813207463419565971484505159218119354552915139967067785082598952465019641962893902532729793396107229761496267694784226098206170031270513829104236390149546819818869842392732408773169143715235249936218595322405054946135099465191456122974366347870288402693250202626731373213807241274340209502402133756207508995811670125358843931684943280098881439423183611561403181170994110783667389437262146716140426549479100560905749023087963713562024609929808183462810579905405251167949986159489013309009016244021987576789053997830071856780166194595818558376428441229460007296284336596034220580881259394516394677859324804930217218919494904662552045983981231700756624255043387546336054764993175087328821398298951610967622615533677949714574724593622166146744609875935431226318955874659372526972699568789076204430893974912644440429372558127109895631832541123679791119819999685649326893120118268783734315601192292033016603104730434771161204918463680981306864980827101951682475375790902497047076635065453862082435838864659803138313819074269425058922710390255307441815854666300289182828193463192155153373827629301085413531755556567620848083233007004656775011374182075200311715576726575216569013481324427068243742336978605050902349684450919856867034330770986468478048144823327551330983340072061340371006022310362002468955657046474279421694214686619480429926258715946616440666354211070357880575862584545215628962550417386178799813809517227784328267840452198646816991223511761095930182353343074001142665295047666853899035593541726250454558036342865491659906575512303259550795405183878216187596307599297912312994568394545568799521818399453194573035024176714824647427193752465566533659902858591672831238674002899783242812028025845327957289698161150534816611282249735623083263547943351318122586580626198201216975396879849939007529084882704151993542603195704549484302311640932949246883687819865647230597491068159189309811578875862951324003127691203871828874485340951799383918650477343371193210831844218933785946103997413826490982499256267409473056181437738289448874330102991064933280166909936516233023824430613327757720779387623905467873976102365702001771296353993745383403236498007907089716081272713318706984991811914878904426651010961852192040566811635609299833552999891207364276831324512818102780435290446562933875424147902604589287961847922999024523761934118870810013129894864919208020045564483381727974000373598754615443937366151902779445361670097940721472984545905048198544947702353414226202629019927021507043262857583618501227578104676318262644806380661491319940136271952964559293883716869146542101206575023800577416049787321659677094042717566472928844402060511408483343545368459352053298457823414474763811853427316700460937106029182850600332843865681660194910381081181844373637053294647890144275268813420927501006791623944020419989442453967340733078306583686559695328069169305374557935424261096892094350802231182308505129619994337579449096062884198192869487954120546742941002605115276817430643982750627002724276879636918669342144655211611457457686996386788257014392636915015604325797297673166073141643018820919795841433177190006249925383043227023113417505343366731396050948442582881261904948675337802702974663108024839825303975233884554287301395596922592318319143134387916808698148434950262414007375558348873596478065718444402643815549418112140568806474905774619315401621199652227102877320449457145209059855016276126217958747230217857701107019161632141057332510399885323695000063214187674446897180699431986083190153991953140137743434315347535932976301748088355404738859140107616527422435832525867416775622540570100214155710660736341304629034155125557086685030949021960404146296470056268516900623218945931428712976209832818869264428316729463185448149646767045183936388947895469256699850562631780329289217772996550804639541582401502945738141765991967453565258458927693477520620812500076888807711644405172353858590602778947917331174083678672421527339407551518542997492769398985194078493448570146935073054526339855676077194980179763499137789043781861118817929945295106890433124104574342619841524664444679504060169822614346573283552781070161396086676738692597506092118206018083026355499950038255551837780075851251162239313027361578862402082275677323732438826730001637233785234049297149012937815767094427818332019449736706914507893568519078657974000976603413326888067487279208004373882242494841263453414835954896936389707227284523551099201761083323870278636750347152852637203471523958395718165970811698469872951616646275587417325227789351407315551041152505395686871072149703579677008462095157826160516864071789532949290619350941412841017729530704991379534070815954224518371882083505094307581751614639857450771920597465177633461282679715146854376093266543696100374730598110010747424926517685592129404289246450862044854919294468601714872979914826218519815624303149448702659718970143131893380083772790654169915211778391038306843593611612948899438074718323643711985501092770426805556941114982292113079923352292297283690376289187270540074551885167100855576383597875882947102496687369263439760736890747998599820811013251699767359972483185883897215423242237114660378531648627396363704496886490599612962569885177043151707341751659113499301135169465361683382949888354751583963608094004719033134872350140228402407651438927275086213585540010951787489323036174411554375222297600904737744402141004514357532103972760194953647832838084548284708167377991146601158456532119995442117005124406386202883608828855235606489202332197123381942985538491983100234960101844506506118152456406609545750158714802158885628061193136455715100151344238840980389469057324083444056380851534075718674022890221118117048075472530173140360858396614877466956032512497039691762550047022112878023034527860870925456867963172490118732681976515754737946965305312719033950390464560962121871752817794359968611049615511714007994746337039233962361203834799659359647345322747347090385193518912029743039944489865498368798698443301828392621461045190783105337198408726891560648456909791861787460554361114301026338845681747484457970787507155657471042497381323766436690357701375570500905391142234887739408634045720606387950620988910692994042194570033274406428976868838802845030808468773149782810411640589635760193701906130278941014847831576712998171287935602881048103054627824917058041900162505356655566358264715763785842963331210674844615713416055519952998500005171306173819248897075148020729878217189012826536801726178284880265737950518728309528291611396459040122878784280124343349185340948141960671902042811895102110342152837422665292373007633659187573880667197853441082703918242323141436416920358748050187241159139534025194508320328408111845998261529816981598012815806906276062466606313807948541066784171303773685007441066869909740867889781085196547554955441526374365419607672694129863690528678532125924665843063523377438795114792523257340198054043849190015523465228315754158169287209503948489466172216929960971002139032767745975617648283396491103643862254103569725959714753024442986750092438266706857382729267426089818893334309473079597952559019581903312878913077090018240703261724019342136544350125762432386530631232067860056164554673077129272483232113635861838824867414184330686332620137545459479153429885671909294743035493409579297786207024515188049335307721787869153617241847340822032553310497879455006812770349815382465012541693225864180902152021653916911763481679244948155226289675466557622379784845536962095923576636976507341601130212301147848332236870080762585657566867776553698347573730517017040259643546377555500314359522552828007643402690172628520863800641008669810999797025937055665899018409969518537457324749564918033339314900419898783295847913359796830168383453797037890679420942139560475221629524350402835400117223666141441393643512746013182412507410348954828650827567865176774666015244627224196335679578381635063539611020211147115395034599272313895554543679264931785628889805286627920958811156158135327269161567515985179932914322065393105747454702154292585713678330850384927494619295759180626126428421457520626579434720817095732564362372352568815303155102371026002470364883498394751725419500468411120445944289302015636748807881624060165273345294737464673126003634199594140552585821477283527364067336364043298449326832514083709686780609036986439775663991178099909384921689962877053090976466820748931937438579518463247960243254936484091724915949753285114185380884446320833217084618811451403933489271036405806222046363997526563038554698904953226517007207971430083063519313950977108680086248886936364753171327832555858653841059866623361126973076615117302702339702122841272988474048572075752258457182263626143048951629727922145268756798721890268487981102197245357578260955442461732146302954253116248161270931649322096873351882596936257071347357315065273715102965736362163746978514523385191396328546996771394234837967229595823865324660302003921209140390670561479470273266783703312864270047468094773373296420528991535566567653616192627685379467781464951788958441251562599490789377995003492083637592228368407624247886744778740754415362332554776278824788438778784960731150904075303976405885268357864562342243497119539026252130701000387684337551238421402499067862310765008971333338666040444168213789492566576859042392964406397041639713847254672149177170618025986235414856237710846221714926474215701814532826039041795722284891712235451010446111438094001414992238219811731551515489959218899101766417546305596534005596908197267198562959936683746694145158204510089839048173481859312661650680502140929967047482244335033146275631920925099104665331991300561086955416527767480225930785619794663286551635006658791289219074622389603977762606585586882301863357384035254334186434332337294431901483684312846278891972537078147482376305409961866002590257744641116305116500419249210527497376479702536888869306875713732522056850921649336970962432537135365343761645107904401217786238958168852104677888921437644990871749710846035503399504511286389080264221175072777986379418907267874595168644539852373186913955978394041457470032785988316900664411359522444630927004566505582860829167930007499925650718911868781133791731462973801431045708434272084999191775937758737539834823739933784267230915812003866119946262896758707332953744046700840717132846961965648568413072433804656587726960164737715830725709928875531525201409997365285457587229466695701462104976544429974421842700020430025840084241470057855313791689059663856492981411695509793362166743650436982626285788381496584088525226486267894061874977367516477405120008807528998212525475117968304659759616647851960520897035224556354866931697850538344600102240815348432424659253896933909064322837542381350279278968625440565565820999526803358489304610647705284815958639259718426125221914820762974868269172159360863459819978569978885363175388483112062997617299613576792277422682556559878958767688406442034416638470736634037567420282787695501233136624680905673001305757023809442246486882086911527644532939479913261804158765926615089300058714311863427601780848201999660624921143132339271165096095282169222053310215133146343728207755730893291877810995578708195939250997141942037165730470342986996632261253594305582016902808696152130500356388185928929798036865759844987507414867752140764351456905075791779685682070364987893892974697554425547739537035852750028025713322450805402409606965495847505988708217615730201277201011067352712635247288059440453601970058516179817664104328294739876627735700991511008520254491717101202761866001627956394016864084336090079631015453606690853368300894576325763170202425999503404202613819736941187674417959985417042832572201260242291064390249100855371431973790551648053341739765783543090941405360376769181532925216714403543580126763999896681865032852461291105199290457503761032310255495393369976419578360860268403762256436888886315615837405487466053878587863212217639161699878479552337289391738368086411003270371840634131219689423571515471107894946903589277236716675556594929427679149506466846726720893538140143544068519138583800378287482277925366661318218404850158011842307447343786292084413751309929690304194146221432299793771499267491062533023181593083266760530569291298795802667561632318903157607894154656452124627931458609624008103637911246099438131217915194797323054751820593105396766474374161768539950496815839317251771881175478089513985859193915524731893276744511073596399573851853524477821234524351284485746704432827990327557762745791421899035278957621550053641079667243915667155410797303818857395610043460380909251740024883720510535205862791023800716726294751621039919795004969568199522192463327118683720839360071754442554850651815812587091121122333269799065368888668813716275792759150647462845700926146476536140984646084408914509373646706130076950124972406273415795961706372504078819564548288220946634172870962774904707241763148939525362808151303746572721746563345950495366529958001600328369610443879233204461538904549911259845624421240671240235094043246159247453360974275209089883600392114881931994996070747423433787235091430034974580072032846693774334427414709743443045029143968068741521784523950612572957817217081719619893105413555945389106896497640759998370084146976028451066086559617367863603089322122026918633316940422818457418059713873122969980181073793198270598003927370864551773178152968319262519151978337853160264483966863382558906873853498002865122221868308652870808256560338331170453743301096520391677302552355853174451136801371771907179646502752673507247203277231607004573306771270419696099888369338629958434009014972694069546823954597707318228954059041767548948996708125704221560998011134948863124304213426196000785232572973141512032907704043880211239307723082566454829970429019426411323071107759008259286975976544006251796783375623890074265493896552334257653872691591071553495821550431762090700488832834955043672867072329106434835254960174741504173526532079984366313045609037511366370606135752722168471295302166685984839862854361181790981546870919890525131986353329238128974355733445406508030202435166773341594839214781007645650135599017041287614627665357388663807664476473611883728213255327251326970281236736232771945544291483879211648335395882113613943649066105827104320619295918619863356532176707179128689465373261101184208233379261426255109765692282357931590902192115001653342101890235965088688176263318192075066792221726431706535404762376227986783792936180638930725210831450035018364262586427375638619406393780944052533159100479712225337760096176373601572817153608495673421965212101799897778662080771080730680266149278795125348887444568730712739087785183580937524965415716626089191096755791420559952096059047271323446424569211356898705580876934990485127412811322378232490840807268110538230557105869594136290822078696037511632580884045436967475168601226595605052464968600681596632543879220903638494186309423800436585617261768096096889894837708364317420438441555886905755017448710902449065720929653908169437657464841935900009848662154050341459330577061872241677517705845212711683977677544757828382778418006729883032881191999875765598549646418913702639593843603659898786343488026676615999194503955251842372818903557867826791314362634176543201052850705908932623261445516272039421257016873664064819850032826945905081677229335327475042213427877489000289754957088075326335732945055056668747233395664659141829507795100945539626329882119603149943148701264489484959143121185972483144019153961350019415954080558499793336085408004970019356854746427105274899556095153159440600040750548283517035081605897373969173658138990080380099871850496419006115933397934216027470469908560815533559039345247914464645602353481398747259859359511885397085681224621533593656759921536431508475683568403054307132694076631363069245123149424090791532182650591745514207365926789590897844689932863563349729349076779991274265682000943994701254207485271915651911757923331835009729143397581520621499831350454082424505494477414844961537072982812159218797768286412745290153045885730946572760463604449885882839531014279376174339532055737515125238993118591586710479109850168610161811151576327818391345579653897311228857075622704344060649530337827189842181330177372566075279437509159940214496898303848157648867509472426758336241473598035161804444914338142008854830956004714141730596388919111301853845235211764564368361960658817025359180552687776872065243177261329865440163063794648693096422690471471940053741720450092575783805848372925033822706670659997235293154306136650008477622008467610004636962577751040999466579864470475169107040716168595598603590519630048494313113585325075071083419349963980411620622183938522653015253967933770972327838851206449656068378736903241395922450747970001170956699990118927176005762330398949430886601248878484365467378564928258049001216921643758078722797518244246861413258262839700391337446226321664098873053753172492632982329069735957497780450434520856688278490151785620579353156442543695930080945962628731452945663417181047407982793753325190244177967045528749483642664836230082691832249821776057754789762197716893613739835662094324495335935645648957651434671280118863401558157736676963994071918242353788665736264168515496731296354060591743645675961934979726175586913372618144823023655992899798086946849455408165101602479570565124837290069785488018142810683422604523088880843585117273439365054013718645464440680164528001605607291846772893936700293844119884125314454624738452642370909502896862870947805205136911556559016902306637376753889874887995788036838623288286818550602615176229907626031353966463646582670594682743668637535972846039409596492904156154040281971505101051461552633482942443516234947306373908136375219784289173221204248742568794082423475410465131086281370725452799021612407592137053777090110078730977540776192834523534938930177760481233318093003161323573974814053117848662669238664167020500656825445075777410477445044286639635111129150184083031127792191538894411029020882486331828748080797675322130505601467477244429816955185680619741196948863490184272235836771922483767933759526474906365714679626521239870145810174143135407051831497781745799830860443004551558001099085109545112330268116101357731419618726494102457932891405930319376812897032370433552660769201785444231859032292570195995964521274158069428132646764692320502697171847051849789657501514235424782982120729732541398996508076174271261330699249556556851247001595815642449878554843292738023049280746863063619364730804260801487623288816677665618990270377147022094052306414496621172649005014392555909834774897078149682337809965390797143697351890900544983754919933564005340836095436212459594268431886846133901927974457675878870856965508403119373674646507966424668252407952277071429653838969600472984808727765040532354076773827025753611656211722588476968251988038240341111981511895029804538397874601583127371305482996465717787544665603505411611614396455482406914516468948603901618453418275010541740217489764315154492585023976055376225957725414601228501262005654993018286596312096473685580894450461052480310430039167841684913359137329145137006019966381983726101486464350264428120290526138256415066838796982284737084170114484889749036270301314297741696928350343211359579371886746334189287303586470545341323058318424026704131827112569943248933418002031047994670816722485203361981754262756310863880166682782219377261308308078781852793612904483875314530109327689897546436902197392600420915829795278882746516607279267556097364179267149994622631204936916902165627796584763491897020284225474248322569772260621519349241799909062591645865744015308007234216659010456641170440664248483986408300381748458651572663111551591085991787430845043704390394721445377776018754496736864140558129033182735932648762282580645104484264647713693485017623010955280785647234384477991852687892139185357676459039423652800500464062019728268197854361398491847541982372854083355477622703912167349823472326581500588278776961960446044865230086367722003083291183473307206737940315453972279411599506992956966676337168501046209685663702460451753534512182884504088972078556618204249552005140673113431599680197387758968071427423129332474444089041101068213015167162489650392825617938441900317609322194788300559941702551728371857067973582136824617538870766776476699518274131438800700036942282641823388217024019159598927266995062020704482705391377680183677994523732884814313044576969614583871216278573486671786887764974683559273053965803896166878210320964543816373957381498523364421170993104212915877889593770957949529263140654077449411176034215812717558041028839743074440600185404632615015765069400844479006387462735931083295885335279655503396471917580467064032695344322602914000437906776080828047534091855799015414244389571111248959775997755535662709767738429001672845925112076876294865083975332488565203131951396786096352110615024202579626534383444453626085375195472333541940362165049693582552933523190902019850068996346274806315538570242007497997855285190849006534693084423789809946229321240358111407903482478406014859785127428088165924973962418594815979554051422927805352272893978423361465451105868609402568850733284829332636012540730656182904071380192846625379338705640219918443225977992415613110318812612553397891444341712902876788674583942642796136187469221951413252455886088098440479880305581631785697483320108516451451074388390840062296256966336450015066984545384611761197101286426502238959194650715507242360459744426823691688578249231553651140988323484296746957328312235387162207779808716755970448464520143339527111196861436021262167780727280267006125037889922723625124857039710313358393651859331555369724467229558796182340072911303735279135328960926184584187909586975598234651287663774352833807869271093243126276905025719680482155881825972272302794383500246978025732753157844486195925349098846913933607436261583259752290017348712080910064975313856366361490727894394697170763652234383915460382660879936519262488466723669143838917447416714926976254046463312954913221361264331192811631468405346212441613181599434422533161656131221033621344298922076525325673669942552992875627299465951683990395449967547236955683638735731562833169178134506911946598909515773174096557177417534963587466478389767200841178391286738744918208363926423384192386074370452780573528022784995165970457854480281349078252541495360633175591992696312911100954196263176989290086991326567475581319736926574265432776917509112615959618609372190843519292960672383027703384629700781176312291997241891384917171161333597564949293191187717892359781107744819221817562941357636838886819026690076644352558176901837155584779470256807323316272082719836301247687511478873427034986523649261544698563819106929851670370083032336051361927856598832086794262667199236359855346590039172794200497429197697603448330938033809798455613023940916749460142035225625128307565825936682760507551770049924387109688175508852606553459284687179351172746140440292243619236531330865535006493063755891189599716837326182624719010461420067638316866008727249314905216463127303348194455422353004991629862262333628636815329017024951904482207354106245341948148142136075429035244088079086509914922468115535583867530874989248365412637940066194708896696992322125611193277617289832126668400157901931731660156897839037449576433465532587419136905432886263473701051548957506358942902746301284009031257724231691773343045229709409759239914801947359265669881049825134911025569672902642357170671119058535120796678588774733649469177281614682735310337048547909588512812918685080639747753947694787607624939351639867209416369743555329542049841528600248385968804592049633669542661937514928971082528151265178987035572888379127379268415934584785946689941526668643155237715046726270275974351950610360136356709245472138750492601089799629863606509380231426770942743850723894829544133185882662195403764369018092719682303384621983943867548379305417953084884453231533480303316332519326532578810867924548256096492865588883334970104764233852349023272689520851227720369621730890303624256960010319825361020856867356347756224564160793830198281101931217773562522076888485993128106820703498699873262029979976945465915328429278722020498316991183713820277729791585745482698747564860913976512975951160304167709997253208568439463955362898919211818293144593718450666236625032326745966662144549835256341307592099792567826506121029410773956204551151158192196657391093619461318367570450181204184881930805035767293866465281383817583368769446218843091312189049822767180084470140406890878453058435313957404843021964829661947478763136890969894828069184436612858704047755730379659026940154693376693160800315857207113312302581440224254772892139399742134288479253171175625551633862016670243581155506725874376209825289152068079549186903046475952792500896748243439319441451726721118761646975040923595080897588787213597349659851701770041547986926988612736372570160697075890335981833670776127163635242821833025856382911278689722001147613769205850942051812505057801708380991822125643596788711060721647228758881027599091987912554830079014673871336932419278939422275070691268788106286051913470914127571539496157165731921890275242688679220094553100537224319604228205353600436637563569410545183938341947338890774957534979257018803942716560577352832563544571561999190593220501311381398877076524436223727022513379386232867279687396591772614599645045271370730156874548556846573664529962656842289187689476634247786775015745903209057105056310895033202400415396362204880287860579820709606059097293053586370371887722591297092255056982021682468700691174527019180519517960191632459124238361852975577094667408773965319700459421877067201810085551703774768063459038196282930940101029205719449007955233300134559333143401252239144471466442966912172492767353511463735972210166150920199913139384195680900609651651289360348114271441070675941686261487504212956089311403672614093375796900436009328242915842586934413468216186441048804918261364401482367383334265203168251230829508698994751432939449352640857412260622416719640586520094200796873293364568452428823511008667557170032133674366995161789365483206973867839646020027796220213784848559786733259485356583266346304889591557181735044055557280429812618223886641354031523134871851625742132315645200102206120608017712728258483909978472796185250679682757981778108099509518991363766416541621140834624324630569905766652620863191202046647499437560304986919390105100411838226770349349870352105010050407885618736445335339477042569128067121244750081216649195761198671712795043515408253280870001882043757060835293113148854302098045746248981985011987207227800405529098566785501263995201899113502477338148139111957273276820206305964701078922661006760855725530776034252481703108643558807515291457238455712703139994861398796263680951532504228166264659604506963372850821661256544946663288130765418363966795520923184175243339230673349737685837158070467582529325624675572705974304596870026777355119088962010595607957033615559999262845464517691727687978448930185378845769710000067352693428659591821067819640655370314072482289308834513483235955267455383097249442183976701263678613240732280165003264442041444380597691329332226278187217035155581197849546357963384729468123397090910307462337274760048150151822062293023531281746160179450064787385313826710405619859862494044506165458606782137896625726980404603696630185115605977663506940087086647191501347022322449627702722417574358556406165315459867097612375530124648477188848702060231974395108573729722533242093624138704504221150952219273852346573353427108872999221576011454064219834216375158003342284573699370440612134466864456372942744091208800542795439858579326492205148004970373663245598590172307291042398245567660364098609030825128958084905464386555589748387322382218455885621498798877860595241355574144668736645673748283455813596302051469931659852869366547891496624645971508987954666106637953614788470887982081125257127682339614713128397109148977291788791040813530054445546997903989104665992495869915985258340886580751009819443903153587606791987796216116853831587757820973922848606799772274770068381261366235429207410161986085556772187577487636496706574514499023074625908644573757561809099594757545894636910625697787320000140748509844435102395738981433917786672302547606993401589903958084666895830283810465425832700705917366554973309842934041678144985502400156987103372432713249278234311870229013149293658534557536651163316224275366989150416066381418285146758822549180794176395472788266340174235811686777037446218189898723138176889236720248156961043410911350091936323338968604604174857402699119982791180856074426941476426297501797793184105909901068839228697726266024235906646827375404816421890289158273836506649018288187874011797518141559612300679722697263023565849385933885267418768634995844858908006328794604397150669364085176268461495300445133709380987529049816172850197550076848733595863502522152108433706015559585198186038332732148071847224852063403987005162014080723361379335374027654338313622998362189568976685926298355798300914073740582434357052422874697527362015323416774686248638984451128556049881095523354597517248849528475097520461500003707707412021770590947644148946035650341961633905941867952546266044553829265701698857757512504579695350542606961677809491003129037873723432467674795722369851547949413640582437019441161192114072710795520275153463149754030132134833019359290833957572610063683234081748362324745558359168403573396445348030760661036673401867423278278630342915428686522511740168612074679627717337578545193206774784554085128674808615247470533398831253224464255625854294200472037133274387696420158501878305323070479290465293454017694277550847296487567780697544165047829069541547872743580617206449538613538389352041849453031819063314427164723710912701620867629500287075140893465159346768092600014616234045276651308932996397488505571779342212187350556921330739023075100442401650663246483666143191496740464566172242582733948216475605332606538117994236124980397006636781294052159779890061498107189549903292193284463731316527997829777563547350336538391475287982629781403074945814994281321368111024013279529987039246731498594144487449660242574978422106217008383067424422059855434725505945407865690289642159839469282943148271881087655363539293469959803295915863180770361228303621518810971430443963467377709246717722891523823973611975785542261734213637663755214660691989662992315698269614566739129501357384686101421084684818539429620223922407716847575610483085927294479784757766763993788670080327426373187545193077481566556150309786886553511671968552881612551709581491636046088957684905852377876738250340335300645589306483994426996085812597801703711069003090724142331453126363758885968862736915141636782410184814769908519336670287845571232275868499510287686661657114610426425481394045033011778608566270772408743458788872222320084313128148276168240658762562890737177718102964655165053128009767391850931836901075947984023691411834430726339853072375447176362248095786339521880141602944656330470975340072437170311443682693835989169506736198481288088033819119109486506242847205121526298683266011815542667924210134709085182790086240898897325828870270777248048855293829481012486388425547429684041380654023329779361350039425813078614533501710844531859788423100444659574818027200520919158256901953086764396688222764941229146520469645332233541982990975223243114668779056217465941396204471989796261743227888762390997700534839433678818743368602077053644474879963102946307903706509611885795443303571494285015451448736943334391280901031661006450779678316572284214965230408516438087947176769461895305963684908175593689650034472782735895444676333493144561498085827297540545505959149919136044488069212254653439447726596798731383918553099056886045128420758181085898045808383691525225434320418160914302220005365252068293260184736317198841558905940094324183918649912628447147338406670754470039195061792899525494043094928551675182737095922746592000806269180133745101887174653978308424433799156744508464423304465912766749358845500944390401019220003484805334930617286747558699185603783235317127853330762764859950246332625600162779272062333585782104783996576175728175438296636974010784371493459323938089437377566759463689152008191534749217259186967932506522346884941359347532422263434992938355161949927186368898247912983716294350623334912392833441869443786766683116879527218212250839092217908852897673259251217363414249595077128064733853883156811263134105913327953552513295343759072314656166696461370181675262847956260185010476088625708168996468123913981329929958830034498060512431952417102827350819194144245454183508903309857162043355981848904842282970512484232558249714367158680928321933185408682825793500389977200582943223103922344459974171457805122726432049197439559721407545408337362595349333027941556060399949167201967668623411890645955254648024164515634377379314633224117458704293099781927070538172304898476333257191369135912275439799040096038755431144013769987033959591820011037346754202733630095569616738969315598643385615781526822475544676310318611953609531129405195839207767917794170315506940695343993234017982200691033145351063578105925470135673051150270768352835253749868263418528725270620237192967969493574259563052231145275134407409614262047136247103359409898670621849684437102879207643484980182043462440734846315076518475976758757755893292370172591356058526445282432404921980223939791280334938137148758844957198280138660820027625304697862548219372855419820723832211727772964447750006820359025812725756999626984244010615365419202836134380292331591446877923995261425519039185492060515772428861991865264717323589006408623402605186306037068063020846553999359673507666683302913563729763054015771144063038409220230978525924805390793284653343472959341338589435697801761478886702855103567533187503493158933665187285466643449787619956773386535804091181584550680944154397169691531303626035995273094952207684677143746011060505463941549693503585626411238830175885399072740671631494092904719510620563153262232136842698296345638128981132155197706926801148226758687683337468280026575337953607813973214624764474163941567662741235386819384666486348328234289178233638701060162939180335597176519916127449834559910818497649547394497823678971846499699664873135225318548737337015674879016052816802747590369457132900521721416517819441587991047743174030170456140625932360876623266205170961185877387381588140218703221816801327105245183778246084036277309875858130354839990285964970368116656057511516754687415123892135468546179618514773166855126687538415080528926162968925908732878873744995916038207094923949189660471754276089725791099528813179155010640291034904561559370085613048287495606686247824249825108291650248786056049896421926780547924847504384497668998139202739607881808387551628271563448938677845375656778165052531097636778121777816487528335398591838408426000980536109973561824296463848087054962058240875668006738252047984230938086873847609416881572889290233501469240052904608439027934752831331329717891159548417805909986520700808715581701097867854781554952176269316334356704305782267935965702800274820455743565933641768023003262728006908021662123380226971460215276451396787313893456502794083139465001130460417056943723185670406268317063745922053943003633176923487126789230888352148233391515052887151463937360813661959327944265042495097107522623339468922524144189314532810272808698748948303345481724618824663420314560318051448564149936531158177161882492630077076311261259673019336215730063877010298568652458008753493578380465323699460179308301529162881379667824109210129956240211336437918790335046218298329993311145649332747829471793851277000202004499809828554911188791222699278555647234248225120457477769588872868697956151819309747094401120701760322343587286740472911941179225721462967248328526757197922802693630841911557494089493739899737959322436112245777936016062981535229419739292268994428120216213065173271411643061720119712028353748968162847809826328781503673488798044764542571901329995050669167460717245344205138762360071382162175850812859414009288765711843822179871003936746235149935392428400195231457017178625253490809090899952551185515747757034046991697109500707125312034616993060649297453705436418946890057892227466243632476715736015203148958114231959654836404223105301048507593526537632337410961442481729896905509446826015037991563939391063307908116144763227146950801154547876868829637876958990795275740578997139690570033130858368748748733157821865241784396381664597967982294237925437454959932835459476671316149125026725497562074142974422667406965431325810297534224531043051202582021232164087370152683126307329919097577207651129064218712708205908237778109369162061258620142943950945069785226215841911771044519957923288433879477602993252740528049132835275203727330571657702552618777470302298383585039958714030330654763381696212525406347679331125234121385048020832422103122174107815133719331999549920921522197697938241567815696130860263323006501603218379802580694132584975957291735231083216120167049068597231159044984900286251889871063904596343589372944201029090166902960007077697370240249236711793765207948029754698469128004609553450536435632263588856926146937523793086282096641205792712252237340218662366150057782755107513528716095847938391597024554463998309489897798625927786922799654182124712816149790807193421092877454192407046542650030426828734005918800015650016604195043696436716787888419192057769497060444561113918205754574112952656258467626490946746770155974811551754734594937382370650648217302100088226243556215168529695069224790336852925005729939257344267732138630304518029549261690962579588088497844648868921862849204263077151631966675188061640502285785746905541102152110160672746477641827196138224471377085123526131222239241035446737596525959982539448819534677296175362777586114906992466342680279445049783455089641592285766787994200677732898025561654849089822029937522653177270844300228767771251900877963531205346073425341588985401436717450305045541814704442483761147529671526475282162492011864903594059420900881824129513850785661730938595974219329965604209369527218039979270947128804674123212105251412616212424515535214628647552522819277413904264607717935181619073295619192068100963107160499691909212409039385611949845633916464072235387676749170714665635051509055815842596115820907217390539318501395183180130738673406453364037135747809647645428174459648418147373014066795015171373093310804071070020034567125232261070848600995028670708809324021286097926625393764340224693807941569052119813706120957082823347482522644898663017520025371188511797012668250046705107387405679857140691892170700940865372715377584031909772058943802521119530479526055475306163246225657889214117864761643356784453711832919897743446086263887718608269883106400639511349327257687408262789117168167704638561714968799689992083594680591808266803759384617617553997673741772280192898849512469646638289122434830810123822841468763926760297781151802371565291898320072378006450498351856771293525747010223014061207028983720509625647610225461474347080807123815646378269276449315728464379173723314536458334477651409438713977821635426257765054087398741138415146270493690776766291588711637314797973861172574676615765340864764726840928188898456724121494595161470848961429682336960596404889415836242551574231220178348671622573429176179696068881111834704896587465778771655229946221998680237723695567074292907722460905171514787513217954529837757349742768729208000535350012743307940322652433485459714173177291161983769869928823673715059079770864244970450350750848305470910480456245289150473188669818315583228830481535424399783186085302264284473771999837478415170904764964174882034526959125103105869075751905365122141180112716043547401711497135264000123551195476579423961458796808520077309941758061737909059611391613602961876160977235279724115126304136783751616131578795502658125869752210555545880939328251430922859000421782854476176444174657316319650853486090893145187465411289269269467001669924211206611328696554919792595594326754896143188874558862872022226782155542080488972785717906361632274975636203094786569079206889593547001275122271465189002264761621044413670650770899382543607258853793747462384521238672587889141573149057160633907805939781530913589108297680955429829594149812383227513675772408435554356228412217601098683259741735279718531631618410133038208273016931340870797996497745181176258126073195492237383028321116398206715425904162504096659192217310172280788483818348332237786661188900561103520608733515373308140001085732809517410243097787942406537040959313804028665382671171680786951111680474614076739099297340168611190541968771321684167970753374612552231885963520644971798103622210106034144812994122875906213741629564471553373020937418497273323932065383181171490281091969781171821489865388036846347230774734902821817253915861019035823695142029892192338779969768347041776156634704815972662447488506454254082394665385319480810124328364442508324596450660592192414322825118145172418638786722504373795961252264285713195614338208511236835959473359482740745245968181744631440873367401494041859339311795725572423183778276304792626767421292495829671386459814048934322045399344128212507131727626359163140705955045877984369054309463981244065284769935339388760762306758160125617992610229695098302181537793926186052326215312999176773555081347366083971197339671322122282804420726644473669664499194370006774705389657149123682012374253742303600614203831127527791073489887133065397117697998858977282199214540518149716152939309430504346829199040254222827928621867995771924734218795797767533968112896135900671628454487637662423229523478360933037647187823556052942970254408899630933030215212077028340227352720486494515154139364838756387443237783462056128059691524381773145622106862094745248685359849797104295299863540219144875426066525378078647222795628439270619035061368321720538957308973573233881057211915564464906519060565694171873069861839376172289661032057778045655528005650791913219716322774089281499920039884973038049552626331268634038412568310987356503697204084704513476742817007140782778159621122414678430941842957378246795421618565720229386392661032962031558969954669583543573579335505959618081281249562943769188792572726202439247081444970594260296918789964095198869926066277414915901168608814980906618761717648976480253751941939788214372479982253462830992810828997546174137175342982338771764772324985566707287451119793712403721419104189338772355660617036321548790088720170673813448779931300428500015235192457877894065055393535933174085763714164227504218574067985824838678618797406183293010233435777232172796777319227361349513846521998257932049435356932962031830656911150305473225526148573300202920012703351893633978600847206306225172719781459061307068258983423901755811476453806418249821239757691085115451582429483167705207037961509571062459743416873443206541442051901306644088659369937207900418738586629483354794631875848458084883259451524409874864203551530164702100422891159442698525193735203233364424715526379321067699550281304787639721633821739435236481950201109470175998273340838808139347451522043226737081816424978061781244480717386381933006647735968033263792041767775492137954568085988625792064078172677297114246114485501379990227069044713567308398069748631469732986424899748907948673939893473389763464675819155904484896825018510943866736455236119338318605464612972735262310516199965956528661092536697244998320557123940275349719350133363494648175415069788041358404314179769423580775520177671742949096618997481284486893380028556276082544842994064766450364620078429171506403059593741002625501969577526189123587517553171729177170724885592477999758711520601940329338032252372938980233828638351036414411512221834645176847041292694241137255406234191579721169570475732701585066750754377411274469545137109333710610911855694162101296824349332301855836861426643378130044226036302435927746480669197252768077278514486568796827781943008192955320787523506411821211767307353248386776826772645158417182767414300410745682737016726153891999291514889039320527891959524771599088441453747814770461516319953103269923347493513252736936262478085182665334151851579811992951399570892321717207924935866097938828882767382295298950639824285320660197606859435664714412750614932057822220806845300354609110828341142832938962815903935099935754813635842240999217738226740821747871965841065255101655873343951795906302658390813599603569986153809564880147512015791474895951202317146284903785694989080108106637728532393783977762422455604261159830137680410585292696815711775276748377416542509193241199448621026834908214199634347178797555042014011628412325064692912309328443292624843068402351708439229368107698945484448811732630193438463500978574091951035864199619252077479142869315680169683206811969379051074322309288577548708863344179758526647585676452068016491646152950135716270289917711341432346178938681946576535933054205306516974599609170003848125397899067120143028546553113977637220151976476689025675102985470429276076811317284385515327740588531556823011728209206801765743506711942467328676614572626048710853680686450654142792644117631122988843045568328215510055217143264810338837482398254810509432493704130431096215447897954995215050716050064759908217071062086974094710643484552523810944933352916606763504589651920640421846897688553100017277183945372087981630586904018886139195324312824365216746215983985489036861368534345181291722384122908414024917637007605141996408896233655589750245421300381727538078233215963390239626724699253491621310532010710326348397479737567005344413584965401943066681759294562972128226998356271163463591493144509567160917776000516664728794446035243676735898378490359019515055728609285642138353242730117476831846991329631975493624262751726817585483442498433436600957410826154940615120281479309789128284292007481875410699257355220744432407264089485230484981464705665913660733406212916697645848676572085114288741367862557368149212836999491556669270118587962125978276840646995720934425634217423201757106712647874774355006634365861544860982435429435575706529594924727791497894911823438308795339241122925699971941295255705638214362231110860976433320292773578705712221340255442484246799572724014327117316669310272542613872951282392107705358969926690778385153003646100647131981254924773203286239256705035612158117994292991868734204463987394953314224033469780785110025279649258207020419662221354660100293080787194512582210316497028342171186969874539276147472776714073001163330587745155057609518953853129109851304951607708418252003880162523668406745079246500450116622657503192998923243712819035959788411965384191003491966040838583209133743131967682263560011063993448335760999942143970503431483648370614338820145585785913720170190105254238168823129253233948054965495141285176295323367411261894144640322662464985766307821269872622704941541170069178592872187782531661662295817493171128818069058540314981620389667978940052779671598889497420030684330312849988213166091579432545443539095002783514105703070914686264998346368983998745581095579734074331938255547945811463166012016588526093189560561807740996084674923968952161000433659679841007895826747646317923000181162110531113246590997564207131145931635456817925975222174527153701596277315545042253312074292351137423739400099950019149298929280389588134051396861450976709289245024805740954970504185973332409461092222667946763373806992277303237314669961374594259153371762767775840413144258430404076245675941059825209973848984391399392805791394045562020611674836734225952784316148868163142230130432674069441058843504855427424863581675276007442929924401257755498600485071171428282727171317527097884091387408274690664188522662033915373025254098293037780944185715210048523433743806269282498300173546304369184440699558851535246752651119603835907593145993205359072413577009989686314730586236819154022204624003467102798505271965741243391185251585360937830955426265584740847984231895055126366627288429305621618771332749994928641485894628353393299103718585939381714170705079800552642978382279885204099058747279060881626038517210943422952819667276137027382364901592530439808533956898608904192057603296887247164424351397298298945417106838750848165361172933503271410030103355151582530984402065464107759583984124137469706499423684408697572155649943696303137111463853285283277992193000212840700480693838708324959027051011934025339031300243933427102577338499061969300741014526628225259383567720831757126058878298710202719031429039895461529223981812297968901480076456109199010038590829569043439721989278559728916368660989762549989337182189404521196651161736011777593353897073622316934564090243856945665564204216870977523469197663694615649772763176975899253351734009948895588273644956329237257082527613743555753513532977974269647831489626826455100979934242132962909567250196323158973939307925802225870492352222785924726152943408128161325118228449630159796469043421969504512113068144120359003660844084554649758018347562270253483504355562014144107224812309577681027060306769402917949843026367325237666874846902826347326032490820262332987426880022461281958282979559893491908151879381017674394750383517328479915527453307404682558497980287761794022533919870401570707585353996234879686663120473260569748424467959513010558117856868626401895516750664815502227587194713670703227931793730482839870810708076471767854410404145137100233827362745276246458317117519311762983624563511104907471495604404207150376308197911590587726528606387611118684832309880075346836635591530017800124885726525004096592940524747577337194966963252052471474129488904629463261949768929140187828356860469856487355994798856142597626725243738822466097968787183466220943465890470947445779130115411761789245531738897990773043254942734717440886832314769737059269416180861037045315929443909137851586476237079657493716434268965891629729400795031607575864098128530023435505903284664771949555478221571631483864585671107041270810575231555438816996384926551539302948740424088406079880474164563209324445052244182957529844403789401870457405995544978385903351008553682064586341465047192583105243895562704902854493883108271202048029742175147620351995256096321859272193760614479013868384425491242574233231652871373250466152063092992100693144635246339211945101594332344928396393799845609307263216307757079519881667824149783493810879540611395484779058869391288444485944916700779113260186636708142942435117146766043509837196621090112777476613441332288729138710852773537260649293839952157954327496337328945107828679861786047156099840883569950889484532851364518998367466059041606671664247639338555055252322537852899316929300271414174675515371437500378610483011711584369882166756231364464321488661634859741802231534170441603116508264173475949034761506507682927603916648397257297220059347433124542046580776294479264800479410865522747257124668846423374994870519693289573392650917979788627896423512265134799989211630702694358062071022514307570714831794892153799930019361063876852443372465143160883495198345464736588543896044026992605121961936959771505728153397830973366873241544470367169868373177025180645154054519557801364002160732392114159211282176995625421836209404066267716589230093399068291771574351059571335684733740449298429662864419156608081069340811554022994882870518929789312732557032488549797828298800105658574485528458619652216046251743231067469662853177548681316955576673155191967427428913599346976559422115935195806395001564887166893873783061278614412547438324611483311342687853990907883815391363965319146840770181862489346332345962528363699783671359083683210235771849524428766580271135362676321456402663364583553063279826063217577389521481422505897617202920563414948908918294105153901909221527432699421274186435630909869592889588971307339022638959908650200984833451415849739363835519667713018963342881932529098737495802601227718326491129058484433535791710606827713801171210105140736769778642330835697079937592211614498935487227667413053133136111127980337165710058235793285461919467276098262827786281342724197377677653490179160486693667100312385938097903157547662369489180464377259154163124076559117673689041636057756571461071146950010377003812433624352024688663229212845378774104027375195445430723406225981249725248581839020988566747567090536081000869115552255154326817217058445862631190345199700595683108977211191875378767129136684272147444836024277794587775825408101721167833313042920733398548843782739060833734064123993903150649004156547044131975751089557546624396029307285367598130552487871574862656403871274126077737447226786823392949206758810577459929552192851409063365750630036109891817750044419273783350706405059961755046281100594946555139939139260471603002896079136692991484054315907841423686921719349097489419024387970087186467071523208724987904966585083503809875995526213539020804559620235914807345018757657522651147744498013964814245610245294661634940104037427921274072851248642118615942088506633217134233504796996051176166474974836517796159056866328102329211852985398207696354798580752177296402880595635041649975059806891604061656045195946764372315585376611436114238278023347601333637933858139632590069862371301451212032392446449821543790408869591293487931985419658160707078815092373326475412561689529603235681471462518007742117220691661264509872690173003738947936663774349135781141593068497174505055596599385557545821113920920850199974556648486537807597902938609239137669235232404324640957442525239747068063464510204866126023565379318003243056908661217852034611360283468179778977066412856674451665110680148769204437208684022792332885741285293613698756535649667056048139013605580032225895095053741762170286112587622535731401674837825044513233144480859080677511226899866427941539196963608168033305150890418500245709356566576677657252055917508192086025081350379861568102204277282303671682015442431497853961953588415705219444048762977895406747976678778462196478080829029170320031662770097324909637016315260628846214207882135285847162043623528187670221808704780005043512751067244023869729214989693742524963091033306633835103515438439613612193100380316372964318944998395272369673627256839287831659089159935306596717465572166463699755885314173045187961698974254700447029173034042897214127622484884969789759867465157264814502344347583928513592553345790573420259534511029994782843785929713893114694693667190195892945177289254157131919410012158537788589453326072403735974768079172231237243726777114048830814964275879392858635983409340888038295909442485380071267659623244698311445726930141957663295680447651551281324693635583751105357280455710245146553606229241222746157243169864288232001963654456736110611447952638411862900563446512624366224650860807142742876382123781244531968592684342542428889872039894248087805419377930105171400144822441404303633629817245805019766070062091887168231694039331731888321550528171429764185150717459126920748233214516601766960010565429402059989129016023500831305746547908306867730833847498336681397256217933599496660888406925783312022686909639028761622976886615577589660180942309727866918301250196162262514822704212622478102494468597938782987351557185552236093809089311161233850588594668417703618739336589615078078155082062331618120783847910997863813706946446826828619513198699468950558530634365418676457583820731534536005543269139434834721752301322046631367079649778533623610135985184186121784149954711784311592359024966111946639202131656188679959270174231114776738303090173996627994013247444472859987837468183112895593097188389441487905613247330925765438560679199801269997158786021289895352074038203221153199666469065629915362318183681974748105877897571398987660794020613180055685471127514887428808328625626583536244895867502744546780308853143566232669007392233940272626120470159853746858518363232972291953132431266953085612505250177658633394714232955486650239665102464565763739826553619295206717390417337287826710432678616968500052200684744618439503390770496417884709069559566067414382165479636045010133288793946214958154581923129663968773331948683308233819296991515015579650147689798048493325557106623419164772947873273756398689696622753755971827964708969083179796823242951379480852765670494183900108127193944824624800969345291662227415696244409997535716449116405721505530474272104530476314237432658427171364941728471097277499335097406764096021539524102636256378522657028813787011132622724304318609339199025419829329065981900022498529335135552868917325073133058727079376466555797460778795038794815020084609800454743380074751173732434816815580990949775718721309028599147754216765916776451174122028404007612466196593543764635865593792271009143723760990867475978609641146591698505372315684936518884932557904081507933041727632613925945690952825406937536380541521289229988024158721193826812978259517236461729394465264180242862420118944374595998434787692030658966431507071608271188934229843304201564775520545352933448155892659570677556399990843014889119509821298587252120577768993206637586648479210596974141786052858572425826165806345901283771699117324871069126549544438712091283156752291173761235667185336288145835567773243103077741195582292688582084785426209097540151624018323936786165335276434131556064726154567747745031886377545985751018200428917252589785416105923901262739072208787013704790364955497878989352254629300615766432775548222256979205176246922570461510560853788738612152767948672000349004284589104736114259546392622235864505406126831353698218719926982809686663516740534787408805908219235694155476720156131213472904134492759308714303724343432617134111161096143934275823691776327073320111690142980971157000428418899577429075719343439596092211952440724924497939384080227459956128188844722521645558282768127495187263004673151739056915559462365274294003917488524134527114924324868281418160675755694219969413247871533451429143778074980943503142026900924201555770331389580233678517977907312157437710155737141896637848949859394666200301036007459329303942807068616929517138258947638713004452682475151550898401601332113974454194138243617111884765620295418995837242794891267620997367540874359622033496889613921737725241600512165384426318471353783257954604979646342021267326989201575473223881322104146477210729276224857351008621802697048897125759312145684726824726071074299454766199553611249805830437122076434663741203674011802645804795087358623966448804386137039269909205884705738628742258150652205127592547864281237348214306236044653049001020672697029349128719696577251973715946879920609363284218220088478746270960677907464175188259426629237424295853402521628471773023843776665695403844915462577730936479996775621436985598749487358252352205631736619154839646881253950978952592383026613184691010222807963742100236722078704603412802149881208050314128426412747408413878013357279522487721253209689513276217528532907652973872379340275358955278466823722723367487966964955618919103977633866220322632692336920727564421783552273293144947876154279198313482425764607732567458957594914010145348395472993729125245324556806878828777378732156063754402773158609354164699001136542040240788576599508608206297237088017327485129278051488433588731865308279686560852400303802172601308126166997156985413942395645888592070207347721954107622242755066585553119085845444683363851488775595556865719585109159141342177867334287136505550716877133829422737101290797248170260671019378765880349985613944051076814831336145506183236665750110986100251394246642307520754546980642735840857241680707891748327981187715754964037964864903586003342231987513690782716610968613775337183910908318056039877934829940702772414117271328923030597454743668815791893716184464206036542593113276607570603141212501984167297276818280202401465131120172820140087810120793428987808066649661349015452992053795048149822190669083602845638745221378477179613468799720143765534961111087987133428048129422817968403646980593968370011864912034101735843512712666783700540321856105103396169890725649911037279794315380226921647806494189338214932773235498700245615891249967752432018587682300318521551403973136993347280416682527880555652467492057301051007558731792155956144030145585092831264640087693260829154819175782184131016200551290050469604049014190661170650002593603444309241824891051764199589278445436548614053327767067720716050934034729932729727343019355923733316234645909093667906581042026515068906434942614003440565382346979671556858067752719075774443255415061416318632769634991423905445255996365561473415302576458827014574778677866370727615151753657592295212520321980177373452015655504594266504302715182733976962580724950462984899355264274781164153442814310613522740115015277799109131957519995464433411597887085140818837979768060922252098256187183998647275793124867792337324705409395624670093847375025936038184371967710179380364514584419685796818968170470608153609286117790700142353817902547632684969654430806514814062588918440964623268764777394562255612532711435006952511703103685995350439021318442877619957141353623066485892733872319709046669211428596074321941246236444028546367922388376074331151062603582678518984647394523803207097444185655267493753804999869074039472444209414382369202294325023261858830494078088866040757060214334561563317140083342550010590929465131247554659889968482570693896444898072311291564659478803987503820544512680431614660942688261859045991210219229217530922979359470402076097975889400369047066863157431819324953078198006954267097579504583598589530020725756827755263765470643291448941708335988872034001634357199284285402563946797478012978115419388155400382488228272217934868106985960136894714658380973295446340210576066558870727539135029253147667547751213619946375145187247114375464987445994463126770785067739504732788626798063518726862676911629307833169926491597973238172836236177540202192081643686549840131021650471081620559134708382491961009196400555824453161350531408566074681208081299790480152496251997833910629861522919336908410639296904686872675266088727583784953498795206665065213208075079434344878438332540963933545079961905959307509166379972064605909064764976286299314874703254207644716209506037502881258214525939725813735340655845390048514305427207846699686502521274786424833405594337890200236819504006518583224707028587213580507425882845366823690077687037396305773553731085195055011848140745360140107637463923085932804029022172445602294076776214092663716655865339310610695341936506614054967679327812176454040635332220295836088703278738480512684605616005814462148091737796663224365258392799688845610167473881559259173240099569550899763277017672539707822590477690263321666796176551525719992119302262654816969831588541533712636504845845046506568896183684540536572082460832381332373346772320422466096752565817146757585546470960565109983275449224142380933662435907185563511132328134478721169242927286842226866382771927092363819975256925318611669534026122294986779784115162634984484469253336592542617494483054610764918809262691138640733462284164043239050283840220897837292025893801424222479989775966146588345649106053138137025780174940477632283979933757525549662330358468284968667621158237718827858136755970447223864606793679372424059639489706789840730468925760754036939004059186525648849551417903423606599224021619203618625054026958675836407940920017677901543088290661123024702299248399747565751867335610118541872145602012337605871648412740997499262392489400335328696902175323685176609739215652701036102799153398915455621616187069018614683507792829990969235860922910605243864862384117436401450342149791093625431231815898562409265698636959613451286403900126531635949422365308450594679214499855938646303918972077014499843926573522434160940458212736815192348740224141359810631242901394823874529715992127895571927899079001398326736110280691188676367646689751791029294509286739979447136203771488014919289773903797471678872034615155802181795781592479013822483035875080261741783758137943030816963949047362111870632451888745621161996773574055934007096532086068158019786500758217351533469282804758259461540680254037511761410657792345449528301840559827553678712018388869823646349235398617876389633773531597081549554883155282908304204108341806069871318391129363085806798396538552966121472838186680277267140706694455831884977046735833671148857837660852512630058457179228406027430928812385830596604750530615808400308741414846225719126322253394943224478305188516242867708638415921266276361051605453277042515241316731122755849057518449628251261641179813224163797949767570450232031267875224851781540718896525462389720480591910086438083981231251130958016727760933855199471471784009570756735481006015654709037754402220229687531528875303623968253592909491656950540436302268741247261301772495569511299445099906682340898639763255555644674568176566133938507197724816218827311582611001024127798746082390996806672980255555698587952926968024846637306335938539384346118044663212854397501044197994182721212102270683271653381724935350829012724075224458957437227464766575107469037661599708384416308444150684917284550948344642717234845128688340985447475139012275617982850579223713486755975677425004364874764442810534238270892525243716555331013239792124064230418624222499924060254280123957084858129136118945980729224769103475287729535222230005684664561196212791694755179570246632431016962357142536536866291844706383393084890558337516855963956314921183080126830879573844105582540416401525558003123642068723250281170815813020851521311962258629204040497880502707542867533077474165642154291765176026812169161375255841999744242767707626550024994281366109604840746466075260821400572655787585213400623064787008080666662316871171755608811462658495820577977817008118475961311810011895779914029531743019083695646074749242209946193191723209213555954576730017937546893096659954563215066756588354036834045990777555150917516512787455388637337483309089999598223521803816163191528550102740356825024081823999887926368274214920968209457312776499962742954542717092366338101664418941637581167304176316596628614149559846959464977693222928828181605682556200580826190689754648395539381321719280779999198210926685612299692212537653413707732233164733189247385610219971189332180158376172703297202257198600876252773998207349032713971228533700202414764185385743987098983797134128470453731675976516370346549108465252739314495440530614917025162081058377104254541038694058290010474239817553274477546145951121427925891610866130091028252008138138683260121269794765257865616711434739050737947557808160570846114668427363160797201967621604688698632921057526460056846323674824396584548839070346204159067675775908224094637609605387236748109994456851599830475300945313790222531358928746763412632030028035009322541582891698138878457471870986910642279871965656384109437055420573423526408251735373604549048673302659927273107195729076407446817095018603788291350154878305167769256310872845643404478025806462833389479758620201703100364938964463578323180128669120936248962305762895316288282909338260578332688677185735299404656556127117577632352225251827946085982057481982048252737768033780344049635283306325085793728768907939485151857341838428875998163295697545755065684496571766432455428632947400808402177546461656573869247559240612919252999719092545500690556426775409439119222972144518665453115802273627642798331113376717660919013243220779572635525881976886580096929871205731949505441844033815057458624480625242349244006071338758690909165341438853391893930724440574880979915923247632451739133597183936962540943179031674724102774506595695995538134302672446124907520702078088130454230660924238759580044051946050541721403502118305712054242002663530611863902644036759345326859388918920631660791521907432511950129722661092702990135284946206694625107900069772111155264809993499530435465130849592246613305311722084581868382922695477424757814600768583658772001263994279213632735772084244996104345054891764159977543008327706432899973630408841924783929163870660022865747255464135306859210025981239469570983424696796050744427171706744313252957217621368665833515982572076914195140969803278316145184886745554511578426239075442941353798502387914978228852798485255356800278145023011162502795933217110149734582897722357557483732657068425245598719738232600181264510296222783715281166714691084651447729149901857151515764563692890317555805188587201988573507162640398373106458841427739088991482437480268828018978525708490742844698434809679742249421885957492088919300853816593258448352136214497792627699032339095297618004469127578458400473713326760103996984674965315674398223251510064986186379339279976486624868810598869108872658362050021121607502922431975858836056851916621235889422540340981432181533574238822097383993593081282544122570225957843205487157722877084312782235869161792133533007027879681419156054191994027753793681358110473118972205913538587804412168705266437663878351030304821091650003126597756373268700634260147483406621859959440980381865863187284345848927672980038957257054428835893423875992566550041368385099054945508312639580383857772391443656215913879475565494250485711570827693088895181234777680248445943259146211272923020602714500769882917664775719216682845655864560373248862666680353912362421421908949248764817555934423433973328193479751762162610273468073249026215102892828577086529776775888690675233380602852129173877214388086536695606201433525155576908589856243711682023184441975478012569460813192746679022389338363567873392852883505369706635279924838850179807616627002267173760185939990117801356782211991175848886289650183739738528327575419868873399693175789810693101482651629798512458382010094151274557936010085426044418242420576116324722966765663089587075147373902792063097956287595381414668896210896010008451575693627086295060327444691867835103678785714049350266596879228630809098673552222953584592937523331561018302655929174011657757420934722650778995058831950529756167981173192592807759535340382167111565437476551012271401564881810511596557511204351860838534778637167391987225468074438743245618458496665979349357794517569887267056352634802530916948851012543178056859453483464083210249277978353079384828391265334966602479132937479677822956545484911792839623827813965040534407263648215022884793719842578764105459880194487503708744041803608153266712625786738824294902510144262052444396611775350838264867824067624924968108834379910869110722598638388490450995814737711721162409918792070193824527667097968204730105484388911558283000676612560182202053451052376239784468995341191359336459637552951062755595125504986433464117545978651880790859265304915336953019405918484392052219553655898437918520312714305577304425086410107228996379999437615258049484690969000420350854709382016261278975869969197308772769359514361452608978682366974691877382461945736997719354792993484301493965359540171717340562604292470286514044650861275762518567383084651385135504700149257095860988846756301853174747975414256001441752321225778723112399362554338549824825684205774815553771210131052198509818684186152722202750170592274729013021353929751577659770201838565955847177191874303531617051654532789203216753670182676692348699611947409756010092004428875229265847297629849450662566320333703681743245645703368494066801437037855497839419239159727352760521285584591853362629823190455951149535228836711196350985237726694801534565272823727328331402027136474663237853260303803042800034656083574400051606793804021203098104305166002823061022925754809494574757404212343648500471646267340753435112780624190251088837762734418298989692977926835666529353639012332779654785901300084280997231980937450421674200380328836158753846756582328382322974664497021994364487233143877919326916405315033419335702822349859965520179183856046166930417420217166978766590691622714831581904396359915268941657711778393506652483084698069667802510037947762963844276652278132593001824269720015349866804813734379941640934298040257818883519881398667073659564099182419367855628393334932910899067788893805108238408539159507256056285810961669355502000454876710443556300205667077785836065468739015590925778052722027442777339504010068335945856239039545136805834032477022324619322056498247788081481652115816681696579356401385260052346343638479733145740304895812879961188313692559968176150764735993234202344558980170458675650049459918872159637374197048981141943003541306055438810577968314644672331100847002393524974525884874944305474285492449128496381601185264209885628957934950124339441906002829786527502589974370337565200592603997776425674432151795727335259596472171198594904037642082179631616097298576667961307052898225335152169618529201803149600720524766462532785933612300481953406536971579873755825232211909030028986898338919634011719908052731488983832897654648821765144947127938427040926364683051583514851730332293769550972582387028081410236600451416578165532495161003393577965310787064543491170013195501472432821951206399081087377320676272353100670390276601744920736342414331801040844984832160593045869733861383760864147009291835308852706941420168280250616942752425290063115460856346136502926104501478422750335182295722794554671605310162549632610279747121911303659503506407050761446993783956775364909146248808480691893547725150612373912829702119099680828572378606106336405432664063061644450714344565967766262136223501871973926941226914875040098019462812376676890462590349514199126768116122477085878078037340736805066906652703318377093430850700277839697267379669203510506974691843497096824207660152912551553323832087039455791944710062290015566804605808527576033881572947713209533684231408670064027595764227786660137076511902019875629992992109701860770335874099941398826338128588758313495360048871606656185095676522706825677899724222489005593062688887356319176452049196948343094162930170237761061696103962911807776567605474434290066162086884123484979103664468711667637818955278558724160378124507636933584487779110102054344614849978719846962431509050004052567156257785407725338717699033125550799719522039781504468802258255039627946270595655368028577664344591428429988771503604858347572423453847076769383216841862930737338301313703665345917838493066652035418074974101169758503216826978693478961233653792886728559770994153927510249747251072914246755321431382199827932102540487411069981079196929663547913431706341558390756795831173575292168593621803206021933031373349852266891636703352020740822986747524275931289206120062594624009130254946760577965682993839235685511554985735313261243260112454906599390156690857198857577418896471126549592749491241698564585864871866252989285396110625425911263792476950663789411845149464150665325422151839232444850962941358238211699607075423104693695984309580345412587759166275202259813942031777883470220856743481132914498512972833455062590523199005944643650282020324783086073391713075726861809804575709230199383692191138494566919242965814023752108166424583648048288308990367887349765883354715550296968977443731377503312198735802814163441386186267642848114291700598312586532051077892962579641856101799952717921597607711320792068935597947079507670992452803358570051846471995265938188667927855379149602444736431190875544714941333005887315520265239891217477095772535652666504127625924986137297772588383865235270115279479402815616061765273729403293974051319414466781202756319143685620597038347550415512240988304809506434354175080057626810798589491011371966044854245377994257233746365143862271028373546052632976444578455151737904496301874744148370816582471711155726963818606107015827172931512901954180152055389023020273331840296783463900027378017828798259839705397166605379571788220692750473142936809397603442568311622367457701376629707662957257873059842376620551570266605148079802895354136211350815449954605756712641100118843514720477825942403322211150342679107402855083792145133609876365521981510931206765383570713282322815966500443147107415801505368918187813904543728214506322121633602127123025569751652295897507613278934630501472637428871940486284619149643293608750539833843780946383790434010581971367312833237929676569748291593317379332942178465224935772393641456114573750329401036670643753579136180850947967018778943999794404526164223449642738600295253439331636228708661805643475709505327110231129574571987820547117772273967321421144003966634116325157561840529147165528899517725227156589661425072698778226544701112210850713552418631441295554530659481584361853038976282708760786542319555394015436896620746362398387418788008250634546976579706244550938431418699144810354537830918826417462488010063388020894537376526756361254535097254870955036679229386254154009791003430472059376229158394493144853410878170350588578519749967937946560613800451496069761667134110323402562172913153653283970557481390275087551266095781134280768193661491134302789457891875762152789854929201875670793603042623443390833556875610452782142346196350456149990953057971309252083951454529483464777376906860118158587217595026696069156338294610757564746800665184699483724423559450530167495937061216055209705628863872558730722552417478360345724644695851605320299824428143110201110463892253248991061483682112824912643674242734400163263900068711862610067371187011386150548292699207402875836766459495181934831029082816785860919225629831738256520875429615004286897065638682198363429780433192897722951213160397281532508518191930301365032638733205331378289406416686112126075899079044825888485197466432939081593884212419470490331687622057299935051751730889538119325448492572205634105752218572018178619881176528152559433128359358293097151164332020858294295369935995528184716763178379402076590389274409651527034193049404464911983208948439130151574000167909185827984540598714389592115203458678506377085859519666586586255969986460167917532768254541321004615461952038121250670695187746164893139477177021926985493295147957829376897443725894878196201172159189919331951826626686301822805439235177967511675706296535317060338449273749215680694286844050078268169272911174052423962712352456794591437262543836796033006894801126055311767225120199436731659361488419979179245343978895450143918409945008268232172356604129896352391648909544556421419199840450979599170392220065886655893762041078501413389602628048970985687624853784815799286076168466088010742203149437005562998179558097715508753960584958434648821807557801468125862246363047668296005011042929151426004540881988787642646715071340908693890366311511321649211136304673080103934152262114535823249857634401596370591099908026059897928271218936402978217513980310506007624224859594636012406309087561720678282053731106909357871310184721229783674408097704804170783965331178278066344567825942286547240996098705449261725648978705298857016426557395286331929002633861475672449093125464029695548700472530077654192956901492378289225766347801846968099967454292157813671707710146508049391588737785749543550849360106937918692197920644093568315367253220612577155614889705618237559450843141892675953136573484129980780737954760430761968561184765919912769404035466626066412178808086781374045496745090595957951971921678494013008537824667452038787275597061339833743040529444796283717674589688086710722411247814461712874917972868193192751885442889659877591787099715721988714219529772798587424589274956665155829356352613509037616625476707953523787320887550636073160460949345675042282567421231030727924513851236717909884517084027447459213714633280436935776175391494571580237000704335813872006122937244209832912949158838237480149188270329401308409791928022283825029822807958737355472133620450902971881343752320790314791612841510707077544584566845127830494389044101961412149790004231152514098230392119297590466872949332261810839082894780815353415182338631245722786106493222921912367381569016331610236078000938023910501442626755487651617327574007831948419468420499589838489040459586499830780632036895569471980450005469103758642764717523940881783529938248483152821394069932189844091041519386465222301810486721555588723020581253924987827613245821136706920166986148849820358766038594833333560644317102499472485987523200626700824911887145439881865143736960844546731995517361023251609536023008276930822075843496379569657958163842239770743626181393989497338034110438814394810061344319650377935762238983814564384099623193144052154179789866466809009729411758522733949058876151140642137166340440658219097832757131107699049108773932279499091577539976433964339352472641135576961297740665409254740800793145268533739722390079050839422594602005186151872570181139585103305532816711325522682878124226850062602285029104473497544715150817857051272741568327901382938778080904249976096846993478751171915556464035301905415995549513386764569497879806872883387069784170806730029456840490991177217300079261629507615561499965979901391113063106581415091825717310744081118332656518688748554173776635327456210473117726000391873361468629914464295918829508296210269353532817372865417610645006655151327868365407323963955784457266584092191133840523676189692292917297743249125753141863172017955372492449526050901768424985411996260310888531283742388243388040000530447085877170389295650288347199670925438820653948697857551617076469196114508088014196419609953956422829636347867984100334726387249131605382070468961401722619599589537893948557764491708410185669195773568121242894094484609215994513772848473338162546956762891830881373598908212333868968296615238563529740762110734597283548478673819710324181994810452306599494658466865757137530687213984161325920079652096161104644294355637084266606919059949328308098552019943396153465526901970538262237173789039654527829259767777111096542602278748301495700153310533241117189452795979218107301908008002043811140219226179578396421852935932150611708270345794083067704763738874371876288874216021311928890435393669762650843868992866710186782964008528171256159881821964370239675197079279767982688568509610942475938699154293785727406037481331733199304599484526449833737618073527438579870881479949704388864466379869015485150330257074661680737422625196398660615627357000852606281064818150927106834649243341252874424260781791802408164995134363511486049544692853200182817177611310387880261870793313774843146110515390488913061844990040737372003461706502423393499844320504929607815727685771409912605115379753145031677399227322560607938123532007457841907097653474305168855516472512625828599562613960696570667639674257517318116472991493952211420390517533178669436982089916359259522211288947163641932981010472973160287808085594133818068283228694523871449163300482110678411251903251930001307636604085931705106895159763446242188943176525110837334989539312590478946924229205750066142973057808579695742594687567128709220271705064797931673461695101127581628710793439729360746224053784649661357960039856185705561107442031205599354716636440465278550933775532137991297024099955020981914680151943403000893399951608906676890563441110494359864398148724364447270698342527806146986005286412285002832513796605502460532506134950599154874963724722822581960144220773080310201329756687977578944815389771376144556874543748714237497539485216240892918081302511838613194256267019986558188333144423936227642541925115031141410687447910334805623408908987422809632303727940275226437637499977148643398744117151342188201605341674649776239712821141329936976775437802725755620118680711641207600880189235935522048816666582369223964710901314024354456387049118243611106689103423166719053632889049627006193084862932051093008685239708622027774897087617145404756922561271242687953437117917348070554629751852072933340910620853319585200567832742617101207314511112211715258501879330195041893425967926641030744666600263902284431348751587205443711648888429821001774955111967805671371743864332176704505899633702067896764258967439943880283667840454710350727677066637064460898647773493072603406790666113210671869375621397032760091887502038138814268750901595421053432852965673980482499717618185992655559314667827760174698367082373853549132685940188071462565179934440920943926634618744555140861034960446056467079495339879207291904507068372573636398076149258020153900109753176939287777357669063643757738793078152561776280049944831799165745389007416959804508389844794631537900288707647119185821257718094667219649160477294586309131920618771964879949339262120613531904941219039196858819730364409936842846162312632293633054624025097799025892102950470076043460295523441004507063978485464577103224229790159259987171257451399496911856229490513719471086695859540567728804492880424677767537408679894232830097210650781052978531453884851932610827834387416599433930398361631098404686139509685709322129988410020776038575252971702660938127587180874328432339696601304869059820892185424576360190235796099546278452185135264066805176765698569150642802353426807760711412063414465646005201679717212200178966828145756246380362933737524411553928578684929121655964837598987080601909585054382524194267399553067656576959395658339105924545533307681135645291927782830957099590819108246034991662721354788545629261842749810528141903166449425147525722244366713941660038664091115556911776238864911928675898186239772321898722177498020232275094167452972891410716337261657391508169315222669788068522202437554713552639437059599349891340488104695935678759844427217848151244157071674251844430482854440237791709387846492938640434252744267869610554415299829017372331231095473287825862471707520095194436919298087393867581022686084058361425957657819400601655538815155086528352781377538000172345587181244692638602977448337731831144768916142283000400189051633000109920722905407316456867536895129470554217693015524314858355536090756393619282603257734899715796088467385977181704943611172697281832298593213157989341768933999374993586604693392406304103060665848274278226902836279899601067945148562711058620460397334197014486708009127775424470882638554316212809257469723546022877200855877233541298612225109303804258836062663003736248397816358277898527045252017912105800252226544873959347365766598045835821415781495097712476729310876455784834247256689793181185956305108637362513914302561929608074348060436961814522529038286004404874515020407365611059062592768816632410704268385641869155312904480846291250025600467837157331030841766467100247223093231095070768443340314972472667452185154329045177355510903353968911506138914850476628959162310910315551922302361871833029116417793931109624228934935717083396959125376325233511145763166710032428702350908810434210279292528092694126346469871037281019995119790348793914042592615740757886091568768259577035657142655484379785276388782512969128039878370376715731627436407610289614602784912732545412560177175318869375578263391984717558096814683648615091601849236554502275677507564939880451875988282963168411457009660907507835843139616091046922222936944426371579788051147513940914781121166866780508694842691714694715863995433794687886231403780919183603254109479258807304962502813555766607924651030674334500571684204448655007935745670817544845976676636763116462522786581676933482102946431630555048956007188255216889993295515622976103410774491377478584612658870254490676700874381954062884988390213568156793989864312667769754972532805287577401540785740995840471664024287928150148282212446533895833626028821842197253088596065377731679078088289331359292674470590287809896980616066765681503903242997381224528580072520724544716272419934026446618689954452143324100756382332506309588677326209699679950909265741095595903291796565034697131304416320096398007457479188757736301188140567106256557836514296437953967427820841789194567776204410515520838220486078223463135886123772941043206793423331200804971306782130455624765736131574635892286198801288753551841062903177683388980489839544803066586202516317686067690714072692709502291567736614074814400236464947753425643316212040057066665946300077714590350437995043207280795551829334376907246088673687373488194212470840119888947097962041696577069419118357449831308253929317015828823717718160683215099335832322929956545871492846430113924641555322760857937556766277325183406602343521996385835948144050875071319172768598461149013051601884403930942286643952913162806606276518117652439618340777824306884374481577581239889181846200719562062609655321264416266650382992391864114711125645718184746111842674685964796240843617979732810566687136829343640076356874670492390480217483654643886910773920307554689213050422448543582110851545578029387624382315538224037850492891542352889728557175896127960083367435563036065210365964109217135417187789281439288925194103066154729808577465122514571340813375210989754530322709012929100613050024641058469416173277853166032530896737307754187055270409629821406043570562347671968879277362676791082108803622863599053384766962751155355393482162859137463858541634590077433428035402085666768914813934865143599534252069571817543112788267085501194779877919266107142080443167131810722272900623596669656362978322917644033191495868263799908586416293839973343155614462080763432683142396383776367529473109034284832140800186160613346805693712061097618077835245654484317248467120432817993298092333260465494453895545166063104529837702291241810591742196574512612375470066860977301187725754161521138833213891134839991460523887441354661121545183205185560859612247433683945444751829858295783332897500349677155579250439221174975303981271531194792888335670026640914699759984736498680620177816123223907419800728197359682766780518833696242677344767103902203743843993730765344355890315072007433229848510441412779859837071334625849971337227609703696087252776979479931924807419859280079443704135787921638467217388204087579251289466349667760592747384752478707558787009039503931101970705274132799451334284133062664096958904011022261783249078738294231801356962558459933019439876364803286757267053977431862507803938285875399006364072547152615071854145718099995341055821851788170518606707554059982128472243724024730981803579969100589247811522085908084185094500437115010251241374123485804190669217932554944479616359749873985007964894820746043433595816491236234285518142821005561047665254234438727734014356212500823557616064453265439597989157196715940928405959311113175563914685818708523370178734630666481863751668086092877517652542045559606834491390780415637783968015431724996974234548509989853059848428380538664318067225058684614144119175228507230262686139534989427145420360325756431295803821109752821352726104640206755509897519030781034447148579708710146449957215135464441618778109214481928289840695210278765146539140134851567882292210821416631643675583346268128545800917795081426695902296713896917331002259655162239580067699589694505107198588254113295470889633821224899101137745076521928030396795253061318902082880315705770368491549918568992246926072269692307078086919038408837406878467741557450135757905137392780212292175565597977334359748637946704899432272601737765140625820106374640196979235400502216498255725523865286523279535412133358435271735219020025976068775177120174693215495626703157959137102109010657295551189061200710337610236959692283820802315905698022285161265857303567871942382962682446200122506065390453023067784028361550330270767781562560391528065591864655128289282745994837578810739231414441186501558256008582246866401800714959803148940707870117150062168923035067326157393881468048118259679894220262121643855270326448404228433892577381042250898044712620797797880137980965147062391278900335265103242054467550140085361861684522213715928239736649470006941446002650905146201801537307595402211408872351609723438665577653609138199560899377428953802235576203523606550871938939413743798684686453337311087787137840744208156268903744558523550409168791135393603268779723495572464260820374966110205511978393594626193387149954413012221816739601508530678078190947801826076227186179524142058078513355333096324093686528622610840273534562545557868792230774894650683045561693361442640223941103054972330759708728891399573690572679066522914618756799898855916123086914302789002632473644714050169362322504139021317621994582827738473524251873788157924031160168716502740934989135779606325292689596513210027608702401647844041211096514311451616338786587185239070179614029626348281634322766025030673907408418214913919151462786667691900415220885168087563830125957454202209724251715124967506554953651232558113417502732303187839341583354123542633849339823341473377738080541201128983886411445001252376918067634299167567772222488152686298382117813284347675353559417247708661872865543295544518603898858215893375266353951996287749474938140740101679571790258840418966343433998476694053778819882873840345388525526537465527214545012217612803657616719742494775307449075077326104165624413505441582642197729279736477150359771546042991766532042550498547102878836712492080136770399513307602175685309001778105111618038603887325796313379242089516060791689158948616578490125753335717068947357714150276359919296195782339202429984165314392621453378662276477649876519125344965342935519724896481736324073889350901169621568880955145708583673772502813686070347516045496440394678005843656704470807796478306824665526663955017362774197356469115069753191180619824202663096091763871810927201978076526602863053252588511562970964922673808687762513161504992674853362589748024735864195021977775102351806472214575571863688773901853988572477291205900638841817185071856851891038987790123655828842955597936568534759676740244561388611280640347009342063972222015027859322649772675492723538957665105541633233799041389819970452662988409909034474355130206943034757165126720132832005953931576522035139270253240289098860099851270383815223888893955858237384504420215563875536400493412396726082895010746517216942139962847061319978023338348661067890853524794722425945656711533671848941302149745407365351442506494494171053282918895504067139164133170679749293204952888604128158572783200323352478974131802220059559379317955095753958363506727181013410118550030444941617590617880606468090395046977482823300179984666813375963954528490498908154715234691815613696563302661406270159543593086452750162451107657745141725615468775470659339358631164542896752428527410780734108466040539978211958227192117942353328611449667095155697512597394312115543054107054938383653080613230360310159971609454487566365089981849562588347831464528422852790246822784239867104706467717776117424428956741213969812247126354386397338445086382732744091992534709640300810140184435629521463916279454504044767666836269264584869183169727025881021233237695990378544080246639627197613608071298868200377087437462971016072524988079569371645382517596453513998230803132833294376963837168479055902537262305962033199595294190369599542277117832531589890851879691421171835742630883918646655609529640453253166306126316354224812075958622423392034710860600370051805950413117410738165830882630658603142927389129206657284582318559493739158722235777327272575398446590303598217506379906937112709873161196723443116772939689202424152387597090498068400263914657032731342099672172901742963967612523448765889847028959543410052844403531514712302017747293067391459382920851420031460912086429709170972179804860793764269618032203574838603557846166932902766058358092880769797171459918261556964945820786592871697627361916913668681115416159730521388028835926100926051905152948644181256628782466460594686913937034124160369936375392874340431041450976776277807010356993324804881319087766406170962283342651552777583410753030387218607792668872984048010821257709877386970875519738607188156158885169194434612438008999407025293170526863540074296573102425066807031322036554851025913871697934833661552291567073139907499933090002496958518215618828985791800113187153606516417036188999567620631703306177437750458915765861299245016279911650388753484943988782385411409709033437722607266796636915821483438658742018401570358199556179625448822023781713192061146776534410302364600507043351783799296139388953851565317562302369764343709533616257051414131208425504849371955534324792133012182143743843051275285755665773223974876535099779221242207212013935903665921417888071569160076510266929770928369857699336907356081124593893392595645115529164821894713265413749292628050294463107978400646352531266676730347818174845476718495402773836071596831706751055887488794648996811258331502235015256056903544119197565206758538971211059310545335407984711560606336744286298507418917419528596342746877514352794265968126634925667304483513053530274163482457517029445214742083842350760486103689837387251718818058975511051965329961214300342681829073129185948242616306477788980895841960222393532134559172937541720834631536732481220688330532869006166865207740889508445879193642577583325243065370280297218183544688786933541277785243406866586545741662798072391358985483549700478393651933525832017434406296811627089779943073065693723218709047989121350998519811774918649604099599919769045525175971996538092556226664551909802774572908305495656743382204190194697569119075529355202930512237188079783672043737442831652015742848544896633273520738676707586339773450393868532126851136195159906353580370299354745130840105812079086718992350847544797185987894968712922555966469294660239119112412385806853439614199283589281797513220354817942153838287066384530880458932272411779187674955872745414451938621926424412789162195289068920144013668329380665840300499384531448720214196183473987706903389880508750272701397960125365176264656291852977245540498470747486338684634520133611186582651125177395427637895862381074661645985751507781344890955677587153118486432497655193783606749592048417748986357164322813194303677798459809105954271065154446217030644115762444899137912458745489140654960825579004165913876687051274468108915421960142895128062493765059063683448393595882894305689996245504508383689191072522625226215212346434186462284642312416547241765232528365493426671589788227379750804947808310603913954426542761175261627666063278539268832980316386705295940137527231420761013922133610144425878204286481177315362853927592328902272447728468469720060829335842135710840977093465545445788625368701406431286821937385023881137998119583723871329364079426243845423627429790956945107807000573974319138918199584117752355249405007696592062304564523089401038330549759332942706114236694312760338621020510705775016647277815991196437312233491084393831627610982129376226720582790254679085102911151528326830084490171114089943549851440028644553306790370599817192636386127232063893210594484908968616566909380617773115118619522177991629261105902401056846552940050408089955654066397798598427691015758090134189284639289985000643961403069599172687302570342260052375005082859635048193420238497877101478778566350940883695958370942116466241235064818340632903025252885251442217571222891662061667547900402991230350265844878288611595879698330685151936383340293506330148933143564912018405364851702172405251273125962943462327194919286898680597037748108430318769139951928710414851636735964241670304086900113167255544555154136392792803602862535853533762175064415107468081779978845614800784905068529244759489144442315091982570536938120309388603109832750539104889666466325723490515616932849779642656320652088679997042683545553736940625209081403604715798414146727524236350262232595103965027900489764207462951062826338310003756571408571049214113874593409484625715512589456048505777495219096793099142481963333161922480698056677497798665603850325884551580164258984148326814966798413320505587234320839995322084973123426021819598726816002089778493368320637345958271542214249831493691108773777112911286758353099786301639102901204589460292005075997342490329495985578048206074891900198483767543564731644661976059500136186795289156198206860847065470425976556375746858656241150665896601323063785292461364588076797146501164424303874929796840830226009761589471106885954485311341727368892610493842188421474693268603198982506502047762385441505002148880942333967765326932597437398585819756274792456768493631928999349570987228222005076293595376681654820739166929269260318008539747643235356727655550683699747351351721407745834379768116601829694183399206024204582966720114688974367914558093233693723362576698264202165145636238630209667727949193701640858223304671098142573883757028907145950112554841680821847627855313634371464310265906115320608265132328814095465275692275328974953745671706062149493590393194693014844067661087223679959970791808277284283868535175490368872380171694802600414865873249294464028597289061070920607276944578685881166969287882755441459014512459605988203490805563777599907760189966883426731283136126140558062840999662244325833468994451781041409600760675457769067702787051060233911360273509887023360935036410784705142356650831488609919135705616171516896315197376338194041779135663473907594847589855761868355076764391364575816201447677156687982570663043417452886966519906834684338219859465119140735997984742209754848999479084167942139947773128987061292215548716546619548607131774873620393653069811491737131686176725544969266369110516450353724954752097182107823683729045494827918669120661991173650910958857518689649446980904292359908346049317042174146988978461556007662085865930582237733135331003191298892510349261814161430895042542559310389714355025602132241946782753064844978848384399163382830588063024370705358947622715674064607698691718400180079932796429077122588101214569831478213786078516560004140717192589034998543000846462794000474718125127650537402567840368605171005381083932828951838276136689076562981667940498400095817100988947452149779480063736604836440551268427799230507253918670611106386753825932426363022854967861570703198905225415628894841258041026498377488995531298295040001588110185021152072510876605977039568853459392359527623264657432697275079356543867079422011618501477875100322451004192295587873357286279077530814699907230131401188339310857294050412276084097805211580532661788933043871536142407540732728549919611007268901877249129416110186780173904957904689373407620235073886279347246640334232986828837495135138962178460508961920267480604674579921089597568287981463927682186122565534551319568823665655340501279002654632609229946982684320384684129844602704110002935041326436771945151581910932530464019045736207627495152576241536145883175014698424936073002444215275774880377810270721097420858430707917638098363084520052179331785008311572324428709675331038434666047335300080964444813369186777015744401328701789450405658386227458373338760574860976642671313063509116039770980051818819302521093369207922582871350259856796538175405898657188996570093204803256422084730827293323419406628169887604113291719330617299014289651213602427073837508346007323409533856075604840264089884056508611847448044240767190081133562438888309232278152165854335540671186594757362693601854059908030305620105307894515151344637983188402190909146517511681995183561252345241611950693342882805780288506614523451633985270041209085860837078562869473576152942043025931611779898115699382883030476244493311683883166783746428317528091730189059622856921204341544009788743587576258888728940669425757599902711269002931828028752163168952165520366378884164911012345208599079543002932661691138520360221708063988091264528002485506050413491578660751561267410816572725379416697670927359459932279009981134790764897119436782994054622417523376266662017456303904485884975726010932300292315206826052751672846181656767147680174121760041161370596605324362473847857370909428507498416597384843134219864273519379372049894947576215179902435969064670875297857658034890728786678122854801688036237436547067912285554082494593860699170034919327779039066822499225751240262781196234897796458450585791363514764338371247132321009493985522164394943398699249140926630446011037910936955519843415176479405974467844113303558152619194515024913349576764511210063083297011688762442753607161090131111299682678594092036050266880783634919913517560097783840113292527586876411648147937859550574909178375249693064408139231788002035956441162576660586903771109341026875280444539215438478717040405934370540227361027210621832269101068312182764703067577026007432476563674094905475241154496480331516865325622050128210592188297517634217401491813527262634752312895568024875668957034303300894901580368516113466954729251970164964765094042472663243226338187738719073727560808272641482823407262704363859533470779243130680804920295228605606408132050963477211197557307253445294757235780278755846821582955161040262730899612186133555122962023564504763152051789826884198990139004880082376891246201799520872006165919614003106603100607045741219376257781710954228876482323031246094707409598063395104637991512102381823347640674398530954641237835266374083430880133282184644615834027426448717292854610132258541676360827379310529840905339854214138367074104698998595766192350472778678851132497998967575109936445791231367787690687624479033130967419311962094414209642727455635795075993655467837238079526788500780609534799090573354518093147514033365994538621997137936412346659591188872719798658967179854278985095434290619223744675830821235014349313212442601163617330931804982386278886598306071342766662180828001260273813732246134286224886994272839578315635209319298437971377755865771573854822997291710684282027604875333494523670755270159568529844814336764763863831366333672037934309263692523901071003449944010110528412930966960536515033768653850608999412444073430281788883594514620279986897806744311124826898250183357898602524413632869275853749428162377520814847656848668214237711174543142614750186862692711803030315555255726621076172909972362687388125877062749105412537437816750383673948110327718283842430309504053104370617222751572214837256323292792443002657709147428801788114136330163553235835654943625443515859041416305859519717305259291875923891893177508588286782140795122071412549342423329977129638377499270573352215878814468891558723491967852916779382098312712424386394743404446391143930215083890147430723163840486456711083481764710828728628018603397755510362180760206219713108964381316312892363830404251774788479417675890321817654052577416077552525690446260446844031634850222847716159674387470416775086845414779481339878623060303365156072983941257902760340067354077732333918418312661407595772997475197806547661903308980202292549379702765338654175934505102262625332190943465741643346535459777985652115135555546449335390271050262944715020617159677620231154271172268397408337503937232916294810864835008894926899695092727498693663727172001115413528773389539041269146981434178007543034474698279874622343747348226540829858284288587520008671010870979122607388197274347147803270361381574754113941174268642842661509714081412938239383982008496709100533379834549349631356646044455919972263948496406375296761457570924115182034090552976254411602988246901195733375588743046676315067691391596064290209382269441422883628990692322251382683536789315295240482809424459926459545825672116244424868975366386416281354415478389473775093576459183514028491739889552244242550737526152248617825183665641301246485126100845347580749496037495089770342959748001808381486548088439511791167153826625688940544540970185074822967126158594465858871630510996771711296257398657946354583313427654537410788412712185567251829774200272665025573013980857243511826842204095961823402079487976759374078705002380831897875714891051218341315468856083273338641689349454508629811820795930981055205390223099717634479024256830360398709340526075078060527017927026512800376389593847721202886736625035887311054408781603443382533483926466683282531735021614071109514257990167965693301622669701666741737470111357373371734198157644589026757219673174480017712583102327357369976268815311719511827021886845350927086373928008782025271470466750722204135762467733632335395403408325760802298485166827065444340633263897359062777434639351024283766385404724743348842536455188165430086907664170780621651458439656514647082971468668333899238462096967036591629121120963332034518834093231865724259807056759662607470417631426142556458197271633592653493051798108951816966795305516870254351155252019911016631817351874482144336829418063801344292774552522442512816346371876595352456293711066202707255630600285472501302934503135565242967225769663485181064376423665766379456125987700921062817255646217836524210708472311842445334809521308272375113374474577987289552317309677291732808514640521328049817074997797386877696421938130353285300880181666746535880231551472293553710852527300292616706812224363449060959226589444597500873995177316897589785883472355311218571665215265838888717747262962558136260892890635135394549913615592664428069687004148631540572174161610684208411683182703890304665455837828728554321343512287248449004005682651705335917601711453043632880825018988590980499274302858782171393370450576824770226874525042194724416110395247291700138779194761630934849221405262389021324203366496344612314726174809624663632610502700134858539558132676736649377821078251366506762125727678053980689921398156723226108292978657937709424955827856056957500952246980568656694470370296295113696407516954553814871188958787882109109056018922785489813243081076122983212373707129330518416818299991041594633573789721225345588665559716140874489695767562308861644312847460525977165847036785950534085811875227512183735542098031129644916357702069950613556392468123921351690942267845915041683667565625225016672561084121034250935867912946099388526300945377021028803243127426163926752214212149484275557543637168331044886536121501455612241126324152428558479310018252388580909452357989686196138195619945065215383462787139615852784630324992116632646030934623240819656702009047458573267660882706306778924724854566726486426860393166359508273839574673449320593574633894625731392402786333690426378804043071004005142655435541540347123456957886699017024032851052145787706436326526673570266571563542001363161325363104266964544898138939744880255717440881745893681860779338840828005438403151672712049045184045969624052937435100053749308431056079962273668020850580987627942759407098811409155386974850965518808934697729554671048521764016989693098900022106428167550782160033774985555216803430602613655052262536670643026068770945665183585904317426487515083358315938033344987132187954092422547175629364633042568204370447730345038687175911596432860792920060849278501272363638570726136303705233699697423103467819595694079275669968591282268273640528210959464534697246560234579001787553306133048429755469920863168594780110736246807932086831894073623362246496534998301645056764554410961313966957247071706995214836749185786002967338658094379599900047611576494349651488254252348661553066097269707408073370215791828834984227235460503964751380382236124293511820756955445110884554738941360779749335804306581936411191897897587097519829953103770661141981573060639950336938079546652743569054127737983597582367011149824799250063915839000350958652581587052614822063699375749176891177485382225967099415360999919217667059456903502307185022853200751546992726369887097794466429948927219647420649242071792906604208306336739159840443611551180731510081801035922028655376528154688927636785926540458419160197691148629819433080711286656243382573507378001111110537806347771580451866889733828486589999331914583851334018449045157620357355541330033751912124894429894928081780820536632635363157896396189903014739550322272725691472855554850533385390406035357923426055725764609861993296505044532119196212990374171192176918523792002895548336928534784097440772989505880663937892739600560118585296867851491996702060967219382590794975280011888904634904913568728947586561719390600478955565644080063344457976559930829246329009939538732724900930420038803835802750404676927420191901418163725501871928665766412389973259347781635502274360615357125064706453394644492152445549389251332858547395496720598520494248145760954929047937746570365784030051042133130481920680984796526337948761278151212431725282416384984373252248198935448084768763788762914669644749425790269513967235354853952588207051892426276177738269521611036777856480467509318890460131111951565223547384943329624246141088680337622829305722517597110304217346151671488230521340260808902898985885056338425742205584920564816895728594132928805568539955675282824623486227862957684587353485356175754040397731090945206277181478628540442725885362644950728470849922976829708809112388693479724160584526560537211398182711563518659652129850071779788215018879155196224201340645925786488827795744332211375131875861913867716611955534856017708226688058953603287485880946549097252374731427274360358541945914757524908424562716585729663483931826121015368414458939109600572004088923768920860167426374415319440178014984849784159798639032810547452033591423415268077876429984893447071735560173655133632897109640625496380312752965092154956470260692251856083532397745177067154853031279212574073977420750978961742983405449811430781873279320030983909303277274728290212149251606671332578740520899784649964600792874202947273689350514425255550753770751511554233170199674294194008789719550779012591246188674306019520532592333297824501689810507266497276330191308342179482470368558081441278055178898658055530398763282136020885848228558940718442922531759722983544882951712080267686848405521634974941495092660641169983503033937667135774241740350343548548515004574208244615400075139537493932422585106778054131577321654239353374434775471274331585613249028403423831876636258642579044061582985345805682473123813446686858455584461652212955921946824117698283279585500548040080102317789841304206529701418235238426559210901015416913241004781527457055521740409099079445408474218577228958661784838089831201521901165880727323617523700152395707438251696471520004558648977290772666575155294385474695937623403415608670799333487163183014449628599766744182316688971792670117832054987727452283384530211778613095764180809071945707959535298766226746694278050729588819251125523593977399750957228496219162406961844738755090858713911561479500430494967026371784670091560354237571121632244690242135881436335526922454754429543156514449247630380889056226627720908082163041362796825105178424352251777767705890429684127838090107372534668749731825950946013727539328180872363127234232368962010151923460224845098483676397878929776397337098115495245835158917226199711659986223106055846494367528350122423070327104953430477136053526252731720239242564137757319386486502070223395498930328382249008838559191377939636942749075761342276142464811306408052404327530677654857705244857108248207781412330235498159162770069179016698485167273699033575441118506821421440295949018102144653121335928134496186563918769909441667685495868116766049160009814386572452406962961491724359407405337170243405230923468972102207429436351077141680945646181043473425788716340866377008443765124085833339132813697748683663996605298239597073249500602794750282612979344765518726492202549626306582613088599891671710132002308306034242322060108374044730485148371564849092333313717807194108166637255210677238927344858673652581617904702982003483639845597917060795491625585356726602653996052303201867219923281312325778166194021162629580724453180540641521267293926617945364066895398957730589779293760288463072871069403989832267919785001396617209397487331621098593675188080080083973912393990137328071451404223162024330698723128141035517490237764184901181259500485830357857620652766463697758471180971299020945184212689092117120611018938015388104442669616816469991231235724523720169237493916442931368751012222704227057227042450227365594679950835728250165013834811106558379323317218188160382149361890022149826283839655985064815999226942542021356375530902618304686074301203951712521514676847717364435709954998546555981669865720538819466599572776283563827158524636924184370178759027386690183411031781491318902964937518579059785996551888175940318981868561109175234652907069190932568767948571970893328401876409387818534687315493080973839273910764273776215230348051630409758155067224213769949968935399289395231912958764948065810204732287723197319720794334726055584611322789441692962488282803442455564164370574165887737173553038340784035885275280339653305392905135571044199273222705595904768163884836330646273413768193360856270102511595746902926914467118970514538217834991399284363408304788428083566609034560595923679090708551129412344648037035106947116670038137865117030160095664041062445450441092008051285469819879287523845190836494463696994300389180541793242600376902057163886661607305257461506314163985567581644687533221373816249674060102302473663655054103740015370772604291651890342039255808715290135458381368068276268580985012056613156099493445633066321630166755447281680081484415854177761675980377746712665827491127606065196182805231820351745368919898310523403664314789172017237678851913152244219060090094366191416471631652242258836599404158669966942666340886022834335107791906496798403490540351846061130834910089668859383474668319718914079796637021970486940312846715002274309649903924689827627675012001336899145886004046246504337898431880173181538201444102341415812941881746232406562047948020762021448406329450139575661048840477584129276646522304123808611391530721136840565534667044569637166529046235145679254708184631340735490615417124165955418231051386559367201015333177146677450651388281231304157123413465245040944047547471069391823182728870733031257100541340625580087354578537452464331247833750161935103735780750654950157951223934857178489822050565783698642468372668955729062807211875831130969139485732839307144950217611467288093587642990298781134147947104181469036483998689783386959780173111873655084580224575674694142639517355725690608810355344070382139353530036533880392331759354257584098359434338674019744796706537062681670584318452092300855720417823063044252372450135918405707252808980430105260924797165146445627291684407043292210353768902146352138501921618021644747752430910033164486684113838848363924043871875729140459684928326045643539537911701331649510139310919266140266911628785208060332936666894844625455648587961306426469377735210254142638113589487011838453080265749078935610785092439589053475005373107148563542718726600723460413106536951795853683888583499881509035622983789686382315062198473287171743463560568416182521451666281602812066203459377901417005344335486006433478069327998154912754810764898249986373090079077932888412286874204294603588926502724186308110030790034300048429212401070412167283734822086121201143893167461146962302973888636400710932543448863588632997929641597926345383077543573520957433529975050566938381569381428665135899908921186898736658312167282344346055141621465525698628304096052838920112986483099890198861740646193180544448887299173321876572837349264209090215482316172219599569070936599516906083050654546162857931386361106000900126718592052856157492002128016641919745463003335161033698574239121045534683185210986479806079815345922102281741756577096060333287932962349645732950557512435136131009846242502660640417656071432824119669535973784484750543344708075851464733475035622954008286344592306558504882477821053114131111313331553557863225721624672923250369729582850261175623156939630588155180099515952434835552205439230926745149224675694372072524898130122018340054406763927167000875807420264109375881547835877718448565950832314582934271864541587662748516244107083502046845676710086842178405770615872298432605700137109763599309397112906690704536894402987248728898092110965813628195959465081121193175832239587144663983258173185742220293780126166287445982926821463630315178505786402282961801757520850928665066093197484121922286555745705791207903912732724687364034753523699753594816599466748486534051367042088321796534132217635731207043711286079992383709026935530524519148233365633068670517704809778217036872577888247830947757875186739388565316510810649872009512738876774160083839951709723893909202775293275276102485467712706360010769259462072144153672832330644490122116438907066542713486837240141228884084986580300205829294108439608884918195854818127199503726771539152938651549424585523594456162890357208599234990063565995239299056843016411448075203370536695109849567788672112450063526785512678551516562164119110621625435289737924191958547901011661540955123033678455955520478350492817388031928128373244226811028704573013503355153714140328583646212434060583683105545635154058910766043469430123488142506200298287364077538364009745716724540023408887249226071681200630034603547494934687700072376570063125650769552423399918323458976937246334211995255954271328737457597275018118147540340485727611153222893538776918247446472127582619225583624043942107636760306670409097903445352114960367643494122504692153051841052605613466158647709496145418609436754529557933679595119224183861276181762206934227852911302870972132564543296344769583813460801594410544223349614614757384424452223772809255103230130935849158977536917736608848881713958948413780898881286925958175840685439102710561003209706006751360472184447148023912625565987602032822274172817275982595129863246381880222551219204086363516571861540831485935280572285920496635772844422206575677484396532329857764271572477112191638955909362288253095823134919995544011172229391310786928232033225818259787312151311350087919132016672036678456265405142093759979425926787135318776806827782760378870827451916854040288753815642665284625627641491947728957103353164771362024300546081295089564870432841537864760684144040728840832143311266365283704384340437204382153377076129477087031307303988957653297949687649640931435405905575944693815955262238610286857549648657671161211676489661305829531035395366282964606523213631724248702690315456378139439566182557425250476230849076431485056200078304299548640568847889071565023482632616750992841602739303538460884394236195848359094064476892959359153325152770429506229140912136270757098158666727762576266764688518663691786163806921946098601142387506142804549814860926118513752500543456051220329042084237561079306747167577279200018829408488317716002380532602441489246619701534839356559499597294256047281284883397481670964790011125085905923903729855248709696856015760073968467865528045651846873963008287029866066621239835078608152388451021931704092053742318080738877129542060514266719432529245434676264324608150246750292336244193303397922547697990852634476936500230425996514694014481017202585233168513663248498089441880471082057114661146922384186806880341875740966031954745451200219958468746889048311020718063950552632345406611401117183885112039911490223228500967112876965278906161409822864866019780272888167806795771958140618822776931512571202703745497033252088550818870671714304601296702346655906833268997393120545157494408795863174180010419654900214280796165271683186222487126798558878211783480274804011224459455157761388079730178363895898375007801491270968533143886906811047685529099394508989850441875812988316384015312588173889912261979889771303076801330668203696491285064347656306727766754963562902755882566805645504480692710434669643193106974515106893004348510619728391626980711957767052191297394763154201696909492939420427197073296264983847903245696948560507736523503400048727021250700299434712251606709301878010984844508587371425739131888605714335804592361736268163783530360264864124240396010088637571161414173599236567556836821258461047629658885996362607660920264448837782322858661961104169791844247565342190538090762126612351527076862989388120442932534002376679504254377136586304043994820375198803714221936927631711259384315100493771268586381074596557512383601520630797834233870538860611894848046251499001506724477083218203932018895874192351992680183385117035476903432331988458519079492612542810916093691243695319098899595385492710289800275839335430967660861907596316476004293083569443330496458127301703251492424568538572159747011273163346587965559827318852935296635614113781944649880603213892951539714288024327093636242265853264814838676478331676516328263943485708752260448891023690007648846080651071682199047088111392630308870025131184757626857197019069646756593147305168134065244383991627121098834234958707605932312107197271325124412092278436357168614993284474024006640709775710077430426413437430949966919655481281110122923300697143959331001745900520123124387925502319502167406054392136789736621606710072372895268126510193426337260381888540356717738507123660810509516756968786054612700422635378481064949969588519110027174814717485317400338798427674228565814771284582171027083155471712744695910795770303109793620386184112308975252938576972675793480870447447983156176635338101720236682440952848082237143359958940763154933072744634552909150622518462437922342063105424101862709903592310253931859205517482672192210377274271845986318499328874076721288027775175998737291702546904041185750013935018857066860488494802588804992650670638017138818407910857230579835356659890825733862042822282847702864045301061693029765369575157595099642446471537175541545263334108188559616973297325370554959132620071341906056559507993618602731966620503694241479608924914535780836048704916234351893963341464571203388785527669764021877869197955754760861761592757952961156023408136961109682538428280167721954583986591855322718793924703765540664263397314723171000438226614183614583460622246078734924120401736462656291787310693059035326461383989734305278545240477288221767433908005941336781871460461732128733684029113555766012962966553457202428633103956226095157081468285417834041006503588986665808921085234947978717801058154796342338532093150937378323805513503126136608629519229152306751388933398816568953976562132301908222733752323693530510006331864339079560571244001561264930075101225598022431187615547493843334279841027414924375825719337111467972579783336008816271455559325487213792278043847796766317049127286106494027747614811778569614200992346334160299031269540928354901028627212400026093912328841585886347131930371070532149781332737995741920474672770768540530790489994389877340601181502333069103054229831662432051389566899331298514135357179442660428565173740788575147516979675697594465474640928592221363739065832232167185996231097026675854038721697690327853205074258521326164467453503877262587735097592619824467941831345226015551925410161445495107697119885153372059986372162570512001592629423860746839138675500107837835113889769814516731691151243790521063366118525413198225487555753582073896466850955969184109841480340828313242609130761353677949742501635517592950404449984654512591453593775197667861570674259546088795873268870413756009746160344764683014843255261059971871927414201849800857125896465062203641824595089143022150880801093228092036223313147970379032481456923126363732550414296103402522420297752689846567156938048916833821710267783126959878794937121248094719194874011093815425813150041758082596362611540988765263418530446924999323996844043599154525752446693116372098809102313358516017806630617839184260695871841873646090310633427659552449816444659903227294025280853194799160351148377285348021672782275153513174284743578022872447855725583168293412860122651544630895247483567763486683127987462923951524896446087732780186375917381763532370087025131896846354905016580729637927199443480521013615652926404119621971000690385013125695899515155867597147298360430938324248052321455843069257837621377159741335403022398465336638359112678824795869760113057290749857387523131734214016220113581154047491854423994350166095398628848028805932471888271895451414245778132770801156300791120247582931053382017406227881210498375850032232605639308011262358675529524795862774212040932976624779523583260593377709194251037467604514595816091354836725792305737087534736951605431888705768146667376148300789721273643975893995268818515013461725552667771994382953651457890151162992295181082358204636905040748139257999020294078572689451989205314071785684802244838284553196035407803297865724569428841123573513554643219206384935693663921323456361475953850222215474513313087187644351062894069673143287635982076566078705249985403728431244985531440398830955363736180603083274389908824484592722033507912919247987623962875945159366333997154859376765377190681665291182158936083971082627083094119556443219931965355858236371208312294528670613414071560955509136378036271329201492594201553510918686949141230160958154992372365683659058042510131001097437005935299225629600981833496106380151581166950351972001707847562376847532190357501430943475961235577655246714905513549358092528332971261436743856664167253788392353447960540940488160325944866720807631598319018081865091470484199075724875453268170498527730345975905890980375933598728115338458088902860863515978871224785687572711622877830752861927039655145466859833870864636460900578965183053986111690428000337489029290774859359739548294269557695887081310806576765526119245237786382546784058364072688845075082403251646510361603789575250020334897320492944106960162366060686203189502937975410269039204891865606722317254233084185150405792320090149510475606792443788859504868955921323180599267268662588253602868976341615212169404870310087749062346363981721795425886260564316581268889328172979197631341260291476087831045978789408274779513710455308547078774126905582663974109994167871195590443872931445898442553609248176277466882249293073975875234118725282419316243961733204204376832312820388839666901966554881233194697559794759266312725738686804732313864060780312366175560745381165093879513472642698325530467692269696591971498321703962652785428774236545653278428923381704745104629075714301533225898612830021663373276958327642992387893320637317245117305169212313597892967560262134113733821085662558643841520109027811801044474888745290678499282194565525654944529150090726351771828540298265823340437943179315692560080513101600140777553536766138532828974598944502870306903704945551740658860051129041767195852058579888299496050587024144681615826515864721325027675634850776744321221818571815772230288421340576190628723461318371353958465678595862682123040796296779023617614485242819259937269512106052924038045537586121177106638455941085888533658533629527689528476694909359325279042582130571300883203916822823042632154474115317929982192940360110119310982038642307037734006943865111885680146842792604419639394640205423345855426143559674188213303113987897129160073199215234820414261447052507691837668211929004076497111433968987899888646374957002281628543093778501072984797790844179742744554520851721851532759786711177311279803479513981951044972350055693486470206205636650854018185429485802481239603922648099599347659664365965515303579912639237670213810123736440417240017295287115386834373554197027867913612386787226219991044318889252804409162957142314287213458318652142272376544210799163386006830622743673736375789787065373369948687794657144117517539495539263382035969060513461004303961957938225225748487210394977050444856545699220711412994069218244137671890117115071390144411205260945726462456648339317887314865392780744572205485928215346421024476313214235575875004692592435267884402160961051581453280416807154309215860730645586566140503513978095444903933609812553875712662208131122074156084919472674935692103886262583711067521507901756295179140806798738706743059125226988615570450935499151790381177161509876670135488445157952968120244706177962333881384000649255035556011146147912380404089616389829966988798312525412339758076974072644933302000224867028161915872083706002998803219375171338011929542001555959912362995349629976967008237238954488911973118040823331805665989208928320332969988182619518852609907720559153072018103853175309691852734994272011460966369403758361249702711447082516095669537330996823458555562585690429348084910840719947257162809125689101759358437283585915614801888938717007875271832671626061311176608362437978394469653327025126206399844229554296241494726312454183936627819564461640640387516696489856760243303922935225587588527971736856814579278230494122294784013668065140736761868647900873503929714763862235321589472460483489830895260778163842115101326528526308391146878968982376414812184791431958561052059495283054696459981669972097014170928363925263480147771657129750662245306573224245601199106783176565100475895699363185918911064119986811381557501459926195320751863806749606294646486950054351961047215640867547755903051947078050814717746058621323789206803365256748829637076244659730782152322304623987932288625350032647362565636693866522406065914103548785192630726326449911371704256956508704522497510040199965363528290972768708726455904149710306009754485364596329302084184585288922574313565896345958309982016334317183019049833595151899202082652990726837751434081916442950970226886291679241171692655281740183037123369688718015922809092536950630580196554855840630677151346776808396664797971377441966789188200027599516180082963607120693073459672110772801663435736233618670106012952119448721090889423811158127222427682874277632378121601426426452193119203170452211104996161682530845731146531830475965656260366034065667887975585370900557217428245489990970010116110482317687989902377644602597662861510854415649700997444723523554158809163749742519650454494742901115296119725302580425194188980223393284378527819254969223749815153131366413077351046172564462881470471164556841130312753693425505033164710250842334997172090837669618887876379767998500120909901129872218700284211858617446020731416699527296106543127363965761056620736966997430782683476302318975958415140581948285780943043883968605933574404396656782761304586166856542248243873512528243399856189151830330405630224149543754704573431188903294086584183636425142623415286444274354684091797743001583070564595554005359277241936332490462374079446722810371842051083130441182109357144819109935484830353692485557155299419880663648360841769734639048264279993646984664362851574310436502880275233830160406374460924758546199310523664414038452297689266787031033778578942775216838799801586779840764932641405371173095906077101555501084810051088694320110534975111036794724552961496566219667108342083844065673400148145553422706688073417111177207874581861551535375940113062589242503631642222155702282516451207022767214149406843337571680644723599285971061927007137565120131349086572456074452069537334751253049202861612962017068134232094577156565851700279687405869769418629460438239929330902355564172157386538180588348687203767979450574005880798573130070762215144212288520681922094298903806616897683457020552059210192898213032038322287348504568932116316388589179091629520613670573310921893504328842812103980589599444438252589667105911640030020427362838224915476967785840433749461170803651534453267099887292442219440607063614932524492512589700414127273125769016903699704799614818668024189181553639911585039285635355313441194484435813725531642939259994991211658724612492376027687535355476993962828511918292919258709779676443242524632543209574105166120304988988352473951173335469598977854804421250249047381946452340925131953690106087485185404146916044919379565169689865356886186203228488250199129643831099779580129788697732196111103825415281042371686626441237662206218676635694244355183724724844181825751822350351747886451725669734566510694013455719187941669994895703121767890402094208532913964658700888066670684171558756050687294268221437618968950993196355541019038888977589415852697859719356107526670633900060408996727367826480585589104459363955999678511854263438768574740756079773409394531993183323753760486635158470058311994449802832717076903798272060207157685912734472031838970730743565513326373602769524467258131196878132159845837831649742712732484376834047239811696620312122787034637019152217832082711022423758552243041971607345179398063747414866023887579790648875717201531362653589644827778752780549577416633089640226755813636764622120924773697104028383653942511055829355925201386783764184176850591103882863252429449063675470111058531299891344394486657384054001037097089436858056966405960259433395502757038193835302591520573675387234917740537721111031994638953772267497377749981198939409128911987093604175958176470773459671397057188430945098730564706211355194326087603823036613532640141151127511671210134204766893985008661412395915898413519505704707627127673108059038352171759773023684423147883725700304770811058418112745861293219171184176485095849900919910713475570245236224073175893631138023128843374821432604933781050595593974985662247836741825905103441847961012667499706246670630321957019785036158675986804558653907387907267786090415411253947595709692410743801062059140236991698750457011931741350166111320236667617777142186855778669486823611441075573570412785092139842211913437280729304763257859791311328494599641691377233300064131508877724948287998745137442708227403241225712047192798988333211949409557961197197480117024301277422086153839397882263560083841546996841680816825243772230142830288617550593567467085218299254265476219945585037655228443117832728229364870312908649209347351004239263548711537770460619440605961508790752251067678310761154723584148827869881514452116864776474182612373991618549747360655600495697073600759500388191029751976601801225394622073575358350566195488093521256159927241435239600379778360565361845736788620850173665524816427687917733649999691656976514008019266573187120964883478192078458677696106997726087241966886637695254826808631717191795303923683130654391614074625602315785128466602206622742382060935264452418392705419896375752721253885279268876178803434080423325341805680106571637632956608558250644400335594408018311296134725586932556439034482023204980208876442290041151925051512943396356046943358418756724620608017127472001893003900872698997663041228531988475483219693905448419516262178283741570807064541655566784166094090040287731303148134796534206750765585113703056256560563597242111278478346219372172344787197190186196905129287526467610947187325991851928652390304309510030839439323658637248477870517368109492184375518744477778856310143656380188359911642367621123159026900477587560799146790514184432339689949030770265627059070509634790537075058702533604613962208356459439347164268267226130180924771005080549799041191450134829745252502245312321887301424294717723783147911864687467985565995740498502466883886862054122015746656618574260406077991430239639015417732530496598734015979021617330343304187333738676923577862593577082133012542544543641896167425252938220868108189715042715441209196450721547226786635594412762992308688362890565149420067508421696946591287752114802412022747749629654419786804113363363486055983816744651333051331815574904222276304384678770691380011187977241605022180866237408505075178795778137084112490382069922361056592780793161745135388464629960652167152269322184759771670454501904526929793742489687661632364115124306041600674030558073808316810640184033431621464744868691248896593641115976414851307214206365924574257964982519801095676900580690816887618688703845297086163647774787116644780022574399922727925553855997548532318224316995764815376236522329823292573834319843032714247454667806581924465796153181785842269345669881529641715645249924266644167203399059927777113364709143605167666035878080867915076130989767898880344424024266782542166351784659339575923982371790495075224349757217249863242324175971173602894873400679046068439909440559548527812686892509160080807327306006383676712139740038491722780762874534165726539992564337077499625652204471870555357395358677633787783798500701116756818917762043348703399108312883253402791710170742392539009271146490447875987198314113430865022963289397921567292354984602377662789429106424588527514275386568143513140107046451079275791077161203745392258019094021547208571386023792482161577213817023984836745468340849078750976951210758936675723593615931813479766108971417830126411970872409402224506798789573090038992608746659823750621725303722786617612295861999357014187165892027891756674725344871170270474562561004014250583010696415823193827661757965639673736000330301746410982739618475549429346091600047573914865096322020141274303695255564807380869778648175132269761672434875206668045274632348416364055626618365183237959150921049723198169998323944778264095082246243720631137753398434493180459851895426310484734541567042072308064349579155869767641195908457376733016671906236283928289269781803965020162642408402844874477065320500608112589872296859736213666207870397866355292343553742807299733998394676119276915409006848760694694181397029199657103825924127992481547942974692095425590224058863416809803940895954266729690947345957533677068341048837113633544654085795114598586712718740715665239105066587207940211359931535783187674274347789697393392222190000188416209099597382110234110977876307633321536520946849150693547477576578469824367587124605511104193253691508191131619673694267504359972467743620549736663171600692767538666675187376225216304959548983291587840791767829332553548048363852495576193560919615927220317688125765844146413836138862713723100832611460283797802813494660617612682628227922851048370926795832514120870650420470227092322013357908939822989075760982546431374586729607679140324152359961582880557222562664216604172077356839921224703658369150280483173107060690120649662711363060106589434582931363801653860902897467704424614394577061320571684911526316804031582291399164762145776519973037230818676582080720672086675007554234110272086089403322820547035346580979810033565107377565596907648342658694068569235580434158536162950670428768265493301703478654295026825343806307266202884292401279435381445803727361911574247280835157717455401605500373382297898024731150062425913514760911230296481947321651009362104016884790203358532223840639524772731054271824829767488815625494790249774321673940260482956940364623317173605013557656668809477931171031660629230158072445617987077054769164968039994143519010092568732880439278143470797201587930949977446581543951213213949644915227952210614664787949411908825925798699342358645724087249299326005488721821224361729047871889890622781902608276992466087437216147886462241725946981740274246511711339713032801662166570990251136100109491073539338153623694972277321287611878818632134467791020491797379969192416057628621978590542668650180249679946254201388277670629692773627877024461437192358935189453129297687818942732866949636705474689257457383067029483740251015681472126359645992692087377368743793524648631538666984652883400278382860099617970102961534563286984893022441893897685580681310417595072870985215481058627384074878502783677351213214741304869788493403246141374262870878862457675886112202059361218682207454573492606295165448073617636186037070477837124904400449305803566034935249451302456853955651409401750935050880138303780705673643834812387123349023250566312125183052145349069138312452603242231615473328475660713726364396809793416255331746929491562556861342329143171644216774878549220640894170221928493993716388310469755498206375365740537897233792478267850512087041347468433703489796869674482126823684747843727576858271718418429326255552556214842933440822694500042854218021508025387161294085021574341380575298421414189086024850608597850750145226342342806800756790886011145593138014483451614045481083290855036827638960152223770803120096475162381505920361724682474508386752331068206879850468444422106124085894345853552705586543896636965569672392825286569365220304656642917909645373576509522735272525885418946222491795674466540556316397787230253986462441643963703163395137262155768094595433148756598250199807832279582806216199785488931411380034694287219808903754817607822568153186354754184618685355333874802364107159986791891394320390174846903136610276825181285730213056377239120981657410285876028004545364580544929327566834256921586413753921392157143865973089491868644508895723702537361289632786874188272832110928797462256957848614125000183826066298028991534144691891793419206918383104936322158266279723278678057923346401080546755947433833237175553714763935499668701242284428216086196175772164292010176054124591028922571040325635000964145604903401245039946303920694829689601226806296164087270827541819199192214115170219265641819393292092106397365846995530334472735746753946361480114422949517014082328220103236241658797707059056570603094346606677914522752052658602838707622726265241055986831382982274002119540178386096710161884571960655281416746089987106179349275782443066178789201844786265150908623325676429073197028275344290987091993894240502806627485858852455805332425855488323522199149629245607520868139846522978335531939864426525599925955672784973852759528050040023873474289901274398170689285146242874067507532602776252552660660750270702092318018960266090196610819611181425045122494984842340497768948942805676411859975044117083744313374943879397911476900250670592625483992087744087355672980708988352413241121564672814039711823485893727743349969034762222131964948931661082817553020177301635588657696163780628818526890160659827380649624052318222971122816994232321915591443467497685939435060778587224402832090747376815808201860716150007900213513183488883694877422482000604898139951788027512857353799057205249821610942175118923701976035340835278967730042175342574964259158056853174395835927938130138848317746083092188139466876702449920982782555718149388696344937982510425255638349407321631591635042859497907217810174505770518591985930413580725371373120962173283464529724546362018029884652953005451192433822870873701833335561713416190158888083540839809613335732513953018469412336858646399061082048504181214852564966194496098842975309967459909419098172857789188608247392476397907309027104532015918045379961520696845255464839848349733038830855382677136119284982325163824691803741988457359258877034898566234956739572936055897837179264180788961352726203453160182333390165782023617723787406561956290528797173883198326688823963032946853565057022772537327182073401897718900385992005779690599250157899518454286620086065557306494796240725017181959948267403308616011010112398822827603573881810305515713065305064936935074465258268426130485574083420820370049512459540925108313648177263075470242298266932488407517441949426004547278462354963119362271753053819999961074456720572602805613221803940609707952102553908055943187484412682305881200349780783782512675403066292301692810842150595688947085998671122430016779670250353136887150136865836657188683693108172015893878031220081515674625164866398673698368027322408410315226929116204412063454700844741957102574263767319943278929945859049177235649427941328982676509904694823593171273086497763209805531656765733647881398111170785409606394376134422584712526591476354752333418208100429606936005269240411055048684246351378634940489666359677173037343620440602987805466380307703790525328524380265536206264951972506787841605478566616288483572524802587610986490865466894057844350200701161636620267111468835979431856240870512119032906766423314457392845433237931142264955245096598106479390572677043123691897455649119873601064060272023416041174698293872972218586789482318365849898704016999002032033513983450956583566775633272766718794873815303845045901793447363686508137267490970981283776753250333093960258742810394282194047741891538857131775135145827598873188482895851464678680015050576036329234975073646336960612236843280450087725388619400573189188842288069583435804099955894328713909128107338712577421835748821976499098653468736256449210264074484282899179186362528027997462388499181878733631453548931124833187025631362133457363538274812630079385545919842315477078624666890100787359953933771380688963815706238005307024189697808240851652699580126079197704591469394378075114992001414008997438219141439804252011669293538708056658248850136845437121282907280277822764760876269629175254893124428798024224003995983758006329711915595550896178040934350896863574066529051206655001040755952898123534556231018250259358063830876667089151892042663969192280997998431510657060043247509017161854430399557353898315996071532993188825553191588191732254867923504943143430049844588144785750161617351297653002349764319589281309651029733725202773318790069372660281392891255994702982534643552297903928425565162063254467135617413118321937743679718823436188456170475343042127308970607708190163810071903663005787878844914436949119577667303561786153956601722263295899279041294244454524100468520870065174486230056705063527269048463221682244058954100538959807155220557514825797259282736111538882639094111448589853848009510899975034610076640122972719863015689334184483266596821716284013525376280519762419231232287770427701753698882138911307024334612486960681242753836615160094451598752478565040178483460867855107132348916484210959942314817809276402038302964516634351628669555431290382631159748071883434395680652623912148021752143504601463357520889879280026945758157586540904441871069616281322755622383670777305006357738144455828163233413195828333635330111724289643237072516582380875671274499016217528620397242139289199247188598854726475013176162883319021421797660006044360532402569158412878210632702270594537301393416417699820011920938059702592686269168786277430219166921723738145262609953338435786451698270646702907292544076607118842164035311034132720809963891077141972273447083396582081547292984559030724197348753753787879597455316928161708507025807407386077101622504945916423310597769898461738661851686650451719221910206073228401211202036865481233924388335543052821230532568476558206519637491183931073849283398046790970601733098974215892405821017393983992204232347483295274838308956430602493930066359603853644513360069226686420012960766321767518513134728313100325215576412220161340145039512602512058880789800990405103904944427539847423123294182175327009884755127161619062628884923683715439135625113300208004077113094621263864848277057659868185369288008416879227153997844610932833918390775985032071785942075157270761179589369249387634865442969573801980914091646688884279081165291127578218582278119713974623785310471525527794762629240687348104104218240934543115579210173386665040713569555400082571843875911894255532915259771700700419133295886009589738457464901926004810081366613614748687773319956490799455102965422972401771330019644237098825432347954604251277750414113834195455672675072748898991128136703275036129064411777608715083579517719464113402843848138748262727311286910864452211661972734223410927274959946897243313290498949204201869309229726775102296528069370554249560097686391647578064093630607441077855354439599874815082365830337987995180976022283646014648387732619360666008335676870432715619143621099090315835325152412755903219927852098778027397538817670892002849676404996267709887936197829153169859927023133007813067587880582431994499132322449793571463388891307262261185235435576803050078968221297072707170756403498353551191513456928562034443470845317595195340669067790766413546876678891330988201816274413006565816541172645828475784356276449457736981704132924480775788104101593305583043691236844308367181756919997653456363429274153929874088634047768631007212318505966310855546615105881971517743039404496630562481202296643564410497145451706737590483496034186348958711958058722561528412849954811727538310453063425772399998819976540675838938526266086622928033825240685664001271573203944583365772915184247130351031807926563671392944098144789044919967819488300719666449919027906341453817025776854227073763820956862264982517668351624438455807642624529945226021241578140687661993456343529105855034848995843194776454400016706538694189495643466456097326846321770314360599698988502754909247344271803766952776098910360071850620799921940994352714701070101373534817988623950448015794204018154100855737922877062795196579259906300697637997788648505839513321850636561955932358948076358671216037773077778075496969188972163243754178469193788347631733056413857911368345038651928936746990193349026366134005040649743378880231149268979693862617727856181028584816144995656401690840024617893900794007698954346511777156128851100459046728916408931936871885526554153172036641192746710665449910383556334439661303324471598324799062974339318262583584130204150357153215966794212736044144332476870507124298693821919435136891010833203307019425072042746166795266420740288069454692861887293696972170881066286692898229978750290114334558147888041773343734959158735068414117340285343566000545870528484768868220627717907119984589374452887952367683369798403796346010770945404794842710188764404670529031521962934073428156840204013616228019435631140780422318144099835692156328863794528631525157943510321650427674237368494378432185620102305726406158457653911671956528767491657217780965039619384869258901072974602229405357121597476911256901101904676285274297459595557614978078729576129431463208363471606891382773375818537333332852273791972717847987991671257232866012680468919743394916908803981809744454153395506430295224942190276478645060593007895293769700679880598159814284014926670512701520218844180038974321342348938180877361773228400918517375452147541444565253650235560108038932686851629502518346158699401291321353705893757279409263162878937297748581018889535705502198434691006535038161750407459524194503918049573098385334819884060038290430117216576021518737479892652819331419633332575121673915176654503943401818337681642710940348397828834537000891313801037007876040160008411027966946555229850686554746343633294720581915009858750205206032096685125594095666963033499859935796812985385495002033133162785873317952493428957541970827693110275408968391081435364911170275394057785208640671719308976117132843329225033328328489858026120682053064816960633842258441063053655325598821153357961410405754785892860736001838731823930129987986984599877251493207254049251170535634784468655015103866606578500947504532189460686091735518526003414317951558473154039895295089437946349527875555432714752077869903075703683688018207296260009456144635191863386297907561551019347883507186098964221705473649129919203915040512185723633052973753945930447303501174311832046710811360134475509900472505336599779653896182036179325294300373828203924844870152556603643126338544291912408034501617015731948368389021177028172043978053173388053809952823689321470518781459844553640520677784768128852190479793080688770080481368053322941150601535723101332796206511468948694965460293339728565236388114163222985166202270359999629188365179781769911658077192295261291646138226238412699286430150793915604987023975043088114033141048850508057556968517619119403043228405851270453332049390178400687205356613560910023414393912547769185463599989893029919433713067338645836698806592575171305058808638770946498130368900730065849157855426885789303747357931017174345616668928510546973238213523558336755224171403509086784880624515249908594526587729739005140859509163931713638665453752220824179139636025452084380582932094566900877701535700282468122324962089966975690014434265377965964480433516061196128469174820920036346929340592327597625009515743463102581073455666617031894306432494589046300020703143297021514145288168643031215703145548106054494152247159712238697398032870806519957900245492509364798756457267974668680340770589035104696828442145610287514556206666969894461596822387702734603591609836298576250441959041046683610618117948170863418864789441135459920222546185411283577612318778224801912775433165398729454325453709341811299683081013105313298415661622440234408620966265537884491767638429000350583237331655050137304276944624369500867634968935371862605236026984858016869654206141251712978646752715302147281688331485060978508833239994435325394735687097783907029637165927082100577318131317961965891947795028818631522229321014530861922685195062439543655423407374121568137028821518415099792759333638923103815639508359785566625998537450419876204334612654810422121267593971617089364645062289791378210685786927961324390194016246670920969488950576187805691531024545697580701231188015071664919353861258415674571924492892722106736409170906719822443748139640424135797493650065387501206038709728721844556872578405158594503412927572309199923506521531350664780710323787894929042047893167350582716980071539885837559999534629993901670379312094597568751280553554009778735215905854877244589135566201543509056475007980339915769085843443023100869926885136068693246939555414287265229979326103408588280318049281358016642019648410841448768354721506734671362302856228073418980634561443426426753498764606974911525516197201287748072897820347709213750940017357391793102169533003052207326105203085577368776269314234565113799189236340699882454732577391134510413253933482929131321077013564144396938683259401877406715470174348245396120149468701769528310758725676577213639136619365274335327376823774987675700629853127776688637756999325247336010152100751615635093352937312793092761580366451058586021951727220341246262514121569194180993373766246040705906847175376979840407315905825345220435674201801549758591653596331696362854395106560038980641972505878496454623704329143334675792819761092446452864824789855228021271737917661912988417901877739199220838592414615710860077360535456299931326265347354713428640469140237719056109841112847228911356681906754203760987352061358479208842031453603300501091133658426187160712092197736723127977416027913520127561917177434454452480377768468278967907492523009345877855994075041155036305396701660150946571866517128933249011291685608030973195879740024397041330794396070756320934451268221499404446650425626147212506652825152718242537842988356307800425960478377870078110885100587536257851132874541188928695202673242486810475890372011454246647427683432192587049498091834616236160284566880026523260338306290995864737123441784842856030284088188464925967320912598741951097320568020805841660656288963395078089136768987440660723960414980550323229547115043922831244325142111696556089074309237605293786035286263209193433486812148576984629182857110159063615408929003264600518480380244270217272797459881623333797108481500757140380752954164405614270360375210200182000296019319059203987668827476467640768299775700158797758741727906241091360077101805085651902149374832782204889919048994392032234217292931239703665469719605847075177078213444054317936462748155575915908022408450451681404069863128221163239516597079213787107258045896371960906312897955388229322918918474466549387581511746737054607883352979699476124607244473245799446709296810037236305562699182403523701363347439058631357635560243790956235079635210673520259609754322769405422715701621285911103900835458648822775576336302955049471749318258968377699060607613744662277213621871724930785071975853079725477757981373886987911843917563779087099730183017613599690759480990121293825630022649776042395809978843496894520078128079579479858037790392158517951286448884476660213887148125655658422221086909767817097883482704119105160526089344854387066315741633725240422088522647782547696191971594310288513275116796329435972284550537257299763184278563992660007514265146997633121658996300802372939439295528404623800935624886604291120277061495445498527664254432303555476158532072979424733587058758489897280813420103573435353622533674123994914741875227078473985804919476925308382269436988775203391416321076109004783470496917816389116139644868092464655694631484032331444876916387252199690402504974761213432572545990178477580585139790447784339078022756908320276296592167267977144432294797781947839596266819594826305425865697982213862282367325973712655312034904280102758062172996001996350184342002909270694440491054847973611237514889007283212347442135242321304492607899273209421534833445920986994354075298437923870410348069608715550805503094334508488774299816097741616035396313334369823006740686437487297947888409235781445544133027594858937334073816649304630600465409418749713269880889559961625993232518238942260362493057611850892388748097217206989501351677286992900490510767235299030632850646687777925861796685047229074795216487152307078252146448908777366278191057764372707876015109857444529063277421723394604272832347227109163213798223336360363850630373334912473277763394038291716420651165217364851061580299559083289055403669933346148035703996268121641006160927496001355762968603313452633149771528824432796560812832127107267738050503725082478269034419112583270966608248815828990364770630386458192155388711799739639048972426043623228239231689935868968833630637022495339655273471264084432000598852152946851122534161401671349504741310239214549525351234418700632669262252227761244368999127236246434805660127713187048278925454091469008530441105071629818985201155196789561099393087912446205062101892746952340451058690141794188152782535303504322217693692251495421433155143952717711678727926769422852943317344956111795910198601849344900429595162840212467725441323444620287667683855133556438229678456110938573890929822426256508917079168887276986676541207707941652676940505902999226357363875958905829670938116054539515371220688747984930110528168057896804371792607959630420340048280256586031808333632199993689714633034647983687787703949005028141064836915164759183375333567550584263468302289365240651632493351266067181680163247413238203846187257143594948260325789648895198548449061804400219768534087536476010545129821723444054405350377731391164666398103145267383573139758269015335413813622408320231177253625163232658902167392145335804981040620517304147528782815321892974313542728772634872657986941277005357863799361355952709219144446760280298470505060639320179894808479974580613548516825584322309549747658376006895861579831165922947411103868562975545908972717850701766688707938315520300680332190774406859786167556152268115419107053271195315526538351983045116404618020753297468142475168414134698855166541077991245022169706063232138537823960750103798361823116222359220125081357128515172334792314690140867282819769590313555547226363583910120947701764910246428016162989376282314099349129899314421623749697435885704747096597107176425800410018174318179131170040376384208732024136147169248649955731476116479354960289434404269913189435177868451702803446869908717100259428162010029762170907853362038031938911205972905140325259650029320125845032668729466980999355101875253307726851744820155561422054942058532811678252824106592590251041780725779179168343075385550701268407863201994175724494779601708619116669745319315043996814380272112751184175346086930260085548226174408160189083120012685406390759414749443106381168013412660716987849224191254659477494095904352672596726546039374980255352726984219448893124377996130296851710348012003196391971427272686314291861823560583377847078120217607693596104418491586274468209424451053438695055881996374263264666740895847694057741892273316987402406466398144579274726699442785132543053999565728188011298363127760587248624014077432247509269345247272040399446290430067956808925874549881459362978504025772843057870783374832216659521881437600423643414222973814658902585233539129010657398906014250760673344282426565332135145951928892040698757210752197014747285437855649835928696616964773234367011728462461062780038905965133824700580140899211216404692237776557829738628420848054470283881727027428878694366733101026126586948482436015518004665627958576848816386012361328156833329754771786576060014531529345942531862090540682231268547792636994056688709618705364520402234293247554832406226613358233993999569427134881703774818032129406000732047024882549088025483802190040065302774435522849526231747672035064850533174868694654477745837473470429547014840266363509142846774736217248252487900315806723932776280909811603969475974658117359513197379766768561922301779700990676041309103648863703065554642310548712053951440949420078550135100190923511117419161001013533162837294448604756248046328229012099268831278317216496414998127846280092003945743683088945722052026845618509022630408077842801733669257884247872115034411196719864134292033583965244470943945133838515212118434840691206049435530732674897955430769762233459351386347633192125983647628235519300628979079864045681250983906307904446057339736282752599198342803876713891884449418989256536080295768413121602075245310484964525351217083855941183924487859091731056282050847088235433564011458331820200956370078278273862353661277744019388429153253730856487788945535914834144788503023578060477850553004247337791607598096620722129335159392281885226311198102979297474348452452443738216390591710170778868842941139094568215893415538815430450014682459547544588241969082524728517844640885971811804234235510018808320401050666969804485333715393908521346022803142276599406467854758699179576873177350861417683085577564212262033072202716541869450695250650703898181327859660067989964450372145980634890629420705421206658010665407959786679660086952940432183200625801152882255294051834691807349011598658336727764100953337246207670634105906973057950628622243284324198454430670665210689162944298942585880078938439415124145877810726823078018538713582845977022449889218193834422553874126688299325276593375349940393518801339674034254831991427579930877966369008874950933498268173883429941601495817226722927738506185988757246970311664392158237673238057165179837893774906516284919713130721714508483055619028830224385445204789812450592253966627127320652844289134652416809357023663091215778659858290124644368848630006165854380952491347808506324953631853680289119123819541919360678318399359943110892279642275396706291044243222617071912652753265569399143819031178278280696796678398115901119642024978921351531358788387225603014818137540502417501041234117766328318546548244638427833027032171976866846607884968851861464622377257491371850066599332338609270493696704092760546225843835862919260443538757664235597572428992279105859049032258773311085430383808872875446731985644112695798836415114752893075898417253953544509692100052666849913802800544509263947313591518357927294787702372298442349079147619332160844469661945075621292607393169294917933842351958257663119841518553513172053425477253229369940277682736446267875104205563773669617733895377562018571373452634627420524548509515943747033194412533449823121777248244356776838502716631820402676301279734256073758737667467726909271820939125937604484929606640050626143804451731052597180709875419531463515855022058220753529961607157067288642546848097313971571268262257139568622918818196952776339501762956470179234427169908205169147809854133886776147490815214755642112296250087945385818569497901257605334098283484145414621797468124656700273397661603993809692869039905576191328339000954561649153554697366598568031085220696320199187118611796986694437897402219978401953037092185545830298490591908775737094554668528034014327490419377644096023661403017074867243026849245619749562928921258130770399023052071076086222919479211117668591120069003117391254605016968776356289298504331643977302616803381777713267486988734907752774606010878616138287440808115504317788853473462020170904682381888885084559300665628758274631418472654603426726628999155353130565000112326323415862178322581105862952053806155442281648660822760698734473917892649094915290387027045872814414519105938900528837385098588538467899406803164414653049624602962002355130754884427853612920051825646672369135896495965123900734701695138437351148923041752173747815108374651864855734918759153084160723075759809916670722082493118422476566058883353455448152675364612564697946537846112314084709319448321657573556905676683474256566866826582955587809950458447279379950360044122390648170856646963120995256927859114783427985276293849157806076039563539565709408643975850823739631530965017727714586188952947288718289653742863676805468967193728181713945626317893690095651053095018694293989176113954321816705605964148559901514126800335000329738230945650721038199562776094349044220968212335421244194871477731691062869038043811745836595027318690758499059331663736644336275898636137447932897232218438878071620931894485750274480543093382706950112221154304778620940886491617132011035465333287429494226474840360512369268667492658554310786654299632811193827609200953725411077154096835594679388445057929866296243269912938731095438760400527431416805449467710792337094824051551682979331968245812660944816065668747466931763266053284467598520272253791559746403626418746711242828953403063544518368938357611939384478522850092212817679590718550102947512781018791177875501298053926764994617215175042007798275687188300432750804945443515168166353220765758116369523715286494734368376550161155701124718271008838549740752098183014960217756703305260892932738112960845406926164450543049895177564131336171765009314616235673133615217473268537591516668224086297464199854279996790744066550798832567304099204379966217182291689814449782156282321114222919996458001611205674189194351598752149589256175531138765444225098089913226815405462445117528647521705146827283648103828945700742370225118727169477607070572063680969868680355015921882972893616932224826690361764444713105998357511642453899980172408387781467591753913673851208333058007825156912782784199015579930422390103026092238045483426727271390010069909455523438086871026589633171070162314988416871226816046432729786022745706380059097648811280207329552848603075825234856467992177659770675165525498769792203988205088561602455273869105699053647856873099130302233994318876495608383591091646378642326302234849917207722839119627946012517799760035008514180422785768599682204166907369785014413919600131276844104293236918376861844844661417818970694149660253743613691336769853378769372130930295088951051509911450644933143487219177935262582057369960419771112489988902379831631222571620178908302160651110229505819641924660639109333194205613695476468271215515005759495294037660950705721932543806814164385920313310472044419550062776014928228529043686487896208617172222228735863596584828416833479815359956079892697621291887144607927873641488699125268363418975490046334911904848613900765455087998451991046102309332836701043595730298318546883072340693418480202320470890131232344629345784463686182396271716147036389181952730193863282300089354994530962017633407825832301526294950516522951241277726000016132510655080298150047224672889962973559489449466143074226148034978603054612367959999811350882280418204688168114816695513774428688217713879835393836355442407485656426930499615098443391640213442825857564234623660320848274529940798478475414506628285605450653780836634032660808437310821310144602753570181560630554249281017953352742595486791086453665629638921117295144471485987893161448963291979812814207442080547875233120071552239748576104806584926428579442329057937552245991912106007454124748739317316035279539625288420563714816158195467622238895953598414187755318527148912290529545906344766466771136638074096591016940371598976975272012609713672895160444176944266654442645291063348509023591612518129579417984760224208097084512959042344245234229491006992354244935021208744260456032596100846204758552038025969433093601112098927704749934639316997756440259322904377671400882702233685016563509613980635343490962664951629766565023333968720621435072407161013129007228612585708370494825679970845568165842524092678780036340196551585621112726929931968774633893035211579704978671410086003659773538229801425871836566906367404968822459606166690084643878689581523027950152898306274867799870793202142155821177417115399962430561015863748241169555242849477674382829139243595629903233744581665907839256552746894551060257470390937982178767729014153874043321180826330293272911109295980862849225203495993363422798279697979223333687445932469349676891809500554398373002966010608314405979244976420979632011857757700337893904939478627174857235380336081125494689491021909937206112310724489833786563407482267337280621644691233980969153132805845784033022518986205273816993634344052519633855783634703191056407830247901243187758934362907203973545713206986392570923130495141485056379353221726028548710905649199235870711585920933837549771800790723257406623323942903922688220536517849308872597853620568914856640064210968345114189221875173804525429666343612218956656436413559483587877620851968441272681259581243282904165890094563747365636367073951598155583595166446300658996724245322243769373017615957136281405419155345693545194968607888038546418989683069616630817396982673184479570644854015428995931196394340448484118667718053356415739919658882269248220134036949746480912678328667387727964306114409798808940131507644601194298083713260834704316633079237048423964248148103442540678312520900373903784178202220327313491573137780229121126808149939731479881965004616689333365007418373682125842365787403632042749777143490635182539011117462653112833425675085030123921258479979991197667152513832602384482687216546067976132965490703358124525478980483671378566101613120408473858566552852620149944295578664681054020941531325444918044396422073789922860782856876839670358273815783574726515505494018246657635464209579974151107633845712240917206540360790898566441451931136892015411672388019078179255242734149717650548583159043289794363341183087703044330398564915152700408034404880070509732124118754576778771774363763825882905268863543663360835975366314761598541031117649344835183827596947392445224232550010171725457912193048937231771372093945420140521046011321907215240475414472976326926087041202574927697768029631282118983063882589791768383158520538770958204493359558597960006974554649894658145044915678129307932586013914170627629032948996735097851688040725150840239230209608611435057398940504863707261741170359222054656539322585857085229292704284643773806855521165483597380128718741649562240906468729996407662107620757444283554360978679053880137399565075026422391155640289083531758955989469184163835367079905313626929254949617459193114536142044343277380902233143546686286015603941556298926406493962323455304463734725691916402788100696554910355907204480796959126630712078953617676680420291021752234125137654337724254189113233667080337387377943868848974921995372500290515941105671331078467014343642302841117707901987468003779254322561093838574729265969753870879819822504013532035953808357192990009911619113676347186573552211883240652363870410404830575048544368366992061092490062437745287797987637143063298053155369246457065592336791495856275512515456500247250336900890242946974671481150767727834270789689720344068422734632105345243389087392152971663991459490488176172489598936792034275932820310678641558542897276067034560056241939035394138754098252994319909856063667136912442688574532348075323974980286658513581508937024998347263523646780768508437491670712478187203450181000754000691494715097607378678045678598136611791611918849740562465562655378128789803691784881430673233995279776852062431432066341148367826601266052294266099496669802083443435863151460854806503675502853725980007669131886936668406321231671494279863862086785109178701915886837163381333188221736519918975598009152970298694386445960950201338097642010508435723516379969417157286806015823376839642494680940233324767586129607739722918810418414154208080699383617681259790136162490987511437575744118695213166066735125386498698749775461923711748323088825518524617577979515834595244022340313963897550715050506518451665302709644409247494208758164952831249178817954220341353188609478900315090427403899085579523209707781949571472718188380034918298594719083658568310249561444511057972702223060071726923144418207419628364867082283132368081685832536671621107247037345274856529525847238672202871624570138129972524601243656815707442170662129596517856529406829782745961071831444544022974388043922100548940274887428769490013983336307062069074616512466880518074525226896765541203000241727724191728926839108912666736810871994765933409379805129561602697827844932472639656544575866117900182327593016626708602043549841198377697387715029604843576388679029345608365519671655451406926919329749759398961963230409258345876372332152241728324888495118080358102781512824684768508989936625308924097808235389527903855888942251748373935102211279471848632191776508955898248319153091010092394893210967048367261829521081098474036901170793270707254581224860284590490315107930595003598250565756576993891508644415190916346520266106799859237129094932689121804846866686436653148510505686421716936270630595368991657990903483018840287346151273304228454788999867462672603048306230832897415281014311173243387639682087415252760897839981776056587516256104173698968961343702236330937976946038540778422768473146199036686866242081093079429609503465989882169705265204146632262305425652411432972596955167649770950358619061103262568250495919762316468382943407866690718259440602069363813885616191917484714345587741824105768935021414229247491028559283350254518474494452475542889869284689194899736666362679604749599394925330387646354715188253390377366137727208428500533852499907150683831530468494837863373333476975786919144707961062908239347386043051788891090322300952348669294771875468203926027410971669616137256343662144141747316046056681839717319909165676243214879895170495275056121208572930377630720140919640271786589310044613612219909023307636287254706731578824868564447225562248550620877829795790730117335068782539766040108687231454449872867940295499029303318546819848497118619353292175928967832205601577615120107937771876401183785294587493899897972972319685948906517126091681045950317502712280645345097117267743579900153343818448875215313189117202788832673780386765329054148796069874682869518258327252598960720933621620665570297241705604420820836101646523835243940526060018539564343430772170313115669974807623173242648624241874827955215542866406210585747240142003979148760006732480729684320371192592179981163861635016001805696576821210216724836714139668293400718263488870336358757623798959103050332772992560357996244622656777693513738242221276496869956194957697937139715792495923948566653880708015822832975501510850243875544501109154185162656864869311583348665703004373474709736784013022904513163195355437638251656938718857091137048501861203737828791304391347915197120152852209090976176784536060949122844574760908515228711778245056048298450611685995481446608698397772894854712193933748404426992363325871049282045575907863891878167753177247721798459204288752507898759981201328264795286360733709401396059355180570256033451094512099997432194717750214693565596220300348959286052822488397106196998519529758599163058435933151928821185156096850466137882925148960731350532622535864109900801679128047717977484677442800230297236913241592969361757286351510781716249768462823027911720753437032574433988931701336526959714724786045708153967690957783035432786749320887062707133665500719939802358157708742512422788794846242047156299539323228233838410212732773107242195577253704015127625314117813957140122883159989979223279641064982454550763757636155927070295965086384957069783430722067951597667750420253282022869001793807051618161803644620542277420598932461214414807640259335615078084853964680377246850733579554022356821229325872520917026985286202413258543775712748519930505567009283179661916383355725716286214116449999513896168842483145849841266595040128475880463434203652276471439741255796029875641665884995560322374661574630628162173170448456240139648440652129874677391921332078723737423809013431095155587630347077785723873710605524987165197474341390539947761056234563932376541417913411116469367584132513298431169033740680695900298609154589549225715378943558147091510844674672647232888836680345352071371968365127168845902132457628793629052495989602258866293525550002386162395428746256094203263813305307230677999651587496256450063221329500317105392577048115579474145912704273248492868893455471291753272310451958296031400186388049411212583482956900339789988494838691101888755263471980846905458495725508498377982055696200012563165399410049174889212799041397287814943767150775967983122839775189171847764118611941318760364452674567733042848718218701674704414993969569270277004536046759687966199029761428737100772557856652751280528889555763360343622347475489875094085121568684483377700976294453028687700574241748351706275750550691292113996582099534948560687053666264066301302741810037454539549825243742166249604065095233790336702894928357700587924873928218566340145598342574039555982177007139880505121418632417229643063060047366685587027133449256075633507949590067500573411813066665720903865640171748144960770307398286653448596310437074935048387860729651248104647044710213876372560749480861518966511011663441835735553804143094063897067770121083659544395421338271442363715345140736235902005271444210552472589260331928212742790102130317881789800432285530795736928880685908546472438844904143660781434915450407898030827912284873756676957485934114844766846840948996682766144980651348627802266888658381229258518965314669190717225479317616374444005325675814323740798720311002831611867614397785267605994451719938561913808196766127721003357505685261987359159962513702027978844009961951144208028351734768513563934333701740119337727827155038438768448789376473732341017500427106765757918254685701071091514457492389179895557349534137381623013958002297792120135614365923502409473480747850772785751186250011202624975854503170272738241188814813290494046138097055288476833205779174467045343730039089347469297144522206007473645324021302792294127137361955356266885268078450998302179922873590881974259410796415574908249713931084702837736834363774012243582241260948307234038857850171636303693485850697822537539101427740139092490118802827714321086805632173715427993028605307471267033264837937606186395173074081561598712889338739938890371859789865659549668173130322398621778071500202844383302065215662606171047016092967558587085452240723682373935523630943502520626600988384961869334439359429494168085450533576237718099530391530700797030518401420423771084556543299324978062159531098250403436563714286275008359360213059999625819404674887860146174740304665308011927004552658350091815251608350040308603523007256843449945207113548674215860230730636226823846971489512168658084866482067866458157336613958039041121437227127317670833428820814728719104595760142780491810133803230495948810421723047052100223514175572516504773545890014024134136015692757102075950344420847061419121054004575533587282505025256855241846208763635148732377825413321517622178844883604736316585874527561356671701797769187835955720569252091604045432206795630578297512415738009039171667476687361214151061428949408932716039771088749303890981529698715346200005040059937353758628890707169330605407981139901936598947268521603893441331512283721002650290090998591082621913538786473800287345922725746485365648923608538586210608801121688734420720624686548269730315680982630806365886062274781667816944257929589912329282101476902934308751671363208455689138778598990965943748727184752415910540437830851726256507447692210875759069582370733032662109320557262400199750521711689028092910486069429032049399236876295181349486808430183133804112971366767577398945389883041250947424759642971674552799305494925017879034077231587120585191787228948851784859913295406481360352357420334600075491695906115417933810410073388050516475429623011592844712147151608906582551778733217805659822633242351180653939454986403248196631528970252628068010906373581774073874446857134955019845663255970307390996682829884161701065988737996827821802504659691287911504204653045256257402396009701179051284151360919063548886160720419191085771454960891773324951532867722191181480955248855228666122686914356656158294680769500002284905352860178345118794184435401052752793146738944995911676282977464624308109724118858855221211266877120980222141596213421689766693596627659174105309587111564084756241938875398540891435001328761882198107120832609677435281864869246594326884911713419679880485191866299498642339055261035875705490431721831163724952789440050417919006864244279697449271943243796230058333074103788015818985487796574464841892113187103342789759437337920385247088115226371189201332801461544954847628024986903563834375318276902100905152347658960097121451190808247544596833159100504907004639471949483361708530078673638093147787509616821314052970411789696280447308205147561368779933522588022371920377186594372967683885628828863422207211913137426070570577178728941452897946145938773202079878576847592402606275833460014855005982752537132823539327854773500735805430383584187353996580773900105286902481030178502929597617728297831441463270080442218093498166384717777163480960964868746310894004995003036635664844360009142821629262018022002902937110670744244443699914316419870633984287781032423544333417975731108004840514765260996246772644036346105554243218090932931799253531046117708159677743969602877786627763026373456797823951125063642928783051921684206679466954244183145830431097220800675427298537865640383951938629493309413806390710407374277732786630138564463754667042778655905319235994382170926945532789171980020544278249959880089041823947934178002094576922264572421670573342684930820497548807673719595690203599925390529692058229388536203345867213641148916557467201894316465172659646863987067020471833414559690380272093289462328331948560756804154537287935908403744878000439508061696302149979912856964422717743818712115836050171509880393791581102496830309113428376307854644575846391899824147042870497787119121168078899341329787631614637149748782462264178577652617720212422104853246164058868513963863823867613370629706607698796019342703617216039009646986964149888015185609804306766797988528549483136662394632784904007484718443499084856670102196595810967364508324652031028594596479074192698399808209505593107757589854958246496427412562325813844572834103115976580896743527988177706924688994010050477418849059285032424840802879535174704531720503209943444377550505762619349974926970472995024977707854315115350541464494769053519422403249310306488565185550116054566239721015664079244052218760983293728267925565772407029384055897599434180083170085088199174801643826869614788793820499481796568584223173104660773067108288478424216515978632318368874901606775217121197102978128204917463018476125619036333489800966013387778302145222508836441277167958408892496964415909427775608530517921586764708557963491758925580355552673568664554822218202158798219874900533660357223182476089971422484263885847304639997018033510722322010475622369500155580777626618523582322927709327558743827418978797192861118993864974513640559261228280172593056296357377547674016545694327878683032438759261671128144900699776213535423662720758986519261932626144124186315393815133246415156554087179821937431194311416202192483916224905614108089550798729137951580175800655130129714967299781943042826190162765303577927879407359617044307901671874502263754807721044813126255698096319487011850819273652137101931533322713019298094408135002015794025550987615725799425980269680381698129149335839352003105189788589650498218479343257054684501639737699407542410115162599652619246136598623730071716884579539198342329629498210836147868956617588802006968948857330535202813814139976239008268316721244883768825502226746850745111402046618793613075781874113414552645130784894541497844831012434723936488008927396206420266307950322866093520226583134351718957051154700881437262370025214861885053180598539139390714093540608580838337332530002651483812244332889037426983309878334097478491603998205280277482553319513096920620676219591112210187104591219930590565223538816506805276056357042828177389960963720871029449462986944484110406056466158930360713617855396945228154708135182498475193128195249276985873481102663714365017886079467968258183276770551291455905575039034080001483600934844483397147164894886184181820302443603330812940789830100177408565099273705712911788081298163699784405415510576454985461146857437016792464272116572830710419645116401695679917388292904648391816112133914384496589655093472012110161989081784355833954211006532576316472063474708818814371439186028246303124422980304113799775025723086585723397661541361401424966602984904140452024720938606176645183191461372688411609577215468284178421987014951475631514811186662360681548703301109538917867331753641276115119240846853913655958708969673823834333086738191342957373892078665775517469594258943571874797487716543004851990909797526066209524389832316294721409618205440131683860681054786710110902440798455024714012757724901546753189744094891494626090459842372062950583048889016712888801446546283970903378288176896993034127609740142292574331923994294239383732003622613007786813999357507620513438126452148624872581130543254740981046562106349276929494086988062056200090369280617143211147896347642037593875162346479672749812249184023125764456059998535165607966045046570084003294457086090247127570290141909392717181840692155334849215082382429835369825972099482156357164845904576762842634453723955694812504649532291079871674386085807234837584385861302723211984096719343190594711868289053886058592041063637853634872456110282928534237337190615854021186573263878923501590684114903252476067450305558286054147629474182475378105144188522118707686478029153545327567315866213293717292823659512706780723660805635211209581420702136237021853234940189147432941411654589178585346072188310069222889080744840285016355610270624051948038371089352078807629026070725973023028511298703015623284610354474783133515242539285711659353907222499600374006390952024405833702844313700016702048927251439435109018952715453663907098733855109868974079659183697671602452608854616798194191405790622608920334678039635249067587243032955671823617526235093430719850450731998790546702022232598188786470481388519708804587946253802471390661618752338959519353147945161842962534646314179894507695940741304040921687256186924153553323948194917011657388324534032560250054874896211369994670257848598566046508439302249553569295769807256185863961302125201021232069425002614326132905696506909950314574873591466356151884600844364292862799994940336554228623355013594855051386098254514358860482961335747974230885009867324236849948049247611722354634804018630738815930433822084142935099832352476148617246467127254649476035194040629282660685902613884229891786337416664703781561655873104878318926042717469608740657582243026955129864170996469983587120132567283445024508249754889648339902430413694676806045692597328255720037952136310318746653679859810698928391806657982485141822137459797573219607652433382279690351557257869519061517919355254244633692408218931335675717579141918237886390439855442143392968875080490518734839642484339868184133715786067798878119595522226859754093873608002822595458348103143664005362701372148042243933633497563337217750153128654990136623133186638674387109158809963205512673968205921504393700604524672845713848136737639860440880632098099712621188631381827216364663837984896336869005006860965530344883648723432833977747058559029624579642451411446834181942388797170032654855104397282455389262303731038630669928641944958501689434633420188249206021159496359264136980415434948487028315250434297300480295719340136761970829425950383661876360181357057820873861340682724125604363167086441165237367255210841676157178423413651622293313062178310496726153763229752635575845416073155597947180640044027199563092351423568413432410955687968084157640700440239917203697528205494923451805094937887239100944179975664056222874994331007789936267610719531532251048083755818743444957986887759167914819983192754732313217608192107784097779695044382250347143478893075098706397824448476579323326740313782415344822292744105253621910020569061684205444284375125290964990191965582604200159123162348330756331677123212597429203254026550417292510384402568559439460436199918537208562542438965465902306560429730437993848764473704698701937838097309475653867344049973742175382781097051443555288946895455939092537295709256340975203232568054184839238298153074306569163244583778181870752496173636722555583013036342240964410989846950669697282753808921612785286873020640862358651924580947113028192343435869363414993644008658340678261277605359201439780647185224799386815744234369117772177319498202555420732895383745427961481362965530945101071555076140403104458653661398183673154797491629994875614945105656504887308425728267213481670058295281915543006185263124762190200958787933445187169337901572396951509660700987522834017050533514761798408682435729672560421716529550286902428314110286906926522048424359946042643478874661274651205769814072415039891192250924780256167291163644672015973202603818574657480191206796448691693033967230222688943218631303114131851205604014332604181183761201713564794702481053348095002610506532767186496926227099053022790784528572722603979239128102285100418859431144337382661212885001124447816699738298628076565911960669532281139014525743386305130600963298755287355787384352229144076844315496577153256521523241063450254734859252618831061253700456795901743563879895500533382033548651166108859644921877056995525725275348497937650142984206878666151380054800142852654266889407908074866960535230538963962115034505549771424590545762223248548896046110645130358771521697663967195789043339925427753946419120536583241493585063840902794124265964148804199577332994107047947063095616877159660535166357648711657987583644240610451761589696992808146631709511009138259304368335169856993446386817664011281845075898055299292399459125708221388202257484146123391309332591813437915763837527046270681747952380499426577490955580129108631173169062254112517802018085463292571417097333973007297312902183509065970617368122162277524345397355304919503693547456317427650642538216094883614392387424235192816724040979195014820458905965244958243555664179299914515518887199075936977367437599310379984622320143088990813728154377262125358371522859265547262342119679603812543444809248831182997476988239813959288769438606842283165163253598815367364544132022674917766823536669677179274263424869728721475917149629383194941550392440722164423977768622945381316216694408707599478885651862446866384537825751751423701742091859698532986211620997148242976541547959076085950782915982377226881251461887883458667621674919192691827172292197721540164521326425851509463878662030018057064455253681974470770906884248233297948178573418461848057237559828152138254637889044838451464914003123807928680058754906969882459425650144858143894802853147270703538258099606406698393112826713963117159510229851289753753683432343999032507345962576358795285183860612705398516647698541917569976780964547147667815302707467334418879299715725226346259683836372447951531728421940525455354762586787050697292893810769571452727580349608529568597558837360385770979100746586382533539325533342180241824925930197076214356766485309497697236883945110906690293067441205658044689127818429995460459211311905472365482804943557572733787968764376583083019918173859474064935924658705041019241081567250438242660536168677575963371897411860744893633071514531295264938672874334617146317186110370440469342152192542277716723541768139304870091415799099924374248749995675115512045188103233420696420662833859396413509130871803748134521135668992523302925263657002191330925949722740348756144451783691774597876809335466240160134181857437363960969538256507936457808994749069099103539981152626413218514272789609584846450303240614257797842492296762239598630956408413956884852200809013481101680211768154913553552194702272485772986660867488337411832709308248639570801002789403166633957116316827445657105404729313753311408590872760443981301863397675345476815692351564289733631208594529458897823958351967385070287281427822827982745416046092788170004393844888296322457725633836503694071607004395565048687834177262863245239148113280750055624972982764149716945873648297500405352493479126836745289041499806317626292468812145171372608815611535551285526147938323300408554807971041878865138142509998708659415371623028936737634817185556720690868573546694062912934721600046409912392737932208374365507272500638940684825487666459349785593173839668875208896369991937711508446182560733280091447630313872600223073729698045599789682398746265818061310487471460700841767155400414999169506674419276343232598048911336338059809579756415688880293499461398602761817944568189695141464355786286085313296429571775412314103258679419359071477808885395618412325482694050068158855579279088666518453240663092863546686286580521905913578299306039105823394090444346553909479038863489658990602883401359947416924537992155167928381403221129240842606491914744719519577546017103956885006386726737435571480812193406406265052977270554417156013175051601845136545738814678219571535140813790125395403833116053885652061559459881877043674044451967716875010797639980334624958798843608864528277428105021439875655486666035982727081559248020887153158782737709680868963613645597458738898677162030829804019212162143076892018360734053094472390787253081445666760637095962980330738322090737361767408176805401717537079951813229169263838720555018114341650541154470282187853808569999547872563453785524226882643329054726398039963798228693032300700841500544074503044534392786470318595751139626568914553637518688291082392371142467867352429193594846269803059138318025975782282541054942043967820027536309362801924787631859982353276475018711137892923285865763250498725176058565434167249563046480751560837917757251743257232460356394772941633357239505833660225658775980202542357289821911125990162841217235196674470772620514560317545623958749283240435851483709743715758022874590270798307372966539098727719315670471913169799813127114405136734784461541092208026342019215360628635424224427601365651001907777120434364318698116708341700821904687355809602091560231302839357884311822684640160894553013626085967182286531261338149921789819022676164004628217458796025563916621964898766644211809141213516458476273602822364953474104400709857648903501210214305510874633870514484529737540314179821736683961120157704291452792188440604382675774645205576508600423582710884730299545316486355487638573206048167196621858570751177967350410561795275292866811330660715196256464890419371550050036768163659001407787152521621580954380544485639640683947750943477453239496620174221999317381048974012754529857279960776979264520372202364644653298311216747909506905765695472602906028717341983791828289957953038616917283874942704300545367806843271857979200404589438649306252177405179555442702388796151519766217043917409064036413637951146540121338257345567519245489932226415211659985483765787345817854509678002994255054990878803055044074170122576265321768563285252884703517373232567425427096071117522556172268255675788773683085219337888786913301686406195282286020487501146501876372189500848247818119941735798026610129866675624673509523436738283251400443392122303797470886879834530341115684724171246902209706950517179498397192704027212454835610948884146495539082640524609143234242897742141408276514811793009556941037742947699623035124719631783059887444927609500102111036679266024853497155725631022175270729679320433303991457614759708054327194791091724054151608612730392544543508873234234987561569234125627584457347370926147500241910420660792724028032714597930119992355588419177762238677322533654437258429508556811556829671844813219078382810129434392652534242334912860328835884590625962275697024253330976357303560513974848150208303220509523119201984652462301258294309929103930890734838907296517723899256870981700381535466692944478987866350507972918133697696147319256199947722632161920079750463878267429465533882785843935404774301739993874990581100430247596443507547738956178927553133363217856809007739133257894223688679667197747236834843894169056055653640898186873111785385628968887303422919333029717607901797303731775661230410006727460888180882484249466971558816834208405900063580131737000559782785017225930575992647780803129878577818707899663408721844344900990319637183581677766432699774719385389977267611126906589281579377685895272338944008100226499409132004418529560158301028528499607920976199099670712881389965833027976639507170541662238392005197462159682226522486536507625969502376865537741864448171819457074940584164258966675555891487428029319187512188043945201502016829479023991632240358653630743443162527347176336088405982802786576449198436481930231859008289668216373475951344502189247416871795161694293953570482944837896951088378695851292132031180422914541005367430175185845806770001436643561216773143543753662684992969695352663871427040427023534417626087910485773274909797865695338119537895566918147796054771291247750699321452807536102218896500114164140468282942772789449712918951806350353135660227492796642266487839493198908723065266004252962454590334326282146301861195846100117715516771513748121668435604046775313982644449628128861736463202082961179317502263272139006239396571646107100986413954344568894783495886758517325213964538770790985559835224230744807291582098024050983626716937444247074277313660311670533178438606054351854770382921259471071916920113626964497645101141673164601734292190232150600686894103319170605177333943702989651821047918093288149926948113769265390129617626542337197356813663756746261161088957382980064936275344881012872977121352224996562361512908464024162993170563372437521444603775718125217862365241622339000826846289877539815193201851058812725334214135960344400377825392478514623683244167540535672817128074235372684467431645749527036287940741889924815264109770922519048062769576696719816314331493842582441880278551144989657486117629098134321289797179181197574196690486363029116027003850773576681868528480591925828130411304793061636126602787595677478649552548687624978895704097161884745838906545650822066196408704990928919744209980686775695121597139313900194552569788405701848106531477418141132157736232391241939302620935129106657624471048555747812391693443802773592261822145133125269030361095188677716699397254478703725844455997300241000175933727324282773836850754241355091639557810180856356259001763780636213762522795514222222156515856533767806074638602895228479252957477363296815648758018849297316963435406305200785121852459892993972236458011500613349755071147856645980337204220312500466285055493161677423977955804039210363800405892830432847603484413995123348814651655802562639379828756387398103530172963159206647156035622340859756912443055402707266203546649662049224566819395704478879483800312405981727486025896669879091053774816753060982883298161152735549512779721996865051407485370523814263542852052985220591236250291283109745265165581310318353770983031136734861201928463189640000099465943059590224982481839998825795275019741500719573309337516522245153437797523980399402088945590868899779624369698408843792321824966191606606034056621904579510962210029497307743749233643755178787324205527762934699906506016174870637173037130034410308337767345063146249911734193827783319138453967125421695432142795880082160238949475814654437955322763261427658058478175894227554074749621401055173929845816661718972593009513492848169819978763297442387673645560286202551146331087513468197649519552936464179720673670865606543216543821840439332035610258868187043109784365466941790967080479026854239434865179284928028731437354661276471973483174759848403898686815246033151680412129296945780398832196328515351258857974592847488928655037585364922240308501849864649516837101886951694989589614073584849391152554708154116437894671088417888324727222401262489061849348469259562082163962574168137956784882321242807688740096380564701017642439929436633422749017193422951529469236553141481257752681267407902809911744681717970542017808312444570224963236155167261648173816735921675571156577768324662423799050004668824532268831422714091106112428879658279878133434659625295381603763763033072567173357477565694082526470204721597711165664869343319105018362198705644488566677137730897644907161000083040580456523868718527290480586733381180502421149419004968437105994212871648531341471642396186224538478787109298546741411386060040124503304951017641942447595885523168942842282066145381775315666549420832401487970786663518177292429175989964272297301549317570860259590187221385527920320476673480980232784779065965407425158857049274894317125514092136016140948828476271512847657904923545076046483321704280207380845686810963574851653578880890154954556570821953572402009257416913512697374817556662363997564734761581894478874032303102579464096591992827171122002542876363796453688084364627003667643108714795441949079452789800834309215215966492428015038289959872240133989068909999321503536841982687378147658071335838984662799681379643476981901600682447839230016846536658734753369303559958270165092647366041512433690028610636585387027988507317690354040097323163409446008867079137393946880663191855656106473916480526321273119432727664841177513284243350984231937851848847131001487205305783462189237841240656515455064730277435146602119721968002495680341707891912899660178608652462858160398187872636123481999708058465854911465585381781876972667970203801667522167126139198728686608613706565306192356295521855662225212453509859334513917507977301543839103793010756936482030285964718833731930254403656545998778491075818235521025550475313201898618045322223855422381912741206513428447558187617870091721301116120962795519413106461475891596520223647929293247960164216325067263741352114588254872147818205100030531079209786281689863805646052001910353650219022731246723078776176318557127296223347583231305207417139102858450901687479687480208053341325436701879933712530317262589026541824751682160652538148999405419833988409216499091494306884290916575457678821281072001590780578626413118814249875289456721393233419866858482735706276194482164835808084996747525497501091663337015874685769410529731699788843932271162005302983637092983595727154240730248302799907299635630742425866873838012133286898380061717338250276325398686719878690208264758049016949524493034065311282665756765982108360243174043191395794012538251595840475091181341444286364960135497478056193899635625287524488842329558171545901050444631928579571814277151312384035148479877788152536732638276463423508018057326426848693950353384773772153773683210554377693297463183773008481104702413972509970320667615884553763662436571086107751422273077868838149534145038509665748179770886813973636647673514210411159571202858798900058956400975411852709851603550226265218727046074668089344606951643282237514019039434020783204439176063803317327780044576040809212696263914559113457856875573667112396153464498474543893261117686889043433921842035568218895192223136150002167610699667997238318994877905689948254383562950625522803103257264632977630022416571045908788970370975634706005240828767531574087430842931869738328261932279440483477259266610895886434693118336230886102867332614736721298134999647143879548324685448592731121766796188440569582804771653135380129750599104754187440745089792946122562958526871006295002558222963792985362750249719926580170466201255116857696134370091490108676318939977756420582924951459444550176883433912165112351183271216714153280432203243095861012688970209316569805042862034268654001360920166742870070433806417476016329866281146777895869110978406935044711938619427111455074156957982979814590010599151481181247156493686733588943923397880563870491217999951442020622648274846991301362929225173283750545553872894300525809796360066194921149033628865500611480018861218383739817494259179442429692232571650647237073355870558505620312542320215843760744414492224902141534446768780900971271726255920141541407819197243703305009100915835655401261805785802358510254840767064259574959123024449650709556513320351920053861475684343858420476765636765233138479045222570567364034261163455106151384689524257956698301876502904837638586281130416689441192999894881527118905685317169776481886226016411702266707588516554153804740680673056469199495410246967050188010719916279355235769557471043045895353385884624379133605871075999898531613561744465986633862728982913504433059951171144678201547254074786813471351769791947019640808631115873533828711229358659477362669758258572171929181681751442379392392732160871120618016755692015747149787723521215917110155750226458492674621203871937114590648799218840063620429195144096409007826019078356731420696434638767393731795356830951173357429473041422758904496111715386795674341177284245494715628922590039733286458009538414542629863445427076971142831421391952255611807827573994681465631156699804244901177703974301136658344376251457118858108737670064304885689447644201782547669059195408794936908821228607572935474126320288333321899594720821180609158469805628577513589655928736435907731035489911002313284793241609897305352727793124404205012765906822283138444227784169650644289815400705657750418519543671899257455286938125982267513103006870047763325214858920822517104856577500323040740878192994315591011119093504913494653474134208616370947279278665792534574977596809959362609749758405659883811826027965219174248382705505531585379925201506803498066733547968214957829207196400441150182589451803060271194163486671367744594045113611366686219027693337928607720376634117373446061761816300222357691567011559217000125592942166490692233353944597179273146129804905536014033699016620119814296290650827547359159893739657058652302227143212743161954406918803212829608355312694980156676442493384352550792428120733728524318261677006791057885088269700177546509047254985931966930689683807021803356372188324616973355237513913323012871680129595227131103213494157137042791281816085439168246783044795834023118668595605461137647048118312465850843583169787689141397658097197149257776637908921901663142118791112588066054351606612731024536279264797989246643862548811538426957283701002802628663772334226911493755998702481090536367289236833917193552291088971216361544228077236786671130039893024978328304069092051140494922774463740367659968404618981496808184951915666883661384755770362152844390555893304187207875312186667265287627977654192245132442359331593402105244180393300678369552064213475957878075030206127673219784693082582922780596290121688624767889586049603271907534247489090271934479812837030242656266701346040097060317778892270298823382473816475637650248077443031422925587679425173310158225785793529512318550951361260049660875994009123966195261075594387447420118718842952733911809135592591821831233909575519227740900271304752787342270279693369964479534104322042127427253227167024499394251247201629011638086451748928298431369929591466101324140641016473917250938452132826562832491728689373984397928015902477720829254664499973992259585617951619975298582629439660128921081149857219340602415901408676618877195710635029344513745214708430894469711846824504279483938029604505213612478867782119823206015045519686233221092849111571022158141549813097630788777570083685324707592094029245502114289763177091388328425018959286840062932833492429442595563505663445016224441373935683561379288692375477787198558947630218773763339648334631038635376323381499412775804559726377546229227764637997378608730269677391517513550146800077189787661875147432237460860306970399674772479811665649818438047290701546033524865377270662175542801298549516058359608039919227656435406334574099475440753953557806497591635570019850530787577838104485184830152967386153713905296995004328117023279578430962332923148696471999789267576001585607309180863944180369124455313672823751251185347385011345881808114175959935631472676440993975020094373840716511581942116154721379712677996033854947244823143294269499421381283392475005168236928786130817311919770943111057364833653847396275933180517352157841184654556745598795223715223875612192863605990898677646364005692462191274937971495999242081773234130468630983115026136341978917016049454170673005538152404598018198001360838171103416710206880997643301460382040311747789106956286309310726841500133639340485121866061845173175774189689993231397758058721936071477647520406682088132159433251676629394339871995074214728909574358052921634674653693915064866634858746962508017546596342834491120031547741521842152393151556326565869852716585888093691146141164280230779474562001812620951915321250458337713976280937194695132502979421442350098411613403307217561222689382087460428519498796918120168907651764085248118391109581656234510782164877411693573111468499909231919868292386036692889489164384749862063709169142117041961059037687546419644964833085823647974753729841829813867553240342951801921184747290552126617197104708930012193178562798434915639885858233321437689813041132562655951927941148590447661222585961522577901059423457604857943412945704692272370012368874133131752833351442980623704320558175762705731873055429906996721123647445204436457725213085907591260066275936923346026755241792348217204348832493898110194350630146863318552841874306512987105958568110206403060734643517112038359950280901034072258133471345800850644776559684238794581664523662638862457125474996941662292376845086267451292291217841753021715387121248205822201284823650938352806819596068449107248766368313569917360914250034546649544783037251083938629451799029344184660450798859933177745482394992826471510637504669443319276307883361834725107557841928781130893134524308079191136612995282817980335293195980150382786205582364696170207137769131550958729724579963369241761959012685484376947889770596263941470451106465800687222680180163512739345817664459152479683726281637686035411476090066941698832921864464299908236220316461588897425933442210463942895728334734671401480450749855470529248144770325100572658832199426460478651134983724114424245820666348605728205921399204146930479181176598619547432713359156339314700668239998670226778815008465692255517798526913477509874246743508682426139807327265803999960471212689363864478326385314972159262352502370567760660033564267022048336054041310822741011336713930588857899290473310332278752256205794401874672707894752624502413698700166108151146336188610877685989782386161706725184521003179718880130077037880818344020426330523754456092459299275613261586808708530354433886783424397535022689910542140521344363369278143420458826308522806133314626311353220979618265454235668062891803164166578637914459806565790331358589695287025520867246684993692264514853994471505718599673001861660347761269943498927821663401722931910820360522949979516156280243456862761573794647813345040250439884514455325425171537269262271909227026441065599291026964595893619866321409242100531601579174576835502235428379417808644918527241757241228853510993410278327048158942811190393790880753393234081935496877716532077403661121339208476507419318722033267110903345294062741525237628634645059338398153142056501964212194551521561347887450484289804325106376461574192042718997159499114124096704468670505999124429102419001635716694321739516798570069667934598554803168613608563809917284806739403841138961363192683775828571093785877077196796538157851851417285365011821041167662162113336850456302561897785430297382062171278358250496724476325097765768820494726437423864834366828283789919905063067579374582015617933007631250710595274988975603834898476742952581551737538658752433549242029663445307932447848036710666279179119809372365858932956444990139281728711803251133668906661633840495731655256205761387773328713888734501229813055860389237708416251813982115242412358100471503987168547664243361172708037341277676501288556792745052363179014576294366800916883880575278132238453053919670594655449508449682106427465252492073338445823715014894689078923600408369640797045632878224150277957378202208395534297388604754287789094982162153988341563818827388463016801800922635044133835814629437581794240177436434687275877982463764752548138025542215655225843335420466456510956773024158014567948118211701443878605816670466640794868608222000860277953605513886104391573600730738127414303248430467247474248310891308077607462458308297872225347020512143308012098571141222797359417694708972043265912037005129073059102950644822576187457207933446701857835045184084027057145417245226248697198810249118151913735078516855437958989518240042369083508920577389243762684644054524550544487284615441368127063369317098524478650357227370107627108466988704253771108167820888720224108724861617219975147841335730544106701020167749987844146324928434809223398496588436121225186720673410410745993569955398139237724456345971411839843965758069631709571397713077795705952179145836135294119805829824680640380626870022589448019890183919862384992622249822987717746592922463115698167546913297455409393864437933111041230125514343714260942953777543912716294450221202349888335806432013213786510988545168532187852462722957993116638774752115881311046471654597597671679931174623905643524659587451888978476079263017070029483140422166380770718219908503947411011695090248641998125780336327812656972656204840877846414014576417784629997896398327076272274635468354913893207167703054332621981328658877687377163230705873294206486115833079399025172195709697238026236145418895117367260992984316536758505048325938660705367450316953475084903141045617200873520815640550168335021122304840226757569653826185166065460152992266400860066357921768367220135393507338102281539095473488703570320661467299546050051728211262547215721581534143963304535945626465396745869245346988396367370072385850458278755982141141231930752026254502104465611970019316319175180035911989728674450974371069205589143953835898987883664307985853133514261599701530620624874764189785684140306347140884312533058297695092787726320340372583019966732823006698299673846364043518081524289153097165507890943271372004780908004569997736301262373896379680514921261699796843878011445946504152715043540492050051871741193086697664597781792098819713300132224901003778356632521849432446103641823880953999452364910013023359235337066842639945916668718995590724955648962434905382971678816845072561218441256608828323848193771502845361622432741399217164242561035116000100071340112879299171478639260259495813391630727134003191303436021795155520753422560301366513805315171753974708247564617380967701283220263441439762496982205971250903851952760022610765881665363270472076138464312641850070808789194926081451955430385840209409783609542371318713683795272535143497257380849695604496769386247838978458471153811467183840907394595842428750260045023025282448594266894563085665457412733765419650789623087039485782276680421158038555975805127140453471684034424200457537219454854232725577810957481480612135829866718078085322661771168815431647863272553759257394822636371652468856497787961105752649503742358207061795313912657247473776563894302083206099616004717579346659548918994921929150254527509427367832457148233389832149200847445963879858757480349661440041763817827785028219935266220563812845153648085272637920238387099345934138209503369200829878919293850491034638404041540895371618033900678971439717617949183884808339480448787920291241935609968430737669217310058301501884290107847806117722359741276471908834590290111700520576309900921656473855979218764723484663670568821691612213601941359854378282441353809608585825464208617192663826503588043138264586357189206128760906823217423792754228593889444488404311520687544431023991036433978834795638718269126260020183272189725743512534871346398915409695972842698534839390388729695687852173241885072850076366136526918361085712101315068169603285874845558325627279468905841759355519755673204007114111634978270677201197998992644466278137222837759299479687836254372901935369331561295026955399972082788564465842294553244056108204004145720677882925491221227073368729787095948966348721740126391179023940709063975162196224551656607184984760293212733269118867144556159201186775928087483677324284492802363990155669369640503004252228057359510631835515649133713008532989685564526591625651251611407000035776154701172484574702359083375529211867343340442357741703425229097829590020570019397668606638980865326161770129392829172677322328603143860525094716644609899748099705176954118921286212869702354020063308101220486111714122313285856110375523402352222780148496842219414104230278779918255991182938183228847058804015296724176162728417747749933897409283232908741543315220228266112400533467553008960373978433364323160647392551733048542424273227491608660655076780038244780322648085786664834554490976272161917590301894984385967681760004613149243927604300038208367077222643754679629047875607262385746779040468430855030410023629502812324756432283699861193413390705112769033134531821341228377761599568462511933330636696340411731180763617118901988006245657244428730843181010939577618888318797266081394685644964060622562593540717123594616337135476386556563830409971825432915510075190375960313368518937374368230482882881526055687383813623549799847926553656696607107122502714084339495471722059118473134943770843165730409626061504782958261892326179586606541123282165944299169606037184121406605932310183919103719940445111866344299324334295139462927409485546196589099437227688982158093335204887697011588270943776206496002840762914790451092179163054553715960616271864203751530354181673407148348685464542508102168161643287641545493015568595784352930191530254741048669716237252802716690228750794645117630024471490062410614233625109235586884981329538421168301408449267226995580113653888885983404885488372762280419336362117636007411490076178560871740402144467375569285094809110256841788518057090337386095772045105070748923883364794464051356985187448892052977112955570396760864161577293650624463339089588326321403601787641249235642933301524884933150393629602841379747595931318646662008980244767782366465588256680780774603377107619241758998607931961301214140502663975619075796725108544144872273506218035175812436023880282954253425192955142091458424012531679004009534413542098226184489748944510904045175810936991705375198892286318167768802728692367905347128882755915744297068567991292153080958125307063929600895813837425670409912668145066205382767615526793923144142335505532042263581864203824405688881195250433785476722482336039544179374188698918715202391954706121948290358319848569639147930253869014190328149814754283161679312547226239729060313051892376808993631441102568465437612580337813752121267870186516006731477718272059142509774835714311961725411810675780380830093562131604932604974875365180876880176254771167033165206215686203899143028327187167307930098946787500223975398190928134602022540995447483645806371631160186240631433941053161294927655073737257675577194035542254603609078977422483231900626811523219080752820759089172886973339984034191062683015381463142361611603905068451822446900270820168272537896413444004815837604371229147351742803117276661099612803347528477162047229737351348487540184404081110959084022680002543581232039159233562275802567826830909112595704188478717780395749247896547425095489757879239726104015792595916928742559895424214470859874188330819908085337493948603919507943778303905538293727316847806932529302384428200336179948527796970387277403632301312435837546795894716860902196160620568683408847334158093626041222186542548744430862988026984242920641480934003533042066338836815105852751903844231537365146984044541979196677713987586506694458514403322784806323796972002168180498151182556632285738514394843487405291708568794770578467956890011750949236939115017634472631871500884120355811884698113362942898020033848137679407051156775101406081728973828780805448858430775303032078369933160548286915474359530225099141150106697003757426175708835725171344955887158042095658561168079003976854515139055039033208215381370431018870413287501227935249712956106704228235982548361966186205783508248501354762259679718125600405524995242305399482025949274096005368895423421883724083073472653256706610131481019545162902079732503890141462427427936081600970993743679817591322595344162132085958259457616980988052936776454754460587466458420821918547931591462993597196828111500129011936434485643028595681991045002638326112335108240294170394393971696902476254882448391915149763286872314650084009261344297843461050152223468128897014511971527442759902082464348003481385805786575730121141501338474196564627054902842202289740490757805102671424073444914074611071715490212559238172282480006505064838616997805922098787809129535375640936629794456694966919867370993908994581256996853050578299506837268128408773089988597927440158693390121922292235232300487529488070704573370522437828407670992554071305540585455162788933007510163345513097993884863496917299513759175516128765674437820666916805245468212539876324559139737101416594433997248148453579592279648261949288619621602444557258402147492251630432361754601917451818720553502039876726090370659010501056780883674225069722944773213954690369401118868183170932319855085101803579895946356032009022674668708160893031097138973435378991114329106513891835246905249608559539841316341012365329034424955123636431343276338302449480606892627732160709723353138755936957508541855526671584852868562258037066155710629393909738495990012136970438315254467021968476215006387154705014377973502188322348315107837087698522816157224214256655951186380477532293307026382741770451810253373311091238166177136701958520873437047638849698576423845797735913261889307851874940517938423130026853411372146714301111567769493997612243120292845085867058040278750153911693713057745679868645444050000890954288414191331726090928250929584355292504300700914027801037989079240027479336707858984973316607372607209854867009477661839892951579768418743388314261514087049531927847536032940700815176283223667259550495949694407063014906759948222061273521280594240843797546174358106410794379864382050960368141537242295512756632072876438377969912836938451374081376322277885381288366940517858547634700667255393675558061257952436982155167443240889228509839601123299734477849939302300147022640061038791442622593225441176141329958541095245956952752753436149870909501880359158754480938606833481198150552289095035765332164124170176774377488643430086611670033607116389891466399034106890239330649046876418326754233256559282755157630848238931931746446784791395042115125340869853201916077629211095034857161634823864034590090562340128157614095377587975665940921286885500554707003885732520905921079920268291052705023445989378343837978394640101357812196077929939816509780085451083246894495487594372682200005678810192310764059332489226007391620283224221924866445968641196705036096887445255249394276676426822517779363329288716123580243681299055962303085849740862738625972792299092248133343132182468747265063399078341489272514896578102024147784477175327196845750987335986858182193865918740604422398994688708859612520860582973629100271035321386537186899746644519421021538136522227872509857340899279427607400905741429291489354523645833606729370191454508557937704166864404909072801868988688818994478211417201174802272253765315692771166068128723950299569776456522639956748776249515004587824770395049458313646381204182117177246102661489643877007169154807729344930659253526888811466103064765073203436159499913790518583170005942496173176754441611614220919923387537027208826484732169681562585702366507169030829031897594107444189539607961114857514339498270592287335942264928166402458196899829438685922900958202217112517387915707522839544137420286764433946240391924409271506195019668217930989590265982609375347417624375527501078309238875094910960537942397445115322541927284490005784854273903591784241233997399762115122736224597975513751451115223491318650686429441348751902780134090638334085823286726882193394266607034641395982645255739442078041287281131476754991048094550703607371939648425333729685189266786332356875813206785770856948964231214195063778956311041632876202499455280467286149231117290981225438696552503519577810883470849559400297843000497170168110982489217184401223908010206538593023776199768553977744920088985687808511521800385000069515482827687566726586017303842558347504994461708923152633364183371020458157752250191917312285626327845535523455320704862193487517824220532058351743439788681155296400716805879202598268137319648219893185799908080190406327280943210583821656610388842901301104270555006915131502874921128316988612501541838755904441349077165843284000094288722953934293929515486896372953148812145444522813424607253125281069963374876171340351331199938897558902045048176348543068873601778083928006100768956633510773228749056382321032936618521027498070155009299365206632690713549260322423687183537771086011348810870140762253551566768242006545715874468314468005427253323749889826686269487351057360170929446197070086695014383402456266256367524000627364403624732022957526286219925669080192088741066400626995297388276599585836150631992030054464309388490495096868314280765993446882672418041369553451028573674069810383012091689822262605621110988667391218891977735375999324815764841723361845586884228924883861049620482296126642601797778664247945678298051752082277708433535768583291378897973189014548033817436216341708005463554075081696486207407426077779534786951129844468632452066100486370059347080803449954732110060350706753611431683188063948131990433387844531369030810401952516505164302113666898490655640407894144789068078188604135186704080390058529649150175098723419959331085180826057797189804994877595884692251584010747702694604743704604841037849402511578301166539224615234788709266327913085798590789123123193830233817243585301445357718411751128092295122725165277694031730818274057050603667732436260541825370513712888371049366465491246844196717124250641502379812362566125576555978722948344140005387729641224346180212075904538882711113052288479552866587022144349864550517022107575302554240565445255967620468622867798672135593253085697467456937677496207510765945049277656451837400701160898005783770177326838760652332896595589094434907749333422725130922939381406477428050440681085067063372182641710197977401342041475411905943268816254346298670587085731396611255921679683861053569826765703025805052148816260727157457978475823901381427311995575896966709684651711919717074732144662908321341806088169673025461357930840639426670084935752076332614730262668971542672642188539782992256700970607517959467082892832790559859099759509606325871540091292820887936785794267725275585483156897162158218206208647259008338021342410761056657680625016764396577785839909114679382923189691007571120544272449789958943340849738084698779605783216457200551431608175803893134091633288222084339281217736500091523296376948124657905158552504332535576102069319374968396783951386844757798792065246522541888169636001556769255107271895218612303897084300113165688338464911318765533476711278564220755950402256583607398781427988180567547448139077295180968392297973023961825505259072844829596828403161989588510102706925428754533805011722701554554807466341835168242196917827671520702990480647286648077555622102923081019632403293526635027381336612660173339966581382209034105157268595398696850735741822685892917540715258235036602279817390669629496741214185679566267331497452335610542772918845896015092249530636780628719946199138120642629853947949485303339929314314721043487318923236060891379420135881138732107768205794976969570757060498264134335466137906178385456002332700983022564903076592134616071584347144963798624610604649026837488285202999749266055708893679057500567906399089435637767215332875398319555429117017405571417699103170298325164258148167915327078895969211140355509430644347254961617365832718425565530185664564499004914650360756178851064809202887274146615483260682705223303241598761412951828666079059318529242750300129915497531996447565654303618496895916904309142572578077187711397385448734916838304528506990236238752307690086578349817273104024600431355322913112209049255960581535410118018629647641616315702807499274631096382700479921335968944426429672235393595449851598152086931100577784054795297109738253226273662912316663253654817344996195676866618369758455719501298402381208244723039285090441877532455996835644974227494081954089155870152629639317904601207824474405253673348834047811552946449718517757315348081701813416202969803927191330783684216785352171616737183670854194255876165786262792871451205387791592999245800559731210443500714051817370577992277834455642287408578013690118465609061388963994917715810037358957282920271261276096556707726584821600635554618530354183763184180709806220736365774558379506403656293442914793073507481350355976899031904145934011109731260123760371324653964818365016848107954240098227068844495101249448024698393622855391230561925074282598563674197039014767372925839701779867243304798871931493389172191509939692365683766256488538035327559151073052692185085469211396473208277344596361166996005880279474451293655790765180403625270848170955232250537113356697281716053107035779568457079570437290359801002439107619231093351292411052028728683031177025904677959780954255226661080873124775342286451341508321465720827903615000368929499795581440625641589429520188915714017131411883641337240799679880242109198323355026161063335986643239700642012204298762976137542921233562959588138835177639796099794018051114311780681853331819424049127344930389582976432118305945976390081479517019532521984901001114037313250158087816379503491045898201179407010515960327950932427186135033627204223196694715085953254924839433051001201006951814138475465640112922979904477739902210160121637595753354924103342418828604500053806959167173703230466420091540376372088559151836511406022711293825758858649526050910337574786027479092819051970745551401340701760040677412124763933542259323221436770865670383901540853158482872303442300547435353666545861025994622510651506029641887485661228165595327470979997981388393652087154150001161769030938267389978774331014678172305812142883118602397848190847242776080674620716139131897622202927584266317021970789512352431898952220156759363741146943062401028374390258811529576933587707936329948727713042233302733228734607835878824014635972873525999237722368470927821877179752252992431691374525134359765413280145427630532880372266849396484691990741250317602055464366440217667140388429604860921021600276832036745472121991987873831536299242470125539549993885213238249833962461554054940962480280331585451518102260516345418128156441634963386698510042791554993831612357078258315720163967964972876203478261835459298292504777094631141245778458958812559891785295050626135550723535775579488743877073856708363487858301589609190389738958945052146289610862723506344432977144754456816797011602977198220511033924508464188909048515705387487298418485660571550308535947873893489636053684542617716751694594629319888068892022137249961768119418644962243278091055373355669146009362102932649283069444785009069259487452786947483652513266693131768627758375329512721212856414788090414903099433640863497384692914406554603372818338334850350413159189158634675086795400556143930829240038574709443571632327712950371727677464157272326903662417464438500025561034760648699902976929060680231037765486446323454230322029027755298903475651734935314331781312208935023902525116034330598554845416949180344586734232690037199779205499240339865144027875984047745909861837255070132369356095020705217067342651437242987284276826572930391894037553961425710048360227716646384631589601357079412071287500010972064195373846721698897125181336522240570209755932889415065333751391121429007297182588460381570853220244702815989369931624539507971854330021240194609662721160445318864086266532521255161664485254639805283163000419818713768620321916720669487296920163628009684905039474639663170488098063870467182738585134297511571621219832013956468328270223343737884646645019841676498593466523417711171146211481664701699780697772118384746704903413168471557892685337925646582235229747177099378672619366294616209527953292254831496116520085759928221344212851414541176449563661539348790278431384712731952295337397099637124327097065979815068903160279418639059285310599669459364760527123218488767657193096713472260374153173093419297995580318543132868186205151234845055608037846614165777278284276431029005327068822231231433042373991392624268685604575407261527950735916255613183311516353762743587320817488463266637855375972700804562805807907912967536364723039805726231044834999669930433167049857414449792775184754648005116342061157633642897924122771912889346653166481930912481343846434455107617221531650461289137492363833615422024719719731745122730313141121223435688442932171188147664672010126570155261905861778810858938679746127938856033078788748581350752691255531455533444510241451028973057283797703424506700247340241354467200183369592673717912437583148293577900563231032759675841403693202739844457453181177619132518924098587842178132086420355991082470349483120552756115415094417933202870422295472630650199579112723956944962540965926610378693766833385931207832596829410602653444481655427880783949569624715356399448954787826325875272368550459668158133933782805703142769177170159369876315985651603438547228688145381193562571371939203469869527975407363938882714674235270364940093216325900704874001234926071542585402207015703901998674358714636136360791768806914170020287630620040872070708439242105173070396999436192417882205932013081342591342264577964179327215651135115680095585418268110789905759677123905544585680412478356944957044599186363738103839966028859493331240092733453611895863456653407210092185223833516581720865961955229694770185279571223657594195069367311427881042098807689325657687045596289597011576840704535270938338670233151651033735036293984471027886186529951866576393150771757899924773232421962123579065287170849215149127358527217914374612436843197587722572313538024546703672361139604481043503946996076362731189529425241274211038623735855947649031241088089996937744772355364277199437395896471806973155516165820233704050929517062871215055223985036529139212844051697384733960089472954946209133512915438017807370818736541752264702175605760328300234032544552305211057526777098286615890876686032759114254731043993569230317059370548844153699821765538713204573478529114063709348382948357756010450114720871972464083042694007110436087915159313533561162488572813101820517197802023017941795173443374052434508679341367920861224636497833977617569451420371357171418203591303721601761355505747872002556729487516561892296659176463302642962889782734749856756572580671440702355919452244542666837335239653334132555032108321719252981362269905797408067039125055754998126525088739720522494045443299281547422911277435642487392182698325993969099716995160736375748732049493569555179208291985422850389342128291777004596011538299191665666453929632957780623780989843166548241770865418068281008503205266022778145200522600406068560500125920759422196196554213904090726220093444786704459286474932525796081246181467725173834175400500291979763155873806971324320553188727417970775933704060759949763075943110081833863032094327324953839236460555516231401625620225163487535238416264131572479446750831007791341929430012009897702465014362344323027995331774788908696044296323789837688333266121666303041282904593569077648529148075528397515281948324309656242640965998120002400884367314490446826127799386512406639373302745937430769569663496724537175579252369169101359658440361866078531605996261071411803268596291349263548531890801697717793316577717455612784892058534131713159579706457488776939451587812793415776294810993463205031205401720244903298904194074872492715298888677479560351774728519209717241496597044037505145506799480140448471796813498376691352799523656238884034146040611618165821677911097674625682799264432277664408478220681190636789266410008692367208333299711948403994222077237624606662347156295177234307499039863967888102090480442695364080679318762328436153759632915741260401825532232438954591880987457011705905968824510132516953515086109679506956951259270369501410889376840469462812715207841643792071215902713563565353675847005517452557006105729287621818454981273967558746307227632377582322667075074994717396470932264675516676602433769493499992571793831656689259183577142125904917870083322477907277951504342468988831925697037067392089797574314556068643397451764961830928584931363851974477858994428998886695346591280069690612861011969379182715527452602344745692497289646229469024077979276498483193160609881753592910120186751936720248788883344434902543362840112064486161291252920709759096318057983874321300441420681783849997750812890412188573008174382452383321902899118592835980641859985992178787910114419000202453986494106071148543621872114606199203778331969684739760437430251516743227109817840008191870003265458649567198500191976766974535574438297010141246416721542566347191607803557952631431400631701496810964832558997019825038644061241715732311344893531258679562530116995500029198440714897665643007850392735751508232453272711356985168097528145123864643482563361152347703010754350151148447037189008644383960651402227916338162319367620760957021068600908188695455691681962644563090407176371870773196593605658634968888032746415352690367870096139935229835850643026432819398208638289800280163751720743537470887002104800743423467187811479029654727234988308544532790604311921638893818690347991819209028022510967845587513413376307507468061460107740293825410222955445733975007542150433855331874479057695081819266945171459644931987163664176585803250027952398579587759803141054165417933909805959566543711225570757651286267485976112866808370535464700464638601076550888994565668280210459059033522066939712736580040750459729264282689204804046527650387714535300407476443477495142441507922527110305558361879557766257254544603487667089502740160029144894596470393015509543169798885085850073260547116234463518211605412108779012909661444180447581431645757830539675718338493043098543601684261801544135158694929101525359485716762865801635964490455003159709273457935660431973379653162705287412313639649293096385741425795653935534979056020706731564156160027100318176104620235728943151840452233310181696929198914273479082065091353582994598873961811617560328712751659500591849990759400323106938351864102097788326091330037336060358933642960117173050978674515998651734768197118715660662105602470962447057278907085898453125043237483674923116491781077676663194745890627673044319768125553647965564052379372336633592465580348041987720557217567267519546358470663354202292046985212121525421170691960311560749509882183018981561688382662032094457647336236876547671389043867542756180103386300553044011990064027099680210814423651655946949377269785673741829512012349677580141882816578111504501520454735652455234088443102861405743825696481145656154428529758789803746419753037040150496615221094769523253607395088057539960764846359183669236973057952697948605898170788094973434327632723054004615033225089448316797745852786060262723231630936012922238716847542355733898245815923387228216379829573015402366062108695880710327601700083632337834062777432482493778490223779378584716358526247883893889773097801231837881715454037549421844521683984795384691284844822584896712526591051942065940669622988907307809678376980226527378204900093707704691556383210377475700089540142494335573685235589440663654450816698502772103439965627634506896204775224572819035698199688495354554172633798890279368422572823475435973145106553508521652775218143024120120828185748308429712190409498304349175313287746647384490379551559515830085742425662084438341222623181095254224482097137688428483836539430021262647097259955975216027448723864087539044945038883259991341203737175844008804636317069869918019545407809152294110567466833343048770470865806697351138976154219692010656977010118283385795322927569604762334800274694231678540594697273220332660862745802229237428602071445361654879774696150464341883941287248811766300519675743696801728486015084376354721136747764765069202843290093875272908232260976576537140249906556765361724323182754158861956450870177029967000187084210848952596765264288106177223029900758587527140422158504892430269710614336056081361478070171229729223572651321227903300035247211296649314013038449802342272145902774957599297602801219038396503262530109205463926550212944953890767640801486097316274981079645381538226041727117940262089368707392727614819180494990795651352892397015103590049247709263425788246371260750746513496670021514622924464225336388113929882997093815559122848213996141637504128792293108709974254093003378851689837215945668894893078226471373515673083153830171501691356529894290881327244826332945311651133328734848827269498906712258378443664451592022490226295221199437308645243575985464814255731849560091959464879681579991477847677847378290210412713236119378539756306082742511291129028356061418533457878000151025915537290139512871212945742108033493363116333070851749233767021518275839970594378621229188641266801277128997168009901602488571287144780283822511468592578893170801460698232073738419755667713845530561693920920187434493832954937646244599712371550218977919967038697792336842006875623668093156786735113846648056842053001803478704638567219926489028006285531493572018669572327935306204762849662907157615936892976542571839443236450512410262845590531137836528278067591837640757592801317769023534041426542193543908195256115863488829566714976356053411764388051532666569882537027764963259806048919696129849290339314444487241982489121966220790668923973908711604295005595047519882127477666175463333081400000321265496720719868692621568651361929460023109833205438710830130771367095288925306118494947786529691471659977578219588804112931428121571972237155686165064104543473716103672992607625375692965929685566734671910160689290216690366210328523866954105657700935549555349556376085109322383083033010457133809364566724225992682972729386936980408584426077069005740725439785723090602088552838078384210886063797762912498650070576603164932587450249617042013304700380281476566677449193516206045161375845213878970837076797958412208557004640959161370430849344855468041634969318304166123442208536693639675874414112103818844146854626624030968096012636245268371765903695064845578313847733459105174538466527301842348662665831270281453112485531132124894498283064682488594479979258636685498917196928363543769792828561212712586958585928759758305734346534375060104643012205114512661565894081732199273778253179533243857360217995770012075654249667050422319632817900027307833435111621261525877578544055804713620863663257260897529527573439364510223097556693506026732166986411466867055328630884440969287516156779557326668818982523168524612510531123899803732150940682940718452163071281163149371520648533883693517893737786779264375642616618986203750595146479509444811598696987167439443620580884623337434005274413431693249477670619651518499110074003428355773933089476609268707044900658206140194615616612917490805760615596416985775637269894934451038496528811992429060119818703154271486944030054631678503324564429519782912336763074311136215962513070014915232177775649413692385432039204586259880819474856014654597409109405686993811325199596924625053824208273091060277971751632945021212212442867557786344145579465547131339815670419294281688432451179950700474489339998091610410704357138510491131139641754714152860494759768887932621135609460708074512200442168212821575940397092904748071801626197898834584450770570454597754812677510903909961879238193544177042038497233946653266492833275277374616558155159202838465293785755631789206343890797103207210578668316368568766939947567586340018610842955346679391312648371305620547486226057541289368758394388875418528246420325808272082349205569224303458772188465842763823225999785585187219652101646808421951890584049688240907915082717644827548409031830966391281061593830618374672522828141391657433431119883777241891294532347752710067597736158514281961244994151244839702878540309280390913593746128113978043511625049332628130085137742431111975747336396905665392377394482698081468050793137545547706546191466645701749391421415708285438435540077462292194102792800060479657699337592274653156636781349464864706209178773586963491618799716173848534815800957626082886250542086858848150533225178984645860493234697171005414722576772962751598600958269910927115853280156247648844984825227270565486561622464630919175234813846203124723540834681386805210438412073345649569038693153256421024700202846504641121992733441184814674533771958432988522039941890738369748872333568091174643334860336155905982041424725681770785501998318587033174124516081848722443730745554935023867882805178908595281256076078100442756213622768909521360411544561705466941780998635606095513041240639987331675632259211973600090371008795983211222474244107297458727152980877340543739937111301060670886759712803116378483447861390912570642847517220033585627729575406374398555844312415965615416081845296973073843181796773323588763927982673075075405485906692838604249250448500345612130749866860016811539578750905562661427356502364993502702266028754744158904317223246173429940361462812314654852220506353459213129271820887699804457914986071140213407933718636585771769099429072785176157689190524688736840696019329891262289545711690655429428158216051338026972590726915971921515138174363705915140346484084218040256646738678054220183934923324781097767283451726119250056584972252477607933247545175366785377631070030953951482573566569537165358458513096954645469249879818784631025765706801541394755538660903306942771227051001997060794121006509537035789642432467098793512072790491731240131641132452229497551996682391717270395716234423753718936022226950330254230071412558173541178897925060800226209881734681930490514768335807253287211959010003449036112915327661622662174833642186455023105974629264718850934223630719663894892724899471920126499689020450234034640955470438084032889384738594418246953073645906093979195844198432775243087304427256546877142900316886335596945705908963824796876665855084234617234193000750627642961679169406338674613676782972822029106422584499284315245497260506550275742519050994139121282940271956487705686168130738438808736185744279929385814702630888474722471115584177488124151081122896802657593917815828282377577395064693133570392615573126466545370541011561289233735082175861151758176486367632919400900165755161310326091175423427086922529820747261929259978671188130138659327216682672192799929194742321346217844281533537805408864830371079852882152869657325063906471941058558780283642777972566668364031586418621768917635779220668531530496409495644177079386151776232875026211121915962144503091176884739076438303498186413247669477166608052297835474133939827696882615454080586965770184965320019784451337700264042633585487688790857747994999476079991602066461127333186379153391184440711831867925831582333985385165516144507832800550765110922435999996349736611056820652511932541370910486973642900709954903723890679299506121432359363124712353723794365213203826269130264768314185889604753901115348144721744284807934304638452495750337478536750225013813133468896055755061039096164970847414595244790413851740355924429206778535709300231308683381325489342729225975850029858919649098552217698836406435587691851480284975343954418395460387151821979782244832603958898220722439610020120871930476157906517865178496116500793695576098831787029072826547428837781411536398795280320731463835007887623870515255722653828737117307034538134140707916112272277659072622393309858095333090436326740618716396923681171170438553351212267293042627092503434124893043776536699018361730764946989766124294689226841096502164924832639258562441619383307040953255770637547065274164650845946994078975195188792061197617868591018295486938431348254574626032567656724895527845654124860426101677044453781683693466069786858235702351918649009073093673248792538294416115272746565655192979086737590787263509778505100931625225700535757157025017176217778843633069929629149644446565157456353575642645756759124914082491814696638574346139608606994853769454821150634705468062168714537726282760394741285351528791762245718912906723089464342050824658538305470557156207649188479529195072376585319348701470807993902054636073390758266530519306554809756993734742419773289407231659743232840879300665575072916395665607217184654547994803566837678904595360955376169547207187450247359316233915923611138768499752623549787570696069325525252841656672664756715490554079189579585424057728203594143151346515692912378451327758549386163544070935315299243347587136713059239548494279104183172393022384318187921988805032016184078409961705475998283367640413241305569296469017729391934676795373650303376511939706583135125729607616842444260322125587740772680595611467946898631148752352098490285165280771956037475436847309633768152421440315526913349219956891057187709349374215037202424674745673600393287931873745307479944156710745146167721899124122135422892139650322346926275380140230719250281776156774694678519951280898574387268223329047235888704211252527286621157452023544348102892883296132621528602329133079119658826603039453765709148329255929297806057581764151187120633136869541908302585204912349912864977529349999085393640168984271371481167669933513639247337540468828374181469783297887725266243802499271853426786648956174526205200789984530808486606907713078275354540000976938166935662194177975892490464733065798393737746351686111639962603580768540905978231037445831594030773324438700969549377860112629298351087065352670693309871487396838946263113448861258638545212829760685130927240046021945100170362728609846523510045231485438170440428499971263121785400643122076244945534373007973077747246135824772333537200965406868404464148119749984511522789716557866573498660282545589115518946365187492131334913672604561204400705517519198907057038679557260323039910171910720317323384757274829912275423592070808082650237886380748633886340506042457168905104386761787188012462870790486166395752380875450220225696056644188890757604268526861707615874484247710655935625593006267311617957888511711002600734745249279267641025777806741289284672608143748660976915105592875449305013676545206878647481678651338737444730006558320181971329190761803218346589867434437830052145690586616088506848761507104587095365111854606406289385361326409343549200045793635318272787288994901549196236829621216792622187626066164918828069833689989118657723375437036142283988623258195628796995258735097029529717133934214205940350507036022759630043525101133791553983628617023197329662327102004517650916937333480854856610625966582191367108518779398516820372213742891385850210183629495470086353617924018751420750642807298607717740844799023087316801142133517290643713518104865519151805341812943660615529481064466530283279381882144306174922206887134576366663804103171748463899872774818042203078558893566025338964941176606049971237380415284430531224056318118506469835541139008469420841025858836531848050358697724667386444331172860461456701373258306588572848106722560365062189022019429918254154847131676009240220178837616458500226092851748761155247419040987544484285265156764420924127928182624870974273613100101761770730231492906407614501034051913523001701516470251676407439994054203418806066404937673243397401274947943992815189255446651698141849163074133706044282480973467136698213965001994020736556938937304115149370383240379871062850114427690839808468594654640059187250312329000287298410168085716829842583882079924210305133706325781167578458595169763974104974986435984259242981614278556405006212497307590716536944089279250529256112787362933111228697824836421547259935789881024560589163632534153968501674129326415133177543048453433128373802004065101375810279359513260826651219954268612866263101110464869692103108083586493618799685068124067259629485844200235865685763551924692013409637036634001483555254813568197492207254989844483712481505157184893166037370789850970951413253178848892008868637524929339466935640880886431177069928390514071735464862228486057544391490113027758373014014602448611829268499746955120075313002042596351152803643398067123460603446950031349771623768509790387231605217970028223830518258875695337677297526819346719105109384103731590254107091005989047062708731280536395787881131328920231245908846763306347665922088181732330893593513651454819572217818517941588987938470676069416461450751556931227397951460765489717933494601265293027214767112519873574661725934843292462827209886607539496033931519494102369737484630336140803190267561637394784567039098166763756658641836285726258898777569461687001379692425494911392311649855809496338289035270117694869391235796524724891619998224813348701448536965093332547902708863018826620384358555921250190653188373973798528401642195808956316024513978545612702099580312141580026766567680821982649302663835658122760279702027411356728784086641950999497560840869142179134502951492135044049266872117192169973700258724192734637540408603622762172445151423304729200551606929166125452789546719229441353502932192378961326058668935947373473996565161599083512347006205748406818746169486869134953526698847348355365628173384520525811144390927436525755244129798386922586573970693646209235119107617737415355055465669669816915752739012077954213745021788849951734072030864859590609425329323006102079476994205669340732635948769255864163510558220638258477369784852579774074877007412410532213190938349530721079573467140239209744166235514250442921665170641641128395413063692845749898691256997527671235265648108083710611319258265786239899628919845322838419386323441319864300918734733490680458193439457131129534832759815011723897380916499670303161685119602787912239980060036688487072707588803100891099600785350928162495748368946160711220200054038328039602326791012578182325395221957994258922931582095722403070224303538372655873934289756139313569697234194835820223757377366847900119061713503050995841733207164465437049552901279326789727085249832780055397515002555485898655189669854043007370954114245408721140117936423671883987128373961496472983977966814434630773637649740840897474221874832479532573616635040672676299227404403028271733910537210916564477455485163094942625176496747948398037156726184621457356266102802363023700252396351045561043072600630669148952452068755897382859567535409525241949971750891859973375746967708033163139438548627908788159312128584169055030533230112697526530278949369204883580982810853938529467045443970733791007273516575657318638555539614991075351449020660027817609546389999642978215518974396906913725861321870999545813707436851326838539793365503941188992260523781201777910614525521635389263034638350060887542844882047819930094254030310942329328272328345984400475686999069025200497281658290581753487142496891204147786442554806079724371486686339224706230320546515455964832282920972937633996712056672960746382880719457653329135146780047684509133386901991801096360349835825300324917665087792495681316904269407311343701182475806698972633787748171952888256485803699466314551007793972943329815297005329962560803443669310993857215065054445831747690776134146428942529017899828873709346518141332263633541329398915664059699952592838625764160715465519284534910700552374059477664672219053839684228373437270912377195540808160835252560080210534908065067428694264007725010192582926999003038997320194696721680162588222996539095479622702456960894094750773197065206372399970701307809041944160190910798437858227993564531206427449668003558286089822264172734344180843718754314913874193344045816990502208454380097800277487687601958358766209974223142769007349047134954332987517531567574250734993431236188309618769432816811322882619908981984342855743546590473880225325977034062747317709402300721368591071746141795789672930338271709179130975602225723569124012406593693921595593013480872177446622138465330022825078782454566560741452024862947844974214766062103909814184512343094097422890437461130354927114618227410903102042774678759541067919477017429889260539495409872275701327090025589068817588330849438144313449867193136387012026461526761458297854251578235160329832653618320513632198646999451731089851488452219451713183142831252912487604325152337747171449535936816104583838676982602281091663448870238074003742124884052158186914996984048491570222662661769120905983195136111035235842686618386778982362940981754093496369995750014772133894879179679975988959907523895505441043644159196219046178076744468125709808975193814748725081151809034213900841717487143444603359375212743766645019004073953328133598093640184315297153913098882911265900519608413495986990962286325860354493832590707316768001346078219465957197866855976161717512563221943822492373862464846082702526621739736765799307334150053823577933279768439236896561056034733303154586716112410874079500012424831757784551048118587963623200153097711246915492555011944257904247315606964466050704072786729659909214896959155032742886499585608831120893489304695777149814404445292194281995285585984327411702465336929961595383511698008705915726556839430959626998675515881565952414312442265414634192325250395698240265670124319360866225652828827275857193591974491516010998479718263443956488963503874277771580391861165033639694897094930634379186212476012462132145649583348719409288565498050729606566101748466118503537027954455718902285473449313779781736365003789474005916019622609030972687115681135845375657419282465549706478368714395097645679662856554308300209089004524008402992450649519598962075533932198422717090456619838075380944038219488619737401896986682929077944102150189111590447034894897529980448419853250695684797068964237988738471289047093776767516561439985927101164006517934334690130375841927515884452326451401750133592830610743275839871630406745818287568367319166281471567655995447830640662369396610293723814227746412944882556460230172424594737633933108344279331458272728309800046745724220791722943307895158812883134012200625166650875229167392678364738255826755167474724458003219408365248561547837146942961402004263464237091365279249166173917748147901533676288088366288374338163531245674973666325214375355880233558732542370253987589552758523083633042094353384660802550779333786425173959497254116046695330823291760576266733718237539915198345023216354211530964725722742120608650690045270691814430683959999895425236454535614679987501616245241632416543034321578852773124973444188809323274748654878756557969360636575874437723612461741657439965442331750623176868573644126690033847136910169074794241606173227250219111038181119694929891777288269508603538495229472206075602697961638412607576301898892195231403367339951062277300867029186123554137818352894481667699234313555128491776293290398134370936543318568695144086911285712632385694129611367928071832563269819458010365592634744849149274093116976203765066957029781395298252740561285606232489662570332104237337674627326763346987728903709574835855563256805761003792266532060184297142373338324898161475643261898333391369958350794471111097969803147018234391797464379904678174117637971675962481544678389717432724751468634873013788896281271630709936211125271845384332963866348725581625475079022888141620411747737137842837097491913144527555721813624907208403631501751025737334935688827349893179400145742187312013940513514247156291378284085435867486889530658965968045409844216865728731786658909479441374846953851053847667806624396556572827580260453240704478624974578048438599836990293062798427514842184988664508138498382907417556183650053849636645303666743907299668305642796031471503201816183327213476874862121720207255378473495448734747564080199029939245781334007749776569089398509493777648808121549959672480329136084676878211736307174755779493496007479030149198609903820072129522939869318289165448437666792668994451312597366959413205155918637348164866606332135481349731235546776041273761830056398365014983146957901080765073894282510239131347423157018544812426339741602943581623784995895972107694633310821331349000876801784690846125249759713892896045775051691337801653457165164581054029292810391913411669406252153850282438491050303168570495007623908645920470792431765270538758490228148077976598142299307940275009116515046500047489394184511332722536990306783659842331966474569070775904724963378488771887591622747206619465692524588809756908292341991327902180020633771096058487373996134418792818290295209865552272538219214545765779305575781476843689330097183460072748857959722722712557497145739530240529011831250624275706843462231567263152130155403884715120085827822886538117151924585938139635397074389027148314235191175599485139057145576123947970913174150580849932344989768895143161938566023990632918469446742453464283269342394484877816981691017824877364550362729990688215300583452208873220339900227917156151378741440600907100597416461561323438126137056364134561429944524495951666834996753693543591166193781675970954912763238170044443291709654433719107855813411286898038344134313236618102805725910467733855876502536315511202109956436194099616362220442943762845051748435465451132964920460086938578156854233255133289806112767863807255618889365950766149231640980423640231013749871485531133233965907270449831481751039945175224267851145505049477049727494624090620375261981528756374262260689939107944419369606529152995824615124096133923222379172107125208748772900206894508620645643935199570095441309728482864095935182512616748761660527353646979659215164875743922168525963127847734223613804810467869693247831053225918475241284405188789582629880331668725112170260249199151573604362200611708901342605297466404655474583434991922057477449413296397634017319546955427616830047664700648915234344280613585358975914812459069866409108452361611725707738066136564801993260783192468607993418817655151032602656652943351584874214039196665245064947042200613154137003170787913439328368541538829598807255635550094795864808449265470764036272236502799530569879289037482833915677701476071965096293787363554924510487950718657270866128352050268847481463114358835466250800259735409657286998955031620529566326681933589054677130629911570559506389272828450301193772403320949091713998599380411356269296787128800488788027133110198881335440192268323047153814932303941973134974993668356752992013942457734726833519848165342892710264961934294811642698867622518969981162254514367723471275837594435468403368733421120238931850868916280726488985748571886485268702150785694983963586082891625130875997288498547576219758311026948820814275347608554227075504619783900020880855277861083452579328474754063432767614933196573606904079877436615282027456185097014500256236845302184243048254213636382893509620573459933196448813403563014015711930634067117676826073005258221985274773174738747608290733140590929254075654531307748830658681298826583546687425825787301395545756433338982587771132799028739004624620189986003855363801777991102242869673635052092357651351729331983101056910153676058247308808090476699578514179559045591406325637176803886488879221305105997588256276368738297057327631124872669065970645167768777018537120122227774940233853506316693084500610851452311944920737029765684245293320722935577324640961959198219450398753105958556702910194221797002170678091600773999528652236170321792777557396690111052620587947720836022157072750243235962323355121007597880236421918467164892266952657988257552295612752248868932704879010899187719007705622492772817044178407631399930262270471904306309907484820749376121665759375205034527615685136085039195772806000169739643019477933024301494782629609978064657365352725997668317928145664083073993096550270375197183100627173714725031349115393703469145504004959547904621717949238111065682994274345748773828193667655863299375344689502686653040189605062554688119672488560957036301183320572738424784209202597150188338633325709939600609163048992453237024795410691023613696458657033494941789730977180206061109985243181532073049478531174941322403555908330558112544270164537879364104164989804178360034972837711092175268767629493497074545797380351047039786732397342725634165523604797305090046740774569313199285688856887062431180376815852810942407580600915503572803620724391087159453451544028063223874524146583199023332975076203525655475023471387265662830763193341184607670221840515351946109625262191453245354193952300770063388841836976210560040603339809788180788197003830790387867234864103208780313293573608829450417647094420242467175755672789925714027949790432180353785861495493711292199092637126413591968945976151052566154456557210711111711045967506876177441530330004134838410532972809123142470768482081107865858766161957433430707821593098224417135161024714286130514087600363128024695998682668230941531162742098405111193707542569367252846874323206822660374956789364590979228383528155724726824591210559945111322199271887546683714049123319266029057830982385864202031503314628398447133350771571622280385053769083636328324278061883246091071264912597674977372874583813148755724394373066291069952328009622533686299378062740883601446127777987268772789304687342596693916990226917254966000331687051448043407404977273898176218878232192785909741013855144391579920535753438499484139035221002640444487541434014181623503048540970429138486520144329989830045026277115143875043948037427522232505769436223929676948318637464172576689205998775433756968559475689768111328286219154870499495784908295902131070446731053787901659668785639973889055053408886866969037023470142934511089877292513413833897230796433007892139612510028450851732617847381668697565535115239861386032688574021918520638838188714084830563078071680351483479292697664732139268423767093480470987204870008085178163869810643492353811068856228486721179995594356903967589685664946733881319938274611740468395557501396340617020944785294437452407263721480503570516153988209522611600446902237243314214434045065753208708657687077597414646812177747829045666548280909721204005486881224110285953094845556921960488529193831617648110678864607231219789533408717129096275742218463701182063108572832056494084760274195175496467125636798563196614910498876385426519069193027533467699988232781225642393193321768384402546846467093972107737798305037089127049707097809224294166073234038965120932953180107909959008895052766567254447712918409896359816601146131354385229624514458722608810997327510739485608604363626539396753298081102044007751195896983323041662442325029166230572235695509491610581610743182959012189106604541021116543709486650951371034184661809023327066201433887571543626613511047797450883709593259225532272149969470707692495843591734294984707201263022583033878774070489240708398796510115899232268558337926644960415727487642966567403693984204017678811072953819724200701233564389607278174057778992521262047124309668140972282705783297589383239576748560780107453472755634667743989814440228652287743811916482747052558743566285239989594133461128563310299168297638189589753633515279134602754574748003856900387910813570215488693319724676488213090730942528351452204975502027144841738050431719453276286805673309405344214681039746014410925169411857478431826630333564561587475895688199823318078988300797420200612407189531610417665277236611693410933659400778934003966146956399289655569416354723898040160454426197483790991565933335343500372071834846901110877147260751084155043662489397945099218035913424032960647066281255996844962568133281897075882660522340464308585508945542364681475709289517648844384701039001954966330539351607292177993691293651194187387338727386389764546418502805200433741493714817563030447608700944860245738770833551341076417610070707869973777182251858545944293698143544452230201743624818008546300572566645146864422200676544766777627177861324665840241522096698211290728922175307649703959726808185659194437311383913451111272596527973928244646675219519554150623921527003979197867045349530726516515498677694222686198163259060895591158447368373155016331824120024972498262838336000319545998345760475524099723159005280270390541472500644730930537019994151111356202986421048277107987773398357237869734596815283712176519241768572512747091928020325549694477986456728208324750711397834207699419650136602346629027980314604267303570462410922502841095349334392979745586573894403768327030706420944903888623728782639589631763229179005150367026620785037414655597170040809866643369013715212738670676179696401016060488507255485801513541201748885060566641864452874871420683969912264592427154213157929296946348523113678448637715601477288808887625724848573503278614512238692301806922555992489424486767919437699028117296603343297430317357380490916160376303246232765824651611732359133975458416571508335992906115535579583093560678970752156174393402652596221025722513978140736299631756227003568936240752144853771236167773734164953159018629442767711590269072864654227759282584979392208900344911649808670328719704141263397273480786097333836976993582940077223753447167509809734517430883069039205940958512294620518017130766017634005358826250719314887258168513116639237538841960345399995967618892564083650950148228206609760647571551756465711235786363385014256034002566251817138746124933095929723554715605415811102806323145807033217171858321627932613450195794434895883942320647722167562394257589063942249232796701824571095158678009001342392391082321919632047362253167114809674463985186013431257065545854882747134874859983112194506187290630692045433664274999896195469966357592364374334032890415553502918092748269103500463876032845058916526996635122484354340086847971568818547785741801389964337124449723077568494900728797029027988447076183346390698404600965924395271221544348366718614253985979852007385949287914750626474583201019395471550952479870685733625425565620852545793680649566205702434418707177893152289899520733787483883755975266868611020878498193949375564322746075169397205237826125773058861684329259020791992206728100850161600523203403312598996530857839116457018860856523041950262869297824136338851854696095452350336521201953085849826873666170830205091495429094288038930752668175594430311952403683086262971495791615127371999722272519998301826475136480398040493019548167699485663755650911286697304524969625422620075052052854988989735748374767021835418767600954944059875886701487110232649896815252677385449656304282306897576956811828110838403494171295267887509180100264956885615821677432431626334660261247866275358533829601233352326490979834225558725489302667586539387067851200131981794962049261658154341092750167880746694743372051234148761871359194587137654987612372614239560471113180892474999504557839396839564150034785509350217719800351878057064421603876084073413656603872894252187934728065234003485938457803153037986812485780488820661723546354452228700262067605755993591545528695291764616944510670802374446743976913918861240477498870441057662181031082029419271792286860164161012490362809951450978373156784811464696638445409320563311169128653306278652783553181321580633326772804348823446150055271978022819670775326286370040658623903648822766552804750544175199082116082442681803154727860467785912264589312919084249295033994688479663534412501748635436367425544286918788732077327603797703476355840640147851588284672029407617017316993718341851472650100190900319494017439329369056892233954918321182201382699785648564139749470410574315624271250547772368275786233170587314039132470194647433473969381564147804817303283898595829235234074734209954265923826049250413017471452516759601040901684400396979387610658145022071234809629388374099872491375046091408556110414483697952657588750579132044339764318628079144249566474969942476198297827405813848330100369893303684744896682752402213485841098085704809855354401016790110556118149827387162215300114278382252739807388226069563357974399478695959912816888790757387252825665725797561644276060277517396707519653912985600487409967041712163458236820751954397941273578691414709754218965518363567136947740598376363475696328586819920628086406073715840732203569125467381165620727946196794531149451440740885196203806969411410522906804623215073999973826646560585396002276984960686945679865743297102355722105374328080124271993807159647508187882571730378117800889220021949030438828375318814699538835491694605641294443451218632514467374554930055792572579272065354344371930114760374028004070079054770631210010181348542953210455171602413124200941782271360576966150817433599228145900725829670008007286188392762809962185216288030558689608801866432166497541920963022126937932674597310020895098406478969844801567056623113102701880980558827456453398016663102421920772568096000571224169221941838138758113667875150947660268036916372000157325324028021565438950499404503923483758187257761627146015487107846023733212273014972528612174324957933071577408962914077776259868080388636431207559447694432748762131639997294194842378452880453456921708851583230686799166723526376959051746627503680513877380500887604736165171470529405071847033733036151608752484665255040852867704470228440285332508459979679305600405620200546699493563744009218429542578000063365989854713867521892479258495966062937950354990497246864918522255512658171741899996581450259018919789470128435342283799368375571841627283472308704344890943596704586751298811147006772571175285077263496151830445772441733308647972224917486373369288213506664793913470483022969147301231080400069671618670011208198395577844500116042488763186535781604193716521408825876725548399072673060978052551284192522179057962019542957363369011216050856862471731040140932262354661122981722341753664624048922266112904828102728271532705054943571147841286241743243150811281638932157578769961839105243897415546287288815158807984634521950135132906200263707962107192951520946390045715097250728742623515212536202451929792322557565371985920574425498846697768895159975505685919941063124293753516539625306541493391590632057300702274535522170472663007917138125340985236064220162081142350812518438966112371539834476506479696588408047103063499755127068510167765490701793123337935507147143601832114684890699696510143233554375096717741210068691792340429145143217134344013731917139041084080374807128403586530328805753951730185476235182775338621950105420352323815357043768148125691360200470957023720267229176332191707449118565962175193948616704558806061974570362136526561983575127031086215852541619231662210739104005864948259593470424101720138622320244058013176480200486840541365070729811363544248886144890252034783746209254421399198392521306962820535697433963096236644433143117261868634081510053760679491097877915564632839056066289316640136033394769403425534559319243826177180824516083632641496008864093020965975248993603642406216682538690989011698297176568280501106343335283812537697195308759142552982581912010732164002836807185363106091984465801923385410839135406970271680635003228568809969767784698892706666134201003576492796987333943143244770378420816442371183597827396982756842241959433104878448733671252619656893550410030074992687790811117412562257608371676220964113161341701728372440648033583374166560653953962782489023325219713401031817367759701443274175130064053092131975600464313849469010404643868594532899760712751381143493024152085860309027285289619774209314988647831677083983077937986345590563776143275708403073175443861102616111501815900101202384728509719232505227103949570444415094899783558352616225368945978721563848155572650064918023532704990286439787998269757643404158408615876583760147510105087526797866752769026274321641160062405034624863697521420537507487810136406352664294543965406823516540683360248784470895041277970189750115608008742238555336846430831229031478400744537948939568330709941024787654031794759891693528587997700713918440064843282778156846095430007822838594421414574163319935069611608785028830725432581772782660568985622732719166748732045470371333009678736785133091833364446895216870037990189864907737091706461147806456497178642594586659594769464968697372354267508718270900698145436980516008326346572263331745956876730224684321052079511982654718092901246841244464888449068692565824376968432484807143398629546020419633286007245947552582419872352511260642427875402934484582999379898214346638180578124782915742045800176330041010769624453124376273201799091958360902866569746529624260896688456772338983587176851026706866258666855602913688546600126309279022528444246106936808897587639197433174344696824540011699320944816200185970183619215608860077840684299697255901122582065678424841571129084736683530242580559881878936060794058525202359518148465440936409826275044463687970400203348074998064772918204516646312328036760781708208818630300662118065706747490911940447323510458621059537453865576376998212154906030222845969923036391062117937500067190173046146825874624157163831513645180341752657251836502515276685788182089099835353620651813730565049280970583487023176723110789902703842072177947337157415176229157710287759369034871871820586747983640929581435265845231135722920744430857506764174483180219755180723034481976746302499007118581745844275694454923066323685916374951027473450699637850858559567416366740409289568871753844724979793233401216764355162951103333619606473098993979658866014233973584521752903859925947396003149523153919249861163823824781137811206607371533949921092568092776090311371472824146160469310551761424822350657228152316675017804713288703977232235357971697430412528075062119324781760929612287512626411930787818280921067746568092420126048047345721591582219395346185391029967416592820520956168123232757073867795951886640570913295370275844090968891043661891848076956600562613416593382902515626660383061251574793175870533799996421801326856727479337563593174066288462702735849344933357318004404472209745072083744839956347101126762719158219314966485937456711271472909176020898989570569367999879667484386967973583133905586187897370671235045503576850543441525442439172657720564585508584265187036169603041823778680146070990139607386860582684335829833134434615830359242380727239803068767209065671826802854600165210101418508825997883475774610905608951982026155871820274317129003792873543858853421494674708591161523070009594205668547678323013363345985082500000526648423975897618980231680407395614112168338716457730712574133208733560353335491285785692499296753584177128333817726978824521588814743661556039587424686508651686258076484524240985426676045478215504854039612264016629178820081866040299424737523691904812299013136279094231161916118842734013967747308336202209902980989288367640956414006322334734293709796489962016384711158027981027895930835964329519388442493337127882327463241884480049896072025532534017895417530209748430729579492606135258371957721632200463038644947541732020010747367091035192266832508737774278015843281534442049090718404770975994308318940383818482594205393212119569147082787741547330760293050261145024783841818190427156055404098432129983960241466535963127873910819416875666971364993336168830582835266751621715908033195322211126475549463966003847726325227704267988764591731188575155186780496095315147246881185915030980177895320429305420414612894655552196035673907599676572095405740398935586083699509487594582122251755386054466740512541581966673599161767864539027696531175267095775279326544248835359438870657085527677737479819246375072639523846911115572499407553322232271371637386800424067993783168802756433082266729317345101790849739784611883052972582187531679491190823563689869113775530736748991569564883378850124721530139518431480096142927337456526755596816757479139747810468256503484148032168698200568694281635297539952366683440443949240898994407004299892564397069753842347578742213755997600496489568705239709705743447509202531954804988236531656522122014734041040722858864797580437883783370760362788807708294096423921710348039451575077315322517899888323449041687904832472180196540580861704633238469366694360438399711825281559622938832917705380859190011191434017450131142594345306983941750228349156288820447851108209394475616889081102067425889894124499514129777212497152080864649625373920278155333176802876697526022470758485810197766871779334252946491726319388852402167257650525728773216703595273039933999032933682576869922687196114868370910008013223110170686230109461931171136274458300082442619293580134218623816251094365896564025877740110816183022825309785020146908289508882186096918042979453720247384797626177724147580093448533993558365691838176413287023705718859382054176494411134054915361963774192831553746697917250073201758814854711183777682709992778971150791132487058090024821135964553572073947224521039579600072148076103167625608662408055329645241100027819682811657940761195815685155549359663695525729816810257790570113547406941719304923198021518895681118667594243023450555128297036776632244862017656925131158803372497091678726243164822771196347669834727604662886473487154873279505359831212085939141650941818784671570483405331794737743931385483350100444907773840688159610932054015836153762941222474041121575921968726937107314990417964422243723943470316440082116222032667783015794588790327232567533854474223165409361578778901129774331392278139449577253533506185924573049184817380572238389734761492694009610395883852646593326042022130362557840918053890497950808033048796129163367413984871152774695053141847603967369049710892778377266694164262595012855751632706462520067862409852585552117513453370261284353403802887490928695940881646347995294275344215852646743931525961983861017147633044778099949247916848403037847107117115338535674792166492351625581917990961465763277378817060266293430055399669160852490120584330143955150471939313224428064688130739355860296903949971597130799716064937323738971861546956287943118879640032792426106420610611106769502952295081328309776163987170477347596701668251243557645349706398965049437658459190264599849805205855528635672350639807738361125401816189379683485342724970789229174512826652702077055589130639201073206658505756370101635543415696825482313678057641043871869797037749331196026605200662116680201147571131610216189521001671904992574466811713159075650567431763313704574106353942703204579400499278376236149864904812755822581635785516932524825458509313743647897824221063782951712422869875350919318089785576412509018452004670524573736701317366187431294357501221151768395151915864998430643555538410363929951237649311687377751295791555640927629629766681612365790972706709224588662189496974905997317023699402214988923300267052438206537743581995890136141176722607014224443396067622957048463897055774262221273045291474558895679621752896609185510309068862947891203435793662831947227606585860721239420437674265422564106813756094978011396283658518627999815081145938810246154526983986052550917667549738282922134274939325430981389048679320875411461247176569645358905846330124940823760829034298443153230593670106786097634968172487153688963411475325333228903042216951788657798635444220115590253331536568715141373611573439703293146410441733676194856915961822814038635909135919778932347139480235321413918970772524062919011022973947247714672297978170515563848027463331964109345084769056766031171521977343168668244825167048052483366604969619926518494482651488441899528337265578393172097360364781462790127083286734536554287694641021118108832860557141141644520970757042616551400832430025629806086311401119925173767829153316001920219297457776987880885567603975128261769937385283407060367827013279114228913940334617017649040074437462859262325490016191278090966562904424717400468572273190804422909209795858141393321354172711695069622870703082844901038454984988386243920178363922721428896504103284707533847567089278232749204642177063376249088589862802866150407527093216182020500243541063813984083107206106413561289539158337600481985807543417132676715413506341022953091896545992447912299111657479537327678713924973338963025249043975847481496820729708813662072502140513454450591503599011389656350019235331852203227360572702539242308787521651922934255002095554233929258873405870910686467088287753160861993371031825380549915636445712855110864482645105636408271252514402334460941833795897293426589298111298457584469385469322766283935486452063568755590939327554138376785663555751023687254985710275324241972811575730861210442846771762068518629791738543320217991451212517071910969368496948346353808013211498880809644279407439839755504731774185336568872049007678665860468982707137215168804774308235896824849124899006128455216495959563574473841497747786835370753405010150786760858122544658100550905109222263006404559420201789282166229277703215795149421658511022632982422209126902197208594194174373108211415525786612900068361840309738177187956472322236797361191412843744108923134974408773443738207192461287024587790983873484029739838064413907979063108104864587259139916318373747884588813269789898317855483559492697939104438183567058545232770635521082065574319308918948892759655477392506356861654973960126152729827726445180234362544962360853592082346492168476592915787010583387595182602409350281046620674358632285455130985494223596461521386542489114487310497189541152529322967630145889372706188214797801292076120950082933600340190654832133932050770638672537570249110095067380011899584336969904077434841596906283185510350260676759134508652184130830123824851543696189455229044226587794229225672655735288670746638507177891552286732623539626029970938546794099260482287382054760906508182034538884692496082291881362806884666166879229372165127445699032644922594751893027529166741016974505012093353597658875040549105583088217749450452382934759612641783089559996126048506030724999704021518249697081548490748066232957925330943970008200860636552355553670639097926197404052096223717802587800816586054460674128645611142118509718548143047122381342196585909219736233749785478665122191613833737423840140721892946727318778988303981726116814562060292251372054150578606837037105518982952865302814425021626979276343387067046751490297656279369565407132038642723558051029185830587803313650539496920727719077885334125925025241719069229488928235782697897128752771718010602468076405908224655002990860108609521523162582271718871555873713660668837491253252512598960535060029401420866858074602341194509671914629589925159969634745042756305363061994750842099082407010441811092365181490505516832890879842385648567652503318287128177759841774266014737820615789809801129063856308243168374172576997336818547218027109937373786374354750238118353332201824387833973312832086346791210333170238882433574656444830710618801554118743335404709988388816320704448897783591724884657862251844942437910717208093054867675942107137130094252920224858704907648809715252604143783975416565737963077814369378191490777505678848654941539894793455785734166662066018853697892398479791636617520991571032732055430787597738753444618650626366485523024168357241654901802818998319466139772507224699450226007371748656406663084178262279847897662886674771818165123081282303422529909335939373737932492430877769346067635548521451969863369347385180277648079992299020023618596232423143330487311067721514617687945202008147268837193507530072462104905925402516989305313775558992384412928822009412257416969898651332354702979903168604355498994070190814122728887712097290779007256848482014900859494446568924050413845695990569636807066955974327267843092424660825354909184842846021973085703864087889541610684558960412359919603196840223711969715576113567014702666649954265449038203112073237640993817483248029990354658735281518018164582545188470611297515974268795676963672692150056178899820935994008393727013707171291865335109078052432325733371421782217420816976074325761653241013332155930929119849739887066451889715609398486548208129360856291465492232104555601935279691627112735361728323544156928445553817338825957650346876536436241312541958753005992491528840627481198571946836106620424229547845425035856833684385985264617808228845591374637085906275326252208448700345252975307249540175042397322941545411468552340933664988487590049165161038037671296836584143660602537794870282391005944072104213834322761461579811380546952282967451505822228504232291812506731972165364255238505800722064456014106245366661293795624480353495118504070416227648847666897842064645099091990450992695510171536289541075153368382462310618009426698615964669115491750796791266394613186276497033610672805814761381866095525240614929338368661607711681377599834770800353135699870409382232872220419945729481649585483988599495006162980497729168865023708961915028863256872122427354852191617088456334697694592365406489094887095266130098302401849436769525594007965672207608444223703627365604092146475148857230737430727362366356724598635379809595846069535060721202594628220270394757773798498372511643471164900413700280024684742242939423591488503167862691452558031408111327239022335571723821026633634000391560191694978992181885796736728580501166776007550835463781678554082891388739675856898401363317898137648660949341621251094455137651551785722801092458845842556324307344713545336760497293151026470145794872405982665796446186998138239326098534073994239854128860118254941748281536246018529850790767707683105664817737555680256608622526602188935974831799936519583334419350948178349686661242177694025637137943911553244117929176568448946231895589896535531256271260055104103759500344756688443703577952212168348704925916727176276299122894787495239959080929210621083889691489134881483147152778462546692028842493720377160899452725409318753366492735011628384719869975951436506261967880583251474057965718908752965417921723042663691917351019790906004015194890751681781207349308107863521006992689071784882464564710149699363282601232534320412548943169323957626687996386747101872095530820293549961052315508887100731304670197296444852699533073846278947255545102668181858793213019177546712646554834126261940651535516766144989526960471501579535334462891056014251823255474782218852963056421166882104865606785614873135337361781386400825183097978407881072460150522127725860711739689835781600826319059497313420366259692677930438799643479544003990538755952003166227626553756360636451156597556472483612380846876935706408378290839614559693189969761447910183294207562366995154723656868858317338833489463163080525839249821856856807064283686947604466401697511475020092288496651048743144290490745660631581833184810053503312937813421903993783565527915283505120032419921110720244977679419729678146097296860234248156429837337174431634364393055735622950554030662382230401718430178129281845041510110846585120834688501329961288638847765491817299811262907557200141817057716587841620186125426161918228310638271488917696540989149815539354777100832612103918196757471637958646743290272294625001767769634809864006111491086573044877816389103478883344206208532684548231561943217511434190566080887579672711249850914341865273536634409555672485603282929783934066571547346569155759355517332207484262981871718378820629780441760467325255641278027419451506742458717825210466481590197169418442821496925615253784473799558057918441147054140977427864363597636290807428732025404172971003645417752249800921943864290727389576383977429409481109222362671419518542952193027883061979259135368921944426708541960741128299489815698670195413207730645386871647172835441351902565790480979336592476237721928853133268423245396758395009293391019159740258079882905517428379880891328842013678109861719510234636821125687632955368843798269721133928868872034374030211397962237336457006671569839945230638766455142251251662045223409692196480489792391788069872731779077265129537532260954970989219741637043109907337321680999814112341983757483173256569301819458761580525911606264744790244278080010899922204091790452933011089673535512319971808100119794576496510454723803398387997935735460799477886869894849263569622160583375512424163323287055625197118942740360768015757469828094768826100302503565632114779056234927064018003254201438930335807024564360916072274282596354814280273844148675829028868173970912636156851743941170723996283645550451772172542021049782179676007688304219918604985634838898908236807053685427284329390313768538070789281522796734231264322067827983301404988186200881474507647768092999031687150128554426621352626816221224832766709350096662186637134621986706015460027823321841438488947068824038822769099220305561013065438358337086657771484350019366130752706965410623571988061987443555749116788788122106025056030828841685235510417221001463538319148726448931542958892289028915802532888149604071663430326853151037224574823400489487872442841243201961441899219273941384856127183888844224548418460195695358982566112123604944828037564170429848759098035843645998649794812420154143409910592129945489260078494640050385699032016993510985592318792234029385835714712136867974395836560647591013154494991045871363831420608317841625336296835829034128684311728305089849025168529091533465867507354803853610034355274589165345991425228219589876487743819261771729171997496847631394360220314129080470592915670066325617316203657543695218913904807910584194797146384144288093471629207305232667419180157850069777844862305780059828358167797813229724776844161097928216754166671214246990098383866832585109663139740715883894797179209488321457492441321323387908834740445821034590360702909966842592138804576439105016979036237873304286276198612320165344674535176819337856703520602529168268368432419422218255898626360656363520407941395374495397652113667764578508669567580101292427803401742455135851521833507162188777973477110749362282573324737829279023110644755002859069781370003510746673278571274006667138340308665631180709958364354342171474022648011775821693249813529463333582991712164912703044968921992155813329404988218749044308968890845868521976569876882765219102123744827244078604354238915642369839411503606169258481422806644900743312285292014728558263446222305841910806946492793106745219799878479999785086807100255611018380003627075245588038437702637917260625179737219498551489909064020601786463759313274499518636341075818126131113789764769788294472521644483495747272887137146169012694805226815848009312929757076052146784687636066042534374467816733626762080009471236491779033164905503636470820212810336056679845749988995485170253685865854426380000184210331226443534115558759260780638807734934471804833064669901296127401414791781995315676095316426442575140826335980358505777972846740093613019286975136549098530427636345376562870542166038954530768940125734227515694869684641236096582003744989015143198748335313837660005902705658564313721910003868318317985267247386230025402022989582329910727642825957958929487853890019684787953973976527217002842404979976562145664149386905154118927432228324781583631473554284435372554627070083791256229237298247901922451132815178170022629978458677207475715110154224086329933561677334102331038912970446247242037717373938804876457137499113389779846385645140443788852029435517345364895723833872669018969799814866492432668704622355965673875934123877029446644243180715738528348957064296819208575804581945852700800438523137586517835590092887720208468779463074910708148981306697503162265223101212036816664286795425678857047738019773135353915052549016088602363195440883210688144446886519124246542265177874001217962503584605329730836841346302600513478843845973497705375960049499706215694267558008282649233416170807920500791883906316341584480988254035075923558896955715161428003919688958981373986247294930145670130097276220558955812228414633827370167834988845074456677857056397131274483054964802706548507968666209591207826462565830179272467683743011090988563338994771299311593854040325195608288984706932356047930001047280316539732550178022223501015736369222180044917359600427046211866184409247660002472561250472269580276674912347265438076465864607325636137724989720369481555580292324658096221057027543254855535786861133501227442553697427458926154835280151571801275630142741096738841783972384389809097245346225872217016103893207691631564885122348878332716394569372108233296423352842550797288038167764205877919056377689694056988179764584955649934769986783396887996656326077630410782695961283009497717902694832498515044978469510567476965866852433755575573188922334969664448581242048088053801650432762359382793198547161491793921742890854604167899602308243778075281539304826478483424759574436301915284475453928847030002122911563093371844552722566475705963128151909913571266335533837739238590502676477359550375377732223735669884805658307141440168210838614866167780191576884291315688743505747169756390950814457149583665843871646459205628504049686329627455486078515844431019987787651375899929672660425859369422827446647969044969815568460721190662166919618922414237241274256817785573210529121515393987102528840237159067190895000357668344007345606554611105104367529183131005852194828748284904707930933686898897281789706719796724385784903947040085162144062105484918810586996556006955609789037626531764515197167851123394449172872870459462176707613563777758159260662768063913808879902773048106210853445241884084889471084283062292536578401646955602756837255741361490022324216424576710139680240739811023610521489831341904839647312134753909510872535129873771475189383823829204159794132557361805423466105321519251432298097167265018661247245060595500674864116331527444259457271766595166021752735972871546195235614161942851642824979870829834755085969492081719462917325508634450935990686848154109355829569928615173773600599689259131588202470648028545122624215293200603792571146586307095984506143205537794627865031747682313394949216306320274617104084651765315796560821649881294058294392625866122894259091389696267251738891801732846849935420964787667535193008461618487459690186612555055969296992768654807893813834885264645298941597408447170932359801712039762854289752383836032607790650438924302477006110680546241225573475867408760350193019348131552147884171213579903591349655983923247077928407139250243073339852073486230523822669467282863105344676552908270211639342870482397080786334520358189947893006000265051892413266533202122551143596696957363386933228001217690446095048075987247004372035438652816842450199063867825703342408292597990098489894834000102178979209382857418334631177789578065206795689668098978205231596638317558701492241311053911935939668198244068651114916647933774731458801199179985120137528692474577682842310903505385186241375550450582860028179492586356095651405440634632632723909895659858341311407692909116948645635543824260326502987335570846034424381073678138188194414532523268246729630209599409859588194079115371659495139125680124470116503675532059809749330991592317309970174406310691893835653313386757303769111068871545472139716637945056443812467090106263860937330112668998015165496212607937333409162521773988075752895692986050173044340901204049098901709579155764761350025280234303689985443958868075078875611174503754326469901023477227653166326414780124434710088189460778742319222417218658457808815176681339891597240660301146504282683875461677901959489829433185617619110085242115414311257478502632422731831444692385859133269392559478757321196430866823725832840671872796202569251679016836288203528131349627678810432294797060161304345964276761580754689523043312053611047058106083569777218354151911904528140768876302679043187184808079583784369925836816752256023713963204681835024355487933918545148407780086546236214039153943157763503905893840917633834550581287213899187971312825803310440666500653826615276711057080858018540991020185688157150392224919080435737036271837435129950771590733301125302119635194426355621822281648393348981627834301037373074350294693485651437788265122265236636616938777523989903910446794841791503545721115793359123332332271427634531894761974624962430235870162219239099636239762906703341902647627982769538969161278530544331037637588990244347994253279141912687255077466407707150768010528639645035434558740860834873011937350156516046976388859708374612406918072965488866362510843690121214346337498572453467548586882095989052165166262794992112307711919067278289712611260994489210967696796122914229739281861421955182177655269653473294356481768559391618832086367018043695091222582741912259351589523564805666429956934194574967139496794507139491632233147538232009983018131369751041803221443151828241275693803924192944635087386059169435949003039134227690235743887282842840594960606348652382913728365716154195063888997255090817512960365352197428795401879499404462726830076597589212071831865765764793599390850792392035033461879557929913430801814002084213480488330980829332443225261728379576160967358389264334906938025044315568112067543244716014834930135648985819749863914824516010135498829683408168758804896421747488569812325569102128216484505898372767896860636847755379595192737914759110078215773929906415445028013982613324477016227186000968503575671245805673581690636616593150973627492959219989618011073191055584257535956718746803728078280255815171889649739085154378477106777978775812763764164970487852632184898184583151528964825107477642528329433093588677919982625675560628823800042420757090725625212904606406133560057158951133895132609560729774993869651024757515556357084043815473996579735175167696653881452415759737073362830124550618122530388826460911909807151061895758467382615769431372800886574146771422377740002102537092701223360059760399142870235748509872928553715322069421068800634523619606999074397406109455431570773115794478866760864287865640789585185329470121871910563148114145711071244747428732268038681423589060041157425075098018542119892682626109090281977261653692365850204221622055094076601460748143133411525705084964704293208633673163612883452050460117292074045624417709536758880514595670781385137185756937712458448457811794701713685784393497846117145763372877952059852452568320563191372724075018201820512868317715791978537272760183236009358668219875908030005319539219616924081882029731706075863872370168672094322108951125309449666250640621492276925698650880133464488984190117174553362327846615368204190422605690805437005415608479693700389654070572725202213189195405070938518034705962941238853964900779641442955654632472742515435895140015673646832581355435739919385385951424022750991113866259595985671833329573054148979217704056081042796434387409427787541329819948978096150492144778374815442198795978562963023532691665935240194400598715424228486898570587119366814879315008868351982309818182354900185499843126912666840148475649328133869314501931091480613625545690596828192679201846704024177346712603245128961970627363327975959465861328770378425073063567262282196462978445256567716377825469234987189415421678781922651707276922020073935816888937319220909146034743528189671317490781745719685941630414093352794683436007343157005823735199420954027877526689339676495057466812382532977247926624373189266057453035621209180803991319212522443784709006759092789582331779481466472410481934718980115934494200181402318681601567495898337994088455832098249246951153445955734056894311550762895024948345420515352028192969837420460545261542625777817102734644940812459653107138089013939468536270327785629266272955703544916146054106912978721859331493289163395938109448276680495907254910504996233297565123423262236850748119914326102831102732882091280959691480415700778622921843058840914992492341746893959476590442571806434829450101673949144193014394537197696884760583845351362064628180318865293991211873776588171388703067622183373824441480696872125372240449142554411044953866241485166172705660873601468718438207913708287942527932101890138668942290349388051465037767317547759010189804972762014694588983516530543276777906231584783903477717587510201218820520011818008050193215345780422316473334211131440114956818679573743928306418732603149003556534184179969079471301888290607534785644578585253942109018678444546920982309381704688646891103468123829502962742271533995055759215003485411654190695782510394052274118229067997120672788351752364388906061536810429881471445491385462990631220370241586945552314974318362773522505097862655299096743028071393200252521955359219530265010792954418267308537285222766721766865884586213345575420692282492836061501774161815059405500902214186099137822632659674130879219615426699786878239627106316087076532850635901664625571093160338362364717128987750304188133279778504311509463358430450604882190066835983616308351432443666738321590622102880676790198925997911666062551541008301117328767326767489847658488581374573419746659509951524177593733473373690330755388967608403319051539157082748365463421916782585367419243522376995788321801068190067627498551536673328038653536577745602771611837946226083289731702971326907564418030163017368247725895135980122448012681553135241171168921548018621660504234882005182686558299995729680799205749999583426061284810186396954178641719921621542809501955091124937366867556581855530617120065298476257586056266301500567103032373317342532943787743827095032324732011756006068644287347312784447264888406095670808995531452383817777727472010845939578365185534293618805982924306353181195149759170831914661812358943586614462032950522441140571510450602008966040063791642041508683233177455216921079719881200220474477508778899371119476407691459416259842216358948506184843366864204480270870893933172382167983164856239781384085400473189309141043458088538181437779605877132569108747487990780821696670862441993692011596453491313662748702994010329535530060278109621464678948977247940657466101147591993080705143885687357318158592456522931009896306393985276070900463873264251157450443442010175541416275490228124136967113278638797704424342176661575558087484270449110700373301190370289347133235454242625940124398483104107313285631407196272826987660080334481038052863741593023059028852281833243673875589656179539200707827244156771457994440810998908804677641486299390698234029805459759633588222126169993717402565931735862546210593846526738000856247396524761271626455955337931174371371392610168000679143290184000919747779793640180333424772458510412154261229182205625885408288666934928221334365198150392740698551725582275118109824641094546532601013298685481359711331749198549269833804577430130764792086090014505916182086781057370601594489131309635738809140378484584040670032258908122950216546842806385094200186858922499711534619029848696035593609241964895217066291955864399645493552017422156518465335300874237156738434546577188563737400675399735594054854114085959038750596313402087200738530200437722029525440698871595450877329308570807103713285070650937032973766634804166467999286667737804196813098054637401769451544837000839626829658399360370756825231633248550487606377665856826768162744801406650150417194510153289925440343730032949050069702681432472960902437949397231828444779116667419216710983205801185697251278553902399172408743763442686676979739664193364867283531832499476542493451345551415574718266853730855932704078899763175315223277196290998977466818735327857089218302531921049290351384773206551624660436062035590884753043722160141684709129189122297757314416861020375111907866736657613083093238177828314067534972935106442280508633416391228070742807640317575014076984492087995376949623490152565035872892328537960985137493284714689659431656019086893997399498645632522135981772515785367269093039979954895974394009922182966094397962265232770306405307855127981323436147044992375295259305818922711828560233704601963850241595879320756054793615271268095383109884164918692944268453952433187162237186314016695636173308691152200926259170130108435961717996660038277560508189426986848735765418640510281539496938367872551884337942292179553881090157848822035096092375562189064933360339229758230399022193720674780203827548328322932810850561796931655179315033536910748379264425874760059224471618995988868552107881401292270566369777110142622228066815270087236322373231033482166237649400622932537943113831110157497080546793294612845482133380893234195767781196361276667199191211020057936638133725787959278565627097054160914479731480170650350446977594278570845017841469211086860481131559259619198051376188741765246644607425904637914415003875427842032333667123326577082857215592611337599427456386717428539282173462940396815934053444933054947681984852635547860417539359788478631137500864920981040956667770467750041238007680124578493823863802091011854257399536968062867342514440919374008341168801491195262312098896034263286078000543791170689463190604996899573210258702272955942917738741667375519226084981628594771961614038069797329623048989049610143316661580861683042432577113084886943605868332391223915769866365798085433240568483566276043543729705627627660113714379899269818043372582397808085368202274675091112917865255379523033314258650717423990177926612519354964073758978009357122968637187003605229141858480164384573296909685695645111196673884556092499907351950694605105348981607107571874028793964573012520550246329108879575857769363370892554544388599911994189238240762691224928923350328908745494367385483858932642834197680368232984217746400063070632694049713339143153411435861445447721570094881568843195752846985780919512535112248084892810923784876927112711649137350550028203606064121296984738302066553861004048940370676804994104504377133197913275234111455966642818359832114890165823050403301296264136139387800478388273788578556929170035399903235058936993938465267054648950444673841788885295228462302844672215319723714602392842104164500315056936145849084180172038931574861984498964519194191652997925130216898933209426361493924899697669727305000174567701044550043093392741611799792685783938755807013160608605340367427225700172347423956883877069591472752711554858507829431186389459364321675230874369534076830469677933411447164592937845383444446363305551632966584274493130663420338305317269459057791870183372896110544177329239754693591853712596044832349791941836334197198689610235537725028275173757252972502587792206633181707429359540635466939926521399850402773368268585033638307333296208454558870994648570467000311660689086293977476580236392212392145737865045467830577081035655233835607660572133185089672278195883166168609918558535084593882002467041685906401163885499607628678612931002673682532793960055110661551025667066113165456259303616648053925794484750062250827954863352742175392105063927590098522540123824370466528839011900951088276237946434177158954606671979414178239121176687821306084819539998789622654102829805286492122798337072825853278343982524093643195702447705615478033094721512448391968457958337950597462321471328119621258132468552212567341745524684129794129719492018185192862228803505808678694047832371262417092301891573473536563949914253881796634122012149718808626556878888165929245423924565749010383373109391350073642213169064011549243581512022460053520058444550613448156844843602782945073515350885168856779000019763320591234248112167469722862458698656920842947114455337066657730723163544435102791631286484112475899988174606792827666575214520409315200606939193447508558291982776006350672625995917274070509124455396176627672504124623870970550947825722241928851019681697032870713455524040936037088968423085014657527212291102919850966546717083804277529774985896596064492678102923208952167460672009851918419967776060713597334862261364840714804278757034182064600311950468714160010367624016525992757477564394886712776701246599071917758216821102445224972425589447940757386820664581966300333152616160618405911957542357492063324959211716645396945889229981783922874944190612881060881487334111406745216783754715281835989902728174375666171069134987242911945848256725189172277068441037238726662370404346651242422398940638795663701755506356125266329293654770657471856081466938579961962415850675343969827594442130174342517328227604551121158610377692254343932302218280533885724633534612038129745715864205025420147694183791970469821292678591987121975824065057531557270312991872696063590378658523002399464726615001838489073349141863137404137911348704482123774175440602572184097335527249588211842942066802672750985916220343731433515392215481620865927091933003764780563882685124141776612895704506825505400826438996471438359077130403725477448156466635823920222872021625399744884500420599048832611303782884462629231937875693615692775213394782158687701594619383664541970412820292026924707891362376984741666356016844398605644507647580297212743156633578629432308829225812374195361602495557000713987223785889181797753714226512425556328879590332263205782263376642079979022785275330902978314866316680680425446568615946887614121280710965149790302049328238117552239072614510510680995883116148121249378251906813253982050606648991850460559608722350824195809782253593803401998898339837678629575318044040748112158928193426719676877976408125044665083432178852324504551281237847320026188965061007168073966937232274257170594649309480605593200943621874129465556802287538554979501569745470920515271040227461934936831119461990854842446914425505528416907125154177319059252209712100666386115069006466071514761863182384361270065060700999061532058775239800305477667830425168524760071771482355987353217184868004569569204663827411851970813358851013433347645050466342544407224804162551950237321119854737811626325996918986916522305597793382981613772410031894597980870904885972516903929254627229629902371935005269298416585256811797886959187054247664967947859058115196055810204989493776183547242706664146196886986150620381221127809805116892544287402034880922107318627853695488827343552826892729537831819366579047386261557627186824636206366026875533083486147962547759296455140160913049092402244490881489303360803643790600464993108107656677522258312959876842920372710960418649472637630211852391630444126820768557723647405194611877055513949408725982335081869995870654109372029398064718018624534294826469230947132724793853087951486887753682406155235137255636581633752882962036219968417554702157215281639810758848406971390313962356643293126964256410659190568587911272594886778653405301801869438495259110200042152598430920528352948085105552151993256816721697606971273469835105923189015123325967027008370395999498929431916624919848168810750737198716198004788054785002750438223350796164336109610127582092866285692174931193174201712171551253308346753861505707296471502261470499022366049878599571500639187890241319482779896969135078511901137901577996735581049563773114879364136856456938214690108421286455297077107820737588664052864131653707186891762076719382834063222382198986014375289769361865810355925046181705837490524096394792804449538130605673280935747250122163434280649942695111987265288047044236749205083061439278913945328077614144113639842409907022541191027488082950513031131937934806975602670756395728111569743361193728605583381212829450073350901318051854723890638527597593109034651156428022052727495986340899658908219305336357916323162656492824936960812080175141007830795811948160885930479384906620508267371569604295624784762485139360147126070383399508178250211949099233045870417178222519088143482581960039466369628061012899730892328963930889117196644805313650256243806655532033096731724030090515982772552286278810868164661145424615408376939950944777501927077554687302951902133909158649674485722807269280796579573726464596147095166554007847104774203342633236736615366984990351628679009998683363954992200653217893400504719990028072389804094721247178949944566202350074793939640408973088482123491587588938562412277864290830565500239033334212906832180586500382019542395335994705098191515049844991384677237701670322925270280165789882762664838956977003779949237435990274469795906837605015837669015133753863114408353624827912254125230428708938908293576007069065828522148424933853912542712245362086415195424572504817123525303524049915491155465832550200799438030595248430006188380363398819323322140303430493340356006119360321150446853368572392659771174576408457173518485053907926239481480396874490967188367499947548619398060885856835948877904571511857713825208412633443973079127290112628636925647251656392573510703120534041178536974759439379989375474394092380000004976041638210162115661669527038732745324232947670351746091359371167803724076743901154466806032889838568157763669389591626295322967463944564425452594353334201028647652158672020933903247197500941188209919647976099134838994648593477932700841018506056866865617927481195833261956029722098001956514787688627387843714462364896714729646566976479009174062940922596683502128841353427313436991920697816750270146524593809662858320108750383646433597801390172597017824307739478281587814943742202081530556794730111025656875841660720455252819071469840134946366225131083177338407615042854403911463985647884346460963957198600184646781691830484973681609572352764037624487517867976896588880714074683369189853756851023593816949169964893529787043926678146413057800300117885493973195736118972237845697890788808623027558386709329922164944497695258190860323768013076771924909937220115937390370966567166122875968338962605312038024216989144687642300790507683653080654785951505354625235991795182515002883280966128697906987214732494547626454351690912714178906137654279007468805634084109748690993813861011658418767168183212973852285100020716063568048276300730948803273561084546083103649477032691498710079817398445549119696945830644833330348623666335552359649320208238847108890807377809915777803737326333139740034352692005275851132216071978341553185341055415245823162315067501578756668168486373176352988705127237850003176476132296020757833105300095540378573444018767890619950088224930685931796097534859472864140913115471051104226487404148188824403457460127930332058483849483220221691402081963202735159530074267583512654193192247186133245841301638767283025843281838256103276989623306027118463339473916542385416424957756546436657345745765489455044515892311002986318284016241932839771578931052648015788685014946020049332128571216403337544790807896214866721092072874859994931435455142877904359417151576088255901374537384989296411108346899124776405727629747360246047497698231403454094239484203575073906288528476263626400742255412253721650802312110189836286815521186672178962379498638345672417573144469942046614525579487420256157463500829600986226917898400248547593408651864908286590574476846098345479160922734406861366617403132888868814369019897397717966742781227975268560355782195082323938798984863656437993709359416363050298537935873844039986638955516729056971678927341505401558425531142375527525286434005695019749181848272708720204084978559765950487209031387764045468099814077621380199241168984198664690825749795686116544252975506997230334868230109939666516108268893164866361653054111818766199770257637843329680614147039364807057519090105754475988320332356749562939814878210917863610210274518072718555327147861986412745138321911791955657110584264044387456748792650314557104264394071477550145156229618877050564034550346655467886657612695206840777726693436107433824900793208414157208074758176524557343049229678463707915249832610525045015803144797023629063291436802649024592098234164611692662223129784352136354047475223326454050608927004006134753136441538980541052238505613896075873044400764116264978461835243436154879829171297345413716177721142481923323752160931267742727020430528440304390399635469410822527368008909769314076252435125585871759109162938783699399534185805762850819795528992814768816246417822543027823953686828178180337984108575747417752928662842014046091216881428917256768744286598958582709459546813382513530204369409758435854287698384622621026796260476101982363306954068965177351004095252528322559887482188351291467334249061420846966133536407155652463170815219009871507754752971966127156647826731176471800103846303503278836418148964129979447180123664057000545768778092351880270025409048524541832456962322641806640913618187830964672851815515899074701410476800527374998621963658867940053315701176570865479953364345083939258221662013196297140031673111643183126485118063598785662403510952331938038841700040026271030138970105900365330466636065253984991090870657229994462067345591987640330605803638948648347615488782489570618859052758172607566620919515940336013003234928619015608491094014447152388944861082334674285610846947057831984816301516051289310594397977249008626759927068657096715331468735723535156399652626672113189612624805044126569819982031774416267275286981860135687016360522918127644355438402433180947333996184671713755086867315060784901908664328436531053949850415599166565532712226925096887387837899430600053042344492108811921653941014428913633599716036276411679982366824409830588150767282025317684043655704505426551976741268074457365074287065927785448295806430084723406411892837308958321398746110441408563023329122609781494283194159087389062662537937002275397400886567016115387137979991267258641500551947409504786792889381637919041550571386930318862188920181508824718287224710741041329266425862144737184906484973860745392601998430700518865882205405292970427515779438364168864747910865951120080775161742684525929455360337084010247391260346759044530657005610683683227602795585335786605687164608939493904494421924580987375149366898297795822877704561439909489566860944971486861129568110888427066929026958932907725682217570344407404234229683532842896853563431992169110849813281008668396588213361638137492831597515366291551897000802866198105583430475420265033498759723395309236708218568744782172997419627273781089249869717758957910469936754466907169860966471206090436640128813433131929596137024897388532002054134041304433725562021096118844490141771305660612308153434863386735115255416140714935187029841938091625123250174747963449978477728511530204007082645433976822172345068987407527029354711666760180182123521675979349808119743132492004146745274011340581000683940108779629283893481347185426471114055758273145445672334331998531306960467705346384338837179218426455892288432932092679609371313470560437379844923381408841291058765137280348508725787416880713488823915897636773504877985434337715500071674487521350237517320770910529963430225898395241137344399875547292225585766366418709600227901244017762709345608634660581301778465309680724555620284957886112942101725678329560241815477581314211409400391480135035798504298947816448581859358866908331099868492259243391478998445956989843219390648987445936688357682051735193447085117152197077011387100406087915834121024659525768540459946913418708725452662498211997726568331177056413156950617956797857994766734921002675559229267146499216660040320531271603451531239836797417376684968900908241883344560415162071706269526478952719891653257787984790411583221541706743331719907204196149905434538476087629877439664614600374760169887565204101911115482346512657757031339920489591716796086166107774370692314092707940053951353482796555054929695171091478408565725777298030870076594067590965007866135004316742454111232751694455063108065650645398282392077714206563461046925120310709645554021644792504247006101870334245255050787368035653606431634182655021811959006121024640580625764905533839954283228606677907944472963782506513605466952752538504146245761108547016852256401035647413655198118565247379549499654086149889449067748153791920053216937033441335223282821006613543770895849285700133889494268606427206459994252849406049763551202707059815095611808725873193574115705143097660311923865223348363831522496297589014967362158449249992521945639584811334245969382562891585303498418174562812441731648984802342927467851930152317799066667494588598553249703061214845050168676552207740670584899961802631696460526554943362599413413432824993893892143528877452004413935487423668759723209825510607684277796885297964954964835215395049553113885208578136549483521034710094649167124725721027835272421415023031724983810162814592202961010920296666416418878860034010243095231378628836841720219228334687895943386590146413896872786260717235669682199545389081083634307783873318383232528796832371454225229166987553211545638604896950225330600062624439974005594610792697586444045853934403754543741356855892980988932264019713405561998124703257444532463515094680340651460667270773573974841428734545372499143466457705891879112637817269682856193176832391966040144492787361263398844084383410645228612881300345101114499968537068188119696676301477554999399937272044527230893695080144381242152165496817813460410497479847405099530635828405588757946692572563918444606143848439711086568657364970660377724412992765404243385565596535351724614739376237842582564276943998722894560668933774626257214962688538961929589742580948864842857670296866284529716919443931816624235152822753806566838618682508137060539350231296680430372867179738351238083176835865522114130442803937542888809938264020420389856163202971214654694359989448575132115532392904377602590855217207275434408015099008549543922119984068252252296847472351798510138834049518243926653182848405195472836575963303545388276166949365827725731798247480089466948746633751120395614318740152997998566370885763267206389980452859933466949041969192038795120056207518192096853564718854469384557412905099399488349767837374311114374002749240001239213428576772240438862618255753142635997514127019179262834416800634898188566656014347653006046304839069897102854703124052605518912850161002538470550221898457427358584458343211766960659518722177383986680629260598691418479435683084845368827767163506851659583318683388197826656524283488548693765224966777018546052159896003399352884268901413857494601773053989413333068071850546034939868680759005575655173780108241804790289977082728620592627260071570096761526781087098867419522926120486141574903323071364889494652133816893526643954881780782312557035923392699292298600281430758802935838248077538442982761381692531665416792713819033118609889636517414714366973392349628103919894533325087208296495929464085609219096121758156397061068964016337946347255947549777927267212761194551004763164580249482738450825410210319245770819754231868286481802098478171431474443403854512757889360659246272390015653761922268201311025464981216986345885146995094505108260168802056996486543654054966818745150957364010444173843876356215831997168321660631182673791536702277245658619448136517033816244305907702607492326546368190011356789260552631931979820464222179735977111972081209436117790997161914397375830534308526534904362497343464959990045594524991189881547578969060301892684144364286692551691298739431057681303132579951186745720121446368108414555931217294591686460079165546296575491509852874092493867999803376889120104628405236685677622214013087999467398948160315935371504008414305637425334528945887601686193128360704215072721332439279127693745473303474458324437809702642825004412372311790219226116750902077837943804406143214205235240621792215466111275027878434930342875047283731860073328355283911626215965696000267623909244165160287094125393210091633947255374902836818934282593625359514804113661615108641001945540580821886131180737956818736227470399397721327258642416278212968766513291113382222940037387474241464991249008312325281293982371879699689551481934088188602563575106957389730638283876120303397525365854037386470119395881079980722754590090123064343840293552757114579623684084089090533426153462348947280554222273980095624580225924670566120070549177114572928823258471784924279369410836960748042579773817954860571989831912679075869689027159493802830761495019749855069806327174092746406144829634733752926619750939467496720013666956039726002975282202315788179624574944127495426491868008641501622767586938566181697474428506221944063376900238084235260004661805383335932439967251849144953357215445753050438210821533155689956299937190466041604308440812230170176305856578975766931072584604303892588226382336378374924881210470870624011659094084966770296233979637062886124523672602261268845371648696545117511036308185763871719701739861617951382746865011151419891406182963126951986374939203119341685599461341283589482938367291440360090746200085207669388889562765229022046214066572832580603365258608948478456975460104562933931712920483909383743061271404858907968357336470001260905702671264085467994427483722984407325540827351415159654105076891248365639762702314162714438624489996822433663655868484827280513069149370768518112979445098383328658234047317201659822368789314730659804151507936953014237101183159117216730662619729640229253168330468485509173680725139805936490605027232318061625372878608209268367852944947857494651925918623269565434618535838783473526139393343054813624953864513380432463179165197744336157842565246711774893907634798722282997734739472390809782054460635983433170241735077002627633069753676653234117143677415170198917041598056823190823413709298441849051847451697290392159238385847873410075510277907717214992228752947191783860821452557221313180067587241767614574591463999703742829013654802143330545348109039078709118171941882683725729748528095381595179581057338679797516407944851710953748709410433940115761026980308128904850651640667831093340283650624506513209464979439224216782056492305561251643751361272004808481217969112290615329072045784869015056950234193670212073325084146859879195762417722914485813054025439879822402735426826169308800424932266447660533580683754708399432143222208146547398364115015200063673481776339974541413079387850445541469720184684767321510636128130185457955023266287630572136385348051380161101475511329503999776515415858875473221093468153680846533071714052978301101439864132494349716307061883656370648459202532640198933237907712938309471332463729112175774292934856910930072849469911872179287803908505553213629583421783596230311533299774597920875674569048948353346750333286296489194420270618840958850796588914009025013545633977007699910768889839272948936469987005301017908482448017184553944298989157166772208992068831547197093877804462887454956982186103891131922522130730472914364352648117184127582847684785735207325622611530160949129595060227148296733867498829069939528804135161962863845598412240976120799532686292919381661466733099847982402222172343419294771760062812574813090575375611268561564173117413950920447577102217467074055645523592858727379437580501596714714414658356477431183545020641272597554316279566583725239732158974682986941209004645663380317730577734725116602187312933455254240809062712969568790065387687725975903411238946798948199857063259512996294574996978657214026178124364166061327198985657111655472780579576364638919720927163038278999553115553594200044632487496436571650177081255770229286701113735593633453302898941754716938925079360306865958021560953354495803442965923755823322054647559038582784984740647882841817961031370483139111396458828951236584886441124805414987678607898699895181696563019233729100364387983315888148356429127844881177906874481207580739011133033529239354327742169849794716507998802656125295271609980251468582852966035614588409479521511557259429430798620879479876500467815927427861343097966757073798731991448542449921456838548781864335863342185918572534197301231377809328489037320383829674953959799529078559804971563905591466010307962934123458184383806356720811274750516320331863366817996555755749650056749456972064590419933246262473786406573974705808368049113208285421735738607264630529573985723333358839084964438512573944777503865865741063144042103312596313560811267303687270936018008975117571531576696887415087011942315516568164411289882540968267773320822807018224724485767706299908932325576678647587531296523554754520659415481014026189722800641750062310381965512348534829450599802694768046644684122630459053120604159261843944365024024375922538299261107036259038556448030761700020638629251456398122387232180935385868576994564355271895787926980541719749187257409888715210733655074699398210318067927088099133932853552949856552740109425172848030990910265838781071918714983860711314350048689960657562199015061595160393435197189469760513557258244531917680826469557703496597422187859276930838797688317388437086545500286313876074183267717467440474766931643665468389461973575052353487426790207553544403388736041040137715226868693168690308700837830946512199832834758314185638112690912768888107738234776443887542584590939930058083857967819471834005406974680723197758999935776939084411625127719401824836787892808904005710551820383210941019379656568113170812208434864466025196988737128091150430709779745408437161443910452512490378170823770960567149453141937151671727332452823423441519145841107012625577347237691767714905176730192171036967916234752294705315082197703179928546614594388960763383448881125455169373599167529579321062467401564978469591137090284427507567586213223800353939792417504314408216153605151273174750487801650766030387176776569589831986795162001511087798830817393939911018882849763360252444200493411844441357018718113866837632517612838959604224811805704089165354957956927802223889215196060141611433852533240822923209740797457792041746484241124667825751529864465546290412573449744546340383192458831688930295473324778317709057241093147806761301661802128819502127203953512971415803938234511990866671458410220968543101197560218626393496373979240920287483944996691013770865971619680718108017903748153330409238188557628271875374133616713852231839150456212109748475143695846054932430019899325629427032486994898558992749703363422127281476969699757732630503985778106564515303000975873303004809188299482477862193158223512410777727961844820435861485829666054521762682743562867445943022037421304831529811182366366499331727704185625142447989289042307046432712743332823067665482886370537501693498582509295354815228562172995388555973348082998441489238395238173769689725277652191849321234684114485072603435346095193046578245479667263515326901301530759475316790169377764570226670176425950836199023209529423668087420699303740823989854483654073819574452134702294941796561902142934775441273190176174159430606221745005719873691724337270404293276889419428683470320303745182736606657827497885428256032209060827117811200862055893002545150293839643763008216735699445057201918740831572078834068861623960037472923179556196697799953822336316475328841701603172854032364009325761160929335460194080500427198624000022138259121897196271154027718669122894298716440072607905314861387151154236144256647273982089080778913910504437742541013238431762735464870905854725473355066116932065371903076294306604078802309979807271285289100837785489542056157798207536452777333289004672297293381773617324024679558541114245564217338333374228978011584969649015667106364030308736049028587001794451360103603605890423871482706466835097260266999685610481816029313567526830671428464254173796849216349754871384117185851268723226016740925278843989370131444944510455105830909576806526879185399283522975193515671896906239108451895211304711963901343898086963272817817924452067042509862371291285531159067714335853081557938386501672545623323406006285368038666035311538190450039230516657962048092197575161590313186846339732140734781867923778003649371711412045212187122221932479667453238902911719662345000988267967942135795758924495973144397266136383158603998581950398281430784943191737257074136770882652219017583889559885478467357105089269347722465841893229836731439920516062564805903166299442945849913918839725908482667643961070202258128742068076350568092611968052396437223062335256389001492184840441369464278167230206803103555432024714556527953169027123515664416726299679055507688560708136484988549300525936548704516682052832022122431336588190357510307506830711507996097049011264683630246116149028831776545774482825532591367878562201386085313604523034089026685166606481182953612892762213361823664065525918698520917303104549296506896869668742351599472125571995219650904585764933089202633872628764090785142230031248011829894725197145493303028233890004949540512863057484011816511603382161911933346528340339375216543110423338955011853254670458564349504837035278287129654320289185792489729456950084010719129456500424148986882783965229960757725824152526571572840995963194357222788767758651699232319687883874092389526050931780672403504078551863210871495108095906682413487857431601067233431996344450630594258235807087953143970377956054750735259698947940215981469573826738142145303359378163196048001939176876276796619835189772899340300102790636438238272244533180265990184778775552443641334992866464433920989161581634459661186947954591019312762673093719161597900108655861700858316276190231954239864469887418571594822141739832480425581760482538273056527933800418798605891778385424077535485364185737456365649414177795584832348344153544347175930789889919636072566253044979160700480526649610901110887586793629620196966792660944650018463258060652393886313530382372338676960363129944958834849211944895044187679526399042638593569139519165206019561678776521396794373354809948023110812321735191459706423389907453559216972389751921403428319212927737306966522146315125580304956612160582991647105689983414067866403529444730748067829947168654447484881150860732550932611482985710578619387833585459829532001196281287595457765827164044394975218600823419589628385656457328551604900340861087650747526283173632832791566133952282552878859119623642601180497322835943690727145789806125093873403802654329870110857906916786370667715174063582069774038041599105321092222447551224726613268950474279868063573519425510567836965967996273611363293047968450189741549732063951556718042750753029318756098998947253200501980148878867644011869974541365140494105865016920288574279957711842123022509100372895639263241690990864922251302465184432291396041888844866578504907948605828398477931503527715132295787092077655338430173231661025308331746456294339363859427472251671936746798370682172740301100158616891897826879212100806575699092583199614535427245889100806773833950598438859186938665781432497953583336562673227202027434350785617183555613136688815623540219416211909453655207723509882045608536893490548160192921092658798237010173136835673871558950554161375566416628810579090361476854645084063253564508662269179872975006647727918736988739230512660972198802038753871550475216993220078323897536547524996459631167350182509500447435083458797188010035775219530901320268076881183785225019501771527512769494717372718054232280077082629572783986117395594260546167566111222649888580592848338504588945719481171792224287188161838157775707270885981217832561571752483966250520112481747091157494839068761848032536289469274299908895940053190505733500474190247083558067794200684883557141567563548900281696169176429198079797295639600651312145358343145144374663415231921960353820534778173967436237081303677107155414251871745663475948378085406926304912749151852168632461515917483916486227559531855442376789812890339969900019114323599909399597957571948711581456361183538149313247222313680733584072228247767956453675761797569011384786624137181066097476816887431482595990528962791171258428145182277106579185649376660488451663984770619414242206868072624929317660875677364607920614450540073700357818996291077508340548404887396996736699993127287735742128009715974048069178229597708145343141497693861208212367551330516639178327069649675360881743472682895059792071985963433988012384549259690894787428932632450509081676921592252128845203287643522953505394376414971611913159037700308849799999549877676433289744267003176412931906109399777938247460530454036243088124839973753180575793997086438041332236961654876059026570289274510092879587032783305323400125979886114804308870611829564467225709878398960150853684917468313391393605119069743797310688864230712937310017044852855528667134451452748060771113217721904564477261248522819807840092832415671663365017883635110506340353080621963636071271133049535579585263133176016853841825428849255909383500598671150064383541682380218007129947000703440252018523344106337962727614195861888877729823485946186995534593638746358328303804532773179755705146086338237093477771391178186217273917325508060180750811934215594103621715840614184823234829531953023374669267708925034398752642894606280113705689502137605990478459748402553726385665342431053261099841336403665308856414436996375580146683571251461675194098137175825761441834333350452821645081957686922762355534083524038091013031557683466209241212448034661306398734581284145649188792261422666724777324968012608258620935639271928880889967813522573128691358750746099567093183712423896744030653278479558779486842235940018965949149437172754627818629466539362847603522457663356459238661095466258004032900528851475368548361187461310183514929401875290075745677433472187492751452364693714973712395607402429139587493287116436620182205680563505201496645319695523925795353972138990817767342581603862954969381640703905019819666872928103266453588543584473168548747849961986303755116470751432527336531607026374635833539988000729247165460564642986231595146731811566080010966931144952474152731345482514114235846164621454877736843271182481238463025721678383471096179422177515115836852960719085734468500561609204542719143762658569798137952602670135104580626465105020813474240445680520219508554876881154828293461451373777273339231470140702967515387468394264228942054956558735841238556937186126525303082573890341394552856915792487445825039844047727257194971801570363296227069701865994112941965651054621860255928875312864985997496291009497790956129436317583921928450897384583933084864141251344501940040772768018389329719246350464027502237811378150984238250603689192792276403333905140941527757906748431759513589761659369222263105345285445196938607380356507011410108528614779824710160327516249356803802186417535510962071932131184200888381999615419875800066149109929956616292834258483966993756277441639763331611396789213946701308140938514218109368754504493005402373019403582979871970962977407842232435886855858775870804469139861010385200332924390692322950350889044473892959380385746725807068960002596776098624596912595744008032506572438988922748209082542691155686240130367953464136731702840501039496743486919703119593611035840613487858598837745230121391718951144431264943495566244099532651949621567219288520618744862107970330053172334737234372160116304695156444241844712346260945929018315673666544988305995087561279981441097194750052424281643741096506746255142088292599033957484590535198351684853410145371083470842813511517382454874064426870433200360809969648336315008319549434114520566281315112351669507434852762138395391201560733749130942777106916468712545911820795201898903235031066302542543835100705708317928441300479872258096130905834919057261900456361622314756363762033498033610316256951383906170097179499440763177089189435283100472714026764462885705182826468301703910037038785827606283039213102902341471009819291709849668472288484386420307883171818351421227570452059941614725114281370502524489756127903140666410921013121122586054086004018089191133881670123139892553037774586862445599756647560504503072541587474707358079399270404620075970843394693825989915971424047027435164005813984980714931704523914202150209253572019491049953333698882745652227324497272929428339835015565828862397902301046513177116195698408050834203991963595386101138827498562171488337736753246898423177951569458383066281891403609376115149831132527282921238575205564688916750825745626680838185411906683581753765461715268958626416630628001708868796216369147910901261314595389450724981756367582917422348634075315646370515247901330780596707953437643151118274572286979672043061802186671956287027237889782322286137772994199368704574908801119187252905068379887833430866403541553644168991665153766804251181116350765425394681833142217418704940252843969105745258605540265379063674821737028368247297336302255738819267479807974534264406980415062125440004953822763623766908858662310012523971103503036190168814142419117780402305000181470594495194786184896012930267778707566707108557761948416671557307004298080206635842736525000136383807342132073339524306594243146914688693482914221617156743631893087014733411381950376550078762242701699731313846528375083775823482654530259767312959855062010528600507842495299465751666512858471181282970870680589236452613031889830515878495047833569785016214419813422951293496360771962865137066161107670141559107759067521800690943368068245524097189775660316293751763177358346814353146128345740482727486133419742131265825829563452251582613762441403257609357861851801416400077176762075870546979076345942945672665784072114317362568217772360000740567885106572732453613013005810327583211761006130636889252949055999013617376007057556501524323452198990626827606003745179552102287288081711760770118122482886786994776717034387091682396210627853606953545607051651669078098066248589826102319260057397203050468009733180794270128868754308703286251153681510270969794643956584315105778182918907693526910623313506349047512581817654665664853684599537224072522968682747199711653642997083166621304927137930530004008053021473219724920471453150050615664431697190275818163832925672759854120737756738313303348922453068106062224004725777056017120997747596763506388245415323337077097832486800434509467715543432402936534925222381601305193249262474833336941579140803042157805663131717422081478599186080488781270018385503862077178372107477215775352968378548428758087962515658950103134433157087654053201074320743840621902245704923203379125532952340154320222901089302341090981313054315003665278195421756007090102167736984588517702620516898309981155406771534108081660483491418612223132429690113413767993598578236804240476524266837692898886245446665614945380086819397563583774861178633289168609098407378235774623066542413774705433541388823605956899841018493121513937697782916312057755367619229423800595971293687610535109058238340471865494271068334882150228483786815150039032747937906842726040894899557157217852904877624058163703936696629492676631040919462051563293069159894329289749419353742186593839796562177588669789097599353503868366511655522597479967368756392673952962903786370928788732094452944565447597584103435799636636464456841094985383215282019685554719900659975890595407164452932940451689876554430990648646636471781919482255344941869564679208281034896228516696622193664651464514792224516584786679310622544352009850996260615322311660584787242357507272427160728401791521851940959695727279999273415931138630226763951665921569968600980444068396168795170364046907327211839008691483398850325667295276360604875124470326414010982244496450771097293671630950168509053602386249387807829759380681067714490334374222384587367253105952304569330736228140417655363515839694084096964159392690326248218699324979434357422456125031504625294263109076163461371503374862237268314435075995049043960170923265564253352684235933873934992719039913629662488349450555121623754565670908235324461295312175869541953264160772089627375682626295899653452690990219503634420306675961993268651944907839574210024467925380907789522646509288987387143591757692787046117366400690677920395429727131858952539219871571646328240925376437175362617184748746459066860110707930992718562426994306682514011905401240788127609433279580536591266496763084951148535536776192315790470904486486005686451432556863903308380709537494315109939776521929325366053409615829367879469291858416511560601891044871681969492878526987409168548119624440043949491680215603665851573145946599359821187549441944485023135512061675738182491362361036454903777180040148442711409559541737007329879647793933431797679265380350190190474592591256811478274274447417069179887353998782265654937631514542304956861866810237804750017736084411602154764507971221737040082076609009730715298598675362651092248382335612310204692175690289346865519857009223247571732367937293845540768591069692258543128433728737373061011544839309312769541826900325807588703144068081781406640456129984980990064262884970650064401034715349976751194196465122677445576411796676377647823721947867037848172424023095733275119387917541222166729812116804381777173305792520609730116620147296112585525210097452726914114114519929367143966492432964850985975425290261125767093844465710620059252345255504291079401057943438667839163415740702671843155447088028852913567345883583392757523930166574823109690061723842736462499845869323726139966248795475550482504562759997049429327377026878631637639319540674646707137227788168518590369323949783958117168705619842540720075029953921378264002250231932489940020130762507060410365648360120798715980840602079094467596397123245330740915507421646161570389658142678574010815907564143056205372804322315423946401599269086610773018265452540668633043408395836536242413574860521507236265243044440585119656529440013017230809880445630791596784726008437652975991960613920558182721715056574447597459132941539268192524734392969586291415753176960387086228622894255787992032628381479437259049972969780644040120729950113645665312224631199293397757310900107093722697456045203311885049727986663944993323137365390360141671815524169498323468983861568980271759544104643590320916656953723737784288456963110690128931333569310726089587403801069635648098415594011089588044603042426767965972420258313089650000281445256729232909419936819599738749865027797255072919712479639156521158667505927794052097171298508391972982228355009448344560209573052117702624975508045462994317862625183160813551024906273548837689459449414741261604815559025210743239594400682487918376238353780489923484194462276567224450087205849470261868474066917704417798887992524171084027875434517873112646757824435788439620909811634637733300291229477093392352311668986321934441004368195667693092558936240796117805582808086324859033781693168436173989668956623778138478994261983985364615988109263838128316670998244319975719573516035849702644626320863549741432622280330643135707417524026054947284465110312482739213716177104882564631310345176999034704032506559948342386549859565380908990169631813729648932287651544085200479867167462604834866742633593333199656785740032020581086067144599037906116165912883011497012311451319399114104426870039076324949834866641570986393721546769593608778393914740330713738728032205632394231856469941465504634905501731676167451621437581138452415931538938233518544258077207933192646527722058190025304588421238589769902686347335921962880477857203790402493050047865296113756663449665758958948830592288616513405721927669793648413731811487020635544840637134585777818608543681419951535884618372777287538583312127891402038966199190031553031475334789821499567501483658508371420810987994121986087646147185706904165854125641558275152037814422522320048862551605916675068947300003056933282524842326626828408254610498312177545572530616968068530597915070980229143788966498530807616837744757225156439856255214448323644557206479963104367658583456806366010167050483859586870803248796742631792189670485978341881313599570360181222088330374499285752028309968699521370031458940510299675887826888646377184670561055005311538092407032825584633660114385017159272553951634559219865921969836934493369325579441424218564681196749542762567468497446062419798539999539524855187294342467939524345669409760215688230031387943343775069357440043955282342250549334162076726578810154343511388006239654545215511784723440875213505231894416470994642228087776913860122932050176139868374172470771801662132767534277279950105001558948238622518796307477952512519966450065500366968106820195638555464230098671796670459319175099064796825693123029649636523891387430594585369309195208346541520388403015378987771325556544923801465379455727782051666117073111598282331898179346024973103379405138891205829766871924498392389121212989923441574604036521686252731101626066978524123945591312414700112701170511026588128116033167114026418685790888719553988409206536783184067549648874012531542780709719135742148859310564687188965711473164044101755075383367552283393790729408186203596023627500960277548770083625746081794463060472826876863184716468865115036146964657327345241377639023150984175865564155662349137778149282125211594198212767756507161496174392176212495908306673120912550711067618091482308888703329475323530422996207650382055877014212193545559635052231210819970607090343743702318247107263448398500253154344238203779789054010758249946726037529427344058881019582789640861756617431964674564046027866378094762373641868836675016780744634115897872741052409174591778827345028604533597712866837850399942978684095361640188067177855870655212376567706979726032126437007189161416931831265632393951986872383813315692908659261812129115550045446008998610994245214331289213879450773686637005577768757789633328398203563797352761398892515138991488555801367109308030363330069054676715504738990018354870392681549057895552055080961455209011100411520409080044863846459535029069318254952086157825225065265758960981949824399164209426691080619665598842329111109877973068408559452267447371803994291338114384292205648785894014743969150343786159249118567277395144139198894424928544862335487888808960916288194389935950412753972408612879244260115307648683084745562119933577902922860912842365267149227408414106373048822959772000861805410817473392026716915503192325584698644490932804455324425779938788191245520015651093235033304743609907185973880890119387862309534359304955327162219343967400016901666418233722791115818216726891057636526775870292402536225866222852706688284378173801932958466778448564278054659867767165577765402132609291659325371961495680251411781812417765255946606963552826787147778731323208889079052837322427681120668702073138881781046459812355073705405856437067282043473645653750498558775923306918783537958685498449322785733108380048862844107466960447390438040515019844679032322073034585338363988829227225539176801867367760598074013899250263487748554464005280211510486741141643082635031272510367431964843008749448372109621275775791061251564875348886756341696229541959762862253829465217785870253134981590416858909131800201610586205671141848487282733917072771739668570951839703385226282163796595747812619246913835112478541771108180944890705810122342335044907813293423772792488971140078929594752550631146896986345035482735257997396548979224892423684012043042332765229055429654157156266085369362531764096336283339481741315226089044081112626804792146074125039328841347817351379245607463035622638704215196132583233335391259710511351662889975558283945982857132735556759780675881575170565716401957790820756003378121707686887218097792389614434967366242271399698765969883597746554901157846467722677763021573172210928162414894845621142414638295115493579962174737896707724744490695699878910722679606699730745865621601592780926178814591801090138421719202455933960678944602088757617594740197862708895444924529984493332749237335729625329012388835971077629309980124469556103705598021866015929478359736838819268037800489622413572410187000747640468693434022028914449820562156849644087483891307359798407239274345930465673962388761494855987493410160755653346935113938500226728063002658125817062421197963805837812484817698209429216156903447170910616304069959351202460455607588892891144132771202105211940168936966776197321811021895422193492463402375214449136916085422025940558150718785615650954622617607041609657435032467812922654223690194335439068837667408513035706417466678194444831873989384176609143722910050673731976691236344842751148987462529993460977160862381877461079806405593920849690316343125718529975368888815468981605935586064781605104328819355512895995127379221005195714261711595807282794764317723281553193870364859693729632014278333544023417450310399672867688019824910423448995717850834389748798171781661873040775223465285654401224166604885203909145307962220686805371717011226853459111346097815169416937812528286207527823317237965704818804072171008388960744116005253838956057358346983359326015175119612707344575268950345263427174904830591248394543771434692773555429057777922334527112582788738444101099672645977885638412473759608257083711363961925017377152074572564509751062112804050530724190228182177181664385465425044099599721047299494492774122229649264175860411248647016887258135787549564383794514337673037009393331149375381332149489850320619448118973958272980423148407363516337886515960470283246749947440541249347984867771401668947724783660554068304824176682397827033926161944786314920607902424628091829102215561674038654874728495571677879412613022420498618768618868154642324075567233243340130619650955475542914109934487449590193636013895592740527476027069565964072114431013481119271448540285610102079769118319502045271564642716123304092917470039364105554423936488749379217753073582399724819632697287261388844565702996513797034859270432790027451473719155780500952815062006530511746403438347499222784311126430355342867315793663528844594452952572173995194746196480079127969419401364236343971203569590754322842449666027962489714345768693676086875882978599288284710993708996788842041133840157964776453504172657324291041969793806104815562573778309484171702082667190031352053743499324506100064090006129285157128653366903642188117878928128895091357223777581348183700378681879729208449224913147348006889728731610920767511383926222859796037005354531415288599132032827288858967143859585726570592473145304090500637119220587337561228822011981332569605256060789872500435768805587022248150142513366297233227846357696367772050717328126331873127018148902937296559043249050846726485279442226013493152297287253943768874429321700263818227175700788923186155023609185359467400629615218499439544606815224882183527065420613528707943652378128925998822965368669886869922964616085712252056814735280558556181526622579405066397299811999611348854361626967539529018042009908123955314892212940457779544548340891945614110736533755494732389461114392986841883437529654271313470753577984727097697168354026728882667054005336422076072785359583153359554923459791434406442987930648474657653184578425431051740692633637118839360238692639661158945189896952119163162666082088627560374714468394403201862208862470847077231238756895796974378994443515757547331560729980740866654998035247071670774774767696875390404407211122435074780578833247200022194175918898360484936531014036655184123566631829061570731321195905980064072988622394004715202321328268030154215895824661993381460124435996571160277468151466181249414674434896429745409655217903296860642632482836259602003406218227603717494785952642464839030866238489036429623054749161654803759508436055898606448619144809666953075649880637029131529335247701618152872459264952610136540119070501117369206813301114427256125475100744549827923226609624124865820249795812210346004604588242344945900958852214103898164774440735993626415186210692210258409869988447779723833132822951108815003447607041876133839630947083269156168342778541422573532454420958272463072390438816593199440557484834759591000177171584653276605935820688872045834725730778721951678706348945150869331060034308984747200098613681387471300082301715164892175437536733825340664001547673222646798612175689233021124095083353516750580771541141782767258677702350714229655827533875318590771442748121250500090878137298795684060185199053890471905408897658180455905226393636217863577883345041849028443641492853605140901514982720618890353885208106312571238498494666127112453647658628973859456874579472956601575635242879833003822115047258800242448280975228824056795153758389721963974686632630338028966434469587907956721267812736573896615246386193933451442023235937043246861286319190716772244963414750846062273858519927676109476824770835380475501097890614431027571573547327034623115875864145932186546230645003848044109907815925521825782099594577779366913597200083616900039745655234914226070523319197846115416477463170789911855402668068214175822042732708670629424566948221798351613993987067366994784397087547688292108288503062725453322648979505645479792699063819104838184551418471915369509138788379078122857629008363943816805514453844157081798148802579963341988656912476109616542525748177289964429768087390974939392002703221274131758651569102391816706184427929349800974537777851221975795846022010016818474802605424837597816654112791347839023931690111689144320324347115298459747646727392645083055702595922355868432252954588518961421473057730581390070558016646388706461198426924581916529459994158613538176550097479719041541907440031142383444804887268824176253137055159791592948987687879885812068114442118630783102032452256346286223234680511715675878882667244645525752282905643420720309980061295457396881242728428656698461992426314704297154818616540690296197069420117007149597717525992352775386600258727370103080850535497501606265965059539045728991483165466608211269165545133419121966454970469450283013921613821607612079301488577915603931735432012313772319890794926204011625826777292597146763628609869728404964382956109399926346998773755377706036002376807798027594583549101469334394268742853237826667343494919433803691630979698845140159329679535747022936749042373621556271374320861362436484153261984119009636852538661237822907911607530274460852834415857855309130068794766848864544436249099582347410576288104778114326142246080242421725128311787301367902723479269529504579121421814140833670289884240651068131743246947888677301231886006982380133589301129996975011666326630798184771797286088128040421696576907009092372336165851434238423052501131087412384851700473992643050553632766308580431867745542912895636551602444270712173877585064783421350707425958427860129859622929494679557824682145173700930631253051563819017894954593096716853043083143016123836478177817307197401489995894143478603168595875358622717978195926954613190057876679671521219866112360860107342495162514293900314498069271143473233432682779053028358237657598489905582949200363371320571155773753451784396770075370712553965595297745056407357546243453036144981054622457607285488891150179727815252713176920260186857521532547508509652754458725869648932930341892575812656790954571519673948191416666287977442518566945761872860524177395640666303290832376002093128134760029460746699767677948346404134881073695146718455455036244541694630777297096025435183266201157560433822776919981568543176252576696317225409947774765490086275053139967827305878659063628157772908221317751516544930510169636066553526488246881358322696854777401978786261162761857975005009885693071860508369238749562654489788391589655085468422969813357831058976796267043222040795254978693778744326849979110286404316685638395260606722541338737991672582691770520257777016727153306552611087186679455611058109568828167613817752324695138597054753395207431451531436808243057712652507520719260994908088370897631376888967941833952696063659511438113664926379550759052232529349972611122345434961401735928725614051402852810551100132920210762437127360875859755083734754291327767048597670981352180637237467740808981470948602142722857696947264474887163751187311217421897797477131689217037227832229437929719240830911966675192824164976912350190243344102909976704474348087255076747499672300947881199212249209913654552221271352029229731164170568336709452908849791390372437023768153605277902004293322113412284197834984255533153551528003204588285078120004827479454380932249051296528138257804750828717026165540004215582467040742139075180691824843656903771579962125976316157460395676570337844368837005059700936708830342051595604057509717136361071337923629613081905571325737810829103091750832744529364563956439334517397635938707684917315448974018115473194353370702174227254368333240952435419660616603253370349269504506845133809456552257712825336630680477975858985675856934914030638130136674091090824886631404421610826781363867378486699200378279102886568628266827217770608961604393349904852938400033389170828974776689188103482783896139036514294168613272361068965254407546986512538316362819799174664976195379124961558321682620972808692262309147869621394107478887249209139769033637712621208816045856048610343271509652855650188949224443628116102039753854913004281132134703641527667000268862613527889399178229324173078389387209741202671770639854180782167166567097328370419933460273297108007118337310490037456895623403240209178125681715243966751300789904022314272742366616487813157913774851706830535753619970870974706645612851951207391902045579118549889691822605655956895450812957586953912508242376050901245336773526855092322427004849257933572620435604657984791346877849695626070675570123712737043946024674691838142704303933594958407625397692946994717665069191934744282758286826100934413075064337322816579842688996985168741934871616346444745531810712900169380141374619604696414912622582082653428722925436229055378103746025372077667763193138966810549040469813128779906452443384691302264648894627327209528397233689489757714489901590903350062356824035674048553504704723016380958563257066869570868900632584431675295161604684602899108530256207630031842310605839647962660654471240580981146875515136738623428201897778330385607010164310417032594343168809731613662929055477519098204256793519700397415186016429062809209989262704377836367220080913289749296416240686843433824534684853223611203153007656064125861475155402663695304191446751144936301130618596851414496071226929789376995874363605757046915277531848692158386218056230386725968673516610735980813040306348159525925083964669764970320987575004650405231267136786282628009078082722189655549612795672990026861871868983609657137752264107731649981523566202176784695557611958744246346722183447526646271672587756566383366404002566965287606710828412355018268024149746459327953195522456025242811894379395960203111124078387315212565818807641765628744958486302914242207736834566185116853537433515342119412575684593097991185639006752338611062324051669947027344168175580807983630115727482632952249607172440158105500992711909504612836574193044628438118377153614929278639660503898874014077799041156093051698479703246033057758684479482623264390859060140221471834936684041470203500821461443396499258588791838930268685333403773484032363539510923911781865761956221667473188738966426913407519013478402891405833420023350125189355055731356715176777354262545879383643621314428995783873804822957254523622958402522583049115630702490250655275319637461017627204058685358628690939430585531871869241015866951269462940746505528065712118223854311531372380982714657538782176829033424416758195796923938050211020262369793739608234525745135641585303987023350879929280134394933684489338579689276191149339533252145635291628624630781475916472364576550079917279691255532188257395690351679762091872992009147307979180606981161366986381608463835991808549927847586017986385197210124197328628215680510344007694282475120694732919564219035548280665361214300078959452136607938399607684607080567060765274424431681621427913665984671514774323994463790100721402616983239432596782239605155262047359045280882284435448700357895485183836249714689921141716684317361756198564273645939737089639984868828451100350522447554788706412270461005245717844484677053325470280608429701401520518856901006719680148054758584406258527959765926141216744239807060652779759567716522147298469310964435286571059321146176896437367366739255978768277876367470018644236435926837897811394276789097901919042596860832761045047226751934384710038919096705755646299877686259026649527156714059038227524611496655588000607357624180081581833789749478780124847507706523702104227206722799304857343909999712529238614247503818748968469716909932117996164995252430052313704386856258139984652649817621052201429125902469378660898349632585606130858725973851150310512952273649078011062651589308910559686290738026461697878960398768470931271510869912625349484872007530371568376329078457118109130939370164470784226403464410192131317201836331676452724238973869107898021363942295800275991097559288127119671168130010750380948570352153867480880710383697010249831406324739605568130528998368250946115325833039305286418244689054130999588589146447457623094052681789588969427788476974882439621649229188530242538202777462083953219077214030958418761423338331899044621495749548398114299480002048355871572308886266637917079566828900948328424003095010454050804847434743792347968150430432801209384212850962685781483521966740176606242272681193158891196951421546576116596534742036670125864288381003264208340495898754992452712226792151017689875461185545447479874928951397185806216860317098670126951035766653510087599393254126038423341457330097304742273057573209540747343726581182729161544916674260386508327793484751357709393183787808523816396955568525785893435634286061573452792675431035782727482744845768604093974855928891263346505062926471385273039667692842792429235526170839018135296889430963943869779819150147611533507548056910716522108669512263750115974675045475920731487922229624549586052270851624643112216798708976851734093023163978241780291510049975266014888172887162070421520352335432121797619690357444502153173778937099049055726252937357254168570016759237743644542894216177634061337304317158684403534395047549300601079048542259299445314740857980756066103445443954823980265256507692747370030904455150438371532649715161342627799848416361105404508826068693775883571789746767027674187719930622496700646058261939617519165328153365520964647378367712227180218775749407662829743002034768875439157252537707105532026169448057439496385693491567772314281094101718927487394388202791280020717871724361074897263002718314849472690168183554196189154342202592112548187206472453916492606574673962771035942697070653568434062983647612155103759800268760743952819780771830852746183584899501310071821623521714576992613131226884493016170140017364982541310857571829099383419737099733996407620359713698916671678705703808362570427023857265552607190486575267178018646904817171758253768424688036811334639463000291204254680660061774761523031737048402014312319237193138144946009210681010862552301925946175030212499103379234234733300244463844124776434457907496497676107403321332191360156195569086618069267097499237923618207068003896467469942911905575780630754849067506008973035322981812275680415568165459726736984618441835504312565882178031307143163494948121981528516685026414281835062253584339020567095007988207076520860695197161753348641113265102569530555317242326504129506969992567701610958421675380627139259288678971038555854807902625396725200944990738014826413162822015219743888047881003839938136479189123363526035366981693855836859529943373311816276307717432353762019162473043137905298187875940006798471543479627855700051546815652672005686440363683841884043718978975423445836854171437430864164662613917001886910045193150311861787131833906430177730999024909476823391994976063324877565768796148446983496773997694335849103363464975511201678688998285588552700964553716541101053747180848745179835025856812941757609358524387510919040859179653623376343621679665759646036859790503244173593285623608247834882963473698752539866541865383581645821274158108095029597178608851194226743804296578635454064405411581913124942998910714633416187796582880602034785630861191310103836321220705074621267972783775481190438960638044120312003833258013901990112197938676138673357221920584367715362232376038002537709292876433621674931462253148658534719443301321665869614647939537913071060470361747074141841235841459019055503054376444981590852362547548095427680025258277051980381611243516424521677272340758565953981946461227988705702278288310718004970314233055784795509328244653724592869234849311292230806055428572314484311193887918993257233009099696246990589152992010602888581204052912295520119516514241090834070028667682749074346320719902767633130608752357875615948364553128754066141748451128061716876736731864927519429687954588773121192545630576314666435995677960756932713745924491637915176144010839962819875522465832932206646898647416746604035778747917119558958942051778654271737366227074933501272823386354596769705038922427346604348494912264773096035413312336102322453246243632509178545602902695881952808047852850794974758050097294708138045997813188742745530005446374765966576601262302574201502470795757267641237708294157122041158319086482522544892014694624116159618235333492004454261309631025136383558874476103452036380411240945037345956574622505851640155437993838473001889204303100287009559810711392439162431535674446384368756486895987438710226511504461026731942078523145064453125878306915840390526967054469603751266551956537373570105056162138089950708333005522977484791557400037386799155955460779132598237910206960035465507104143539420278712575332537963222966145369739056314067936880509902747732012882763787359390528568177285793757620822710222196257679563106096083582873830185940396900067976038624230361838533115885915633147385651442486728833298003572628425425813076980500924001851717856386073661372507487945555493330652838084440059028248698632881451254084147673651891419921372102089129626239051050977056444110107703977084847736110887353382681175595592658861465073139955391761880076490418345168779372947857059642593332797474873547052060379962670475118190951643239315673131068371301608212951602773984244074064489100140005175404335447996595173327307336900651282768994446570640672044713152212210359192537148668045731062362782415543401288492199083378949467202371277528573790048849115055185924880621742496184399071378915469000952214712238365755188959720992402976481655521607039933939989031497761244527339462892668318834316287886860883896416094366714698660927340539922530165540535313857602040265453226813402714608763537338505225204264097725943726631540871758206722735218009612341668649955176327437275198698822025673110913897626644793237419573917353235871748699135662628422999014926347588251606929867396754015095082943566885791101580466430521488096915760311695717396341642386371113977464252972260432017842095275250779632911688980260883045485831473580963450621659026172817325137389911368110907678517527829055431917460397169406352123452800829841269595399984478327109267662168969135158333808388505813591550631301502521471362422169187971245505484751213718809862180167469540811634855689923664633609476943211089816961114024089092615270979619726688892998574920884018003056961852621301868126594391802399496014139598924547071830969576014314948402434137966331668975681859328094274189517955029206288415050337468061906887869697906611584254380666574154943679124127350086944994718261037893009561327658343996804655665369015488156883557716446078963103986043319921984081764745872968219709866840247862332738457351685241357472730790387911217786676747703996723166839292968730909214971823022051104540687821499024350320148005018058146903970265385931090293698010537892190753372959934413222506763442135479859779177848022051856942718287134218272390928964759576167356039306212734728342702472473234582783410418421724305361112714631456096644983603854259515957287129334993551452566119574239818832938464191609517520108020241392422780133018253135893252336708176788845695738730643452729313642564825369304691609510976072007363275542098512320607168833006158159515388384744816241535953022043478299883316882358230807843303701699414458004417496259757317733679452327588746092723086414440438353626209341069753967930984883347721758594442170257294071020752242723636570809641321230458997339785592201104946413054026545674855942260308684746020378382056567819130735187607231826716944347152577908878612917302795003704317643512960507393714099806966260049710096994919066065432716796109134238774684474418646074232287466987343984508200144888681612072683734101393537799386835112698412438625562550605616982332713649769563707473629402235913906623695660233204882388891814634567289962778305623453245789030359112533888283041824350855798823791353558994087140370875297457614303944412274319446289872406690842246162736818006510894898653347758887881549862559211808695079060279263671718388513093335506052529105149913277617246928324043249237330554718331858520647399970559856516836396795114800978661079812505568077133294839143468983816084278419759867855999822589341058560455955785196761065563008447865673812548838352497080077414305490299107007764695628014401173345515591137825106945697305224957896761733408294321567447177102624588711231472780045249235445959009964694112344825606553195403739244674932552371850404947332153373527009583343723173757363138645914038375894585476159087569064422013470992785102534588316563941460060999996020940340696908550656649993388794418323794069164648863625674683125613134742713220134270753051656789020320745425542315425631550714957854435923103459916878798759873790102544436885680965391572068053442827006281676312214749044730225873803990552752004700377253013094627692185972124626462840984498321252698734967490799423359626608155800649594593083283005723361770740925809684604974735792080899605845362464419285381512473129795538219433054030238256262273424442794812882472878390652646595915453021156138199978226101444068224385557612003170886712634615054549553500193604637486570899799714714147684703285752939597579874271297746677335891457345356489275025971558257710765910243248253671008229239992995648252770921577623841646973675901322605561776455830751208996121956822286904572053957138306924876849591867819331396761393137105955194799578682724193407119783495557449225329335522526086234108525785079585009807896026789731289824983091219045667306258637605684183667136982377318981337863975146620758326244771716962095425527016507422582109188881816794326251684337261852108135815205514151094803115660389161152173567622015828441236126722603882901006252787114405809763126845488591107175003904730405411896767544165623379561790720630682205192558934106857228035427133951303354130511031171796863297596423330231765314583150669606196563687950861372420310742930007337120059811191933395492140611706052110182004461664750349676032537661273606659693878998123446261901041684772449809335088466368860787701260014067326338341632566018929869767861872365090786398599688941543005504020855738164957933712590396907654814519761508857799736604177188710278270003654565487666953595298104274358714698285998961551226977061828541870404311449380528523229965713562360156008129895380531449639265845096032908336664255219397170276015899261420831714368305955758049969189446578614540824619037132894993584506390543900740039040530553157095196216316142559540305447923341967827332561059303951716721440755991095469867152393304495869023665345717052562848022459004673211716878949541663742738479091356924376897414860684073402119016376976001177750847433261419512824697454980983074477017767669317976816549024625721714559715651377306753519319366154140240974411833786576467812967903139946244479108777960698321346576906806281472974144666872827861411328068508717505400078636641650446473206845666812670217808563032968644486546967429717601243420104991978406545839747416682528626888561048130429765954570019041064600338714368104142928515303824932565484024654721077760219784059512868063880444787107592311916604095572339441376312247502287479738319255844981943211357643380056212841989075072859373025311538189714974122757587721729440113448058326636494467064179125814674472855259542811073034370191583021704666333246015498224460367414491197601557758227989924479258529841411733789986844576991307614474572628989312479490093812152658619718665657140761434379645902603683191554101880108629681107113273230493308321464056697361053917114223632592014242577569346469216103141425572704694784265743870502433504296168603743027937892981127384711708323118838041592471017513299611246495968067812199861007166885186646920694710185577530938985164416184527592974708835033897583290920231698668695019943651474838195338773146878582207023549216117084398087611866925180763351832756050147793822089768392338726431170307796186663155780264095015199510962291253149428695489968881635052828311764978333073748287315131160633950425032828784671680418059262601408603278148658460989489056029473987808410889421539146016669802981332184294148086115938056628938012295013797953699703420131831143872545998836108269225881644505695479095460289736833534459623126133101219763020753447617000577488736960139676751696111985734015139362243183497710037660073450252940597875337005233163557010757960843097808956248353294995335177458828230692951655698948484109168558998913087072388851187934920118124306171906072427859218914038914242985201342757802965317810422449978928966900682664998820863165135025791194772530398164563085702863084140492192172470497060790473348571369754755473094378888841062731006082509008141314601268803731647627752862126048745145969242702138814314901089071838339250611393786985259316846908477077670525913699608472215975161727586352815349526388420118482228001137339154880256399935355368979492865866673981290643939249925047756877459778324152846986408092065696030424193128714551748247705061837202453727062391010605593579786185865812353349719529493308003959338541784768024674541164501288579833769720810646545566191636335574415352893847954486609987334612111758994993010550550128858026036015315532137729212648841793390487470303352884698685698604926079873873768176287261542456489164716638038568691089766127266102848711009480853803767565638620332923528119481438799841774353845861960581739510885897991758843649319760626166236267536082093325383128362044163176100089469169728956610713687730556262862818434647886631890784186099632947071920628738857255662408449210698788148771513687536005661287850228300480062100851807336311917241094043200761573280870304854556554008260791189644081002832491420697706035730215470939379714823140711041670988659717450225047471626332518873388704308025466511875041824686756668217685849332146238949929113167301618536940492265312375563213600348951860166273482459454395859576527633814676615850260245326404563780078715068091178197939208558588657711325341188010658303703232239473917394556090665996228579560471369096155264460421499560934573516844560761244131494180429569807925650839654372581182028795849567945029513389426133147426413757734225461976674948135834958616698570822542772985058739931508126691207097868326101895703159889362007415936968499209170875260921550057078240340091918205234075880981379835876141025161811637954601422750748322040981401329289242130193255028772478636879188972268663788428645704449593607925081969077255239837785259355834909770162993905312155357803523577230953268634802423988515536828674933847684855247400075241662711554122760538615945868754497133044211925043387719694033201430292030994810670344443075792259241766687084755484623585898811594808813373215556366379167957101842387286218844486550668682679142703484315036027395517301717756277705744229736710982616025765067933091198361810680567316942766643858882142039993821879335870476731402700894062475606925175939315937573744606907131398285061587059762930597157630472938594674184257622353893825813908208155111854607211124900200629516374140914385624691411751035214392936410262330543772989008099361475801224081690130326598017402823701774038412579475211664883730027126106679550067494313910157656176502033734077696339713793445811658226120368685554526260021607871926747239295923799480273606953536598389122102217844853825141303582182091885125155072570126951870072028179015915187940473142345194203357448930441119472635420392489944105431480206475760013493381805647617135939290245560292146248144921945742966038303912419708180635371615552489753512385770703730295009088497467688265268033557758375214570744062796210927555361552892076262958651272811564525484337998090820674545929544093480666845474773750370617887478173169920619202958514320663180426560096351812058376623379086221981128375791675841763060696331542414026936632149731642293927524149737597468458857390131285386227325068548397608266336791412543874719359500469444215900005492282348772439757773524882937249137468998411041715856276480502236814768684782699646884667258362979535106927006739652481608639277030467951080464605327449836215333019093737374683731201711046089338380707366832033082283370672689201048768967950062953844548266472404390572382544959109774477832279883809735445945049004218892898237395894212361653559511675467498840393432120421638436669171955433493315492629247839941123987114341913423548739511469044028088689213330902294345978838216778575507294516980751623817799616356122714972267959375271286849360244410455694096303027416683394313819947449914006710005519118007935192859448070045175640788740173158616150029118547764333341008576793343764640477228053224339511983025716847030272811755156547760444724582691497565417128481984051997981690303081057461416466447364628334501268242438854903679842939577117396220375161877563236227656857394058935977362549915023376563212063123203781477474838359213107981204156209830235781914127588327079464150427144260810872166640518066501647821070193649941361574743202418202184523073386777196318375667382596434966159757005894178721600140603037693619412750251911268944614490047769105563036392296700731005921614423044901879547896048671840597830313033984501362810992012785744101499089860129274573354770086573788796964110570420984587726237522782350715421739557951242250914699839675709966624031988672846338716867190772110305324609168714669837582974594421296870627752516679707575982618375502004797960489089880687235091543488018028323587398682019517508685356315759750225290915480536226134946526358278702303159621536066451521688740092315695391304520142730150743633906204051045260924581237241240432562652727253820997286545344771248642079574557621100272125460931587761281545371326158684804731332714551971833835588675400210568169887288436006139688800563969790932893173068558001352819655437001381081055345549585442266796265208187470890669229084181854208985121102899872913808603652024925966627176753175948019347895953607554928474481697571686715527455561106200392285004609733247376081853618674671894146579191993589045333270128713942828999919778970467035533395709737798139338886428417909625114447706244508733375375667507172631754362965521215509991864227901956376320063538515716528240285950237232116044445416788757185461980584847714683643121344639174218558245724579963478669225405555967929740444531781351020861865813566584201804993924998405172047619010110331799075042121213441168018141092986352117968566334957018156566317766610293670190709582040843775024042981398061044201054559106352330776654482200557638318241088550051839342482389065929912301964983255163616837234011523596284781349573681353873821277570091753942414948678011622494115071006389336896833342288146873100134778626958897469558088573605863251334876364583953717415109575442291322011781458051776221578258679008858674433815362168393258030933961817786071920733290393293672462410672084640039589018067553696417701446991424614372127585066629201067069466074396116178676419784142726769078262263949915515155828234319259961514115510113013218326500804888970616387815798334199628042410565107936216459529153538270910353956097472097442140258171429425736837455062197207085485111592039120816594574061101782786052647167233107234994680387795932495216978876834204194070563026781536920969725554326962712122839149817543543114228520040082032346955017469843889863873478734239935584533267923261081171581757604568904774743200134700802023257510168423438543550969216864526692397130443418563759729638484827594472210570246815462952348021489404891213658282393681370874319471293021412002784422783394415509066054835683112630673082918325034456618005558078210056897285478213710448459051098163936420394819396323682301375529907621125165642321542420941356107603127824073161335240650382656080474457642644834704427249774136476283985380202925043017118811186836753264186887335887239944095211319140487318219546513330416145403102878775659704877202074390106052384359155692799824554499471141584479804252177724442655390862613704000056787226614383488217494286822780952467732006930107940853403577661296408582950628077340984184040573521427607105288810501189263501168984781327409894545875816441960142968328113260073183769192024894040793112050538769366382669089323776785604664269931597801730553874708532804328717878893695195508760806741729501142741353243730350537011938618491165562261950885486609449875775292256520560788113641457764038214806828830988121917593587849409657476819813778701200597558084335675970094922627314707063239971349673521822194660782888654949375319115277243579382378227657501262578759753545991152921057405151236636111160073872263619240437856800971171693619397474161071149894842867123840279675973839379448591978336686642011548249615149517105109343082753921738396077056477826036789852316636877288644743203926321717846108096978189957096451544634286089764931993005047903521860744212356360161737981469986060110853959798836039287459914629039980283216488994601864690272849877020331467198727743475830364658123182815669009428460453747667866606327152693307874276252496617421395739668404825847134011154311984340321387030671569169383994365817377422536387136070252543493695998162546643605354601295354616812980948600166474020150977380122503223440761825493177335226591508457304026991441216350710229785522974543201779387252605323662140373756997397285873427399485558583336289078362644930082458225244513429438773851978852184112591767436442359910869855765496525514755605245101368258988290105189372538569927161126389592213642878423554652722159601548039511796648115568435027928968279528540254933462092421289036824688982103053265419846968045084880922432299585663580006508967903003426253687991456944758628069306882467309752388502497677935550775982134214160808840234172556827094988504160520025351243321109194064758670712692346303648407460209294876419984585664116004278589103408377724180382414072408844692569270995713754649418816955107957245859797830587352967981637819629971420567546157124312135028986108487640411829587673778361521740732071315451851808693050043065916372135626662228125442907850208901171150679276797360506293286937058009891322662420509195813300317619296147604929185746706718773917315200464567264880713943164757683325472153351809532924147773948805215826398963185410176584890338516849907466185291249185377501063314103742580969455695600697672854081923988042260518731528761507631801045348800327233234656917346450428382390865066618031349641377651067840549061094024955262199305183099980202699751192874796480933771718715957889151629104794262027922112109885441288602214939234565672773143957534067319707857873434179402848037817777591505719141210271089772819717325405675229583729733234841971674115454648355226771894746038250628634557234873628388809653359754722774916884121172029726581397635124297427647600406992437103931194536271426902533335887285265088930879237882797657810281062967044035189664829642293164877926222048948789846230455086431161003651934769095514749494149602223410257446330047842007494943943492773976731621327858844079050447745782677517750699625779534820192635822934283666154628394473478022947888521585781957127680973994971770491411642651340052145930068185328083411613085544470150620690695265910854443266699677888850931593329230731054744287302644225151921307502124161130911587858687524533194995867881622953838632563122510757720274781875528284005274335623180591986234049120951296991679305964080296649407269152801891771224729727023487511066213673965837239836354287148004707869219516238564340382233953677890895535302142061069377452226304823773524007786559278093070789659809384025320576931060026046690945122440811914096411811266315784814153038924919482621473688660096267891290053254692617343607274471491174310828179779293629032283918128382473229465258729479904613448384049622991990113503187182093647917242764264146120822811308098274199162580108504214694323452520248270003325707546127685300321177962375688323940770105783185752259163796390681858078039751389060329272992855299025976314932603909979436585330880123739018825360472616813946578471407281944531972553112229173970168242421490876439926660001756987907651868816641374299460931604144962777397291996646087366053512643445605502031413999038391827625518281722984323137515604041190901806670457665905148686322572059472416545279186946010652368208804561883805471422359122456812693421454083471371681273479730047467753371466051862056587712498695277481137371980480939852010646029542229548982087188313823171524157149480540508674320724373047186449444571539026026467404210615527829802712077203615170331542828557548656135232770619097897868695737513407526471312979200472625634062780060375468818702607069150114548775111203273055875764137595900870608692334579597596532675044461649867103476961451449597550442758667337587172245344253658972296796330769395209013698331632409797235793516498361569657770925773723582402815525149252890078126542788050977799081911183084104654974542237721897014820741425705293164928785514524704514865215430768373856483879862682842935066698688033101331426976980264963823929150545178914000239409377256836276112161806081601443900134605413829898173755221822501822845466590806832670600615775965286415894834478236646278618505977273935161477837511133685962120328000072911982577728701857661682861151303635561273414762989958187052282937120363809381032674438449086012264675458249335895071310702782443049529403536419404556491289090017508423130209108601507820022227130205961476391057080066735360135015580268842335339089753176794647251681466044284748341720926283357503863080776847035093402410044962779939068174354733200558128109873112034797096367462993399398584665879567507307710724823994553677032686494924534121796612019451151052090835230693681405691210610114648346379736707769387798438388584118131952928476914791674633442977886271566368309134815533954212758780219509570551099831099621994145881717699244471606483419501540606391378709125612833706641246272538903211532740310275352775182254483619610127645772274635077160020120355709282825713740609400136066095078565880706159287579571162449927503201151227842185704629792333429611115228301270936380556188223735005736297816030201640783794706239658611281719750648436525757864493182940209568436854442936819866116781578277029405274596396231662541448238762057245253995884521842899420009499838126717602827560118206653025585123280454567863015559363721463680803097526840525625592471758868670071460991697892653601580457100463423240570027280816211609852614567189760035139330435731828459150882425720593730142308522506679411472881407651404925010134972364900579027118916659514001095967767924618201129890289664950660886389125801745505100417714114143898077456352646515914808464015033950030586920817036633380147455081052885467650499148121853754692004757602280357937301647987670532886757082349985603579806935868965520843489923299235013091393239232714017327029165878725106248647790336464732389771291989896202309670366449932178802403471858450064256998609144458067880935060612692915501655156364211017824525277886886685020532600157612500578005569823072416954041264281062214256499646724234087558158796027178942804303152079198503401443797226043198118039888858481124316308352857532813221868858868891302563251689404674745911129541529037544797873743983819063565273733549278410194757977443517653269483326836434310333172154487443478581862424105941165656283826434305188409599481162547571331921938158287218795593391060798163809688151316445696666258706680445603190588206787882421004021014792900824709986436443838495933895459608083519473088361832795531044863565543859604328754715408608974382779870086738484844548882326588021665646473766546993211926190462454708176782073106857583676318671281525399030935682367760366928325461835333189087027458539336389366341192779421286931027003336869893469825043180968306115466272043445764827848887294400866782101814566510606403903333826018412520076504257977421549128474438522425622811032514176354385122203612185255053520924658483999820632335908725819363032737255632212534305769399340182956153321098273937273423540961904551629186636663880405467460855265298897571919026896698434638853095654822427594294073556237070556841281501605952309148919331645927000885685310462334709666633385809719868233546266980484450745033825268851145505803338721991515119832857126764523511262430784826756990269667310049657492945554414141168982090334685465465635115021316540821041529960742321511703939119005231756315824044644143477810867448783173188617507382706722201054210872757509723401037417818563999470751816627300246201733000028569759966762347104843182763220092150184288106181925093470460506772069795357331535684265474855825094687589248007001095145312538708559086139600971236752143597502800416215289069647175887147832479817435518555846248896905886446622313698868861106599676439559873911456902884394840704360527813748206837094609566134424074695455992413799817638784229205311054673005878703022746522338883965811227157618786662481377450718885057145275510952099396638290212957683511759059690667083552402570664620987036865668034538623642498174340611165425402823709391364902627167584967708078047412098250345764384998483041483983642347788902775818980684991107170995538946912314787328962772832369953819961390746654340795365172758257060344053028958559992091662834253722124657263523493552990627231377158786305154176780693577649382601458136093935214653195050759689113458241398911738934884747767605509370653940659986003788512272041383096964722506698642297204283959512644910747665938121979879933491376205441747859520324219481058258551871008490275399860937178990744076460188812952505383736130107107350048999672412850560008617952829058643590641203016214327498511689495245816120362015711109247015553396007757864650623693482536419580321489765811821941881396863640967641320968617935450546839374783144175826778379422620488679682125010971426911031813469008487735343714289057616843251449951067873351229756497228904342824811897351558102272207202171399648436984853453235585563622981892216179891066353892594677822982290477752467376638806885275112412083556006655249122131366483558643764217544441036439078754462271331591088925014325217532512665866532206791281134983837767801655089305212293743251466924010237896392564229527034182503512236491226155454558326508807353785890536188002740419277308438975732444463566589966949150323661722190128349758603798622154814013974649320741137997091618999436740014327004234898635607011526548343755189947462839268187591065945678622715091058835099056699154711947993094714446521291157336441743304746569177732616330676658810373830156584951933964613748144699683848251982411044414409755047942328156604025655010864038817375291119742103842700818028844391258843422137936877285570209801846061574027937684160868424456677903740838276577609892828095076647193102001563906398145357273456260636641478183479353753226594783486933945731244029463746719802888995946167817319438432979646144913399377568006582721827606669558448072328475626356760066816024684180412121063860535804287707750465297929664541523188230732281192338804046077303296023607974520367651570877030480893293100989900871794246643148305259276976619833901508002892975821166993720601458431936369361207210554766009869982805794834772207974734927497037519410248435704584313719891171271474289581898627948451603561141988595716312084570758208256365231511510996954722074459067689376717482414747202772303482343776796624818196785496659523268173353997562513676621053747624474774094419703241822541256519844181961534949378710396091847744236495967145540707504587147031584525657297733831517992059780851947071097432193865697245782106578779615071791675870687510404307747889077508499193441954420637590786502619072154035317976019509020463099154484286981731706611366233724993317270279983380826965060760278650059669716364037105893434396656597173431274084311355953099171472848140177677505267003095410031496459247264498870331939924673588672140805050791843765577629788689741118770727298540387560968150567633188367590582993807336971773061444574617889116436061217030311421468110580172646213136304859467145239039283981840449161298571948632165433171882385267172561067205932071530679722513925666512239585142711260993198330957571395362857706777350121495984301963708452432914609072840007317990827968107466708530985918322200798232938360414962482330924401253337353517615989605052042609950073709234265059461993909153295612063416987870873283776190360214767117182069810282007539317882081735142436352072733451922904784129918891316308676095036622677160913618771014747117836392707234246984686279937585065822842282630780466451522252695271289435719049384314455532639056088918893743202487361619335183953090271034778983088408489382138650768165158681427057233338009694456319860408968013024389026627743755599513914293400252098385100033680608476808146135732825474536382208991331569721603853049926878288658756405216487720428883750799477822576657397487143565230975887516253154317200303789463531169783649390370802064940594460671151946066622385038002247743509409551032654166636336784609775355775386766400607312174177613308241044878823214607231384524209257644881586244508511901757778417496045344718649294703977318307386218820132410751855307281905941727182912384029258486203873196767520142533384332906666667449574052919623117142276515238319538306315169580517660079134068493552320793833051751219829548600153768168260115537932446241067863923978725888806702507205714662155225260176983173352035545179059694345512068108350894142992556589240759179858858284545527215472045745302129373489271756402528676609774970218415592232196722477376614500164899670361163901296643314496742234075107379968050415376424053564109766079080560605843837542051649791642232301472503681393176624686364839819951698525885030830582800010013257765189747186055247329010513582376980131201410075923416502216227397810971469354894300992547040896743643496350363988997972898914655810134612851273282474741688202971830755734488820560279888566492331149287879085099599360187754568718193001251823532212882317269878614829137070379769166861385921600664156570349185894887655215668940241658714953025821407505017032196290069485629750298566722035826153876886277364739342970197801900932201059823884157523354035981636082802231401333350491200868740604233905493001824930193862925381592753082087152694969267706615198164354354916963161293714551279108177200928050022393299093087340552119324501190489273660934299174161068185884673841395067920654698109368503267976834352807761496102495112926499232213057525726875319632043882984144908123549076813324475420436217735195211509433617569250430990943269416656653795725710921590187447231239411802347264747570645406171538635777201703547764023597679335947986083815925009915514572539758859335478639412899144796974630977723372389275936099445573007291239073069011176213229062900320248014006753489003129936967048445284793564169324720879551812998282764815924474436120291528445920813310463632964042510076005495978690436774077234533240323614022468379012959312908913426767475707135644367779024646225341359751937508242681178856365798941278422979171354729466883392561091612708047239929655514441799096919902685801161149403437395711720739792556423436531310013101314181212639569896929358242402036454690261912818850846494157900320348697507390448847898303470397038347910765839863784275464548548798187635794076389115939437649334029973049472101157286062288041787265957264130406889059825608129384421006116292854035839355019127294231345276896980380078953916455907513169844664519123200984165324254224900786540218694567050777790388534810515795429432330384176222282847810361759042881901833978419460279951421189318582630031038544281191204244700246516183704475267344077115447670579124761073834410931634018619097785267189279213281661094491224782667974896829504738266353808141625227818527282758696439425858249107417896144826429364977854235050688772420813525248583701800994610944132640828949139046771188667013428961052833503887878741018827002504071407469232729146725909898690759151755393684700551416061473144540521237825485223305355820296453542241433917088891725113435152916222348673059886390191767044214391275176528320780928903671204185418823254580829882922380708316549733272267555398064454128228870629735189235500343483068554970922085221053515554630488813367240030672638496048852177994018594249666375362648771781228157736343564547570298191980163718791388349607091432052141106606842869769240709648488710093399715792777721133997945040471491792942505972693357447927251685619059471981502121890209996443839356767954241872856865762811888072877202294194645631886546170334745944025590071865466826854684824643126481936460201582535034953848561367468247309852415224852508376227262845735838752056675515984682837294244080117701164435644351253501596144566924544716001668722061054909944175768505031617516606663142856053813358546240093053501498781078172131794540643351395200664169262629706599186614175153684899876571642973233905710666333760497629149606781875966608320082942002580809192259992813511611916722073769964416037815580061519756146596717882856515878885802221240357605127934191720792480809050842076565822993674983357960941011572237717913396359450673209275539919506865400622616887558080377873211582772660124354095839084710799024208735594513180766949268185037153026813471140473672880357289884531465390175668100985071928157019830063134483092550716920281326840257975611300933354629519244310011573143803056117643465853901234589734896121720414453622503994823786832725866151910220999353072067651126180899267250579659869479437783308266216812234317560056436310805891470004984126732153050752847027883810244933903571480009965833001113541501196316372131022654204428938869944425487672665242767612893896421382446339286248094065615631918432902726088500493297162044859742152357904753644718254322592080403515161471473065236209560071049505656771151228871111835581059241343020683071935466018160087167720433413853821154344029006611890352537167485632094280975257126088630038706591712347317610131084498336606772498442671522104164430339793609428435348970744832711034753357676803316576069403368970387850898288839185787871474868262333434244508522989914044798600682062752007252074431192964941521697577513969633915187109492695783364497210768708244275132905719338638444022830011828712591785761517391327158726904996962248212954116930046303431975011206428108826512618655907026110054273475541723053859090847241970007411344794393512636213172635691815680815949707441248650737078750633686238670659776665732869203221372168170342082192100866793678255000502894360101236839134078781227471604084197717668546627208926007381600296533790225371606086424965765807140826463784567074497674840261929578855442413387781474705490428534729307200280982152930880925022307825393018121875448615562049909304500769647363123326463032415219050008120209968849097486885857918414480128278720912719601866795832962205162384551491182127919315165181722633939239395967100630142435577991691175007324534999730273225718015874836215280317273006504126836954796633350040884211166464493791495372358007594006256023535740634088964963011833318616633033061528343682018505217641965936511781960091325991483533915027823473555636112597030798567691707205386263501258842226631661754801935198838537973042857536675852981800472526765590813874635054764910400981525371235729544157151908009759711653583867837557097928298726398809072858714486422453027089634142658246965639704369655693090140383986865850594376448598545608624092248082456438421718446011568742402098629695552549147469078587577036610986472066125548367676088371540872990234307245742724315776505487115513846851248374140298401622785210303379417663858322399082218923532798495292564350176510815986964446603031443364512469276389693622778601147680213639796742300366649368801775976674866186262638249468906541995335628123528008483750637029875208144861297699363440577443409609795474065186841439493570933825067819346617385882778145757929586673970931614768422937075924072400443547505916812766620463494382313023666539980389148854391076474255078677654092197926513674825062139167127890603397830098043275191352155592964094836742210845906020300533453746549277323420150004499488440123472764892914780210910427527034743095072051901037891891603588940286422960376790247932287390921210165948029265804745440873244970014518401481154371653064101698264314496021462169111096306403052287654350370583587482348656704376973781938764612196572656825880733576820053798066803955497061377910110042576508835678809260798430226345174862064793504262033632604719954588668787815479267197824383934355796821235879682043170222099749554968742926929335839476640123105551667235525794467469167382350689504107697794955034148788491999557579986546281108595407054917051201730801092313581924700684391743399221315829538767310843028870508587992112388165202995599357813287119264084850140006357597198936322847571200223354866314193021165656916604439714113397656830698122895305616422061462383087501751180132994823145603456764565382037507258226416642918227096783114237727767685267231023210172450913085637077057810888989921203365866387231128004009795971282578428690406626247129824453684834798703306350319315048181231247121338685492772678459330209765153954782724570672604806330038679951089172655019832864027297998790703598398657011076436107714113682101070894336251983784834176969970999034755741302235273194624455321776229331048162859720459870840808274775683120682512577978509292147061913143665776771675210839217209447746627092543304637354286606687278270586693321078068227133420457145154694654893765083400315735543533629614325912723575459923352596368538053670099195696487571769104822286400118514469165694834801121912296529857529202136223093830044279156298573469740985827704244439822688325725289038736179294801397240004290842376818561285726663281613491417536452855307535640208704655049485142725595280874497556462269707552629901305771232512342713030499056840999064508260526398073447147412208501046825346993496194735423571911432998289105746228316342800451116197506035129522486305758108243170304213702090021913093428946363861267356959576225716420845011869777260509255550047849289210901337192150656779278027710493217286688504662677217631194736244865399550482479001782205433311404467931806917683883096202710446720451970773025466451125189915982462991855778980606003637243387922896302186754543133626167754076703649217849863729092136772313733383048662072948893494736859386338273638050621410298170493270863907888898351419698812192540086040045251330299705516143353107224830145063290486874848717146668540351299820006978916947653843509243549829683153832916321063950918114094557890543772465156129910813149353036421802613615565742077014972143315469177482693210786980892579918113030934423774913341781793591983329587467250835367241024118594303107061219905518805489087818532971538416800581730070298028954816052218424943259860535933574715751945773928643089634150056203845360765354177153604082706454281615910523407273022715865967706683226589894192589865806008651743148855434835976463993114475073413065372119885299554249273358932593379353433273689314536348112543566027391539087973944005811647993501026504042937469121840197640971976447575659738750794869522748377253092548591577736743149526577378531930842011006272891859558729051796102251225346174978156016493033552608234809677844203334871823728516464435996615692326139597429366051624603958273172908434799924607753019165950512646083578676969001586296430723541212162601587484525760213941138097811487529697692338916861410755402315316586572492585637205860903188957732739008516939892091246642932995045255898067533950349085390255558882251929252423678190932896160270491196212821193755111904424932001630661961786066986939321003000052847281053927627027363888641933615955288691077314654704340333131528664839783670300070393960769695623494610813240932904103213865647403854533727088388318651324777591470270653539258459733476632450231054941996938263003843205660588961528683900225483729979125157186274552922959249811858235587522234211369175859544015704203233938995908338704820221463649436754738539682335846324156522024696640601926914361774826221568102139867184394986705894783779601754688039155171061387265073172532495663671978927514242846155251270037722785805310746818504512424784989891232265829488115658730527326162289259097954987007612097636408067178659662983626497017031095774730843010433073588680916775307455921787891313004637207466225178529140129375706415660805969624417243695161386299530147318191860358994858892162944141666249011789413930522103209848383566137804243237763980486535734307524855408918416098353473686774506045078117435426692491334230217960604206901159976218980800846411543004642506835527943212836768264496701932903772636178927937354065650312465471879763323946741214798270790876848467670917037358732993895164991728055079007426961800516688469297436152135050340190393052043756820771564923821759090700542805313246090606955357184734694440430538443682570500441182328800385290359907113329977380987364990583124919620377104650810184604593430286983930197046028184317349836879853957593745753341790667387850522069826621963394007786550656898246663555795822211195343812430582543432879230130188217180684866463876654718934026346296519678554721001461316935598978455599646792629832899027938698507723616508173702545415091835139848093786458986849681407688945619592674526756644917246405693521304595166575306911676428988438176451545766008961110288389630043246258966719701630268936167165362743734896992072863213074426032026699518137696873602609944024169895188038568059049974084672808840483679525343637644662898976932268784680993023963826609924960104287376939428817284881584982110740207780694378545844023299509964447746552580034169055693192413445469648324511313040846346165542830471018897701463631568248402454397647432809433960660973642880386404438906196834944560375107239015777131413825334809057470898652229152933848901107892132620730986319047174048557542816190844185415330129104054213475387343048598570709493883594926484170550264111121032399086859338398957408004791657554955589003242210535306989395985965818386354942134869398225325790089773669018857908478079883217965662300280174721675038687376545896345927434248462303652936885083980751278284903193149358519417169905915468514028365697361051211029328982806188996995721521677931442450818477930092441886415886986604976773421643039403619229416825446810277379411189175805159103654418362507983133493146506258828586566117056878711999265829967016605526003373976639571754380262582632619423315447879022791226470406959577774448673997436468536809391869193836703420591661046409650752194684201542549741723220404715132034288986837238872698877913439024574769101031346797864490414757246963347785757994129437184220882404558681146812716381090584873403973477922979791983831225451361940824609469528550783525456106850501697713275523698621958998103663101612959678594655834169461991464196592914188247422627697481295521264068504435461940592898361949388266488934223511376817145569715116716968351046597118633697151310591265812929067961160631466373886980878247323829271823409740039939510988451961217962015291149235576166692521615404349734239032042162294675711862413629159633767321829708861615771901456443738828185444262757133158005222984274939702681887282935479276557291033029129665441203030555152273695605429974414395345081270478202214804307406872893390903007901261073742868618431982100366771709813377695928537789728817345999225428045482175224664433549116216450284561688494925553755632690189055085503839301455654427708269185653416592032510002066108719570810032520379948104648434276489313286383116383937560767010043213170242413815569114767165581600211059860832374214428338038604265986498416045476479129406637511546795602068490223478921957240207490782621765846964509172423598288080776747035131897394109986350215819806438008937716189073671092151611477899563429396939741199305217487517979147274124225463557922039437616097028460480630940840730855417755886531016097894679401850222425573829306148097593231953713474830368833248231267282650621208545300191938019414053664054160219346729842986609508646241495565320157245214943929471355554730686568404927985240438768548989176643879460429694325324534013490078681502879308772920799710415985791904758936312898788440342692694892175431274927603768497692539812930349923522322372394102898244002080023718805964762329933794164239013480787508149468284497928850523253984717020079287974821079837302971835770119147176565219187204339578466580220592458260552273894810104539101096222560066442381470428157187885739519279690658119146109709817827612006619673457030512698226535692858992482128422953927916691595637016918879518446908230966551479657079900439302060100787947251187081056359512337544313124336097580897174303353481307724580759220688991922377607968508840333820250480554508548602831204820529150819814687796487715440012612397199574859987013222392388912565295413154314465462508102311540577613344558269350449076710011770798371773789975983267064142204661678172527665980417731787324249650427181819552448013925959744831574967980267803971872690076807767844330443401395603244228449939188121956249146700064895344052157319270406635158924829721540163294432110821508498159775253266621220874369640592311600799578655842768757341498003578176382504314760079824522367227709175433560437726820193311399895037056513081479575162775940853672414052467936684065906844451653623892909639217441522589438236509188742063425297644909061437866985110189551923160358064200330360061644717028065003355452099355780665005957045491813436443954605211151534256848636136419298141720250729724028520023258388657640289151752018618866007261959232745572878647784038001987055591872389800053933886325612826127028925286566894025545268312695424633681444509855230335196498534178494818889410671001166558773506239597185882366871281660550965695588932992005351644077958227845065485346854036805799956985058779975402821469772241558630704419174051507762498902524208185410000717396028154503091843314181479919892381687273036890775586970621882629946343633702133313982821236137946276135137074100896385462627060712466853454600958037422303663476428228465048007242000478093038055544666215568213213576116206262136507457172164703327385375264481768146449372012783357255077995193397507347793644074534341921955071434380348452851132033607498832713019652909044142177212902623859841991445052774368912494741488162294099985460545786115984370124045744441558595983208713285878053731906427144553675816462547740935756651439300384686868559649522440389638695692584679305547321737840898608526171697050988355934584143460888477208951703760903269586868124381261249585675302565618478297177187144411438571757486109951672646364328088350503856902588453528643985715625744282901423962082927717159630672102521254777321600105670508557589567635347611423361844921294597306801353872807226126261572490077795401821972787324701322778864433478734263249622681248828746082350488500755256742079497431540201023219417278969998956194956290655535572027711451277219074109440429200406057856150858004983147368234052957736338209747917672209636442799855827521784196467683191747676256145322508867474496359547486567311046073165404839920964241891983560381572514131728939041784062425926341659530084518842441962388465686790891710100849336086685162073700607347264474016560329117270780492095331547959014228242265937862451021712298857203343675188382915881040483376160687900731403043112732622957723370760011171055552721281292464187147266254046320760145139729556349811853777455630432876009535253728841843470809061891772244514545517751140811578362957455693618932479295216906002766647541758867072443418899363782862941449140316803318848397658034436608838320469380377102367766310819091128511344026978577030758372271916165355124985167573687795386867586361856624132738704097890415902920775493313348792233530517860727274156027228397983071957389339371385491368504284716410765378894801402785877093614721678426048947387764679633847937645244999529563993004763676717758907432526500144104421593104535837337436297141586745076275822926659738706869419589900822133368025428776910023272263496964975944480614232908450973866493798053606367943974539257893148265297276263751242940339897805405464589751815842230844566753476613967638318467434991025413056304168485508422182297152051829709590733287892508617282300839578200209569514200363476787837300134207282469612573081402590161274105759382570428961544530395224694079256236680576953516780048931309103094442363411450281577297632608246846389624939232452951459281532971094650501599345790487313226729533832309087887775346524280356483520588694271022944208038889675634384884136189760051936963582179607832150846629468055759232831579190656207440875656047990153134044433105652827906069928713762293867574159608329708835306006277631579959451182014686473457527525028553312839547894539345864814231460330439957891825936040329106013183209005479145964079052752479547274872394104272175526443047319678497928208436170288319944178047471451890802674567727193776024003897692063488802722705057387939804520837415340071026246302447490046760845754782104075585297208949654048724423236367811218496763154927957584644918054171765054899745324911316512561580018280087907589099210775787830926071961505494413180496323432559447437146401850261221100220767352723220556575314495508381797896477192127252853646076474556946542373073236212455516893732411747761073825116812355550067863269759003747940018105179465189734963977614964830583429856281831094544434254391939796724114634829924698651355981856603512567760110935467990569272662715413345051124880174265830607253992623656438069851216905735221881922900552632740386557346430267739505051251641507451652619542881733788950346810774622151558773217503556722976974505302818988140474439636255097591937956710173277921297319736625239288617611833033998144763339647840499861594688824169978492665193206805459374038181286627212385155273545396996927071846711628911119784516606890596735887216487159317066885238483953213241755246095780580245770794598761910022835870818782331465288286978480427109622143709488237137065671052845243922655576198397145686737971751421160968665823343379394586823051302807524893029868682506250969552668224730719725755082772098665282727195740648178630200960824528922656315830959308625240820021725640790854706829059746285159089769450669682314715796214436154414519262792949207666756041955596632392460367530035052484144719332076965200838905836842176817925357170268573846400189625331196757120624894701719738767254555759839523701124260702252891490369114732815420000996345915509006552718595270604913104111107952722565242646650436900427576429455192841441839509299209101398353008591172734560289586488400744576476884702053808925481991389327822077404188228973075761590907769796234296041616887361186405835954462866178586117463168336339894770804254419333361627892008432878884040764181768849655228213634537904878705606814125597481716145254033781572037995990383867821413632132368743931132279827382525329921467405631660211949932182242276903709462529239234586470540410447667784306863855050420107112077163675810469244058544862593615462754986085656187399222594710130282293601993823359414989497239171582996080698228953989214010324822320425706423786305883478501996127341966971096457646474080555141883964917657273063779377523297244757020360461009531417127481865983403537263675101698429456421023742181417035886389763345041003015572881538091870104430304864838757067400968533122782190680021721074625665051795109691293349455274735361876184972345453584272928543360578034085901858540071831778822340662587967869597598146873402803736611402004717719350765072510845434159360690751532255862122552579767912276709831195966543771403992697420266512792329048384874820500418360916080535424566718496767375065474702155154539273292612949699744810696209710145673409419777027437797723240157205436136685874208305734269461480539934881857870556739365302729773603655624860465263386421842062862402143823849033692586942590276003966844605483668112751692852692887906735503457787305394823920558445713914570063326905555399392006708187248104483458153774780630148344953986507304897249462046175460368539945494565211797628555778761667919229814557974356391774939582106425390879609746099854469988312006155677699877345165245638610670920320756261462714261697784610251537203563819910388060841293045069485694929590702136900361921804381594067585636510530084296971411170880609661490650756520776017899862350510863620346490262056671250211126852899863363744579960509671375977791300249810918013568512675319236837787199885953197654825412493900206511420388886061297137557495137860726569581075173687531031237960490013764953128160504806748248119799357449348402828955187486343227369736099232978291027885378887065205041379176042148507283474591677212875480214406413922886033137434245383210260272222776529015328650008691881784757307333398031888734830583885191115379183979826476812140592846281458780876923334306484859264926284543861589105090160094521360046324365462236338312379268460500730034559520292765042911075564670008714662113076350971266750237017995909022326474255905948049541793798853471968410740769283847813416125981444242744398189018655786067065094232892512040474140038326130212354794692469100610602756223842163987734829406171408551374688077277035660730803435690644285496671008929214797456156642015882904371399661652455458317174064578242352592280410372554753735814132675511114248719328631956067990176262654741324085467744584014373038444223893906370425102715646848090254698889965238322011458999609184927810062490698467627200608148651711722453353327252584526833555125099511108299732456927495485120447465650056738306839118890077984623946228563566473496175774461573302125503644578892898011345924730182044491297429585947019256198142060109341359298519072911600402816168702140702152663202189316030946155018352161590179302346929622985070030984075761757080080855040985781356984329378127678097372790442216911094148263574459574473568077551851237889070263568932260441303666094275219153299332989243965285279561984644047355433494936160630370037446081451031840504072264340691782109408645638979888625459975660447544544003278483838512462080319993056771038638563867202341600902597893172088752842507996078711000631720829592637811852929862912100129657308759053241090666481392283499091650405250139295176145909950036447478270203434996556823870220763079200500744187395237587941291555684236858655716655752024447193653757741929720567727430651631213996821013437128867770217822880213119245707645995263870146423993554020050631258058595523669297637638760441776584144198079073864240020074563857832648889130271918587287032609662866395295912232280108480959794513284295928548730683325610915793400301984256683804965659984138086616841653197627528757210000008760646082732558779530110334377303128946192101570947639742465890073621165654624061734056327955172842269018369727938783399070574371728536886203156956741905882084967263621304100542782329907719279118813022505389434590109501750842135224613897409475088643255267240414520632335174874614360815715647950206372116632032766373990772408767794711579376960246089245539562053117165860375151935145071958993336936756569217497315223794759688302672608605153403242834136071788715914463698289891533364523934056794261456520177167546222183758260823757746857444430644869782569574925252117691178139789113728926287970088426505496834871951706098606420693051232918558345957553706363512960311590419202045214032349479486425821655326837152036682806967586985528510472065166257258723812729215383025280669464906764373576727172607927373031413606718873728259046712568134256929580167452897230905044116281685748090042243098492304159266788966472695164333101866448399681616310849772303384951142985406861041581738174302901539301442986628474218082042715868750481768891660307818394751475480454850203944437238551338375145391702649871856957601137764157160643456562702863647162382018570917082222668695442108915714694881894958000956608432501042174193970126972887258182778032160655798211820289332370677122366408242678132763130346468366769078783451348238697806255447784234247646443017701624051168560009101345118486120871569679532218668232953635702807194874356204319697045790979764425411965257248749609031310687410646568787560064735636223373051668216274808673124104877895255418300529728811941124565082187789696712252196846729984851740251737321980320217927543497557575888247541837491417271959042584160673608155590456147913608678868340362157665359766518108287243320362091650409198311340302116167577627466642188277952541634358839827200821527954798275547935802403084373258359111054147646628004360930371087963390015101766963399484604635337283663432996851380993780990080679098234107596466141725488413525820408785850093104642324670939547474259998193998082068461010358708669189495121457878204488279907874573937517982861113515773263377946425890207540672678124097075737510555817653191738101192995263297207352595173645201737562028690445569018283338306200057330688764428523561708845387890507858983559078383257806511991385156086145777383612035111782600277586016908714549045866101155380147088636419980275619142624022034424234022427140269253674357857571424042978098210598828432801070529212377518575274006681652389240670294651805266781566441494722938559929324526746592676654717559973034795006552366273244079852848948534042718645086768521019793063630210991236413869804239946747641936986054829708293572893204523023960371770726742370270178331286907280459521120477736537432859640082881076854315481919609224638872560845316275682785315914383513978648464873529677239504767867600853605577818836300674095211787121951903505663227949767626171214395993660768865187760113607325164471737783370741045976888339127443555996093869723178240127373524507464912437813898414721120764321451577895004965097591211737783845912952856383368528567534280409769510703921044182377522570236583836436254803678378569106434088357559937274126846138977247089385477796570099053576004023291863911125882938677148405137435121566464761543512644698112054640306823678346710445816618430291999571172804576559570986063968544167888226162265882670365292394807823865785429598312480118232166794734561911581990128895512937145061881386825906910831747991453827707958126709029948635453748041477200625669586043357335291652878112955354364876088488574564059585087478705995349762735799414699822847284822809889352459353918318993427736363468947705653683065980480062066703713979348923992019625163994761928033347519960422892659608475945549246104751214092345203152240970221437213892045453184116148541091426002921961199684322286754989294760331247717806214960229591841094815371026068416485100921427544399312936109760366622745541018105841771335957113269726884545714315242111647563024192404336652744600072891824585580441966018487607489142266540703313394894786683740109028115166380719246468604312745080535021556932834074045650086805564583849447952303308168103385062350626900530503665009394925435534895340825364850764140295760296361471666344987685016864345179905293716040398463293789624345207207183149247051435971016942294762678607152886545368558578003915141989372196380502827969920481377619855303742069625950929134142157366464850586318999077363432526548397123190367199744724369579856278864245560359347158858561360035324340060455164167802345664525272862547496191846001767422180988640668300724124515221144949897053567583695525143631274982763799100436675721426854219253722981251906602821776155959361282720010429141397183057497833147052427905706969892467163323059271226051006611430959130292713665023508511286288264258142327831957002907856937139093185132593165367133690452502043878043838636860428622091025521999596606782109598305116057795947783962848879443538491109484333142095111686945778213654829794455007517111201514632952331642134296480604040649728791724124374537689069698457934619684105845007003217787997989988549325109838223312237431581050880632730685026629620454887372571724360798576790023642161019262222700760934205747783519256840505778305947319122211157565339011574817461417763440635873238973887963058918172613124239874280414412030869135098199641862294336844002102447705385927034393078647461229529982676112004519249850388300109606823137041481170674859599774630619314156067464968384512861568700905499155994395008034536709124490557533600195682835413876159699298560043586457520149242873301864722425392605708690381963729135242673269688410504990551950072738334702599183059982305348819567300509658763272677851410421567490836500393209018422928173032362078122034203673065820339928198431208265478015586762518715122545173627018970087314508494573424604527539745450921493485086832503081677352423281448120841142150346526400513952612448155213026989191813784129198424528423643136347052085238739447265947843201740754978208217788151746350868500008130446863731779577726062501141690470755719504196382243927855665427160069568443918475090996608095428385178570956017132600763463056819551520246597210738794661813415659191164209412880001056423292535335526503522211441499106692913653250796860139040346911194549709233870790016861305092019074917872583075511177506570528646394133849811206472167451149665012194907021804702745134981229368896526266836052256708496075986893335895629199358412691426939764822133196627530497714462460363954153511476978995795499246318654757182048807813497511617458658692911820007106435255397935276307467184980479608240705673293931850535042187931335880350034500368129838290876825919748696354033917396623201147563145469667887734249721914004253355584578636080472333294413505247463746121079713976713699727738749255249911039620964267477662042549510230398540141652292573886924557144374826740002129217057095973387859596646236243220942790501058298089906091760179807659694420914746179882211160748633969494442304102955974722409346698260969844683179883962317109131724642046169046893796520155484126939181962551075394819701881070218188781967155694556738010237365302566011899002298292675963245274877800971548592632598174743624859069332757398408043737842573675501738053295656023234204629354333654824058788123305566392077454366403491788605182301323540887709514627385539352415103424222701358798671575540192327157120997306587099005440850680872369525899907481775556752654472032087166072965246708141152071624793339259623447003567172980491063798454529226496273661407805635016786002187610306816636304862115828706340819031891934942515249588873707116368019913715948367246566272488936102345276721735337075472349866635393561817709408600134565926708474509070464602845270181897450949463686203638357468635874778339112477075673721003567670211515008038783462345219562242319008775727629650775511097325618836192684220506945799707324315950439926010041105851971236745755317269933565888748924587260739274802810031635725910285753258434850778281194988492934326966116161763577603886063849286220854490243131788171763508084713554418484368345530340630939740957259827866883138441461666935161379923823977998261594576548964454232329013490858485309295531155494715277497925545139688227096230462163909815582416095533622588925683185251842351428905995466176350669424956352886097122502700664684248047808112165705733099481210497031937178057173569667323947147627088118821923632992647404300069279640329466055702911147448010398101906332472714603932637845914286882197920248387468921877639618112571518640256694874250943622660452577370732543827498494984910823463353393887344595745510895653158767519077157502358582211236315723628366236836760446550549914232815616176724816413822244983699403917001331612189798550499904106423112378831033227101938970466523305088008628375907903286785529449756875726165606671625696304310552057505769841406770274760257348703250821403997107634397467409808935698312114117327912915135532848673713502890209590162862405279641566310998007011834594860118760825136906858471438806383129848891590219990520167537175398212223927283076440804824828726036504716940230013675438989419389038878586625383060122743352152863693106441997868974606603566360689706324587551228651564103333338111941108970870096848220800832055754206700546836647348797380527529908600595948272792802873779125336776595382786635520292695490494337140931333981579722821452447293262307596477214952353682228187555008829700339583423696362215272387521566007084567801715168398153718351131462400786123781142300861831438365564611444933797105085641663044131963349563443102441278192188299070975675668541505139886924922664019305439646947176660984436282120666586086344888329396374587785872720650954543977044361011055841198368058762297148494097423886336279917381214847230205823585718516577195926998830537304144486531539305584638859278449886764692023555592840024064939343750551931704665875117449400724737077385767792454412853708155644547429594843981478418121166602896677611351860273710341556443152430291374849320868753389222220256427791965521090517504694988244011262696087654223257596676949719184160427008875746990773508173646067821106103873088261287944122125840906347660502862663362203815072464324038632995081645895205792847928697641326697827735018511732217527929778344023358979902935660728177388770623432173160664666369756320462029000366622115983028829336919178958519305251982011092245424288331588951800416686438778303589518809432187388059316855843415604071735710345658378006996027187354901726904071240703119513687609588052137908582964673737411163479565939636583949427156033187460472029642109589096158816134422224235092359313759838526822566872929769082577433151536085519623789452468166178663049785046096003268255718503128131451945126829236735323648376088792749637901654820163245376464222869224510641633485075179879580748068650214482808261610846354004606516244869744515710936589303673085873269979338983464470216486632387846875543376126778835611210577036088016561511378022472017958045747690376786945834319026701472400079433890942598000264449837472790108609503057967277053921382366324249193136948697638346129331251142339283414946546131807469912225742290062579202085886468267238861953603015163118814896270016336042072520790285935081027986197339003003429486353310406061131790449315680231107002104749716963906081501902108988824045713535155960195092176025558228163450193764834651379100104620412595872967651783810683943899773324107711225771222573471559367074591353384781385859088807835612161464126897431958368623680627335384755622114723184446489696587451840404327412928090028034616852816375908961257472692057712151868860354950193190364886629599998079091935836514029484113723740055043099115326203652377362451540953666990576875490015040171359082978150600918124330385029881825148201724718440405070517490561049179344047305053058424273909869256704495833321977834373631913031175165666853020732040608628100364578189711396770992155714943434230760698223262342744227511175838814486682087033812208088279244275806181385722126702196719014622179980320338910985262465969286764468411550180668436273751494456698046849295059734298206466981506860287592232248152814673466682070429376554400395154703004414537603226689687455270563808456562135478940841877354318542766992722575154684490456966254658481652036118195361687302573031286757477454041587465561243191812172742456041171236786007101299579759123813158119674469026678035883009915750707891299572975837104359340406324077198779450183975492540846101645989306969369007883311014443980399917737798997219780024142544048408593376309109679977539313233147862791688067231905072645849243037322191452102753850085449087991950834109602122044580499718018970761952680047871842991177371828369555581498207025643344169803719323096121168162338293431273365131259266449097696130320333402011236795503247582494169231312189832188628361385765463304746947269150669764222591593955662453865376029560835544516536125672122645053147208789026205989379492981635772985104474102327965025210959860043387120227142329673345455659148962607006749253271221767542868198465030908772390721660042101615742784090982101786774736160425500902440483422651329672079793558250887731721221649539818382588426223243917948324226304210410758203714227287723639429635398954255140622002199205631568917172433972253073482312584831481432086130075853316680945285929172402543249886036953409752287371953255294167351189448978063127982886594957028808432997503318291602390989631461567262791292124937568836382821569978546869221618192730870624306903120832733183049548541616556032760579987467329181619167146099107190758646862507540525325189412500821470918640348161063910748064808959349888392779573849397963711473640432002132809124569167899494121143879996279641740062811132360579545543238955358104051409434998493415133864636690554838113024418280445498040509609725497906303925353278965288282180827770494531447751434828192047244528748865353680988027512537373292473169446916004464245413071738031671412411713017418967616437631007333749988538439145245703227682581160409252338023442337074575759976335784692206315219037533273950916004671176308487035883469968296580637443086995488125915222760464471074221261168985619755533550715952414032299347260602104329411609358357549869665647961907742292914850445194512556373853210140844146895575531370909817704480671183366757388875704849492007876063350254254386351833701286338048816365565459344022478375223259084653861115306860830629701951125908735501419925231823724044837251740562528260796632812797094133607663517651205115784843939544703117889963502744122603150223933661192159033450010156456998177093939122085850100492950281174654343827636038163449820832904573968902759464585466813344416873188699843606558664621773807689187152297711178993790000010520026174683659461340291533209471049695400063949068402313478991870079077735035217636523285239687826133497077304053541963106764501702769862886147067954340686025880746954557659658929723195794540347876251232433744322260392883713697379472516606484115347222503822163127946771018356643426330488669955175231022595614249315222419810594420875642743077164231140226275613095425279524728414396730126726155210014445726060011185711713192865628148905692274468544535525402524891992766015225788362006676393323771901684615136740693236285163103522422901766294612785413997609763616047696651007099871446093732570801405176529105911688985138766384813516655832477896898561161231086639660951388861534554841182777293595738867231354463942234659310938388554124358448896237903033538578242680280707989413292175800379975438429925392192635438369866470700364741819650317173633672362166878245223043694713180342271099367518048881187800875495425475262137644394658837655453376737160225784581064979340309134316710110010269859084870258346839099368145452711616260955382917068255028254481344495345002076964086246618040269648081774080810689809317631953619226861728518191758652136467530425481690086843512364121774785245438697416092960476487395416007838033673124195516298697879795239006006443152128492769843533065933761228077318647509816671631797480446645652516303579711412020744903028963928312094972836580894256025831505249626646601326709483009533230904960994507590523847905935663841683585630529296901189007885787709071345399162649657523065399768269433111844454901129521973371472977510054632259988237522232475792005402283353180802292476739430419112423474493337683405141087938876005903842019139788726200494187142151941314665116921642678135868708548884719992605339939236841904521537994801125172587186484135611500471301611140925241159725208238815576151347398308664172298107654279778711057637205995552241839118235283093496199252611424564275508356232496952773785797617136856811870844086800506485382146285364599429226418901223012250991449497748348851263885066444493111503644892187320735814943442858859996660652388160170685233617686619914256203880223923806591807575400703094237210267126753764855534571354480549503782526501006719232657009582329017508992927089246870841038096259193193124004916021633924626250748829960632607091967082719468835297784286774314409494246921553246357143292712541665603519601676189252626813159182531171385331357200986663235329755720216895263849294407924918545877935429931605569669625830334742642314034638125997264867621553359313419649790966054807411061647484562191517487712963782652352423570694904450542647577327484649624763578853955581800970272411258188439604924908045785662717168328652840605932639160938088455486761212284717224938508227287078377928265357623200875039557841174678903452932449362911321178245509125108840116223041489112818318333828871185507798365031768971597267481384798007303251553465250363671569043492727621305434842962592146542415666227991269990466727226166832637164319452940949250988504839454689401800765351405276063449955578088080931546552561387081441397331002176406469757553070220068715442767778886545293864745872595942814841296624181764571174710762979647178895501603754658030630492365666688355855678626878847222895002939332030791164501693573935172575404999010571167446104883571044241578935342570271199658565467208676270569325159092075731467342962626214843808377512762596795499314813039708589315356733578631113820550020147308062834699793193018886482533637101974237393032244849333091051686249353452260413942827256644117013036745046286855835974457436446576990910203456888701947794856003914836152082944969059797311090073311433662296121656516795037356809573199712974353707813220911568777687759544384654847093831797856055390140065304142981512193956656957450310779194962782693218524209368176441687721698506030876417543214611730162228435068679051682340539121887838336616204236694531619506780264613993010284965241434815612661186943621086537981082766320156482563135276231519870630173248830622164834157869704874660548820103567969888683736987220354077047659932969980221829573872764548508272656268496488153207526801882580661140640272441441498460959235292561855424584397616515866346168091193736212590851849229993312290716273162645538946953149861740865544016867917431822175798232302863207925580505639073559110402951818372742837593080934561177237155641245140716847062036723996468212116186402331457013910551436377028390697361125531496168280570723314131474896856314614166680780549381887208902868462463398148086803021110596761435885934589653583423007870769490124185168508853874043151811319693236837497619694666611451492553868221022356493476073706105590562928712935944494484281492318594742356882606534379506672562190202585589115685584691832277911894432393798461694414688741924401398519149354301017791064896845598689309789499568682334584487961662312980793923945977730020152532885238028855365527709414340868829851627732634077019279290827823083271113224890670187671959247673062864875522927066159592670571149116547678702478157570612715386650848330045309471938685596766860846314836430499019768582539819367147085151050502591577781804859103691859707232984017528880823554131668876885964399896939312853072106781395215862942542213665729438341222039518494751516415849834599376757923157535205117197146581278818843521245463924556647506783684058300654780969281144164652605910603552355992018419241138738443592145751957950012031070252641133397862201145766883862745901033909832586448229678397543260906685118201329215906217615318685140826141083286206208501332544800325754822504250259261849184388162258398933178463009018134726171063818280447719857044365083308941657134272092363331879664716944838587880312582956655879253843324084417208669520111499086838051487058807983357976359330291814931753690988624111968655364524177101942636697912687099007335938646016691332809893313126681153739273236359392633709936908925800689909184163186836470896820257156682684101356162247229851739541802823883169109185333265239263995254052572137252943615923130363263284715542577195490321104072651069846996429983279193659978148396072835308780632059288640050488085401620466371751519181138558912343938955059279714467550175599372001295465067309972650105958903886705017411294652682237066340997245033178994124809546842473663258180179092116885055540406838379410136913819196145763894213004581628674468194989303805845256125112344399764721974249959864362243215220839371102138236730937526118830351538591081421084018727241164884243424443675593176648812249838027328729915596326493008798997821853857384589013891894445303780150647571999871546735965837459935531295165970197030649065004944468135887045972099421783151397365081000943411325838623689193578221372606172228538238680407632125825632627776142645414161037148781377503423537368180700037372909038863868444636318948193062352190842338540416557292415511794681898094678434736826398139064543503460052740452510063234438030844900040325574855944241009399718865216465689646228250764080873808266968231242728486965035729087850347921825195745114889273774375382067309030839877905964185603089276049704532133615819822462098942155462855128066377012581659161355193622938602064988419604738274669840768572853391433754583032538013908452586871528057494230271359665363247709119994916898828840580537101617463974484904033585436856356224206028753339700740249832784129030144206182917215291026313366283063388343035034778934676618371240017381538818325798646765313450140169547564485235950569430316509223906371450999419356018638263226245551649906267337582160169251787602510598325961452913116731749030308075823257669784580568817446896230040183216544121741298168756213789475550925885863434125467597852426886776397931953548258203659149062411659049239037204063989636088749620492150071033888570981832190546344338836979359637403053385731444597312603413948007875768305889091972650678917961765751632448771967987908058199277826053200088413480057317863614176509248204689889858754658067426754614791948126689803042211350405848346720178097728370912649895811806216515070281619846764146643920212454104032643346095912432781691599385374379770548323280579282430655759261065330229425786121635549799874607471193726710861003617133809195245104109631078440042792281275320889471742757536740409789647560118810143570620472537630084999124875945415510048048665075243271133874101727083951989473834347553783407029989392036993910925824303580695491024620156064364168061334030314430010072712652941238012097021714148085619028055263969025590778967368692393438627696729343822249566445303104133006107887775958227284591410429216154535403089311237318364123925754798345600057884478107402357984649522700721898991735465037129835124188379189533990084146654209040233514846476466589009394459337958614198924794748800151705064091810136083182514729557642993682168936038204222717026808487201062054405045761252105360741741084501197172565029161398528680732271368962849904086533369750275673820902980897926774004053376630622724201666925916878040601166511252226622748445461538541660907118802969393712640809694196794464271354544976586952925843508577865486027010830026448854806166454335927940972831979087889056059560595170770258763705736199662010473420005686595411541531778433553938742598529517211852081789413648689388978907252228414731852899134983885008365641686835835183833201272979657280014754495952721042878790583258812199325069874137438032047955530312203010562199208620839270053925943699081081509740525455103415218845480524519461409635026603992381109501654274315434561262378443236996132597331384636228691990716572655377707092080106174392274184241940754359562368644294755801278406250055028471991791878306078310701518766097936734137744785123660309105411645054916686331298227918153056187019447199923155323500223333097170148655504638720767149483919886499073665223045392146813614830538811311067561091544475584126670703472099575096016214377390691791568416472124877886883450803880854563806182263727798929075385217476735267976532794432187628140554579276683753068304017915619701180742835897730760822736861713488546927200586222176236107171999796168243895329676691626495208639942182486935865103943658235323815828596577195858472194798960810580048303887959189717938377015180672492760610993923842499569756463888787126250234428853118910614885175807400842696100305471687718482928494170934740726211852662876202294730141025138136214674579735970856540961106467962262588403222580483257194840605152656096562848952645471678427443954311020896557404965977952911713291765697518967866877894092290271731515051179552752664678329846261623652681807844523687653753381028832276343322601022550557968744065806574827373594489399136655049560924199036162228099612908831426734011191832493894833418699549423874427823363751564683242353094628374839041236382204636041232038939894033880920133326602912009464930484767267964467020574902644580610781133283049587853384237943729337261845844304499165052385590482553841376762038132222489569305788904023841858818430949069068243847454221536279512479459454563037264627416087664408971489181552113642191376550010356049756570286693277496365723016399171513032115656241269738874250153476496996371551605175568494575730418672817256129534830255775010728007701843691848504423983261813792270698947662474364628363420579388216636654310679212033388928761771354657069371970856038714005911454137810297846208103416527303209021148847890223068651213141424210790701610628834710975224136870292661762627205119639738405504939957292913261460599939240064821534487525917380028605067405585607896406910928321089007080285362856421750343578472642576677575568449821482645174133641435292227456279989580016528391350235259145007582009606331801399313989204885064114931255471987260603422857733426994809806492583544094361083855230333660047353707557131592451118350838442917893990334601785544712731609510547199809983831023546275363003450058212968105040344925582546965118595153040834981683215811204201808343124342171010434217573497621909127164548044236907156920628525562159038243615152019444503009879433184414697302020733110740240474439092032952240811235423373370586660611999293850791808322402428208683069840727029640810922718824153513726142939023753782582159739009716302527427752183060638571080585300787470098049607953722789615851419084701993466741124518258277198770338421510475636427170954989235533396051629091860517644972747953079885749544872031320045352373941724254140264494091465651431431116547014670935518838414367230499726692963853808405385560660672288174288074911512854361938171030826535258747149113059418493477942449696965437132584743002429853854704601191101138312527854072944619568378738253382236042066754186529285092093157539757088590223419004211093432727382125638488997312001764254467632098491187149229249264428564081146126264767181044152139739045899427720437308285027472765489636517274091314458558684601887631800198983491953376093828639323641110100632192509483430797058416206821414396941875216368104254452149993578456229272001823263353026292852030700760333838498665056428040835022235099850181299109203671439686158574303476391451096879683309709814125765602742669193733021540946997253828567177029031472738227919878197063248679426534747758018586403028534561970522345661160217670368716860399109492416582977836789909411622237221538026914397313697988872115326472023952553001976573050549702873095995850071799952178209946725011495520861828833375769776101550813982878862280686894910362342272389574711618618501207983539243996998699941591672512351860511602556502154512360378531965314291035709473185809702720423947713872659983373284771916811792874459124326181970600799797373430107008528949076863986752231979241872303340746409691204357329004330763522574434962242175934662159858802968916760391935077028979919780778160786439874269625821301271023500418589204550718949604617500119126485737173634954950375927963232668818238794966142317427730411986940866750859886686899356946419791988885009889965310480610055802368322518163819104173312979616099188954069442684867194293232452968142329064814100471280345037068796254369411269566657023889690527159451687933871419548923826870640820877200725530226726411861474292557654769262206000240806225193627706159286315489367529866872507992443262386158280149017888985995072252074323344396790603122808920339821046553901711559594522415264328068866333037936314673811546003872858578284941287293403145576186493558313424077456309176599361045433200593688712248686127338299853606751746819223141820418150823675594679650970857240598426855041747040582334752419127480742227898262550381201153241409051291057170100078247391651003833382548649738976063515875710603276878825280952080073796647842146299222768427148730396516556353923385084060189894694978655946545829239692294329797808729150517879832142285302254325141417651613431819207051386997026652031886660063507571101399762251144890696596115059332545517758554564038700289454270081547197801735750677635068128840874599368721514246845847288313902121633062715229915183837376926763184630456128695325076552931305072481073453969194262809733346135844184690764950551546725485849850062267331754267317106995116599437891175872834661403346396784920729838905803495462465577182853860685852740420539922163150158185040909431740824723902814540346091196538820194861134093436457427334053559322688757498591921492553558280473520526999421884471064499913721415328414090443411179864442996136402154610083678972954614906904712243566193336043329204043023467517470243773370747505632267342134097498246265432310518165933506726100308579727576605107720903859783893959006836943694417345221559271499690094350888974832914258041945696632120139392025663130908486191976982072298230937580201843855520819189476393202538466455972631008112624065537241538639391739599624530253707795724041925381609984952071486050603520131962576296165136203400782425540421947836331377425485409374221016136287638590890449907743295928450393398030411516685860707188757161693261205137631143699497587510329616524963398364402525467295977172416578134622546024720061249159540102733514107423119422658745779018948442855910506324146103430257862296795491973793475446853934737496978588422838145637685838964913122320058582621071245559895656926128385978150078723041012108794965395624068336852450230900227417709014523510706431726366925023732372092344870060255644906807431733899468019589632115811000530201003680659954021456771240474056304097586183002624214999339955961988035525397097392635285400045037094253408237950665310833344328034354171962811310400179437162971228936998885455316025379048257958112363001446771536159610804375134487603065654460548199125765996420881795346894654062283682661387786538441615554744502679276224989072146526328614421826112581714323337059548122676318451561758916431931020719353492899761294184947585928771737455280940851026547705255395208499206727468220613176202596449314252607687735948297984685455583225982133801547139985031536775559888124213138117244455211157018539046312345086778089601986226297193503625349450689267195341415602141870812011337180806084931692644948918153717497793861586104911586100722971610366607771838895682707275587598177116775765215886687595839256960006707170979554219961555797492979442708405140053453144286962356585579197801659545932604487624850190975867683955093490201198289746552184752868521194974800039165985994507999809589145405520795243042913827223264228471456044589177021583196221009174408464431744388258905578219582489112680922917827772264393196866521478363279484622764551669862054306629511469438978040524436076129084134684152042140780760570377831784438222417076493597765902221802214911577822853534341737074932242261002115990295127711263896176757276701776553752561332362131135382381819392208562579029713885754891454213460193038062373096180024598682327855868113257843362891806972533284032152450019680462710017019322521626708300287627432980248279914899338233156987605256377816255346356281982891662746218060426068855770628222446054377374672285165993171136292812367590339972525287265709150405703769492201439712767993664676762544318108513470678427959132558678454163631665755875044876524323835953326857662447509886259112534706984131497792823322794952513254309595513601578027053819373950502998935731617997127940720636011448827427689677172232947691300069766662910812805087202265263435725582829983997888160401213336656654194113147614271711513689917402451753352361096029378246812391136022531393729565797256258239011971884618537207551502344150082635924709623013971181690826907058370135986101608272531387748776598060521743300835794077994121512831740681176234966668887116277547410155248822362167624100226649272180727441940371889806051394707384300788546861591073769300644219411336490072819868886766777757116957579645505930672554684577760078106518339472054470321452913338018522815818910927600136803860030590456567238298475470015478846617375039323495381370117180108711585680716208114676515725869274785929674418925176003339452140507108233729659626578402640011430602825949987040817344819158451377736393308814395142629911912899087834260626899549000683059712293898007709303753497892229221481212456356298255973895085237412665247435389255574325235718786136308609645119555856711918531667350949278424343629161508254858672347648472023332422054666243703673948656943059104767813351117974880064608570940138699415353610860666988445766449236439434744130592850917924090585017485218859758116877921745698976531773149846661683737036867453982907379365318809523386808255142001543380127652929653063295869713229983614790376741871500800446480128109085133040958406978370033228971007430367312761804877750735559031265567317376814372463577479842203199516536026626508161085467609953602686020328910104532720389202279462677664824189078275834949499100864794045869743167387849355209696750760978160308506623386929938406266178853686538225310987566852117816029101839626137456905142145303114134825754032608166831525261600333348513864854684495788021187990871519097989931138045888304363048336646850417851727582597165535206736029495627058603401705972707575621145021195451274538202205790256044103129471578994671460519030839415777659463407736332231473003401250746037653113709425914139172481971319152284194018780347038979087604212911957213687502973956377967644583586019821468943581664540496422258550815471590309167247121275887477104199859068828278401958433358741828222682625449476571494002980005261747484604229812937436739620217270785241087737725578704775349399328984321819184055784348544812987024849048898905489404576832051424360291021437537743127542231234061478807696472592808042980958457801744188278066768839347587162929858344587915615352033161450145479637306508017636029995543540888848819207444569298052483034674146459311340539556872044254361164804866538285745132716917325122529666669898142536862085017956866365099424003057107170196427477788750868666566067408667839978351488159763502649764791785123989321762635744802976632430379089381007382638201437614505275060431258284275680980210804281146800126265667103488829351549868220044068676966560276773481405142865683187213353720119530465947132005114529950851844873337204714785596363150662491700696306270716519467074405402604802711933936675578195244648273316830187545233577552440043364444412614137752963832752697138862476272242181842024147567278093148255672159457887391218454733500301984625235856767961155318256715256290974664188410350418496508534888396053745590739533103671770412839366656438022058442046947799750580711988423835447937229736578135476524460991798866582413501032394249982055037603137452577489558300271807586633408731642056204643052088717023473843851749925181346717640102491738957276654932014821248322504782949816590478577174351372065924601841721621023268678224931486761784327441820338980478575796443144257130682612978582547964815376148727175609958408992997523127661391477073007135272186325422206861287191046103385729730035290131741633288846945661222331635020365728025213395444272921096407599350502926048768300539079833780195751877618237750700913937241105244678171888516953014654233117017254737524943033861452009968877179823250608865397387661362224859430179146701486264752383965002983799287507569491146822741795374776940486135357950333431106454458164697771087207721248514427754723119566560373857858786234153445802407495963169574852874845341753504677397785100663022981922983457267865936050849282164931665305144219085931790363203471391302137797000138433912784268213307376565022691285432792508563742839173086529124782465792650355803790323889070673932684601158582903033484041658007422278446017139266571034821025673247089022544418895735118369488967219291754487223073030669798456887750158204103213978282474100265753673813211779728113344607153947103653013679726766321535243874123397644296511526281922986519904155327587145423224893483430291551633284130024191628447790397604933683358009190250681206455146879751217716854329122247301235962315024844929585954243148376706990064765843597088675489719711510051097647297849758816335216167121093455460054667405591251989743632813074502685986196536954961565730415949905527821457966334717672679361661862346811555546107545506309837026948879425685787525337194125240608026540411967211691250733958527930528855606933092001691637758039394560732802509104357697972324492690442953988739256637042639424913848027293209682941073745322802780338721522827127480385623154054013047753688660177048352317868720964246653455571878175606420557836641107531694457710069897631208495903531168156894961088352915430873273777205476443727972538818994910328922216269052438370286416734769634467473085520236377599531118194659723011767771154690749162180631702198033222393779305640368953356935675209118213718163632726917602819303475053619946019437126096364291151146712024533037347745870545199729296668685350927576027803786593907783255316423833567402229073198842515592388850682375446256394671118514114534930912803764905222367125145265554867170334181482226946999639360165198940655182263864046045972707511860420961877809536808568804171844197902220946329314147447310355901280998490277230444001508321852965798459529811896386355699363104387169513316288277200598592926299943831452555796578711137732457432512309392090099171469495514261475800284008335018059400308420561430498481825666277445044705957730043208997439920611704002600013101222724720783560555451747433607527005965272841529832189233705411208279555898180337139312649039412831155064268959824321065354227937367731052477910475530657865109105814075565250426766509254173437699202201973096253155187133184042225956568302359175679862541586639240319088931078881250503800829404758287711506000277457051524407021455120443398329768202842221686069708026907826598653640706097200308011227525986043147944188659216137771926895431226090701069058055159731010166158489158647106669913127075083277698622726768586905659642791047171470328513673366754583439349283579956356317680163558711030054876919361503284168861414677816175015979456339356574008831017883415225231999890204599834941909108740111661679690820614544277260601681839916152872924595760382247686280392654412791554156898866779671796834296356248293378338336169136391326476880296739476537108731584741694011078609511483038968486461122191271485774368242706751385276416934631748167494616405689896041385296932580245864607190791123061766217161007056624656760085978377273377156572783768479905961806522392199727476331693430727393622149325844036805815158080873791965273856674236606972820328461800062524023708148020139660139974505057575825123618800473631128078014063127198722371516024437381015858418987868958062152592549415406274111867946153816045408956053575774400325961707257434976265074410922910354747629570492883789867766320265105724799831278701240669747610524419004556483446851788771410544514779977325495086066237069199705313379638927285089364337803693244717395724648860809925586303479687527947782015394593286052439308172629925031196772106263009350126131305240093625786580075718610470168185687766107082600956178516955525390819415519275131926771068269373188414242596797635427595295220394414352269247535641987904432154275720977344174480148924293787700160350758909579685050892007504097906044401650195003186934025929356810584463451854786497555312516516303466501910825871943986728189592353609653874433439102772210271972746182519586104835316504036729910202495398888878546812863642761942019243415534299368046137618181345265313866370973348139004850734136295615052611601675576950599817256099918799896529859253776246220460384433001235352557976361921445991738751117760861010635312346629681651034771846562676794433205357579880681087200640871363359831652296978782070798229065783352508242180523607140694906259291464340309888615940799151858263964586934090668682948431314024862280654425471833292983230545261449918522020486210007626794728289892126455677169197873715993387384509876928179002310468755475270487389182551424298736463802177017403501994667835271631940686756671863242022217444886979616986604580784725362369610965484173650633809097531058939965133366598012040107829312780488952209590206976147351003525265217150015661639784279882376097993771901250372356824291533819977762235616412708176027177117214614478691503136036193116464521645288120048691652943211450055014254992178488912783331711424250477801214238011820342427409009707672126216538642853638599304325106621287587843114474358189284134803894644721641344855737768308458516478416662134834388406575851975652211002833925671193076646598161469872904021767787785268837323398771280256373695813093582511601303773420307396770668729156275677370137531759285071662485615240636548323640914933324532918937186685685898537961596095904404837297208930714939012044605913172524731613045742107043620482668647067302655270449186350616739913476636922404694483505810856671135256752193654995017403801717341880909580843799423062260437465697194481887406728869780418250870225223612633114047150452803012823611472609309429103952847432812792010296148057256980743403568483743742352104135677956910969640489450916697900637464584641575420650718991463945020973070984869956724975275967139220353607525727489652380991481963439134354915242008669495964438827319423178593898479409913722250388445884980293106906754783016581968731056097944663606876040808245820784022057104548888923420831787169183886988508330014306801283189442157127724863228051043175944714059568824977013141480809778430933867798749161175957466473152810283253755230897073391438299272940061776565916912238521625271061909949408184561433678996838787983687281246675978358757163252152698879544363258537421544221209619823183283290077555847150446376944561001912583657506625624935121158976806354027081994939859087588333935996624372834691171160480395193232158635712386751125133748860687044099037387641113718437394116639077123352280538484886060864352116942277640454706566569620572644886852059745947676000654901224790600481011476477465153855164068632880416522891623230451669839135389292749606434197844343380278088022971021197395116901440964602201046482482771666390792109497000534932475738886082147037293973074887893035896477752225866080127969235965735872308791110349147982519976653247168865069933022697703285589709523128386784455140793676039664358227512839566522935817496209563779527988938780400767956688680785380212728907649789401925543235322636827861749757534236113354157687035284761057316497484477620386412086456405883102207991216409044396904547629454356039531604397927751521202898139075411155470560334835457977441747045666894062503092789639343535911144525620038138125429049471340958915727808188406689056217537076549124610823045929095838890679348359137998883977478728304645192052445105508858649121632573774568092151731426380151120732962647745850387733502381349513624481434433766615814582476549651583725701710829922137353122328126168237729388601547016309680157478312586315690779285420515920464400868043367237897028822402749370429631580666687314340549155287767826791278007581721707467838723392599911821314636361595361311776239063043470325838984224967194433941960174277774507622799589614026177509786428247699803799985082829641228821645989918378018245281904064642022531865881523352039621046694636159809351800276111284180240795156031583578620558484802762151518529715921733364286615127984380370949809530640232121897731092086509359726436072217025894664880262505879441529600117961828168803080527957346967597175153787140982423662332027139293867572030522316113244964299249469738094077248232869352162171584073041285872285673188552448867395723198867709204641164898903161681930671642675346726805070281387348715536041279123315293639342121019301483185663014214772959223314768136544819520257027842211707669669354184905799969182958617980398784099521957011884824917150614963667170673416812216130897604315344508162727059790753110365691202255077549687494480705469903700104018368534130989165737899147860054858329571412794872577045105529528925553843746974557620762081856940882789156230987966709142927591424655544830554038506853406493141905034571365902876729942557304744759067843173604463432367234185386918609250796759550995208790116250014062047541035410644619903938653672552929319900251916960940191265836686688521140815426990157793073332910722010178829927429359450849312505783875184614500921041402218648358034000853618940507331993145069013805051442348874287612797507747525337814638018517115273568299742039522975445823960920742263391080449585723204517782806964920703895895704880918851248047847211336124335876132727596468257241578527463596071628679700020095239446646257887895951588599560841716582400621697104656798186979064318411578444212907577035736973348546382195686020248996965556941878826820030099148177983912056689445606426843608607387215543264244758683350331382791064544726755255877151510166875337492971570081326179519675851417627099245789402818239408605563508250772438459806701989395992716651707589517453275722302679033675155197926879195080658829694197228282657091604076906932553494908473651286313461985372902004817180995903107502866143460618106213709630216555895571608853034743843402839130691988201228662883558384876939274214038702793695663510036051686195908881966015939560174177981077704594909850498707571103123001599332201248635685690041568706823502982776720445795073161066016251314259758016080379307242063548686402641676464865785115236065201564069828337836360764331455705647521074956659147458647059949611942726084880307224601965332501702939151526215030311006341526359530147091928460042461290627090899950474341718808888429385999514983908391165760357635843785368228782564820283283171923993202495697177136043689793596771967008176200876751726138134808508619027213259923781635169660082735554592772323692046803725026342653876359406892589957353252733173353237371647732441983589100682400671983322554996100821275520673480004721596935840947212879661864050591655498872441456856500493773658906423586060085402685238451866357353094773353507958128224863684197412862983377849003208840802700263687601417820898089089865076454569335552811460858044334933199273974626622693137430311177614760865782104192537117542674475272771444155985937113612904812502028820138391140229678747474616851379907911418326758578694744070800168685503809578167708231614741087412708372394026634428140181687194814250434715416383879839799287133681176433748910465876344961949327403714608719224721489852610039793974831297391086746481739750895198505726422412073928526226339130837751627162552827960427986967501943965994659559545624225032564936961681037666671463464678757081330744760761944087978529288547533620607918905519880675141448722798327337980777283777912574886241915317365719932063346137699494017522921850673807031489101450712537209463179257222334413147219024562813103408153741655240764799893773073458025798497681658949452371491287326328973280527138956238573036854598659958644946417157900358177892514074059834342296523739050558536876147835419430163531053580877233901234304456842642189812978623853975693735052181648640198701766598063391987237078040054395672233752562764382347637489038369475997050406011863399054890031878974262484923606436630636522060111169722476829215830856795901917549833250136387849802374465013242668399170797844804050244523649079499259578526531618539206065585475881309428918309731426384989976927397662229403796613018845932506413562667314271300954471041687147422570461823451935602444275597038002325364020457787875821605248947048758180050586152965770650454419473408765743119118664386271935570480310278073750099983878924920232976998032063423249987573963882569936429835269067376914521355710965851121898426821433934361083808908696984607709133186598673692602459761763470503627194307209068992178747091894068070971884727945540625053999277468992804445450814047180793077267362437692104347540283707472439740116945887717230289275473932635215358978541397297046103629351453942543359876914373509008586346518043970830808719809422953562468613522651258572891246052371317499100169772775965609407700745934782647305225935101103813862393116306017073480526118375765665397581387496990993728439101324784301108198231798321532507265475722886739004113501963800254196962986064731927534043317536492011207591979928106001437117101160369070998071345291505948137246892034694912307385065791330278084372565341240170016457635095474945516076771073299896337974571029660407076957380825212726866014787784319970784791102061923299809358920263738592953844221136376013595186127335630443570021226347498118164815862798539699922111963649198252794487086530148013569629284250933531583847832515727420845987717657792409281296635776394041864627260693017088622318610525480914470783237139480184321271632842113682300823010795166937431215287047031782391431461546445329910417169803753245420462307628471061338466228919320585644282893983652807472477871809127923766948114476376129384982840670232889988687892561999046070258709882283651713269018845382656554803089519101984829295385804859536041064638038623822513724295386630822775691115249384320449715944533874881065630384255669816713231871081574469002691802545284154456926653516054222976759065219657790392350737691042836488394211716041460547294635897371855107934426265581435330200589814751645302374081789658819067671529485104587454179371295429270652252282896866334212025490736615957331938119573491903766588501346246104019808823304131505153064849846462060289661318761058268631680257892897161846887691833000244382334751171602186091328313424026212443519418697845310956029546850043779591940744017622759801762820342697895582488663545599892589188293180183522082025769134453715690397872034872812165727300541944152042488873413361128354997754615006035780484709490705883225212586950124858472298728804376429631037859066640567250453165431586517753500890077060465455118338396534326352199847604144972863279806042301257978729011664616532229058230274534986790900269763886695314760955356624092781020954482294657235683323800738570520062151178882059110781834361875789848401515409981962950579952625089044792416470318870081782335759660879253715124738034580040135126517507158253631499447243756973450573303277279719002020016979821533516931419424280166357539929273255187118104374857475601565791622843449775893420795742419169193329055191773686220020124558656693003038805341598803850491727788833226541977687849984176421914415975570211263970581590180083234605857672237164409308729901896151993958814249570893450581684847045903973088082293386400924626369116018016302650324695241786619307630658563832853478924277051519282416306624455971303358315775931554375574044999524670537919411297395446511834165265314091687919970547141097419508354085084353385651215116719150987078316043465626613983152295780502870733410191756448995269890261998055409245723629834843251005540821854640410469646249954894827717363795070178486085260249551637727314162625292984086497047832717979934425767030560398803584923910028917803837549336485528443047987635864575615267508861003265287508548679168414375623595205672789272211043514714143198789843054934257231111075911177058332512447962700390051331726626730707892729006085898551067589989525859341580160155141822446308270868639133681332589180915127663782423676891310272415156281836060975936779538352259325818830909343782779366846380464578302036464768981631015498644376647593038906377958286475016352521960677853407095001018234720382258062027318572281164072235205681875834601619813370003309277798970082016860055950604572790463133028124565865570209665525764320855535639285562651201791650484975878462579261069752337070071570874173479665357588366309042243863218728280861261138717977681682861701288200786482506247525360215843164536627227157755295401854349309696552158669802428668219416705841850598730451556804980312989846575763979038419215383028398038813882845633531389405274153193210917867612246582544777168123484666852020327323814460717609366392230896556711488464853089440944444539925000330299003423915068649616953420148435779309709020129220883540070638651879781079962416411209564420133598805176627446072984102297956740625581067012797355924421482258498039304545264036620969664681284659918914498199891389666364641736552441470965248287077820996922605910441171812376672104403329591113928839296439804287462237879542766652610969804625213036301684525210732071465309037758786566071112160385122486647652494042636986255703314476477244342894810655046134861960613028014190900413147162001264757487181225578628579014439494652742963272072207778033645027039819037142447503980793274424842247526785713592057132765769125399243838156692665871850535599085460570964542546295882292852038170173876727342318184707735418235885453808671784549845235138911438590707219201006373860764750233685376678991882151670026524525752072934392067953265562088737478776229527535620704919104637961714005610210838830072677442359446183310287279816453066025050551007330829815065959131903627993085202278595483239407409869139904634271244333965797540478362303391196261875654507081906922206804990032756647362649152767115745350898891235741232398549619740536930111588958505416840795207489713463111646080546041487079903460189809883227786504206243765134502825530036854476457702765581422206431925614411716891357396857635724416861743799927952970037173396944532241188990831856847205898818825612031812028098828690928561553921846844555500381540892881533515491361291099236426736826439745339248333296253895169866984657876774854798448276396357346789639743032667103093158417065593931136074521814037224916412885406767864806073854555194434367591415526263819974522906176229403811249958667800390359458617467699230174708485641476050309000103512673743827697322548340285720174160990751509823703842077622287500591442226971704139465559585970883668129208420791783278217886420953654398548119093439339552881159105243086733529908391082312123391241911222018567990334394585801289587928964759366460836273933676775049673738965547776466607121636226828230762341792807041076484183034573661415481618225060360311231175366204275859994451694914373024566862314830940502884373145685372335876508266421230415060445079792250028125305208695411548464483812726069988918735224847742949188919486766420468108309409860583352776708517557750353669724625357543781740194320884805123126067846417758394840026394745657399373200552341931104935104143748988876364368727505433441261085486154688880471140303376030138164167890432396212804915618082124990934125463296105675012191935744731188407169423094061445140477278699205155838447352946599622582939744123500041349792554279109569766358521556218325774643801913157210317834270823108837228283036598739319085225969189159054208341072149020229425331274613289112342300125145141412309520371326739396752014760606346287183706097236362106504801557711358896958615412401009718411719890077833104422415493168736955049600759095770177779024100714434972916976741881106082393312534896219880638997403805139256705621092088292519726715856412338684184077310140926989021157561066008515915654633677461975586165995922449259396202284090651288847165168431213633641874369889433432890613386288033517266809075485452202899447867928658504876598336897766255100547345294612391192956596173383328450329221808922184727313482398355143480856360599451671028094232571011295071069408388161138972551851351420172631937347513829417221198833811399833464770263406052757052728682617411528658137661735340284052971592640427691356722057492663531661839890529185429951445246965891119922209187424322208401563072351330248674311651473589669417402981966319866647058643258930720617667791849661929381134536313712012188922261681627088234398773580508861886474485701469378460380061489019234986287883394003005117583059261260401627116920353226008114431537570625149071666062761657490101547801616941741731348710489044966224817089641913295302031381875157631809360397550329542634073785160298401192491312756288274785479561712381214590535481057432316019601127530913388247968247235715387902875623702438779554604697411207880527108553286861903522245746847121591807095097558125118294863069401062890819308278625348474709751396294081774204919712424999930820316409027163490272182054421680823409590425868938281689726454378906746329523971261222475910359403860728340871899600330152074632247350304905494651822817541522784807114568847457843074221668862746765560457241138538603517873473024608084857614218435393427254949148179161137506588738650623737550803352795221888834976237212043478867463919514758078727681613226864933686744482256982201159276561984301155846488069119894401136578536343916635715306089722606151511944978633774617708541186246879840701013500065976421600229362029667436110416958063611752786189598478764257099197711858073139455042081924880716822856913584467448772709241543363686502477154176095755517264986780118597327233811108525570242903113028853870583390440537118959091409387003667658078487762560377565704246036967069855586529976718575151860296177665146021362544566225750839133759368268907643370234465968811852958459780926469782088300256988224951135503542378377175343391258039065064998474041957358910394460661366748450907711010974954985046452127207332538496436840143656544999785657600612386756242460543314375702868752025737661767615816205769981315548338682603661849607364442413401895635164475781503789457318435257709173509604832116783007891583008972191457728227233526079934721244197931333257639367227695451340821288864253085647058282798590403400769984580139850330691795206362211385119543841332512837973664987410775306555936112984287918703860712386032264388360647659959003031253239143597856726393262427664323416865712842031504671581784845425524227581951528269315569469930177805822322005694174312792362124290108535281060178577988692102175244071134910619827655815453734063405854001286068055303125767964857643642799708791660121510475868757086690207967896938988527200774961813727012996621951258896491938756337096371643481262627264778749314685756069360334507651472809961751014838628106885782641839932567676542548866356459127713569537470232565948442529877507983691898947833892926743737796407741257176843536436608451623228491719693156456477542391032999054682863175318480842808960312412248058371553445748393747246828621692449333045645869038358693978551287869029051744794428798022402800185954821110586214305322395387994548959701135702957637940903861331506022863960948324235261886361053352312431029826272841961631985820594759781243589395637285600721556954328740704929171502804388617401185888526636220844794579945170781121013317649360537033612990889926294954241114025540332276294354395404349467398862990291665311387651188804961849510002342028882258036470765590907599186924463889980319640993683244388895245198468611469136463987281507424490045084456408325406498516671867886424493314789682121399876924943751809360971618490797159784006815314252141643800895857494466962121140663739325065055199438369484013404578101887098533673336146336551811848733733689273115546843261377148015081052418732780493986754743663807662533390827649670587157643065453252509908154231800794488061398635120398130395565381221967980438692402988345727529565624833183681383208221210181537502813741619704357126498679699535389285690074753651945290776884841692054587275733703880560788936195550363229794822190761519369817051241820810553518710941905844226641105070937693717477876097048598448761874617414339232109216587279437587030399155782750915115692053012051830280889011182831350677170656526773796758709352918364644935009436342602864143408829549536206178844761989852452582873417267800967268055894752911473417762754131525353950684520439022565186360122764086457068989866161885856756579705758645498555341627695321272665869231534349857301850578248833653668787821653708843792343886662411752306891171581790520544924955413800312828520067977251941633730977014512902901518430538703467758453618682363712342108664406160074507421247532546110498924362051673304234421087283113240030972407616457727290709652806657383462094246975975792820625947180465937887726951774619332616179219636182201063424152044183047667151367973949891629562780156731660749152619876250671975135725913005650934694095855960369128071403010568992949440712012848457788000222566124910387798277412911659138820726405069308913150082166877400886547141656509041303732346819230028370279692166894764451640601865317118192140658079434533144976425880808868144180208404555237884975541166418729001491600407803361000829864995972298452718451192048187896886138626900497992467644515312211772945208956139741131146692344927659881329937842964144482898608783269016993478191923129498812833991472833302188146418451302943309522838084503460058989545894641845699796484250094898257408839459462755605387705022851560989658734449026663676500645903437259118848271725144462595494352106635284739814693106930063477229475978146076000690995243757398293132423597633536469091466402278235083528263872530210757571589336911756720170609382830364274599286157486190351083596666543203501840960587650587149893941294895879102705134565511308751532133270136216771727040379604926788634461923905696350730571865247575584538852161978684419592131014464770331580565454469173929183250569828336481668197316939920612946915194456839828542012089357421492037904008693225693632579809609116656645500797275929085770590417187027541963570240507705649850430976872193635882177445104131849635062701628501962579509423135101070635403605571836723785551184453517051079106585667262126693748739667774777828038389985890163489631532097981057761874634884954261470221508854039784649488188128481572479787181311896010918087105018149788513949642815577753714073740903775725814463623530443232364697597068993915387529163715773165597507376549807798657889563276432685969935477015401856615178069008663946798083034648115881569762100492348412868407438449482821188516438720699223798757888753356183905160901478167177696055363078425070545011604358590432428445019088076624216729594991384474209890609430283771507835769768854136130588335742984294168896791000823964477897677788134726812846871935865155289647561311829368323671000001680339424883070637570847487234175225303303889182267216337266781157647433554932098703918699659926897746929490788212864648579439671346469210447694299577997213502640009779388264348519584148531220263125857063185620594268050640241169509680712032616830214380806389987625880197894933878330389807114717516496338069652690466915866023621202422731521456790548920558884493287117877298788600767794603011293380901803140803543188010361341252805955083117651581805005863011145477687030022067407978105839626250718537218519022858156110489091320897778920550000648985492165492957764057896725790538035365784269825921424028695177172913312460565632062648398350339430912544681064259665653465812160362666700941448292578697201901880407760172642149359392255970407990513237381062443246433185057180740103384873466270772686287727834073762281053407122484261049726983135240829651399427027305518627252066543611749945433665294431885527296757880843337169521301378090418013554913784586017666796223576380199324490543466337604445733921591433076292659235327687756931295526486159305833754598782569317116012598043484213588494637969848123900918846971705037356358136736840138864238622216497250438459487435968270434452518764503766147845453462444172813418356131432787962954812622101600188938053177568417880695498745794791812854437832946357843547654827767314124298578549216819091384309713857387795993228880030573039341162408832893755256393666980615827860542305052226331736381421266722404131716881867615929049176826605026091374671555127531373509614912923580389259665023015488006909856501947809469695961020599004241945685633487493268926662267473091253783588635190656087628383936731521920741645532547032906524242635401729745146252045447712548278176930791593218284139950955456577345263550679652139781834119670056028793297966423282169304477512433559071970621342402422073845963255080576697348173717281291683495342199108204682508055818308521067808202267208754558561103107019786659215670049389718219256461365438500415925672314190660408916990717709219459811824648210037357161127163422277123771272054877264741117726829179712508716019937873783371223717437354460889933930768314545562718273298166451243065039320832808701191440986774199155609897593433528557090200934523157771994974203127187644719961527774524549555847561906823659655500826100120134868486118284931072514401182606074269162775929799891462885021393470800322820477333946336532732877265221635356736208963027298631473617199601489038227116767199767758269289745852026761735525044369839471134723337249959642645049204981698649552729995497759110674590240748210277810044990032862711575415352785732057451284575982982843427383081159301898053236710184884845401286642973565094058599486691218521885850611023853693290883990621586165054626449903459027700723159036371908320489606951575116269885466987606852330430062878364548506836274472103505237572141099833276582747893397182099055761002770569196804002141844966113954266116724895549127447527891763658464623266665042565894965241682253318160172599292072240685258993653121423632590863855179011851947480989245717097398920606728526330959383900366389658910043914082870821080815435038671151416049159736239213604694112248007355321364725622471494570876022787346754149132417533749505503324882406799413140122306344487829548349429068305705647467930109235462858855844211079443657790400457245216803951587035538712406139809038457302098330144126336664333650859824686999627588898063745937845142347329316246811707728132881552619400617643371169425974038256366439579977314725762877792816246199576690297113774260866436225707817076971545516447088616477518973879020145419960315612853858947502974323617006179308242900046062097791191043197440534667984211450757589827263558172342682179595717977977683820774264787636944511271601937437935813212824272639319381304542557039652108286879736372709592707117409349141916122832146233402589128232162680008929986881988088091796883867852175053904078517177700416163322093252159066672486976904815793181143653231764172185219008032325700109669644248350953369504427395677164699681088408897881735837744446167039808451956050834986100419055938411124912451011119473736630686382993628794348702399436831814216367777376110525994104398762737171866457625420983742887453328161107815937410026847482224015753869646063990679978879407861512103683689340649727804312198732031495068428633168226841412330398856290288561495852423577326821481000884466365691919193674105884774369536038661291483868735554228297652656180675512314464407626770185028999522685060644214132768870501561211690341762819504119411679564606061363610676390482419158924605603108167327861208891465001560140825440293289184432706541333397855649159980002574781958476368554492071127255176986533183202585932432224792424189214225443335030057300675584025354940588839457761640624682025589705281282838678720739051649869161548241905220210415850510278480210219745398027085225239326049404180083963093653811223873662933854351556900271778632894615003903216882397422287483593466516606642300744577028670286169355191817469467899499194274106375895307758286519852321689533561300001832003154061952498449596925606600911618857977104645670633766445576685537733656051569598136960036089582469847795258965659148993548841883076808383210333626969880493930364908658044258069644877075419450359146521837977807387053330274528988125684741769920958234509151992629585044162358846660286946911194908170270592137920784159910133173623637168084482525164284297457509144418843278762878841375439245224197145431786903820907151912347689858200642578051042708870239338251659492063388394485414127740436502817000643740679548200441698220610138272374878271093218823349764312926573064208758694051921182523441319682658217725110092224853104950618842527762155148800564384579398323073553451596966020942856472319251647163149137991835243387088413180389242876482638059486906393628649858171129784567069463980540935731062194239213205593263574667577971343956166914472931980836052924290896641054568276412145644833433396048894149516378652420489984937202742950941002292806387705681630412890500744806887789708093354093352266948386421570350921897399137590820895425037939263801665553306934338987714052328367940674549952556223775355106452810046042478999003393881031791132616226360646858039344400820646872647337558857576647089650027635209667157169800406556896699025975257191860702113941411448172777253102268387263959107092441220813221492992113378175448556680473695374516314807972496012570081017903355273147397372671334713807166859326335511997669494145854477373099138192012135114743126626466158428470134727154696259596027921941489561664155309952692490693447198606718343132224440712879496522096662884535127553679366551581079577708564462644765515840368209974186829866262990977652826525659130333087780198363148530950602919319016553412068852758798338196372797170930646903269930724487312809552442214571158983657871811719408455895110517848356496141602024155561851434921607384132662615664243623260457338450573163923725230696432241673958108679244636209842878068928292965666689103984316809337974177210587464448745233604256149744705345945658995640878209237880123383509792431075714581131800808908176794433306028153623135186497436485580035159494494732414946640273764863244977931358709974466024771387992175279492851651535421957672196972101883612300722456183557600082366286487975042520773496831354947041600246558628160638892609676140115413544170155110630377754956398313739233573415736654476634465234468606745516359418720413991425667771043673785738397063211625448450542998380396346044843208645443560771173723549374824333626472341845099532742599564668152716604876998241589494475595044697018213846167850007167408927668074434041292841885828480636170089567453308680666784289973440832148726185348038057204059558056503561215523054151991298340418638020568403712090152015000655184662074009914373120242816115088067980285269131762215801724492049339443239257068199665075187500756616392640924229952428395486439144717172427420438031556342978816708151893580985237269161010945991769039814112134733342736983940227107225416393623476207643727766965514883457722977932380372567268779770336228781534944066585598916070211470511279942616466965829593263409387554781844136115257883149879878217211112133142326979332661461816922143461784584641889248979059014669083929927175342918808918565141666688139277263102679016621905297489888370372306418938418286097002420056813628663179416307786182342327987275398454595781120234779229587913132304209944083164071965392912973694169676795730648126633877898017651857092359657318866345932342841054861065779273227828627439141953900755051607292936273285441584478748588363582651097246908279084781219932630684672126252605753145617920880510768790808047548423006551124827221691693229623282316882210493340158719362393821915731851375359979292983007453826450724680885756275007182074269084355298253399388071786542163940395810201908421893197337366105489444428982942745421438851458613883272221533584218162396745656077152277160109578513051576028616167000012527580120269367800536385403303405642417036958381654912664527801805636897735258027836700397742787128199599477276673588429057066427696738694457928667660431680128415570933065318904226669673294830872929716039875054754176310019965591141206548597310906376833732121097722881109849661417681817700899629784885563387419034546148571419203553357902062604315911515650025321467218659277048847436141464141288463072757591871454371929833464700762679446557589783475701960664373022830562037723497796411344418373933572464589269091897207972156066338154449823987862943017658712390569015244254643751083161098721709078343651017899311330693328567267072186163265987616237229975600172273566722948596577997891090987485644211304193509007464213085897933541658192099005421018235534150750779761785710317726532795408602760492554114545634712657505551133354156239282309971067810489808243201664675488134096788800260135521194660603003364513568218740601306591693210636983073797443382326232519536090672512220113885062421247172485212897755914825704571354452674402823934595046192244005986407653570445927972016195973476463799775963103265915787457307540125862026103502848719805930960839910232851165442146569608335926930513294708781330524537989032690789481367127185119759407433925371812476258104138792695215154467086650148650501804057047436979916131515442825474422736062211934380913567765339572041774502663099673814626731540524711713246947052032249919942161255190981249234072903379954300134267369714290951873836432844605750737726358957397314413124099030930402562912738957118050099372108731127951667504563752345046821104863353520166030060322352261461324678247476256784039832229858639045940501488198606708766341614307768359571035762964606948222930536844479332534773401542651053802433177828237323900892327983753948814931979164659559196036451710319437460433197043926414609476444894569141382289856721241746610013677391282190044847564289488201370857736252838582937213611787392016185987197822548091626276450085969479078679140973400412399142007284438897907555830754268790717494794726262468156583901475030076270729521409615578517556536265059485502683166428630212763841502029101236028484059694722142050303538391964157174074483024189828822944778958799057653851283015604516691028036750068360285270672427900638300268550265847170052895027148369631302188286124504002065913623172314885050640051006059434281954303627653482039983546708725122232287812975570079191961692362544073882101302848096739351596192354312930115681964203594573209475071873938598909218881330829064952883097656999573970261810777803006545255019906749475899123230907536806317220076959106272640330498746323177622255402545149893695386770133284980604018101801489228995476940768331398701532763352394329398603488844820410473716158950428037987796937673909781461235103741141425473912655827223404766711178987447099796252543359965627138829575404938950699292585136313481682914264341457225627941653830954385303758079725380127450640075001123028053408191006717750305136214330237465906881353279260444141304816842998523391055454902091093136872073030111701965912139769187646383466035168411524440802324521832428754808841168657328968377114285726895717736845700571130060170514453103509326190380072075236982482034145501788567723645413129658987323571113986575673189589327701035441947575583760151063905265320396695535713686796449753409558840816398208035953947036108803314227324755695851112539266801244128424940866930415765899961506967385833751673116235363925336499628260697610768015259722499503254568416945170541601548362988759484583834946589132095703593620709046641391803128630020141377123639751804017176198921917590728391154933795558236699233488902813629810967022042525237923032620830710254665022129800096018948924806126723649306016309362269497471106287990927197850531802465917684197182916040301370433276110854246862513125815152782800952677334475417319413701108813456755462175064951651321555133581656252246371563380531518045449247496761621173555991106642313460682656555567605970000557322933179504925523034927270512062336422322886796329098088302922321817166624495022776325768977209222207762296293683338550326225483535135450370662965741688613484514837712466898773372936694517584052022150277619126077314335040160703419239513834843841548873740424768515920522496037303787296347830221357177545797027446229807238397256636814060446946047013894818787784092810299619681314419882728890267647776353574009569597113276232862726144600491597369089014717773726788051663608191705803971162622591486346104971687606889185903119784387029202697903022501543660439028954486412233539224759489774966738748340177294370109229232241942514115716719038260400129822051168134332852096217072984838299338520038538943775380457611162941795602963923223337282415362118440237933313151650915001841603714997511527935813120654101146008702020378590844525320669538701276989544831642019030682553680767217871156675165922459218436682016199315156773386395487283656244525683282892523672143371520094980817630637767580685105615448032368498609602068144057549783187431613249661321260063458594974815108810573724885636321010371493409550623889127531360656654871074624312207951505947071268051072669953815835323105416260283311517462669636509664311312657295638317052657654644110340910830913426384253221822589867178212995599526627018029499429188625291063517035645150638396940047555241401088649809399296037153675466644317487543392496545638227629012683811401652961208225780543067536741916127235331557967616126855120858583763653278658921034168314431753132687443743469850730302454295899661475496513153231668597684552884160105594741767174870672439923066471462814681840416831447792452585278244596179719549135928467407652256795629510282703470775679109080949245277719689506691907583842794505714614008953141639674229740131902494069665253779949302768074826422836845254919123952712278950294922482796835151805417159222393782947498868731532643512485971213723527720561784276540264232834768910324677140512989661283818816659404844724628758786617061334404081907593308967097295906514567591953800108661679218754925313891276912937534200421107622197877098801230461179186992576991811773088031160739111917838962138146403968289399038375381791786283167198411973183611109098333897619898330256846794171236056366396603571838090076245392254617353976235507713980228609728918956744748664283911038809116927112201976460417611213308190282579611870330599413386627638827034227624601353352725374048749923795087759234975499769674561519147234148493951990109848667061909478423748971431785591069747991372634947239992407548201243413712522427076155016672895475704086826164930384050567470605636381995186788333756805442600188951199743662979314070193854812020479914203393172722906306050196517219113260359597350145119365579204618154556709669638498431293039819845024246664535979634246583833742837302589616662532672477048885935853117934187412239707336494383898073206513372591425328743716375781438091234163157161611935186547620112251799458474948394216511059831401774880025410176965322884428327522272170418197429462893913493531269023926059033959059267381602511909687204455541934025757448016592709692617786108397620745870837347161047184647143941653013989324524913849423935836549483895954783663980350003587744369409462131359708621151365359809461404174562128404862300813318496716055503754358421979398005039974910942762913594398719010770267617565161509376653766832093550810350154665601304813510315398724426883891983129881144294921553209728643816975839810327167152818635401055983986070204984573743625396860002121940268536649507637143962491986668026355765645580916658565503474355142053790759420115538078143826138946312611599304717859654800078883212060388232543206470468668661054819918428181413462326802743188066564329367258989375745469925533453076225398694036805022386690779983516121188378558282794455873533486354433163762954894718746886317513782121485021945668535913575736688813370536227021069724553162212412353203764736986965784699416336716924401593606275666468141631661286114737442930586003749776364733918759492865101922665833573368069286529122218476162099529236918527785540927693199412066638426321976018491470346515956814105402924218640244241712463729925271897402552654943111676694711310190002709277159310193893066485745332925503159322096565808304289085083131393819684565042844822493939243778449866738376688603967933669054542648397805438365870738420595935897115844197462606500860046851842525682312587498652028365070222374681340305749856093618944128550869514314443979272921580636931160670299750113507658581786597134278001696817614125130300953709297617160896512640813352260674355839263040544035392658567453733884387250838919058494195111076209676007395843748288332621056285336630773827866016891849884449239695578644161915393452534977865912439010783462460518674721798464665522288147660491552272053808804334856890910304527922317482236936751291855742354064063441709101333491229716443048861677687591096894266519105749200661075375515675902397394445477228649798699543033631143824669227351932192123908741396762618669673359986944778461156942506345971196610902664909916887545123889081878616998681551655963932876816084836421594617932836852575382042015012643743025171049808141687931813334605172170770591603885020629652909302309559342027473653914116283134338840161262690626588463561239231530421533435416928641033370287688702921654878309148763082472000231289945866797463309988550888622360007842168666753002605189571174952568596343663283300452448374524872893125161184484067639116134886350841579073506049332692882621836215887906275531735025405318065998963349516722031724101197338462513329448423145693359365621711466211923375928354224118580604726015932488079298348577373378507260612434354416391803518140275860391147872399019894925807727029983492667826454503181750018624089163410051181686423083549923391483072144326286740762423315598314751316695647776651026326982306717903923404967336658656467162806339625533865207211844866245160309499075346358962005842821925097803835205571400952430886954252200615569734675712192619249112925674653755024189779090561142441369430030216407799371114664047050302091113339287015945754783846640765212590782900418696084215478951450947019197041377702200357752585212722929291762527155406627621161764518113011547530891597307728297009207945186716670542852183453003630613034533194151043505836815333959833784623977929983121141902417423278813569602732619701983901797474722650233258224941176389816544797946990476770386259635747230725431175482079510860110368092452430522792837473601659848889161177124472270728968430397140599037195421693743223998645668112023273837584396791209481490170196436671246853506372448404987664471905667798213496286957220194421444244998081776720966090507668352795214016743224259698698954763587311255849224250708734365623267401851794222017776462308403914536451785732768779816798940034265653530991925244849287804616684370367288348153870813623533544645476744394038620279829784929701891684010581587682907716871980964800149990036708025438730380790910186332445317060992847818957129592279363310509232402333214680610380544693383675600154917955686043572065679621088439325566679895918028978869510002913406144095367530793314069390452339172416910668474056077494452056283020443964450344722693013561823269723261851795101963304764524965204472085984536259178456734064370620141697008314763667504174494750750449312181989107112110431948411288504918399566319362360360729238508626362012418659822649196003707623078741158034825808179398399214772589132048425461504159847504714171120409082613055744352583757192449759956408500558465333731739438355760693178751259711268583200976671496513871421102926439587525541287508097762464017228172750728034919284969566733297833533937298468428007588140820282072125112342068407274314048200626357796314988996192306296272790098397557024860068165796097584825155392139790112297723795909419991633226751136898055589149100505545855248928864990065477233388550991463896589703403665190390368670489300172627111815064845987411497680984610918527773674611480426627910287408423700999413726831958260579902266177620739929250245228535135134481009933580590377287502767653321719020632893667750222416891118784598461932975300301713951840308088898095033031956524586032720126945182089639544140321665392383199336464860001252160234029296770357706517396896044547939242919947930310503796578873770080576036596636098546523258614802203083946428485981881115522861550634606080564171098168081699324815532680375655856876337668371527767419255153649122739014446569131725798639905833972557618610656694505671199263882010621554915669375524533973910423283090499936654614846099824101431140174356022545455127611415625750174107836605713877057064754936655074670557975432902887753966738473885091641228523120200684001461508105598572786718484043094525847977772862927730779756360602023792887885184158759173652036704252271897969396800533607988294411037387998987211887710352564441489843412671637358226858541430848284733338302017454132575550589576502341325187548173230733951762483414959985565784933282824350890744192285061065512718549410040151087990124469375998844203296955294571576697986638797393262425455913506377250493792910940658381936290944025500641179335165684861607444164964395179975861573502218286874826681389478371215661459949279704593859893191516689913321688321904967321523223512325038656770988359664592031590247074293721231220588064892291313512834912109970803524665316521114849315446107471542207695639275894006319737071969865508826163728827772642254750376109480528263861440694516468482183776491650659766719625060466998086618596485813675650464201427673589755300492090321520612699800903338722989661102730251342804520779780475219273978243734769042386938453694925293358947316027695270892721732841198294147716041762338096574959864016851576846403854262379615142196557621493986762259474238479434740786929384711465999503236217788954396569428683327268988049569772333145206881447324103312895115958357639587489886245845404263998899100083130641601034358646827580901591811654194763611749230368716393260340829516599450191904701460625145575070829462719500618835729197111722927536522758556095985918526525494896278331885799465559434002875876695175635063646094107211550329940404354500896155995551644858376616028883708533429449640899230248297692327032889415352054296850132195265821376190692321431634024243030600812778251013524506795007355986621424313396985563961668506361528047923411320330157400043082834376024945886161688764568210088475286703494014631357341937618555127577895836171373447145266039007546353849555292473560796088685699961764091562668825298399946335764438089215620827710732676071301173021888783400099963104634140652728808548916896036381953313907043026425942597277530994605563802514962143160112911336375836457962944945771681072378098647989656394220181790154075049403457767181026824866049906734883803813917664745189938644442604393035304096253535023090918999058662290616052664624463857827382453397907086803145184785926790797807427829146226176574312390044709631133767175417849439488761440810421224185502160165532714546003677610857742709193908941955791990978334557411559511098539679021204318899445738606820359249793671571520282181887600114534590990150916124833894036499410068662816887539624274894632561903713914743664246560889523476066094130739689128734184677998547978966307629264656311430044132648340153167204598453432177510116474003962332648351731405392821072135518591991798035476802076258939719385409045603162402131040039770259182924894132068741042517011961697402425864438239212421508827082071999797779292265879607334620340625417742989583655281770549697274721482039383858245631984664638357036495829479782124217125659114627160164022747113705578028025578458625908460514065054349319435072688055061516518573302062806573878063950401239433903143566430341152040497289848853237751807744777524838444447999653315906780691603741469309400857021019730555686063726107436871521873350522482783998113276015193557709045887018309696149299975586814589464478471045769983307962752535478603240605462916105780046002897387017434582264441607414134281413490940537063247101870622944206595963854030852790706291292839386674041042761752869264395278154942828551890391880554049657783016682065455103939611267370049463143605431609564605961215954784700025281420081745665221719582887840584310964105432945956363606705348858453222419786833355319465475753444052500553229167740283033088004208198448014439914884376976194105817975609386438415563109225633146916200961342230250463843892501492042380098270608719371875843477244187389025791340158272341858069503632338922967582463094505869509935979043175823736818926876524632596076920838339324413151180409490736974087070922564404962016453401498829731340981574308820453781838516681763279569786918717073213958217392766645497931009307106382407625405163546288811708955372974129330724073379263732547667794423511903528956807350641876708571425503393558974902959115369154567907506438293645865829681778898852473189274694439617809716674494104469600894520836888621995696705685120847553156739491041418734576964572679480355183339087860453122708077990451411387958925061395249082672125226052728317225595046448944600012865322293313624869069195378079119252215483159234022336683241840019540517401168536719586737248838567353660220201655886268581879092074319465705913765757913649842027126872072488103475711164427309291861192919103002521662997937438356111729900324729906922591453638860119265255771924407890541700627028103512788073175417637427045078337642717341733695927456624670167076266432408653590213768456509577682408403253609550234514671279823009105071278413433118731439175686201704410384403349695460222753750838451185276024840719269892856817132236783168752615794992585272802162654607866367153053637260793413963212349663519777771987014497630193996958655323910692731271288226059627238099112329759809115479710075009035764940235972041936542921987095747966841946974432823365443511920279240027815175834703757336436853979098364646409318422603191373624161606506302467856448909866257261000362455253199005697558529505398450451465536604686811695371172814330847865021628198736306240406580733503045327311220198712461684139613624444560991680284443146958734322836531290238803060267562700985096905211232593711185549249677628644926834909228936370076537543335366960085568936180588215723461726384595478381526873507214659869115713006896780246443505922164465730132111891274093618907934886261781652299792655691306364932100728787116959182307741552868184100857988130213345362837637184680741901328247777549951689617344738925440707295198193121152047036821363604381419735141386105499390174034991427565075000892946457572170218102963126320870197004368529621305470672308614856492303037930039659151864943733096206317752519573284576079595715102366285538780300898429350438726175842792236400358062419234678634660236190450490745212271936998786219870963346058121571528694334789601082335972460171378894009972164652834650395743942778461753740495517444687258610939643700086454568614663606158173444631159817929584751818464930981797455530675465723881246129655779337692598574250371335981524579808301190285259436432695480821270622418336939789489473037763000760861176011584058411167225176767041253518411278252638986933397716033708055539039281329456871994748643479009754282327450336383855189460373675410119635424686129484427755023218405535657884024307067093603548286694427112151642817581018373574570888720718705369482070070867559211390775790509227310563836968849465748086995136100996958866729296288465363592207028593155665690744745826336331275952902675069799278583075396915630417554725852829479630053830193657871955193323767313837549063950611790491610272208507690148520077237368393749555680496972789538340806502716830263010121818714722948808520308446115058062553860483414840441534693798285477051741860516415045630463726448145019922734204512575751971163978360724205093207378517756912885668009367085420412339680244581524518785488283836550153376973796256644967736585089475283974275160015822847444490641953175412397655470473444259068327929316053420647565132391500442678970066028350883379264528932699824650351358264199688308976010695352555531836418472138064941500276434118633655174698406649021811359264108334208698896905796003763363318687914958459465825890345912060022016488994788888988617148602016015760605608019151396305255127655219114326756017114189225609706362508643712478139396199656814881319339570159320709020355624079763610240981661876322747157964185587155476762327437383481036323822210393507472796078447270729412454567326408243352390525115530838878218141077768641472208981029271655294110286919553756084828376687007998264432815737540210857089409622051663974350960875334851738458297415511301308211401142347379749267196210985906475127961240607049855339195550782849452579982170097081467446033828756807151463762675042477961825775090020768394885668884178406556549313970894926088938657084284961469303076043912197979193757987238838437965246830887281221150990915801955965436408360844182418966371105493828644432189963187693764195563175547458211798007254801047252209520516863714701783797878217089401881126124530473601013028346424548973731429447116235306674147509784522686500355498218290695515999614547458087588011715751468952747368772415016236010110124490815861901075451249547514256599990708212417906535640110419615801996284263785075150074832691506919461690595252905819099101682340658636904461371418865766801334735632816818243902148652580960275041013499333118110539714741584254813255939529178183952057103391668846552668342799021993486768831823903608837001763530625604398374535073148073831349566437891099097325669054263725230613773056610684230876540400022789189314105342339011635406796382173386806303228142280599716441695692828142529832682906634323973968082229754177465817055341377436469257615818365072193800058402463154742456006628103562402794036242424023132951358198490807040627474947286420453469845574938438222486047222276724899265839512695912277747659955572868140979677763272196348761372156721426931125734659092351166811319279544767363546364761095968881580947237225053223619182727733669849123317708939364931885144298955595565856749825333293985386352762675979184622848062816766732066771065694478750429993291176644639373989537381635905010465900507277230700962498371044730646784533714570443228297773942839904527522636128047542947223176190743877586817761918918163088563807425303218922073750299801681206389550555362729312960899660182667587705653744700231191346164815966959757242280456158929302182462806662998302392557743467826587046982526339354615928807731229268527266754253032586327356506783294569390741404473560777061480940908200800623302691749710213866714627816240890117879370114716322860525930377290716810347495030603572293706789699531918539127347864410085178463264430638448645255566578825959589546080367987391329418058788060370838054004872818342561965763196771739650353412977593529947278142750099619699957961023426406467069947701107153531787501462077711353068090516263843666285756791341529539185215406931541507708743722866880998711291600299015887344691553936904144371899090957474506365881208591201060484487591614154696748911079114885199900829241190603239865830106304661313632068798751227836503791358275979281175008429880046472719127916400427127619177803265017124740716048574096309223688455735190844108193925953366732179405507020868985882300221754096337103485378516450666661729278483170715231457013668898587629044024019839046838771869362340235033257602697246855360088554060391644927630698718350420824448644702241933304560729054914934691207055069738206766357360986725536522012758910974485079462604605139011394578628349203573533011750791274455161405617908804704105721864282670813013472334026392559226628919950457280870943111918118386791293297187881926809584664717699268233344287800051946140628484003923884412390757289333321822798855514691715039588222641289256411022391365767470727044835396444464259832370644594818635294925461743955829733269085520085736219852250212020262569252261491039056932302403278027638259640797810861153557953344244699875460716199595428270797784445246955556044338937537061608985872430166327957884392097253361625714053262490975662839402462493772882382258211319522338207840474991553832502281073187462217263582513284506397670639302344422865954652906325336441495576837464191698473089983211087195934651885282226004339736950163626945463644943927439611838697818937142257024769156582677213236295908049168717948493841578684754524832944204170903996434980203593366913676843885733647503305992625858726006551641864302995488810575114391711116069017299069163293482760053663776027239719620312562759819400899537345704763299592351323412215907757624457811468609770120319977927788365335338307185562927285714748517395421232473858550973504241943908892281080950677382631391769414724781900819363259716745469782253757651836778553130318872160136031902264341518903840055163336237401372128014659868553556395235678915045934457118892326112271039060022753052203771283697791835918055606047068341668898622203904987759140677363355516619753038294201855811341804036376065024823712897430402773833515056912724035875413092987540096389182954850382181636143419063554040386381675670472682589104909513427326329061552313691995561389031469569784912073437270088676603317149934878322423808789181777377404620819819068698501846647297659403824994055048595195983355576700134577986093810437750352655954069836399593539492247739946319532970542377857405543452175293624782198346876906441412253487372714126487448132743457202252149277157932669349212341562969865989950581673332369975469834622500140177595236065043231677947626076571810715054921392162248068462075580719554185836413292439630609641360196513560450140929142221584421784340717503809435686647226588604546415409225532328552534151622456373663091172692195570029777397752964864680921131774558072433510933154734447986959926703387752968036589947583096030857050791714215028105309570584990267693505906824864756106146724994966024345219600111960602400381314519588869422939574745912463444792978421064422041258454516386812073000073308071367664633546739390645461837056080522085217425564497279276618579153608229452706116796558295952316124029529145923911937223795180688965416918598500929543167672649400402897084564433806764765119497922057063073283500605198683649027162916532833565675742169914471922785338246151403228137357872232676352731680051925696030883413732623646657931489823757470587056172900569338932691773425243560847091201959987694851655757979554477907008026482232577299542610562465351312363029373804918940099900324318229668558268636132763612491996259429211194619289688072272541261446524581348075026210015252857016164250336396092904243932304751484297402083034782538847151187415164352244604737441436133958655159867730186352640811171844268425795689653689042786490340936635635674495728355370791784656326900736379564283427320859077186101100548970272654895676871695518065140901136172032460208519420537803862978364348999527079404945585619309604466968952226525901068506436205600992446354018917405315401261772835718825429330065401963374987832241067356767255885896846250183546846483436115366915422758352543413788025746758139593282099564178587026145588852074482696206510712904500941111690246743153789259171979418925612828545054474685134914277858079167790993775429070582127757792673614565364050238803082904712177141208809347359864697727369628112145177778279170906137009200173561066319470568289998085480692480069971345477188089937353534936813137399420333053066793281915161117940906477145367999663348742615217667532210449758321332498093983547199021228387024228035345400183458218402243774311621805891234671672159369515461787825505801789159747824704034093922172814962519721332828464011931252797777422819455553989527208293977764988202789339516860770858461652095527175332561700856346185869152183392850187092673230361878615994742085084139804584554078514793025124848989694492528374915173538626120851764007117489629040055255748572983762500257378388365805428469416280352005356088735711117788345954083898473017126505199892215605801845251934758056800326059173932755020263918324331054127187095943475593025918596884597438524759581532802964541850902577320368595336810230190009480709456761052993184581786778538616829960411910455742072253658753771206606467003767877013703117502316468882417524539059037672064257520571994903069087612634371294226211522393228496331297623360390539813278192602924675146291426329202955009504484988378509791656966112601812621942364477060386859842852891741100490039976332741686096834600079597663645397938769091795317886100151032801635281476313880942049864528701812445455931026493631702911609618531639754952927266570543911413355540522108728948014025557099201180419103633936759057679692187087209996875732704746695459999176066686528082980525338911779878466671190000321366151421887990541440817445224950189980344110713797507890787748036478375794788586046288625413728589805479869498946319731633881987692659142404077958414976818497103723247732265559858916125987864098924043371985262565946861234477360721502088081794405953731010050498328689323602543024317679183274345742774504138213685165628379590054945246471910107928087019362625480121035346830933571090654795319702774633723867175811447390274836929090627677049892125685229128659954752168741743148936711880790183035455017090431264618434470669156783219192055593552581506616128743606403702601274022231956445794377226977780821648351709554274202303630486182074298675946874144319156488519211989832311049195410625341451999583523487486956267181661934493585055424815942352536709593598285960793689622801439019170174718164305294071383904752710989679388591336688394461844513380592507373151864278905676591667700379155029513837680372267915862586014613036871626591921810495649040543330173437074201500130824519065470189616351681311096644636189589741201854693557570041045890385890947149455925705235073303484357843169020181621486148555072242263692764300766544141508169209915976920805833681818262125177621440815135257716312333706603817651355570564124274224771772450891269568467077369680310497731259230669623467822560284463332479073173229805137015980348413601452406262621386267651584920325569948227370825573745074090481267874722667944729401314311994556879486249920154721903316596890974920660270587112055265223405005974937481650097186925342228985293701507683262258872195173202020131851963731356540077275243622645378013442927967780422243090332191958396708394251682196814038048992862290865341783889584732581543122238102146863249869894172852707507648441227768176316600360019539159119909234796458331574510847382769956428778556830209974018828094007567120653686181365260011348214714619682731001885680842192177932358930387974995456674748697428834411468236175963226413253379199987248850748888534998535160320842408243772880163193935892414975239118045837232956216926052363987943982403099314197009766775837192879271028318299373085084044086917896811005792503014735661547654553793892198610089660674971429964172852853355055475252245101905962579727048266428880004763523640334070112978961537650554758619725232024750720487885330167652001102560845517659624222851203351925487985278696854248871672321329550568065779304154756077257047509798190916040964715940627294363729706600007281196755282101242988451292784723620669972428384110813461680045139375322553657562169485900676977244740030972748794394916977790164911422600344966821791916870491926333794248890431103442640723891397776565011593004899877538279282653987199766472325342853377314018670020975354254643103392831792812733242236243167336934235349240771064105098207517517811137636132632386744650585385986559464535906636851136250757089764781094799054552076066102442511254546895530554253962568792521325018532824992831148222545831662604920028791733583318133004612277415711074557858649246375801691566247428402343434465292847135656286497396244756338710891508549958766678073319410740777789710936681675480239767362902173097900197249056458231758659236543054749131240123287187630391843191848006336077381851448754453344145054592217036255783453063654033981054637803139522517729783339079555487158110760846438426616997554007975792685525559993196681730000610656547352721934523448850064591549685941751940978489120608182466159644046483010161677203286449364232097675150959255053190119182727903126019878656047100202291012122872056040084427226948398766227611429714771389446697485540416749151828993764508724406466658303623317954849320157720200146908350065259081482903161763088161084914316216490036530074621924385562122923435466915061535432045094552649065596540796987880991172609744285060419378682709103023680876505009243497221140896510383637070430310877666017955803709830340565575953066870634438016823390320391827457245827234262379162529828102387348163904006542560463372745715749373268052644097795173926216929147067424198654923951819483521675365790246461085389393287414255454182153057988272913482393008402922133359935604698825615418162007699783255349141478544183046713480681522795760468463992620242351591645376377102470828760367126067436689497105309685963089752701962054632674234263861212688366727525078123111066899457961679339164356845303599342339815636483758784838133408395715326136387555670204645745982680731560524061787254028250211019276728496152246265754450303849946725801307534360681474813519614852824139360614075767994340400674239114705820114256108975227771013781539814881287225859696145546952148106903025786620547693903363376149385871485324098404453970069546749768229588001277565718650629340015761818291363827956310840200884913314755168416323096596600920546925844152465639521831861301581620825913344902198046963313547544857954553308434267895638624092174660243312165357776597684824490322566209715034705291655615687200911545647803002685852460724128113206722480954014771476236602259911153010245446271104275373863569428810942644824238556486009381141687731763357708375566469872164800536025141741883126736238218004454050061822018839134451646515022981782814724184017496599348022721218202691991343275418889851910418981953044151889259711497515505513042511159119582960428734601774919480836644356616836491979561482006100106147870032065942275788617030366183811022476759564159300354586285417082558278185295548004262514669531212411857033115259622439619726212376068691525855393388280072122993881273939862898698275502197121474355196873507615826805835327870541733292296476756817148663945808680316464599727958215577374996674169904457046677242800748545875567292703322240252512550266835940242491293056053509619251945374800813970586665962876186544508459636972966348521390506514544067877623407807174755197758995561095747948739406411022659792708003286885560659183183506818579513551487813196555932498075157018430018023086738986823613521896445420833534597850100782667717964469764577733840678799956656610963680158562120491332019980992340234000937386149163154056431066319224864522012156477516163838303834283410802072704155212295875507149689709915287065710583264431528252441211882514131664267637318712842054761235766527892536225719586272457690082001658237420805626736257318956422905373090821837246437684628822942604992725282973010086623149316820066623317741145430790436925672981912321011363188080858494750306919611307476322843795258232985626893603102655384762881150236296458580705295393983874650921670052599716803046117912583426401295951705235885672905387196027559597289286696391564177974067306324262874500503674149346005521880658657400528235147493556848937730401786257455417418396921505194958797974485831131090455542124825848202897781356047866300649240386907240087242150829661724154287992398809952271804295937858661857995041472134530105020183293802721128358598567294552940070306350591672757306612962832464551198854572424529773942027409066019629184290411090133140381960514744636118227103593368829835859203884079901059211351565765142916256017140623315460757614222374901288996568268869327633128676010242626521323619730069536273087722895496222298526511086425132751099867703423906102991065159221505328207275497472891880763387863263419310180203864904059592701093760511033704976747565937840007519035840207968222593135576350345572677467400973586534131002325057716812697849048980080585686427219666841790445820295172703870459913942960084003101895324472611518091406324015204083772657546953979055728794993366827985408820475188105751860151573211712586125844378544691862379276475651624453250987811189627664753648899194743104860361792857912140521125041632770855069817003295455065516608010281166573875862218914582959092922439383524010844106968267586211122383193169667275108757368126013804743178833762825582198493296240498147362986554910058145918952590749357006438286435962620112989772231476797920890708422892837433954453093442172747767217302128296470485598224308729635830744165410048614917350308965147843764004762406821667573590235481228516548190376870603463123372531630669639428077661593134650788265686943394322422912872930684520596602074834810779498519330740748454184488714299129199854636956576606230765450981255126485290227964345357212020278927217518000450001602015504804118904554653803335531504359042403517032815384534282771390547540538528271919640613768773801085967639732401916356930967118378488455481956233025921579888615177321021578504722062886252871061582373352488189778793378742839402079209263700386441832549189037265574894180879721838354325517989973048910213816665801571275491315326577695598733012678025078012653940108196036009729509257176207331836264272211622182587246076603257439718013475995649109738219888554460007309590109069156565373089348959446339972864363838148326436908783417469092580925594343677465406244407252956520029786893895061967265036036634882914011645433019410578129987045859807553726519004649226355305353143607949087759581442019597566922553828959702485803279093263433662880317026419114214768930506582284039845250712749287070393011903181257469493256927920876494147451351436573722151597507244749749264135376718751611411692033968038892448015208532587156999033700934584218648499472867320475313784532649914067353255729912781737660453151080643524471603767899511523177630350138961284613426416582526661063674078672015725578572303845265101191692001123534616435736926633878537531841110549887613660200027608637966289814239631089613330489457975253000270949269482205831084502205326739955712117814324383642845649984873441013424030907404997899052818751681109253337017504680278223680419605151299496859311108478847000250313376235140524704408707746004543089847466747456433357179643009057648777406301402895428424067535183813040301430225435146281006239032814434484339346529610778811270019440213018932990321586317958369010500744673029505970273852067360699454310426414017366380516182979637187799105774137044640811704434193406492364393390688431041010294436483355178465711625967068028476661438435770385370922371050146769398323041069272104111158564544117947879765856359825132936632386121905194803106363533844426108403721804354242311764493594076505219205840318368208337678085094148132598550184046060645722519198705905419340986946841859435452762692414838649583820946543873467287494538971574206360720207431907791012946542432721810031623018853873107245424589200751743083760275020711085147388265204725001721194551666558006920112616818702617638078611762667389171000459879510827597455423682498184694228043346130631596811046873040091720383631198752854270153905265281963634827232769923471338573028854963455627389212862730163986732379063395385304653161238414971787849293998389477406620480020575981183630555049792878615689046421730866598936904828908352071904500139819795433786789109091530480967671284974294124070708415687622969079914448218311494324967235448604688782213069906266901836191057368240511505113768330063156765161535992909009697765459446133765534376465239956279767707099473737318032035561875695642749453076240731487262786061360646415384457588564004401975705516977955959940291252906723905419871918576601712667975351986390188040828276158346867199185801212258748151836666418569688499116285746917349618395179177778659747877112709360978769454811781234404826203578956488571623859669262378330934369680135805439549295398357140710488781397857073018714481203257182523281557175428241926211707250024360334547636883354740625807405893103322362162007473819431732774843580006792371263003621325662215534050378963509759117938588736188977971815161618080937924864439701039989296614333992941717114655827860904220570972434598745045867890807878233958316420766683402998073762885144871633255402398767059006360149229364542691519097096535410357311881263112107184445168591744302798270628211052669511427000962740786813811373777376649233559890167515432699272187696507232064218200456012158123393249722469266288324993750008200394583741905878261486934606029069493165943810828882034500942470261192153799074235645884938723833250956660046824045966903483249142714307269500480883432793615132749662336744234009329601603301215102102842756278800670848242852542692874279169037924963399396770396348949541120298346759643546424976179495443814019194054653905360611731222276144296393307828286313122656689435900712334038679317254218107340281715662571837922039649225238551126844565758733799273631981325438886466372829589458591474589953432679696518106260872280730711432248459007728386187731372204122134808306626145073245318027505501044763286051424864244559196802488279889477768568870275642529593876231668145258124658384459340799983210464705671911862850410659102024498427918468198653989001422562010256205079656177077574874089205743576895790755947285843902034441938093092361017416476410581376056682745568895520800935748749839379291691264820941058585749415104535579362995997145042978669891107319487954623386049424045639482155635749331820598199096809429675525529872986176205316777387107254979829879902818043370907591536908538736590883699263872860589615244902106635131633446877711197866317630627249251131709228087438253408543993270195418941563221145969849573241765909517782672267900020745501349841095144329375893137708560801768573944473015870270168352879133087591512817287246000396259464076159203002155010231935715416736608060753512236799316614027874299657084188304557242314772290703482899525251080713568558328654944741147687334574829993607476607564100446782237988895938896378662828941749277011453545580419622217202486085091340983522940840911077607673749867392822356998460055736271024079406357812388011541473703335162352138126322825549739246443422211426013345475243556212359570987105803822243016685900090197245187897240509418581870807119327902101504766469033862593398127717236054085187872901770274955915938527238450822791967930243006506820504924880136559483319955789361968687508848266297204458693459571310843288782494761744690361925127704813226352552114264665237297782448174901192499229023110402580030563167456647393993935274590873723861330286369342511332610753702225047828924186487597830129412165525105350578362835292470128504195218170241317601143915136046225416058218861273637372710215787487923806230150231201302677347047131102917311003983078892463113284053356223523332416546872162224820321431318668074240188184702058150498321329553930776424406157967578035406389281375262137568680945253298547398594768881446696853097262531385518476889295439773465377016703263538522248327955883659314694854988312005890313741187947798018514215104159678070149620819593150050464558835696381602423571668957372852728900068727290674546836508575706389065047629135414160499747107762722420878973448062770963467227876266557115099311759254327676615857195733188960104491097362644866174434907333337404704588190307783162617930074564471271218823873771968456269377886130836641002338755004801882418126815418270854852159225828628503706869892203592902267062415741192113294757265587506484734062894117413897574247123778287463212030234555827171677251944459687908321598910017038558072070022247607428675619264187669612890846281167757450345662806516355172014776101826070653677157229553071072396874083484903369679253368424815858060085593499305126057902253446272968291261815822216840944109997201596496268523818365137301659757010996643991002375314064327293908419996364488166598518278428920789826366806572295476429446522683928183445959194981755937907770606171691696067495092156926103025585579748335134975088805371741763146047343515175023022966919219356602577593381726622083008820411637093342928545298776075226310193595569925276246207081726714786058783719369179709923002543412580522670544808648212431179248434929242263081268894373618261256715052751674402695224383299973002647161226817779591492564717920229869190827897277577911079512026075833989835960497470107972362117339306092729270552260764365445111386617788066049057084480680891364612284501502234342393440659484373750062032822901980654803508515630107094096622302014565272543456719484158316958651003838972044814315663192725581300563251528307338146355092568262108837624788622056641618342199978282901887075643934443981288514444394866745442585296095758626155794535450530798837895068127533149491340782691827511460836791291399593607328619062455771486073256699996129207543283058325527907950502493024174199700653888164078660303697690630713079578211330140964326452076617626756815859780049145439200574831736532182914586546885215811576187448507817887859388040696806511428657770112259336539646897034954723976987763468090946197758802687309390071196799812131104619192798966098454512123538990902081381253583705152011218899241925661899671826727423967192979605209645966645234860592782461663385487551449964266766556497253535852395548401964672576794833766781830220344692635207496817609125214215428891889698277718675748348786889595313829012907396474128222425026621015889001006280717299846524342312349230564025807088303402332128802022297515789974485456573424593328675951744226289602428050419436667995720424427236212628598754481735275053562474051222489215571270095256428694660213201790749728545119580007501897799976747556609941423406813367340926821478774840648228015606174435160725565498072441420176527500350546121328294737772663790978916133660860883980674157526325580081003172031149488662427466234258020257007269497867757777570448792772221315828074855732420672149349793499050841488450614781655170625973402825366805809896132410152591843023896089750378123000698417557627876102113695219409858105844767926983961230718285032407317684300806843551211936000681621670730091613341913119766222859217121273701193300682054687536577140890537399474221653178778659548579107850737337710864760193441416043369221286128715754461172737845935291150815497258122646031633510053872136319276344489215347049629139805096384468328920141109186855715228825859329895457476252083140599059659419038279570356246822485493602091592851185838180481843660977290362534853412228271296701067140361065714044270745149193618614665888168737853783895837980068696148196611062287283909117529918738718061079710745730032583444757524191841648935188645288449752717343622976405059342996202199499058963616295509806252103200649104250746771106346007555231570925653913733578859883710575240927291316646579734139070815839094886351026566191195981963671173735666700810098948741058443928538857581417867687928104281758132990821019449391263229454424123249148791808684370026510536439741660126248010536217651731329241999666068884406462041289543972225090002822711498316749264602675697766492237900736220822098477829189901924797899128389503655841045101758551836689572510360929702853641979472403684393460272611182996870179934728572208206949458136088856862580724352405019564877484439111295873002893412830275071226203007853854204121381245060703010810349163511342159786270545751669893753133792737507194641676725499177017639120564989071030041916883827976092526948976766317384605175145548206371525946699347079449077204600037495492267765810854018798877263381700529177738701199058673075431765957324156920662893452677236534202916747194343983024686973509296725344664697628082284429169074242082947184307543680346293027262742854447178930653567521981809942598895438438051154616354228235152704946820915813334406146896530632277861556074984828208444704950180014106786114504130355394254351155969631512292717483637332624016486343008193568533446944163325438565814577832319206076564555469629591049432473320267088310590972701748580091794279496545919368862672542829056550981123410377218408777810839233315376764546822804514336025198593322857341793710119922818577650721686076720396213996564917230527902684220151272380834154667176880030631613730194844793768002726714764638914754399335678811834336365069016590821998655691808928295553552225343003607531224194104711676686674756086761512932962570933488447198030403467637182576699879181777567339566172003501680754801054127128610390554839195403904108281130816131776366595311345724964871420205013468933181649174662722441064250865954993230225381875498004586718410143101816441343473280522741435294667836331134620344306284410705278820042766690005124457922066188474313270551144006645098443276613594766756457075721103566087418333953090056076889704832915617009597730458891905323404532443043173156999120802354514307787086883091910466261281005035453717579250352652804925419339249303834329830116159008640942582527499317751350116001694466600510328573399546735305652833584771409778270560156621974969243998639873804065401229688093806016489669210438696137467948730422062805970765383456694561170770344132261334670849893111899109353599156762365931057790976448673437375366279460792301345011595973133181752115089969992265921758937722036494429098176014882707152093626439774390913500691088470395600430365625652095501950357369875999286772654581260090824798294195769450730488351662866515081353853782850092866265780952538082526429909984439033962627754882481451433154171323988611983088802199854095319676221394747143744496579699702717941345713800917938645784054772648929794563237594868596030096010025206693930064834911561776484594798214125383791720873907356194062932165706673787888514471275299917127963751721153692473384368161795891485201445398197512945056827339411647062922174629419412628518597743038537609214695536703054851226498953845972543339532832755374492577650325126587546323021462839594571326414648252992933477056327477661065110100810698689967132511465491855970496231985974570250558133472296446496936328154485570258765014619961982648098503797242930168249140291633512059717318882177815868494878800584048702698100507054997535761359498048496036604634562382929813337085899243464915634734167630145995110729825909986471339744840286220190138761212812228409953919795393787755323696351975174625331318407784423055027155249321509777388440023638519763367644249071635901102105271885413218095171732648262041181274203480007807202432108436638190519586228590668636222531444126137406624450798991730798114257823974504983177505988273168048996827913433242071352598513703167141036762149378678573201550152011941350459320184428655407529919236935876913755723775603162316405924646004580631136496341750748954622350612063077469991722725122803809930322021825832452928174246432823871419432005737795689654408516344819075681485799518590670703046689066017458487380927289972743391029121905775235128337992972796088540890318440948241886303591033403813135069985638928529016500858888059319306522605377426200687817632305843416282506116079444600793448083584602924619794036718128279689976388607999663507489091214486129539470161385295532269436183537318621933002992577966585597525180644460712992786189815464777542046245103606086745144258881550638575440543932314849441938016159431189830831388758137996403963996039719381067808117873155241624805128773971736755497455021484783125118962360356128075310457206440896049479480160617942561237423874287128833365707086053963012343991738128262320715267774111459986040122171929502033419784459653860221339870110335768755727202153193881007724397680069948053730958569312728347348526555769056176603736214826208483514104224780361930628319311866073332552034309049056706103485637268956976675064909734127531146726771923763958480932361553714269176447259052373396388373311015833291419721630775441401833400188842158261787595240498821317406190837635112094806460416132315419156271416629165235773340078305672922947658743337469987235808491366603009224879056555376056792576862114319028025490838349681500920213321681382396838846682124570661670091886817858061330913536055001043318389699173534832210587718318533853995194857054559220581285323076081827975328013335828836371952173468477375300434817813717218901555750707348272513750569084695361857346845977398191631487485973860652291990179277888979168435601739434132900428873847054014898240803752563441540491482125070604132422726754949845597279352879392938733929823003869155885524042748479231511032734837027261930790010924248547914807262891689414167582370942187579471262552574209327460174670293265716042325001774950243377577811539532175190993892876422861183702568054901696180778218355015243160096239543164682915721934144849618310243732620272288458978516780265736671494320371651026019210288068881579895263805998835324893541586835348113247221592865096352484579172903856169398223730683024226763561461697835768682794109687509645762685052363639155745871993234893098527205961400686796933756864163426027086653711799894529584511481191256756067231469131837579249949986629053749008023161161660510337904058104464550564417646958253184302420266526326694225620099180802786009614458300749903547880292038934388365152617333809626121110300086820381069649479943004379938624042307446804479486255908759529826309168086141879148882288197230651501016837431357633704529993025779430410105652909992636220512027618498196404094029065805473581418950121650914687992966234230805679468281594119605289332613672528207397859771597751795502835961152553554524863376093604613645130819903415183432550398604714271240849132903038768135283532595314976462846296320255271344062930248808489259949457334961963797947083753716144325541826200709125791404937478437852524261726669589625730121054491545384931303118415126671999131765813589358609485222238221065890478718830495158286903742000521802049666476719775977077667582098189472878424817832840407842702150915030225231824205846468190449273593656776244340989923032522076375856444747882289990578282185819670623821571891277395678716424709707010716476019275717480377439507464891784200482384433139905478084778514857582451049935243202320068405459503179240562557951975345782702593749759952815392840265482700322390137564174217066805981349978158292252458309676140326637230524684774525998761589317284253735007984796027389449855717563389415403620361603336554962786762889984929506199209774313595455040776667564595167369977822166200406301629796565417033495637557379140389631875657380613984356224552425711655089542866600248533695916447946723239455127348131045255805111286737146232207569924279710693991390091149377461113455568985316451472388778438521645497646780428990542245526313027053491622883996408303745857617444154502039738540889097927794683397794969752298638369486282709982229907586151569233808057876436376889102914812543009439930872239362790011215203407519118605135524396680129240083795013785901861097386556180237987560245126596970093121061429947470678007321187801019504150840751072445908189745442708485744854393772945561327447470193811785603860463001629555790172273560238153329999278483779497640139548865894672608590885708174859894944387650338551914935559460430063070331036076139986443287046098265760586917241462361573085007237458289538796909401047177667147843012474662894620906026548851145709928598992635990208603330728017527581645493766519239609134101810030445675440588184463193523387283617020707873415464057943543739552572390768323261222221194547048785978822673960123616896563392686165451338321081532471405168256704969506422511501529844873002686175977950085485302385568293126434865948856630131763484572285257888023001201623896849164276433058629955070547531499344499074559796914132959118565794775555036560039815810659712777520522177257001790057128029130924624344584062366488260736127566921934609704248297247568068577518985298204435758257032195683034966069181001404973273612022902937970290966150508780162079006421986862943721382870153865017983656659741646595054369884221678665753558345550831647701249757429235052481480146303215704828464834644531785031357972002214110727800160822899697928411118086317802655470913397601134648570652976827803630830262926484720902181845484170489746108410788527900561158844662173778498094960810019275018330331640924512653665679575561262935448869035764268323842945712081184080231138220300815383445192540126020135046051295120725039410526887493407111447199158379547514172162337273126447366715340273545489358688658430701667332478681032772639667700653200141406004934599357666684202749661502897007617513738605045867772288365034242310773081090351812985125691381141559889225842346067114033906976865837381730531755007560259408921506734983209534923291359391021952939982710745457658918354952974882728000770865994123462201533600206469942116168149122179477547730848735516024544181178445656367297799042418348913204992743154693097499868305873271322461423298745669519529588006608355436975983691104577305495583897755637408154975182674460855471550765143913973970113288883880564478415350594988646642680945324032569561643907163555762499061061436108197517272830104562681274190251658468394988598091394237425320882933593787071953756358612142662104953687943388493500409553715652435972636461262752537693690231631436019910176199152750342179866452415828592647971849674350745326396620171083695227220642624061713783131568552678142747488024778143691092891110815473897563477444472612953144745887512476840197335300835672864767464816266583691044797620351159316816183711399611599293435452327197542207745665456445842003085974988251009544735192879463166338629610681633152100830736496429913426335146287799542913471870017191141754937046558981600385856829547728174663446296843439897474705705900717829038060903293190994618040633317247960536908279965043586504110933853433564939647772360043697818882347213995761627474014426218874712700249975110668668217409163692029713502682061640868593027724627745979612857846623753411001813504321976826466729056375736246020155395041921939388124442270927820086587614936982473818111278652997257604377606106984149145478777941600852470747892100349462323078848782744546448194454179788136677200960552830629812070050043398773301128902485102715954782562845261706893864448539893474059917317171752598558631040407655949736185367230224653169400710411562025395823964363187562037870701063266373457877118619770416182266978991518247359514511105785989227437561126668752334065247783640263239220347520119019958204353015055917280522736699226445273261526757755251252430100095700285863998708206091853277596235433652960036210603767378956251128376873060727245139287283487635329669162687230993652215361786451445147487468374596562874127704438532961636714521572859223019120479045737945968288474129597224767211134993426153754577280558033561684074067778718814634216952107072777537583346768446050890788217396320422942657047131875245456002143243290128487225033383743210668087507766971362823306344080843366433686303095890282351379812960538054550604042901037815762064227452883441603477569698507493911413162009337620967784412542613726363788978683257497020630247845986010045885832699792021972523894755995255226421546091632250981201625805890684216168521966321788472048707925402254107680009284285189833210721464820826138956926771151437824446300125198584869278113495480726594738463928003568025780881603158685234413726733099046660705601044654040099194203464412260291512991838221723039811170306667881459509537215664107655662501252391908294177966144426937740669679403903523012328496644138693197670175317716113666021673855406592845571578582066449526488491276944954011331708936963829002561171477135475507536544481783947046205125573189742379556238482150867727741091921448850659844230022938984378675422113937816915441288169295972837837782742528524505441097336831513781863559662761287542984641216282044393087580771043784574130614815834422851791199406365447947023991149369273867239171116644688221299517099550760185503319094282136171529544309897618643668489943809782219081242432146518996610919948789695195122438145582462672485522121629834809627719592455773638190413072661216743554733924997354133340004024340352554577275859217755080354007615660630933502612397585339764332795029127166381252778349363774736682956615139907361062384106176228841785339361443303885921383986959900966838248333633760763009972170919135652725299489726477317881006040923160593365023393478545756375756460869215471910892714907095253054864492762792839521563887296288506336059454573854404484960680351149681653365311071411277968096703889151572768616665439039336411635407981707713390881927764879755412387780024036089932018807254722982161864829403716691039777748769507070222751421271085265297432023147320240244148261979041903218071568221607545946489914942406524499172091524104142158184345140176095736708611458740670182785077966764860645787674156386708344313618003312414005558069333671134218862710235833900825580842371793456180188283994887069432407174392678733021792919499370784751504645832183200941001478113708166793239085575007242819879797392988928753235738270731780214590393518795623421971959212549699863264750291825219121063978319943984584616656126490050086093868220826002040843975304165581527864127858575472038457571426984117860750297791865366594187984820711863208227682872563909594067501242986724171365766582807139905769462547290204146355505121612339834774788531665768160002782896070676352982280773749598232109212932141270137598178513353201847479121743978202975243187566479871678014896718639333423886104260026685510496935391280689502841369590334248865520967105280245927221639134402494071524703808179472895062473715399838086407512514715618644424651180933547815175920917415132008302302995717610155146801736776767392962212149458574856076150128966938974641810264318332806875237467806553542123020603031756678042891384289364778467926458387713316126530219611744720988956906220183278899278974731868035036835048746669329317915343943994551886505601349299066650757255137387801322383572649215743313958499074910895810191386712842772524556634170691246081351350022210010858929823043689844882985880385113924490764023723981063739565279059085860333054807255454024401649792899244200305717776618099081460785678278960347626656380908101940474712157160826064456395404776047166996076605113883064098211547527471352299647357136669637059062454122006931038618164632123268078364045249445818039250365704773480107716558696558351990248235391664028034405873499240109272059244264698814835817012990177827163933881319128334201728227692997313159640389546541715968960844310990261608233208374871453832491727196176589951565190872588027471823913128678309907857064673027963579624496162366620979769155040602429250904416264648002452706413511513676017871587985212787654155204885472138696760208242689498910326126136756662408724055987073598128309115393275711686038482757558962124649314258595221873012264028791084094506651124087401170086361358555126098352484446724911892303952280466299653969762697036379974185468421902476923916358660635342130488432514116686933588855368616790993932272735863428864048185541929107487100236297989319587929868477704340424801946389317914041992754211675676468310182935620007187886448210984577928987028783678303618022094657616011418691826168987383538195638960291680345468034216096038240882801563849052323624979682911159516962649694715173477613029053080311304285392893637038436733532939394614920543116883890422908719969067631711404297227082142090082834294112671029143869396561728740554274298377864306330688219618023131764347569208983086135310113934013854481311927811012471725026369929100065106225512375444748083781381886165339472480227936834532719426575388096546073031158448229727921600237299737683235141263935515662538490264912719083936962497243843057425931063714838796452029090849661056503394969656176480871928840409503330585690477740746705249046052468821803283143048846343867367552899291518169797312800316262788061154496832310537450436957301605109949053046299128223362172687598680136081042962071592605633285056597341060776280630986188082374051500158553466262534977085519856436498743480381021600175763598277867848434998187834597586404549263697340530727001149498783471690226115057124036892337511254567869352607048446900270967383152708882934512918139035270784856391928890433687181308071969801271762573161536853470928018314403467392064211143953466540057480067471920166886227720316633146606383710817438916895130880524209392464761115608804717732676325168166430509616552423537210029428693561006198712799328357858387556683215590085800839337248038231160779301601416297782916541464935263166158056162849738476775928526451038979633802652052232268650255691646270525082707741559497770058036491511881330374955868902856207901705961889304799677511013694913804502392877379153806362746359526451548701545400857253577635407616852646126679677416517804299085353879553852918424780702473258609879483841621265922823034861344518191111426066076684694171530465388927025320947149345286713484123918195404299236453612412522932163230999511536863469023925758062803691127637766796578840623213770359329019954385235687424563996191795241468890607731869010544775406309599883284554482177152174877140561076014327738077355342276123773822968717488512294910095700414448658109666049842304034819459572411989421384731046437561510759607041669647739845369023549995853487780012818999636150819828496274887535407174708830791700836307330373989038267906359395809543078752141717018482090247514968064428581814799638267051744978822599368213713331367971161236698955511891627036383442452068603783595034550580397008240126554923858215926710965238080069108182925841200342321704016684624865781656969784503580765489229832678726809823251271540340019641659602691374588769273258177184499362790296182192959205311387739973569255009177898639164088160249332525919198863728755622946804725465144705457655589561236340762041297553486314963181503570622051000597347259117084855841126568374182480447810549489291240472360873989043397474540243684460055642747960384495571231846395919434743014651538603935767736076102166308880128675065544834951471081884172945466919889269746129441289538485141423794917330856384024765148312147880159366880097251234616723601108369061462116548382579195514593492235305105803628400933802139856339445619896823695201393313177896412822059564977323098402268970888450979476907817923002929747691329260936853107716135705451333159934129969240329628503137391825510715226435378461967775332407347549719707226660042857565200474096065518264416694951655325183941128891085133610454779361486529086954898656574784994919276996837261981429133469978233460365138524259567366242810807353063852367002253277177339703607228411000809662660704769327465273383620300677764912992968761233039522866059491627568651679464778795047318951077022567982905987414875493799025210151903045069235015785501051087347417741245012998696869261368167555823397788619770885379516500496364271844154190983278966844732661435336583069773556419942883865836088096449586266263421451621191287491000289579207218472295119820211804416649892236938416453278053232994739511727989348431489810119446064490855987738241820554199799345232688664989346719781011871162090493764523781909651619554572557888727887917852301807448225417988398252082488291833010413843717344432879967502709606265310827613936383787908213553647182577238676142586692830912973409979491688683640445777837968393828016408911679558142157208105514991934764024753285042106416840216050988230362491235225835741700791496096195083364153131863909997197587666612320362655703523326814362565990711853516460762144081411820628260116653890381026533210733299275082826261113827553877513422353024191454155724721450094594263750321112445229458232679694377490568902017444552871018042895715069365717979790103794631187297639478684816039685481851196566959591718044618615717879376636131324549619751324383262598245716117406468323440642697678050715768036240131328293580095136400897831118767429226090124879610517362960395785512767161718754088144645552804724944992771049260106864256501930700878850520076515573908046666797016018109092983902231566912174641696553404104063801489860640677084063912851981298911643098083200723418675193450628655622295409963206339607103896322217908880500543318650413816424016577787226493386133469223967258471250582514269825664061655358209517122372140337612869196106127017618653854268095629105255892723211173728171142592121967900784959869227979404419023307965608159050177730235715680575861431938742880624668866755463804918243040122739030418836094272869131681940594162487518153669923537812686801324136259503866181376092927996196085554828807531127881431468068468308214526337549887496765028308399183221116341281611527434885868102856081743663477560512671577269306616716277105149135351601506672647318705139914950920994151291062874079682449840092110155538413327383990121331996385514282473619439812799524095113289007700132922806725172964883725927902017823443336206120411567075133043635794434437572020954408731560597582168337373008612358317176334339148433501500013143282955521492459591441638894014749370850920086454139905417907286596586210082509904171631248100286251226699910843087908905475819776418196873190267829064055986375380369941659391272575181825992559911251480943726029548021396618142904474888376472517417709749151801449958032010062571128382330699005308372378116293692111239923619456386863886458834719779330119935589671907840232163818459496676895890273484585586913099731285538796198592021941263423794260951167705141830619664569011820763267625269008178640439572747931793795435932865031541004621189932498588800281139491676639772979530262614653209584212523347474714576428918072364919245408197250330991407621820254904891788899726944085312288688765529496627147035646308097795685980514795354938815810708451505495875434322807893195626251597137092944337678172559468003493305580294407950295939751436838747609241299452719401336138285472566075210473824254890705233370736490497926211368299746331672310681505229904694635019828827919595671219136244244428844155558470679910183226626834310196018041253309919078390710474313176160103303514533184199885691182529075998367983572359309593013110252962468890326176393812790771397928710173287241330976371150031077330962683995197197028251343454484856899500498762001627966790820234877896249158092218172756474611241041121648482237660268239876175811601288589405493348059091842848173928133683218434926714542932096629864947473881210702645090726998131353857341631474436961003761767061378457622552568184306798429516656631386902789826473351313450842335982498451938691876825469048343008279466412719153247299956540955532516491693372734386929472102756166313741294098657766877731354612686816168258615222172982002014386738763241395241290556388812789542921798306914226790137682640967929609276127403681957329457213942095649602203506444376928685454504281975019978322337822412691935792787917473635951075364335213174527092003681243662784276854956459768111656277997312577839364795859188247538229345810826721338712358694285240133635206473168653046339071583718509021136047946002357421085784071675990538220600416602912427381293759282533591026094413182248995506751117281633572601625928398867779628077246501454781594441216915146913889246675464464646930047395391706019310653222244024770247445163285900189021910033819395366562490991514737985207259083657420595329384208276592536791468566683313873304714343313902549994738378550620697454379375383301926104622541242089189643606126542466674682766115116831512157425024108857820686894886124620156291817803772043485351448362217586610660764540072653970785646841176392353024635305200964763904932274796939565068150508587301759565211020986746105454227996162330930226284778797167691258659101432302791111101242605933432837335031322059718720893948414913665116792929307856459055741261579305534572312411485753948658781511849341087230245269881442982569288686732017003733445449671676015861704134190689187129389888735211566458722273978263861626974917995066584706851588362149972537827406842342630845548364334857818592778983472320362215278349382044342494452090261752067503708000001981512793784102409011729147152384122202275833594222068792234835223890395276107663444328670472404687017134174627099011801796660378339859054817713170104415535546178016348619845888820613378839983080738711866598149153556700448468293814440360693824219755172895741462646915447474013420365308305548432558346760142290208611588888050967194740467481228012827900432877529107306920036681485620045538531996798955950305923052007913568419501891693215692360835229234158346922705847955461508787867818501724743480397383757338974012868348758616851443984813270309353988649465540109262355912165981603149975264531728846120693015194477663975465781939051943884957345865262897830876044441328191784831105234621009418083320132445719784125734523332101381827178079720346717743731873733180957584314120039574987260919111191407505931416058122325141110406454643118144103936653750819853033609943843532328489515273149402899748921385142812460928270300115228666127823750390715203858949711078268002879095824418414719998445598516062272366589398547219124371693462808907894663059762045621384540835389646521444450274662465998639460575049733055202897216753477955051231467089870012835995558184828857674216164884976366114984826997648041009788458970223530012025694107055508206915653693179632993757953773854136507637931493842582395962192834367328498716412348216455672286950128030990230227714060952641214836100546628201772146230395972403336446450959142701479827423295022561791624694050411949511708260850424817343458014408109804373498288215935422929961761764632015209886472454278393143366826650933963738163771713796647221293097040471079649328426320379622451365227172056107185420858012558676634079339278811575339762106630455611650457350661535419535400108225607130643743671935840166643591037912193184982205130589630825015451278985312275977538856490902322347477614737377758063100771190087034943698389146483782443588536155386659871033605111524254514778202344076050530102376376636916499636702092866252656267057584229648493981109080443526650167832756495602750208403311935132137607269911949273720409785045300298155236219374587836880337005934990472023439369485693491050282033102505129387927754096170888145538543210640086312746574387110382423675074438979134848493232071059232954099019515672236512914532136127771226286421084556531065824979899623325350466247773049643308612439843522520271417149931399798430223541431190142209374902323118131112949906188892803240729681079970861016706405988511470244090139759044084789116900634291250420385163817724520388104183501796377219715964242138293255117053061048705785538812941308079549251369012857966710885136041387900833201831472701229533712807018067963145611085055297647901819647725543947945360566245521447268888928888900356899205816280097123504228280628976937688400858063072423486178921605263375011540805304218219887868171314979366697346375140840432922817705674052879529011256943081673483319823616165179843916647069317233208071107433286168074476162943074233379692456045183702848062373157358189654948517771550352472396326879261541346758177194639501034125395568778008972435613986213560107124668982880366269873394068043798942657737555846258233348702732685307302213819272404026586160082003161011222596703031710251049286248415112439572345199548789362741073556125170376816194329683992081529054739802326008436624574920851542428965424932680635334206795071082373661462498076214659756707962442485614373971238107894659009386219819295147770721598781557244649327155928939556999842566594482315453792085006498341329928726017632738541343928246435309671465287952664127387702835279317452817685809894961854162833490826731653066869802520785153033321244661908862704472861181518212663752761815051930333804721000337358768069711287944046877846525753381029147224521091563609797485582580753947429944296945811772223160813862534829178241871248071560811939001651473184447859256701005686474808922195791312243774949313882756514579871409522984531673805305974565668668817046877209430876886387473402451775959082581567437502686375377124037733553183463191269484647069057016096797128748338472079373384820919408180551700242349975335811838739690814772573636290540381961544145101841134732171153842289554632153725777686969873800308070977582768346054426670969861574815134921036728859927656715829834384302485721907893047264949935735423349778090365859249913737191690656099317200394331294303890496599555919076117948196532165566176392265172061347970180648719375641309631763426047545513172589116071551063357545174594379853685001494702527336236826521395945828929621066074296751883406925506227455749032384158916053820380120793613661180642697436714445273495739204190343320347486061022010263959042016982846973071806984802216187024202595611854692951189286606496341089412821953613120882792616287901302793675295068289481096512720556828986492852333532575311798451943085486325413648978733270576152846204323488337665847984738218877761667902527645274378011142489131050005121757366021282333119893205380904835263192191965749856418930971453176556901394852557179434084699559077002919608788581556984874364539897724401319138461572761252622446244033747206309911293109116572410052220576565384559429523307277745062407505139932854121911849324896266025631023025239663663798456132245804326256042596250521383528145470045980024836803120995476743369207519927762832020285617694138776437867370233512258170858208570751136277088974267482666210149247814054712355494425975694636391217777058682007341238695580220759345856702636142445477483197925539368862619410531126219736940012148136594668695113675815124474279735802973817010924883304778939964225266379138056947946172319891271736945606420257425276046916342866055075203314155799622333567485937008833550918254251365445751604376967924270465209087929909497020917394175372271484051728071039572663898131026820267675959971445931600124182519752326256794955326034725270494299375598501105924441309564320710472587598649704702177807003658787224711444121182560602596157304909664385830380179175218825594569145531767261210169803873580973158522713118650509067278178600919580171514643681285037674007347837929127123428368954568095719172712293263012119114935573482653994028610155026586152631779818541140086350148297485934131843436649094927898973782870981941416936601024553084277243910097373642604128195365940217694556111952740223820352620940693572835583298035746888090904190096273471551781092734473691772212232704916334470553491171881026765706391500465008556441621457886135894401251515815217216122060158095712954448367437850035269705443334396126619433344825988384175300689699310726633998402854426880630012122802897068096122272943802939634130139073480324020113853408285488998510567373604394961250912626796272557578117083301479554255572651320380236960925118676909032528604610071304252678468902720649949002784761338987896405070316772709929730243834318765956213142890328522078085127708791750467890078151505584063867092017644781636503897459333539977374114975191654120498890741803647296388600670426677089587742124595784443744580285435044812568237558435250270282778747132343595229413248502434017412129474728646506827810773370443299193469477960796387235684551356026240556131038960190490257714626533220940350042715452965017191342057973977918990491782119170011116322077158953958108681845315859719232539133128575209777153380703596853850857056295697140309605629086476349753541546760544811542546253565577067174026908875643311629397970873358571710412324586223835225770942249749966309417007709307791338964820345954329643247400871835024941342050540056963235430056205796604780492552760323055866181480403331923315906794885176448105212434367959034059903672947921567382636179960426191012511418011574775335968094273598232251049963828275711612357306716113399445614208414202457923210509564850920640205375859919770894293107506486818568515741897499081431746540957512861267052495055904503427055203119993877499856435226803411052111462190047339592269019682053153664111901673214683399398673792286406182228422591851901612203850411208511608187290563604376821859478918799384434516968874380987591744746945183013480792140983706773818790064022942764599890769955165198061501330354305004854789181456489680646207257629409913775560124841946181994240912007475622837708408171635096260782046766797441576867270460326759323504404962007928821652507852125733635000904796351732884901643317599652301913944453198586266237198025870449282394486470812527859659836338148561963876813620939632295246838858849783800276302803911608921649615175779052549430113705975401018811161429063117096363187362326650285363799619308259008023965513440225224276667994785262565072397173081861767158299567402136933008668856972104094646827340937211506124363810405311346467868437040289712803494281826853022750780351635230667053660827673681085056628493387079963504892483047774276106972274951626234600711576324296951990995638133813786584943685108585972628801154195646808242723634508963206841048276782971036901470804605422275934410571707274345792506673682336417601617732526494633460742876800631136088927137706738698020374326694271113607681564606888726491208178092597933837138247105705293728829337893636949055036939029575711515160627279538402237233313973630133895721004489176540126468373113691368988717910000913730481607993783884082206079373737917423816545517875519354488006245988926528484543637125975881271343368385149497016188546888525781364248008357456519753815710099743842277920445905976006049384256056980498401446999980164076625514018793433081507968136720574978609758696499656538991926386867326285764028865451126286851429644001960767943597738715314848089237899290859883467091769905132018502718757991113304624910302181976319938252677379044175626993864692107357850241773892466555554787025179219989345051298360501226409919169377944890762089199209875634313128711396923702468797491867670450742954363021469050178089449977557979111028411276191078511840079631234174479619824930065354170671847420935445726296927424653912767305999774523872432839599651243814837885813862618701254527260150943043157977234289894942805247363288616468786989192440532978065580950510651285094314052065016640738486156497162481870288964094852804663867421583476239592737340196182396020283624292314524449246984461685477210813678826282449433933802526728225337401527678083408821606102940340448217924044533194605745200043076032505951663489762473854489630226567589734487872334896107788450230280572725678352042298694729120059822724165452691529937984058570248812000025504341528498795985936776358810077418429469151436489749598889742441976522456408980147742489677625285039205076902640884690985677965448436694721473659492385479192300767167687087125008212954059922576134735675984062273527848971898040543007069072367897755064216622291522784591283241686721590986861020848581108289262891816119404497379140036525595926266660674104596065392126802970944354855321983341838288730426279723018937311373004841524390413357396552829385030498459777078506482288545880621548102838344579023826426585267398996622917750397469662303379076290691020286969085777920393671619840798432463270677692030347096466611668437663249394843237572042592549040853919798181053870377286491353288630245728357935861681964379852434541823596351257904540095711540058928009238870337818899558226253194847990510850274945229717123709331790551724652864725858270004748849472012053539604728062821813370548451565466872475159311807340124460598186001793213766698617914470207579251194177441723609619991078379338544496462271826129680323577925662080383935966420428563887422419870882118209334544154992422560058631271053897614520298204741580095698235997538662673339664446500102781395255032169620685817513022431501324947904361241335458690392608013239896748918837228961764285973567652538740728078455106654862783488483132265881969127036856512526729263734930320781251694352558511838147927099889712406706480611215089638197624091959635768162865576517160924566485184685464445111671196540423202136465117757947724109123110520044616703124353682902908128675883159748613118902553556127973132248718013270905956303386677248786254084210165842655450135579737204682966436367085474685591128363070752101072043584931531764943453133617878014561443888434374273922793372438747444908382791347957931237412341371455833926092719884676962362081908678586692681903623538939155013802297739805163101338176314756226170143315437133789317014810251697561119616250606567778312321559180348389881057605490877866420582649180540412828753487824977357991659854800743082219865568030996081347515690022587667542758205247301670107959216851975758936401770554671417127152930934808083216127789522214748055680960954217461066053967573609416145889961772973891714908819231477284911129609989466799155632925428478355800700492192202240222426938616618817904833093416702957347147149100625918597966588411055127196034678889844031480435808376206783176361914569435165030729039154443605909137417267378009337649748001070497003538779374157087834776620219038053810465473228054611821403481410704129347496021025345719253568853383519122107339887350860408180974008943598350609438621821959941366771369084889641746287454579676525346878635480639733724691333645968359352096259347468150831017767289672084753325222861370900021450216860698676882174984249066124832070815424290391205125757289818478240609150714837529265541546664174069092143121301471162702614485681567108902066339360262601829487527206069185658545119688094036529979080877793257423612175376884654145875627034263061681135130095670699834158735109519935879270713460705398470437463556027016508608583976340200924037040787289171817564581983809093787084691756135348471039851310725537903254334541318582814050978157824026045258208713368950236860150002687106259127456334542966257090364417574705361937728313667120380427301780305244637282465525600094196139287995113970810050342241175239094035726255379797845029425740148296935710166193889800821347387932559364489986121522950166644624678289361344408731471532894014945259431193089108874454233385826720218383324006391602348870050955642284472672808662321286780109149749190602544991972986620013716350967912105038774515357554830866342217615153170190735439189562585998316386188357456230508072455570154288755005211063066381454777794932225839873246893047371050425848550950349987735120051038948593173626305060749973847846503010063754104707776187642331490098364139101892413900873952913387457757706405153383056960080412374100310641321803802464158633014674625421487168459962646252342389880527091072628282929755767510851696453505783761143206133717007180521346165110917655746420539644969430495805951325309961027180563839336222877413073319570236335917924510626220218434023029061508171232570811763066934011979482527112051855582922809502563104901424199355296531065832553970810012387447970676312181538171713782025789770366765914268200675123079993074978716032451005263029604698485293335524367792485765572328481548217157098708093968336099043582146097818956631414970593639681498861673963702534685343587094993852236897494781557214488989819840463938306918845912380342291154198593013537663139486983771451869471663540863201279405402047015177885501767626023589319122186584408189251845358073420695537955505958350973434125415195543610951061139364534810254013073448554251740948594056481924531332175076315060393277609748910447345171556644683717341225667342938474642847646084717554384737632271692352249916836729173452759675431715441870508885246808335286465185145170391321536891839274633129491897342427812590781410822547806891075007932021975518529934858279330319458095030732661644511186519501040862618708521832548398635894029449837835255726211679907069744950551240855917078411371059212852873079876235967913116441048103655321898863803107060852359916145927089397536077725588916707078850558849705349244137655784176185285142923745215923778977397732938072307948110254843873252821714740549651498121485141178944305364924236654136041682185318420595078661259788997871508121683249690219537037964998208979686697766509517966064297873116463635234430264960816263598746822655150753048921706927207141284388528083796561993571735115952552057539743082770657337945172324211328266554943463930519418536435138822558979418193918855551703378510164660263779269333171297369236610508324377868724176803821028186778401900710501597716032855428096741094846908059394232044146884168156176358249495848247682004477925050049092286030481389665903266601498990112986945699904625208045609771885056043086248766268700426047132110833048198011813448716674119046249758855582894896116170953200784248026705237954227546979886174210313790472071834820607727609358210819581611048309723942033305609157669214877612571918893776154870162535167841395534596145359937808990195438160472200010116196631861666081357644342681735394058280636682207012327992237608046874968456091265591739175398462200698474116356215233427021575896966495540385418336725400442476920251617027962049574999333203358865091256017567742787225238284370687341649148042489972651494535712987700503548760367374783995874928979985038765244100231618671812242984687211002157089815807794667839342552167972261541369705304568658422869549714639243230442171379610405581207543072715176845345770781008244906660372028432752138768184669372794246397682737965015004311613095313493822035528226019941238618867630461979685856037824787142650036629919727100518188746941352235611951252548293360792631386523328164474951677712223214076169789529326177849844583756428221209400074294085243763363402389914295256938546545806139259124091275348664314671818410582995827743094145903737249762932739695838813849968788942272019496087106751427470557347311854304142657729913209606901889300701586723521016867866367674092422849090490504618512349213175882296369927514438115230436421848899680878987774441171216382540791836850622836736033622633330641451272156419181125515929383019908377792446190438786922490110658442269343522190874281671710012850459504894419368330974118371003723273618442091051757794687054741228799148054494635491356333741774195668860798535543588559805653667480795432193674551923656311888048907035974659770375069513735519680208815108016885526995911916421898796326347122260155188584608316598674635322731220655116647992460633472476880110108107902136605864674208724312268215628122085117918134895565053254582709113959621590605894484985828287792270810949984966677345086264692458747587759299944860803206788882007853295384580138672138903636024187779172058521559797903708011452991903391727065829365284488954835547878164403911284111776446472436571624178477068414039865742110715689239491002686806045826366035455126979928624125469033119187440275262874080695744984157447338699329750483188302256805043777864532897831490596862521490052325239883116445695613895517078727695665854435507771822955105754476761689667067406608221623477598989176465071269168629613222441719829289004556237655732096163838726563149503454127236694565757719889958026224255368451592008268730900156983359179490130432889195706538105599893582705827280169574904267145317071015466567796252737900389634686077137589367852580743465698666983220471982569255244766874568865221967398164635725929916614781750101129885512708567940930975247149092060088531571220714195790705260815258403770805688860192997541399156888757268569091246661223529489138873566490389564742351787068219436826899121661769249281664868107199733892032185969708757560819726513263734239853581779414701950590213207589718705862901602545781836246794905680507260055047571881102589037041157931520340190242180346106112755801898372461445931242411859262340856624874870467725008902627246763590482273433926604351768814237814102168981767462843122908098774605317282017594695145620664099837712193172503542171710431188930909157796280526941169330338406775906946890274329036342468430118088933939798799906261745856548273454866992387058889282320864039029371320293209564001839364799438723450307991414172394132648138983749461506850105711490635786243401524090912070028033576605358231848508389835211600734625631801014254508135693670601666178217331367661038458377874148784253518177610509285065446381335696189244225547781329712085506835219374229527510556870541349082825347298500280013988435173469963772221837131525556736601168049926468679098981469952055755350612294779199700456600738885830483007720001022116327111029728999507461772822723080649887061365245964141821579251529897937507377463342198026121773456721158680579798723457888445959235468382771504542997378748068294552597206313281872944231001349122148309683896343388735792574564154637360491983399501834590308048554886279698416857221520741883826312136499376040925353285028628765840730250919076616321334663178728550083657752372289939851198789923274850042722533428975948465396548408615849698307863904112864246687088383274050243178064005205626410519219738354996913961366798746067161900378073705448064254704149814268802321087702445411934589681203586905852263815500640052792257053992629829615705243772232556350454895335236109471310513713000121721030607214230412107162219404411028745522055009496562279317365614226672074849685380292252782106959239921245614463025394166844767883830621004140170623952160445968799542447514572044507998427478163246522430083592562628736073748468473617003872900501568528249725080454467033656116781256618112392117793225742783554238927505782568467278894984471329154436564799173797435431828239879624903537852799098998206053183169350784777625327776765438687611186754781911816897414263477509678238217716672184612159744595496460944673362764580663747908538506011493162511987135059929001496449537751338248017605197550214140684456568998078274404158695625851236951051878724414689692925992674210858537124000509123757572268470484681949873350882630984315794769294761768521492225513906128543506161278106009468200495887479368506888019142274826314335560301741127543810884825046950756033191534715307178832612351597425026621046161970875395300593117685982011816607348662790898034188557628507318412673239656384645298118540254364169997168912973769852186558114350621228890251112696351159710353650137993510792225967418504837174960065622202428094020427986879048051641422521135205560114887646462492718167982298704020157379064863077636699809284832659326446435246393379192811825198471312243995081620842980623834419522076796784731033653051677029962692388150264979891318371504928996059065623164136391786796756198484385190745454448463893973701746036493120275196972493236259258056701645751401274302140910332717271231682261419556305073802115626875606597237830108739507616008781507871583906851669041149504519111058625867211371737954147322648006199288166252784865884053727973067709638377321645453810872938295963856205284014727383946300950741044495556164190839333648677013462651133866443050595656117673176981619992072859627708725985586043396978458673502598212253056905282119294716123448512382779619944524916510646640863439681893033949514165786427799184072464912912516994083777689487485525282408918580099424915753293712408104690704543651539552293437609137859266650322762962847944337384456783440123031964612988976524800865450351382899855786449253749151263486118955202245171748733138874352492525096386319395665779750277242914307191815374293732054463436804793561100249514141547897649275038544683034948104103013650076010614177369617514831745689966783104311662740356484450845193068109107069506395945024074173864948823504466854050566790602704666713122433387677360808459648653164896010656947078805233232322339474995978413989887327537412575880932615658567069457922615513475326484651642349993075736070902244583225804351085014235334078136721638287609764459458408475502434056968567289172672267855715157525557133381754593152237945217198602475009090893537689293707501493876604495415348105013760246567961695568209900041475956661361493399245956161511241364264680393867145670733545965466314954035105018189429136686670313715233623160598155339640990562369553194486162193838655001184445324995345420907107462743177112158065691685233420867904107439300098446968588900059423036602496215333721574645263871958840077708542025333333564791042667043478890994049028548770304171682891094853637638801752083587310326008251743261084890509512700011107403526855662295288267654997677288967884481533313137838208676390244711121523480344265516302399754760346944157041073091608037357344781595918394968293845448969941211239102304888454901838962425820621420373667150707941415802212685321885363385043723327264274421914585931081824016729647472512476215013107966805263449405395872083540003335443089279605782542502057592121605185365320562842507652964804830717944272013449517691456550664107444248324429811865968632926537113153850339325861904502737962970324181725458867971849066600176515915274542453396606089486124862387477814804864841362312957998364106428291755272580246033085193896152997621610972968818248129797345381458658253396392304829525628425680764700221230415157604483029712593643974523150297389887177736097501607499857111687367678285547714412981239675195157822159407064215675684069909682286573512465876891902542988157991825810282891840762321871101336875221290921656322785525859906797129304373527387220364684541683061168314681777406016240424415175823555515177719239315622584081705704520402111352165532072129317322451859455951487395119217325879280696150599112765309155978757413982330400690741208126484855448794216661988027656400128141393734743585752930373347969731228403706045255410277423467080668150528856509649526448026593444789666777843067942694024255553819280263205040517191031278452132195440828784727250357379873208378116345072671912470124362956336669054179994681988811951339526278809721100692220578516892704267202430981650843345757283217948381860236082638257720793198447800460188559679206270407096428745147182089802229613647352290706994644205056072307890138951066895903380782758771921923974564140285130323222935562689171088950228352705972674396876877468713295792863231356430707425061225095167059450095914694525312901274204439927061310293728838965485024242705189592624762493728438886899695374432836849936888374027567636099470414424503118562907656333131924738216325270497647601570890269005286498329550189034762013374357105740445313102247127939121728998999094705266444160004517368778282652413450614014915238436830326324307771841435496964538873492843590021202716537814664921934884438822246658219443110211585260002038433016178317852167268991186993643552867393129387154147920127885705046800637392653950228455755007570710982275612030796425224763627883292876065209241579444302699309695900219671742419467348901633123132183567773103811222180665597296232317656721754654827116048979263446428235282133115420216285561013459706105107367321680500657432165785172770866790290000317952270941272665352787644010413611027494652452562317234265771411959329098467740172059109815927817390102460365914986639021680322826532661325578852656255658587830752642560696376155725413007204371328279245809949517972926002118261394000740909384356825759577410772598914906940513615976541388831157740494078989494590340331095396531573248577366945014808696062437024503192034176688281238894896158770137352213414133429299221162533551753652254577592727461147534527193716579550194905446114888700385943072470206259441933583421202761414097643035115689654977446673197053435309520437317347322437803831623861802487426716569864637190401757683045450359338038976043461279027311727907513501232906960564519602356958058711123205015291789451947244819470646559516496314615814751293499216249930971340630287206884151775107652787554759892367507268622221357752841860262640718618834338336849956770223488058603699193498216362863570899640713916378697060910548265843783328898047090830534253796675000474036709349656834569332454139508844628674465423378217877728580167199906235847096030617504691076002688869910604093759539651682052247623987524539818512963980784501992574037898094737231527730781606402718771821013481391893171599064929246908782143251343668182357186342637818311025324229599106541274687021048703647488545477107199247442949219176896926204646617047212896800848670118052496849639236797101500159128204979224765767695402153242739530633074379424440420116344302768336237774546232182833806349068168305478047697442528648852346097056048213408003241433088872595796336680912272679920387322948668275409215955794495236138298467218952949640724604204419645602073620394916572250651663836828839928292401958431772411913303348343136930471961212497594416658062631669480485587546697771693497476415138744506571181945671057709333054404274654078813574488932490797807122170928367437738569903806041684865302871213503386711074734132239295975603610086982837748087141943636324587271540486852555052536286515300291470026720430035179909138112930977443444399957544822017580183594773040585637412658758646336074057474151042292216638134491467374148772410001416566210970330327267376505190017841667492084573329059570203363940252764838547977968749106584899560766780200514258829104166190201099076752146500066362946751295608624974534556649490506262829823499336467286830776806587354384022725282791145153545669596718455219289326900431651182212876660111987006082680011015849328003303902927094009459250584670824675210303009732189010425110455908705675870243443545917195196963997700084919386270682607012066748112038157215960499691486240668936039920793200176330795558364789025752106134798387490520146081047889795262455538406063177204418705663144191932199215678849617212075392213355082001352446894880692667716761661234504379596089664456960629092754093958314575800109781197322838390084078206331542925572514391300072088562496995731279756648309607629702119797646125081335483775403916168834246375485305353530641212449010230124865561079639471420767707204871956825661113299762008651655579451125603320460178654605074460752836001095650314768980153001599190130467924005402594023859984396175362042766290280343181454409628079940259509462626271986281159716962404921502324185080537444508541938191255639991913782163017338677482177935881415446337298184775022029138018700318260842089318567072299859344284737880275602783178130013308680702706189353105042847645591552223961426450056256656865399645648551251291722549440603689243111433301076296434543179536337565922861546621153414230705646278472538075324745933242484880736184832386960296810497378713987439173524111908783918757478079020095280158556067009601918397819211915950609770777491202310368102088208792725951625511794330048897017163797465154218372278044228203666497470749114919788719292340586177456533694789316680105074608459617125575852008478408105459869163630818074408857466171095000261140043913104638549653399713749830212327130979901540560539914320367874389978567301149803458784022649310538064149646756545847047098593628684957199758751869179051504948903427865954839346400564273357267470288402492521050565123985472424428077143799842514091050759528691140071589947046313528948615619141303774271144258718528810753479135946162977220612236185926387750480421438765559860630005074844109769477528840370091896426603486709211977904143438704735780605446424680144107917043199002606656330769258957040550586886816002606398647760486704420018855180760845439157154953174764997212970190633613349402234154117003180307460007322947166247284291043824383166411041361041955298305174766645767928442650514353909292735164965791122782032575546434906898803199943757786115020686410291792569869911877788679010109624426681579154688315272122222485470309060258823524508330341766622967080393690895601262665674317268375765950058180845748730814999956839389105633610061931705940845966023109180007843369024025557586692581112678896991298086970535843441938885663381248083974183276723411076286148302620119971046582960813316824385603473627065507368724227859416870112858135306314263999863749797887371338494450029769506605250189751270865507586285354495030217334047536868953927589216660787561275685183180620700415262977211957107782299557009314087680912746585936241902820624251482962309882054202302232124364748910309341513030847238922118440940145455406956525664542636830868615229931052995244991448185484169814449900265456198246666219818035395151853432176330977320874314418138812361980314974328885044002410577697169857429231968184567066218274950478663016964648683224955550832602093346955984378258862688145087482531558253178478185286631768362311724291614257024478731685947255252416886922834607066045696927783697939769927339003740707118479757029024197847740696725788758045240261468290620413029364673847603967383414112483624392142186030005542704426770010749756712924014751400282992326914096136599189644754707751680404687987619036663925227521410450562727823113205029746760230213821635150757827043120636617727334292654087968859761017305216127964137535467814076693903385068945373906845486559765850728555439548040228059763145497063667794561582113723924393014745536045097088768170834083215689878108463134546720464108290872051253844518674039443494193156833034249738783614892884787510107625397229033591933012485627875079699263092572365193739496036183946057928059556111077435859004659716030662203677513630670259828571355763092987382057905542719854090397796697333346480325749506646906366789216103437240998442276272843848684716439214331309099535616582647714832318322501816166813572470218562165814999727224274909968869978969037904857720019433056188560354317241828900771274067376605734341920694047746111155639988378715681492534524411346092611351572935436966614490798341355494736531769675925579537600736166907028625692721064902717754058541760067045556444723112912408867167721966590470555871825751842922645408460198759778197060508069951914877008481530839628901355834674740243774917230562627001763714129997636223780012855447608557805989647208844931723285473079861360127791864246086616284280865062822203009686002267189692317399936888035803418191470691979685966574098394926511883839974419236628634025083173077812665255929507928771196301984416732064738642966111482773736415013506420594213163003223064638063568185214308678922323743894931432405389827469794868417651513407169004694726265518641265960698891654099312599497826587505394059431315544823327500872755232258362720510030047124255353679421881974069492319667241159612415417324615299867949085039486941862976874493937280085254482027340044037315884754485278925793873813949676003049436354827031803698218488530095172712272951532129114632219216179941529448370129111044704632982771278676182601084961479831107425376216068734868523830920250098924165202221867907895331040144322716769511516254025627698631938877670199499505904501912714382267999050511117747801462905840870168842067203020632914952791137066071528314093671211306127697412471928526583525057236495497758819145619335103985012163252313613265017567656584106326169520241608043711508014037733347639760401001189517306657224314245426536925440175848317555593617951633203800356365985281491388301725191101331174133613506690561000711510000762025469745595721939009410421777789775847187472502927480834614900041599267754679518009295163759497133839327552760831163017414833163109380059619670374246592504295859533648506970820407470243572913379149540125846267271474355766096477476966333947486418425145861345206032273154447089407319582439338250574321575857595502963930606970439058009237998887449182487817358566652962108544628389234969819113118901273128893567699910190536424768460575969108093931076404797594310110423327728715285274500060168177773021589975511087784809937271640831490680724713074458560282624407893682516338467956982536882887659883653580334254776119238188319495064578889124098857414134231106453992215733176967381679649377784573042596016491369322788097815788219308879186965516887555218603929804084503190219026232487864250301914277217165585856867516392809317499492895293398130560621146513831046671997073454970268321000653645990391374535736827817057966420662115349451562336563938655937510340902416068405606847691247454503807318082454061863609370346365901595605031579679398370447750160477696149766965322200415146331354089428321759861984734700386952804867691410672908340976038677069330771058649129583859292777749036870119957937769622171931386400994099487103652036132965750459243267866486287518644768427899153640348751735409866617755899174323057059503599535368348158716873841266785599504037125905800667551839546595876677809068616082745336958442094036944400553142387776851730925288617263281552521061792396332102593637957375846331138624537046705203572829935099805133412455749241161640230305283575771793654467545894326586956645277391508250480785417697263750787610037194364640422734571702374845401114622014839525637241165954186322812573554036386905939675173737104701069144640762790130727272421912555233784913620793306861213641691959318664250652364209828748979195573882633562982692449969696769361340943369720617082288726752542569206368840356912439006460058398543659308359186297874898269945820656328897048326414559232974906072725097658526194473553006080360030323913301289264800244857252138731517654951787404143456498984555879509004782438385322935848437689361441970449408135277860654358413839694388022430791056892616719098136194762541528731955704469598253926462218147234821129995377161022069027629648244822941089634326700704922703836206581720654446906558478076687447027611889712446469029278269122073814495992155277719033460160400420838796836348831644179062999732830864323151696557166298294714722266522132538263698506561198534441281788976829720365956066591740948203617891270670452642344262584527067680722501734672099938657409214905513411407462466639255094671976594639825951230169261448571033879183119088738794412390147007300672942039424689108918342224259241536252082325332699997778995022383230813114482533727509574573282197671120023213636315481963818525320367924890704039563503434703693457215645217119280625916262233684068577210608059302281253036276179439977320229064086329839892660113628183636483443609297882967538538296126942678558517387749405460536290244327880203475085734136861185165973740863568544887933095028546476737997802590501589888692839377162809798477885000210867466513758874231300029677614142147434923972498875428146376865819275314341326772281099506406263560289418232833448511816964148096435880021635836418181326878606135812264523995776270904312153655918056223087537425463612529649170840646916720192413142978369449765093878209540999171715134272595558858471950036619551132433720966334877813474448768903635885912085292346203374863328049213071826214499177518892489138561010433421880879492402286895619534677259025009247527782205129591817710492540065878720165782878893960593827735781890953207163604414474788423581755295414162837464909003638830176579599576060738936209833944634292950913539597777413811605059752829094123006451211633204983338986905539827638674326419823303083265398417976154331679878535214821656875987721626033657523129533521043929016070103295086869756574457805484670580658808371519505604452426773177436939802368282301642617102671218942728200765007685967075566538426863064539543011939476729786068062477158070703844353234967311241107825454571017954547659399647467245509607177508091768223896735252350164933226275504772219902990791363333255098404427304340102285480381833564176932109946112492986001493636953930741290748987201615138351804585863016995701138600758427944189036823407520474235842963698400851573550079004272936109176671640842283139204607319849329936628821863425315869717433459397522183133233603176566406396494845549999512185903550612046298442246560247058323714542868148571870277905930599507875333167324494922938003331819754222580641178961921325326672342531721877707349246215347849759222655876741800671676513131976350748120322604159125274709195188171494655849381058295513063471494920454846057084025291840440503977461327237468716741038779646959797557397841016828802155015260768635979231289619066342780882973684067007099095889159789067286442179625519951033003313108160762428870753760474233229101199476199344544103760577503769850024442900502453869472994665214276977873441549486237332628128920201467464827680835481304336916678123439893118244868451652430145374976407855264997585135266349811635146107324045811903428241884321348255390467967775628162056184058805387383901484924693151464362550957186451912779649304999904530102262061327909448475339509057433991848040924252356596851297709432714607203321282786670837383574341337472382288018167334440098817452819906277684374422842826508101044942679841902594250003841362350837731183518318134661389383454516311208176427309192746335359858924859308498807189592672156799484407494072965346523370712756151573467247877062305980211694911288467897939068690914997642345637429590233650589838345583404544650456093952345940372441027838091428206870141069979553469390172980914335493057517864407493217035510857920735075754279430194669518359082158835893970630074820856832638829604414703544781764709703284904739067198830352632234687679931769271349636559566940552129291998636597911091513038359551449602829711712995781328099902899196609199907449714766922477454157388908598617488950095185006795198248132223244495443773229743837493281288546666001190802264695535412804629693228590527001859914134132253078069776186982980048150967935036303203642488104891154363978663678532774302149834551775923141225427167734502581323672057876167390349756861750116819104855598559008156428194942903623845962581217122687858964159112544043052140306431239116856966274037874198452064860628918504800431569746324763629275394843880320987994648620841841132817955294274895566973027402463567879068446277074059265092613985278082358503303619586703113850577077219952340783321184323032186847950605157997161024584878421120704549234142035843906268131822152567330580998000459434411044953285197885214697687882983123760972766306138093221845564552135982546682163151000867309784382979378226624213386392956042031775550132589493045810701857368392868572018384287611848886816087503657687462073133827525180443976293960262684479665804157921552330786447676216647297203673084080673124992703825543577134048451611222430924975438001400766485240931764283224716222790138026621137279439741472575003571858482245497940479058853421368801182093838144848786256852283514857128054842620793581129631157095579167493810712661371943163969964539129317304661578731099079198745777714825834907232058239378351009116733231740954014800432335422879749084588155766540517493197361015205185163795921745078974119184332134590754836875455161751945546672884126876981496306507287019583463834158936460217278358101048636221313633987687484131894783110407692965013911195947897439326181577880487722218475791933895766075149074433852734473155528693459487333980404191718532090832003849934967295156773148056503968615507489277768306216076795595187661888107617494100647125424519169691494737401456711563762614513316894657363062608292437134457916308753994146893139943168729686028621274578693123638924594861672151924686535687375845039473207687691620054010546522491475898908609540895378146410868398131279359944610117696494598447117359776640233538731229405855083806415641567003077011910509371827237057092846756597217600501591322865208249002896693831774318642490167368905135433894403324921958538395003386071400666771305027770150636093349742176083967849858831595440561076011269730393944841730861123598342674386844623861449267846504055014506554021480719423988230225922463747901355689372459118777934440789498764383851728613984991509830926029026860323332181086537658093748319729166041109873883957416678252208226509893298402146610069264773467393673492633976940054417064182552853530997450286853115774516070852590326775755707219423677889740727349470258741010112401417345713472066908755822549310205138723535685116194468525742419189747169718563327200460112048974684551594626554498957437800623756001741310951030718696876267543926662329153386064091414378739437910916032053369685787863620892784641182201401571277606696942530863433220044596722188081286026184295709318899872661775635952516120024880974722538061072692176194691641420664023919189586587188050318598580455744699628492060939032448825891410570296332098357730717271017134455894253748843492591816007971617897903103636907905092084147428965082982673365465320724941846195807719806462354201040858407771285672489317704351434161783328673762163262556324914831526822950931489413816607816279150987871310870675507792651249860167897283888018487863301792638762016407086997305731251934689555332460564989137382324967520792614699474894372268114529244019562982199822320385302119352862158674550125029549840973910751599054220050053084321288774506731792462444651121634177657089440503447329392940028591598093139612573806809588906698847144665761807080457061442104984118016335353105210757643750257659741321726396877717680582210856145219778799532414296710660143182975575454358637854605301880219449176133148958606595193308170786203708766816390141233906705557916149210296682498623993411394281225376117237929798623897637453507524146178151989607468235132085448589163712349821076776665832157054140439069888610236651410370701307848387454994136434397250010206497560665582530964724617440348553830752202296811749749677442150646552308162277252845985813776661687080410042312462053433131059285492436255558864376474948557462687798121439412821883886761839297816704715926499673535897125661413875552357265943461478499499879500450805898464386167374988874658337153384093765737733393061556336265212529229114819818281746629744459145245638998043582172331939284101809697384202657513265170113171078383060082079752710765663434814227468574706574741654968124835482745691935730567660697556544425555737694507822660090768841649308676098402461154123256203617623538512008551931991841271239737940699653536081645162211042390963205491430419756737614742372768196945897457134999088508380080046213568989829034386427415638804307612832189316042335357238541885917444798852729891211115893086463933636324420325670455281248742973842066660633954802076528044099393391531385854793730378707410509184425478904640832616407407145431369640124450212544450529623747367728171781114639818574012508244989363145797939880208907356125549005818582653401252820207883961052138467255193594512201501924714170798327060783541950380030311439359230249036395216064294381166279154531605427800247293531951679877465561889792521511229952187489303943810970831402603672049864390515715282693356460801669877524954162259497767355537186531569147942261113989803090282580932277548633690373857092730771413315203657555248025764740005946471946787152159649348075712401604234466783017326697824924711587649266156506593983905061796028655838141328189026536590066366404547422343525040673528399015310668991792594081902418306199727833970684721276684125079358299094212661375248100393402498409177629532718684520690755613064018351501565930682841071481708835272961900162230976949445989246331324018057801970506652494531634599018037224604905229963818970779338383957449523497620382264155025813737202727236455153331147808258363707475386911496363177158094468325999642591709561014119331212650384467003297754624413503449916119000027920351728977851163968471378317451030520094969087816961648743209302972732764165463903269141752570339849707909948660137045904685641311939995773963808518161664971108069662433507485261684074165979587342702886475260134784440373572169598519481009721856454966050531932069861353280064155842459186857240672254699757417267136458582430211240469800328024094000234681155578683521176563380285957081360155368833866265146331529356325389010105614097500064292469376312360258563753510115813284778792327725348272149083978580092930688566724399608456735052591291114324377716304836536279672986761560825655082456673078167163245482080056048645023835378824400606160707611285507099275231438480844726461861029420008846216616916955251257993959269974769428901692310263002808501314903352218662629551020996200234480941424971627599537224533758950196026909902826770555864775380012502269670028736332989602412528305671507268569427209243772152128053818234544017172902382445535037257599729653057974379601866977523616396562645212559938098513255223191148080495647663292137010922732767013307278293460781385369204883917132155694066938403025503312068397637972048862469487839856156569968402270522051046150889195420157266513746958252414647371582547972217173769224371907643734414928901877528370135996000301307059202787452073116478160499767341274218909494410102441191559418512527385229551991853503466193061443845056516066466116813770473555175036362536096000488090683395504068068962496206068293301455677920375535382226510297907459518637000093704553867196062281534565724465503081172205608554761263645115034111383735790525475161529186034124647346698159955363857348933461092392436938007893147220296485332221220211301624766034638350673068748429478780724773030132371960000505936190663577325230530026826307091684139514351346854376116697013117820792761622085324245149742576340540293940176144562952244745489717893126710884978940686544987297630637303396776574404102565269302482530905251515701703963456196388127190891036926003225246808377425125465322910434255560700265170217480232757171086194437102544583500954775812780679057898356457746275731923627980094625251064333380293015003298239316399375245224174247945243215823403760669514659939186650601408729804482516319272357328521266262503036779814415720769136660182846881216788092179034433621345627511330356747260350482084134329394355330365581404666769676044594022589132813484917841154387946044292294063427487403749401710000768451716025520689143840885577149398037114064329284764053178065679212951844031375300881961585791801644310332200326716436790583868582557750418212935946354409418423707186010151338242809306383936819980009525142918088844054526005667582428058162809920265292452338649386850574646543381620674764022257743082986846281657459144743181642366600701194950496682079627694325438266015160959528794433832483484912258846973593044629102090954201843697603827410788650268406528277982832862331159144873725400905331217685524074125259283145118293830638260034228515207651750795790937148603670425065199326750858818549990056764795130736179865497075806979516787446601825959451696212299219201391084092427798560346892030610280734918657939194612385411738088049799791398374593389236230128770941108395343474620100678021322890086172817752236693158259410536499449881817225638902222176769049668620020563673731510589216847946869012022554217562303626165419131064752151663645975154593522098814860661422674461203459975612750721407074645587092308696535031111232907673484905539658793413514911104710641945504352661677413666016541681352753748224022878099849517090063000937232049272438219856057764201006389564828458688791412725116299079107940722144553072653947795091970586003451684344865204554198817802029361108094725320001296537399443005435473576225163809536267131122116330090710931421805459166864814873368314928640847784263473990452921900160793633341048538613421540015440924991070162454680450696308308755951395035278633628325941551348373571453910684432238882594264024293500578889429458613126719850778047798194771308597564768270106476094206479633656118855032151189975153337875008505576106928546543774821343156466169601413857003769571799335836082783002349182152156268684484123047771691046289279467367453499741550132302915680809234114319032653958110778666868667969145878157521902358693119666276490309015656432090793487093557564268159620396227590361355694717733326269290299668721717509750667464894349571169665907895533040264470284436743236663368460472795121551229637522221397966243041110759188068864514840519080758122362979274561410356808243127888185016501397176612585218962109279638443493806096537932236818828076885564074305382612407839668725318732143682639899097253895776511125469783454302742081818119272859194717810771427139494353081092041176850142731099639512486191981121882344774834563530358291052470360478649854455439628495545313572127582402831982607229690145891636196302571151804840952144161946994310791992251488031739521687884711750720461705656349016765454268140495556546346819557400595093402727486563556065392131728163961141420695708248667465826511648555955638041927533833554606290259301301889730491137287075770896555834184399791046979080782553265286155934186877081289068109946444762756960476478927539050158389415828860501455353389859480667636381380251701553316100976709294258379687389198601775445033965964331626898460251341468606846457806119421353363762508415896704668741289608358328734015044729445991118205451667370445690572357623204956005579636061969658103902271943022762278479363768192771976603187554228341730775990356320223409489169250183669129861397364808941428990478631942838000172892766414618251052301903501157363645762258583428336079098750374338487753823567030077090186560864409435880351317102354998531848212918586135550586314139113477236424995263267529596330912989546505834620209923991477126823261366236775385383098962339658300004705309081508490388989675817139646044775319501024860063819043626679429284409204294019973244117789727987397346513310981365074210156606162261335289198828873025109598113676683042301651839161893220188450091572184633862658252689739326123889239452748342815733785402848765576214492448667793742566080581103253221723234534639372524920571662428674375616401127404338836818341954202985848011942978820839012035156960383367748237313117718374563089030737607338767182226257691424768104816689742690407069019594709101030279348087439008562457869565553360516398499948950890515196807424697177880647560294359549618099228236461559978861943305311420864584054516797340644623195394648439724976184142722219254607710402729942841600236544892146250865235408486344535888676209381410971392265201926522355049594198614698303748551788344546650198434452564228040222737686649239126221597186749053622190112779058027216179335672117515794031502623314142538124602451445875557186841948871646066539455706708099522056789655594038118705452030326737404613854513250827449951149833909962016030941782181127291442535205524637279578196744045225465250146489943296314055168183276589574539798859499155738740812169775437164236112705845957928676602812194633178489482930846948976639284083993096790146430139780547154280159010697726359195087534794120663585630956668659901211552872320607388854489328715213701324698498584995047500744256275489527555431762397792903347997100896213016023168293354316893010576332065576178352126811723574403691720200043864253013338978784863646649040765093739232727782115199777756838946799157135382906236656096922413269474693638743523460578610978671219759434213117214534163383595401503936897332712749138463853930809954038833271494478820989128679643187676622909794771711063537516219783271126878132842642597134671732095608515877880722440781214097079183577039630580164444588172816891106570882038713184069098853751373939052463285978724678528698590561795093135998401542935949766760336144925005811115038340350441701012244471434276762255336275712961050184582069001496823143640952207955212316270198725664755417333475753748848939267606988571267976850950089910402780522291008075333002916557247877476722886621461697965283085020027544124295419138021893296183707657881134089512518058691118216625264062963511917704850735385475955129870361496300918797020897601781130612726932776086108273759914200750432003284246405753400154005820910602100580369802565832693984180069906276294221969169971446759891403168988781913232990884055585245904288167048235678686381200475480668884068432715534574706367270653067964573144588230288275543717883530114131939841199892083998862501474047410342248010767629935964999335466812089371460467636581279394319500734121545221277391760481348895547599241100416830512610796886640581302188847458938045663188988358496375982089148841044299104927417405189684439566144390537983539566578276099805152651015029259010378465246364889609108321176959650032545951891659184389586684250456819267501584805866019989239544844976063652118983047323291603802583153870803868324831618653573703736985617445849967679198903410937113656212340122784389468737071215839794739768960057257563508289493827919621088101911076534433326164889490105857006138586237251849386933564748965677842096761663414208299809822825215856701119298002609103451874157592075726902781628661562434738173620987430962741784856118291405487658081412678559211462714246990238675106382058259837886046858282745961749171122747940273508151361621456614611029027277227602022124925948083444738698208103921033759341840863018558809154913353543980081443484578457454149112741879600837799130669507437760051035081819616594071275138284281505212115915301351459129584556820044372015375480618093418104143545273708582170222792427262159608827628655921239510114370074745785646017585682088603371047925953137150805008640260220181830833874090598211070661521093205163788375620325579749970085303981679857209840799573217119739973076068030249909410180491425817446961669361565991223282486986852208476392691264795374247960244770961414204798059138270339335670283288085797701426675693093046346939406307335409067910927913292656887202408585044544581615658057309103503384106267886364443269720270233596241283399200242805677000075339150809196580790998780165096216729803604289403823462370212006425495904693080405306658917728426577543668693821631273435027004273607074721099197834557155154616148986725528146642308641624823527128296371833333710026980431062776272022938579333175089129971941765343254704472221078574490950668757594337150508024177436463908475916870211713743367313737216480059204600898643461165508126703562947202540798361188105791662141386301994852953112553703454822005179166105000068486129321838458614103096987748176956348488520442065999831029264363996184165281929517934982246047927195444281311538053788642380851226186595068208636218475284119480693650079057590836506959248536476950937858991389664450447832090989762196850391494529195100994142716973797334062564548535599202358221641908399943892658919769284554306125996109790583581720060068709454067793282354152349778990524707223487070088956617327927349417133625220346774093644611014860736285917880901790596687463773365416359125787002423968445436215737397544056786589582483332597860084401935272954689224164800976927785759429939634175179217392188306878945264384376186175831846529268475472970555587182622135119923478741236631659515105311695644574386200067865313755523701794937879703828676915736502790912934713463817791733195290929477793591169055035280117654562313792578753201905467656363965202076749422061427578724214515564421278508721550790131827806636959609355769185979047386547116337060395017507550181607833067358821879696399447791454902416294473122920856990883708519751192225782300902874082876791799398475296806517750671322614362998471922448726390691662060834413856133437016908236965115099577313712264191002748658715928485321604608002002027593836933159243788088796484196159749734081903908023238417637456106767584926698129555742581167512740120336374973281421050521427729563313345100186200689609135730552788879438297792084141062931184711824896584983227125341989575215912101006668873647736479206334195837456685299366796172917765711670152133230303402366269907686242764366079063490051440475404630407616569410944327998296666196106887250969746544144422405234714723481394516404651314160754536206668833000155259755712489659853313471216116004217364297901929397230813142838871683809913500403522014418570277137604465027034787075133233532812784951816364654714092613614446971605561655246570771027744137597117766311026331221727328860380060351483594209193231124956851814087813429698194313593833305097069381274047791839148480802531491233685063858342454790446391777347827930281321043931292565120587180540414871578158965787218596998988088537636098960877152737905356660467212844395003583182386583662560798471945775932579846607268788861891410929166852214782108930598629283655562695326585138984107152924228520381526699613174477638507440293247625432364873772795935719691390933645753961773906761477802900397914368333524173134590846198793746506682339224155528706780822423910910030903837369726931504615908397545105484438142545508287151674043508852869099193935316891682991469891434890852691798846591110486023751726653324936427477108948655796017749925602415140759508239180966726464453155030281704308215275303963633625606248584546251341251181809637090109431439986565847973265773983389900048583111141301857494900701623030985559426954122415161851526246143611635971023700622274924032012080582831317017250236006192181016267772304144615134570548181140299920407751971548362348936373184909179205489782853636727323459282586680147812645279802590639072057079329702737038079425418068502303577904942302221334619508836513002823623447941446994511021846862259971005635708765941834511545737100167392166447066402449111190011507520892914501251875984891499913545228444070147909821417371367252778532411731889177159162417583395937952387857990037754345760589103196709239565310565137218696115234860455281487874886806121373359114182773533790457845967211020935929162207555307036361829010942400157524640390870504173136429585708518808824372483683131326093932374466459748694898269178711056243257702558084842957806372890296296124830919205075269847242888526798105886728783043421404103778514449010145897926890494874580763962921493443262633431526163153077287899116852524788134554645364857947079626403617382971354519078936036727838604180706190979257043638921635504933749542105789667085807039565276542680757673989029453008101676928512627422714797747623132985205373577172806371861398074250848551565247734943724412800970972471448797634474419630001294831276119664889680145731430306759710263412812311445441810230112552887539673510815142731398916935391988304032664418468580793143894655268819054795668983559220510667333646898133501357250015912826342942512070676102318472421378232910715677889453297572081566597742430709343333156335988784068061243173463139699432618551695767668539366009922064897328542887928976800117630323340723912364381913065135486047863522780025682005264167238971095695106617866938123081601165671475406043290440915513275786525265312312136829112837941654714462839118517470243356593541277098304590379291033935086341415063001785200391262308433199457050558569774556028975453258141733863043236340378715397992792721211421919498421740580439113946030931995404172582423339260377141934229053806319954164683430445313799131680307849806404450120238512551651257912194596105143688199783541003580397068226274609198874861181479010510236920089560965417960925970308299085182144121388597711500974423553871962573567671785638147603501609381610779725991945267119629484099090967656990144430695466703606208253769149250765078319898133672967021522734364777682257544722394406507135301672280528424418048957152113936685389330273562064582405563228397856162092760912292718046093014402387437001794281920076685609976897171540867309181327577593691087188905568334343618319413843921133975717392451487478196178100117375099649691642243161869445677474362288555832204214965828531571168726682498080224536997805901204962385686039982908042407637654010730938975982285457329573574472298349210196835676396137060589926502172749904645102841825886057826710096293400301276488043567395764397858419356139940786861055680850418196357058539793947443437651065460133931126279706499992746631844518164746297461299962959593119953257224912100976107134508751321166420622930702145474203950094151628419694569878048088029734906539931802707292493316128280189507328221758944947200563761502746758577460708411985043263933594126576058169083489867081056934855861540182386182924475808346828227976223765541337773833137821347324240531456495870538610726641683185061044358310772126319423914382700799750778825531132354493988661357426185571831631685582489456247869346496711540498033106990289268506108421344437755650619717106965782930913152767409328564548776696045888362109197420175165525996688855841640794685065016767438968351331297180891608865477439682977910513777409307497672169800327167249733043830285764384805492920653196848853757100229559076636222999195109229844042731154586403911942729487582528291007531754423852305374984537237596687129536857046860555179631356223428378329555085163183885992796350884867343706485046020613761666221473524817167236317410438607370893659678503178403680740490219240832676362803682752238902103350861455780602790700024270717874192734075113360037591046859686498921706068703981277545850041113935760206977846469284251355502222152343920294612558104984475400528867385935042827873894425502229037362846055305491502908214885902947462820372379791824295095597764026544242121869306313085554101529457497179963073030174778541460229779464324459470716477544659288558965940736305656460803532765981835310981486858376286835203923589710248422459381744334770773862339829048999755173956821544096684248151142601422091887223696863851176147019742606852031810085615854034795906513125132725272879321409728157367967612564671582265103752714818908487096730959776981708354016938011957862018267841820033496238888135131728246167992919987781045388634611246554465172241821118467040829603775778185467737529116031732974735456998199064510704593347514784218949139464751242437443701661369051022815574479094257474858949085052134474076189954604624756493016975533715882971236709645634830302624694731732663364482534536700664171481871662372448280077118514530892545197318187546408660713374561788138701391781450597880843761841560253892043956303707848008179750583337259371599690286320000092997304982404985753489008408598641354491836097589720261494369568291074840983427361910069006480267590413357898127545271197291312332920613663746004139789602687551900336236676282702312215986219986474067447893001620420749971845265792281418802833808714800910199061327418111353904270019360034131454032717638449994213479470857308933217578259973311530578110074160016849064780627540027523556765423986923648279608475559080289822662268110633404840702206110411332389960288661170085721632945301265073637108238959670235889296762216439130838858865457116955315960287320682542693150102128928969452322701096356074258535572047929566180444191424675456882716308235238877848873225885527990408299417662067595174507053532017108381252073330384968084836081916099840591992195336547398513621559165108794540589666255804984754134470518745415223082936406070424993174435192077579393731118037336262674169893090320212334522493672347736441443414108189621186907346112842360035037515309823160287698650446407730511323568679065688830694115154976705984750714356598675214103535064872231764904991793979923483746801339580802258167149533519015190929557376432698721715280822971646363617589884754815520212962830126301519778011385259310031099991144947614309614591817180326013692242498676532294536455807860651312972270660561145133368772326081590176299235185359428035811760351741206476526643337727198584355509750681547865510404631801781558110642914853977958812219328062649604659944267016092640037332657618036200084739320555108926091549567871794242679545028752146522441581853404279288328628094383389301764780997017989535756028923580639458199145404390085066075086017224530214262423120762941057738357923746177496338752501520983298682108867646472020825493092489668918154873039175642813162966462658232111537257315237414241314307146403434717777497039697407857038560456938631122870912295690262196785776967567712252702902925255735571019660765431934450666635830168597416081422283677927092580950552212257368976423841641107502583937907637804754343421558982760452498986691936294036569955793744869126590917112287074344118572416020945263917598214267117276486381387338183885729713811741697459323083937101396521495415672933273662726693637221950286700587284239723143431100565586647769508049579531978595238984045036215584141587919747669282841840150990784221890362805302186549655987752384929839129257304607963479162359723816440695650891105746882319071019490470708243347970079828585013744574022261090305832232396406997578597510616239347267758534670884209728532777266973708996086544624288628280801553388452803271055223285696213330281931735585038152539147230895491016247193616652836762707789743211216628134910457810287029520374394931657079004186903545348181016109292736348206184364492793165908833648611893527712249145101564360615791885340196231633798179670388542960465572160270946347941038300946036198462085688096270994217525390729722511130243225376371932291276365020240843853433311653263335879968298058668464904760725524116722966176157061386796078917368529679907882350350780955659147765876876538177457473699228670103637363720140581399561150392475049975473432478122998922812353433956914047088919592744405543121503591203005810594941501554992953663303118292669306905239352336946349752495026573018050636883316113822454423325809524504610964534099946039914295055729023053838188884206034988494606040838954624832067384962828614247140691711383332207516536162889442841975634957572735311515785680167269775983762518641200169757739338598633887060747265680970497170362086609043583797008623927209807358267724582602380339260594382279182449868480924079818909592094986062516154397595249875484229135519428521485883202797937908901213006232022618321121748518313235359161070674500643134356354507547526120487948757136331494405535439252955823587666143005469720464648149893016597397273396743631166438282980425720875882139534593947986593187141019805738369773730624379188653365380027176496221113742427090054563174811498341442387992214066194628132553369022744101540133284685475671251361597106722779003204778747929188182754291755002929680612408318563086113430148568531129943319678267842212288326330222521806902569410250392001568656175603432030676806366816275333150169918266289444309994573539241956145080770602721410472153963128965348249937332510025462571983732626906797588951739976503483868522209791145316238862420010211807566537752735396657377007155694021775893296788456018643263656395775793417330390878934082768017166974148490598383475159805842959498499518761997370023098031623916444248547469192798207882744864147631132704038357545660367825087439994378033606141660943731780625964526825438864516151958054671175445105899503016923118652344384501040519493054939619787999874297334969490883797079393642319648509477183508231342663013217206114381089676200687285891146604956890166512869617851122828098799202982783471672971927844537731484786104834772440120146421527102063477860564699865192283071329450154600015336949269653423352596280472580628079975029444122069562498047142703581890870873228217635185962731222605841986148462264929751404160277700356539459401337375743818722669798172923058939439897875725350757551894816270358532836718390813575674920626234561894062105704149842277581603296403773559565653939711729467505313669038403296562485824431200503394984791163419321168655334437051692745048166980885297776443082291492962553844502625776376349047911599991699902520319297755238205842085809082872081181216421086783430449879402961162720480503247334457342421072967801649906029461797321016975956207982364073309420353541589466234548698972907817890188058361089401192190020214106443214095266918313253869561974477822717804599156448510277592031970822139961205117944334269215544626716841026929659042495024731432235409602208339143967053646659550517211943143073573229815380871517174794593664012789951884694171459041278554068768927498133593925176697699865677938269778531357084319097011238638506273048739444876136468080053072360041701127173553213219672041847951608416883637195650909991182300966802221716919696100364532867875320002777394540374635314880459347304762897271979180579606492591769779648733372659429843427356097763556282108638321926945573536687515576764456681725110822431653687770937828238591139739624418871245488239143302082241417394773445419379417097831806395488302306767970021415055749225449319952193819515529893896818087388493656924886579476104647228732582536306626703089489579534935613406513729268217632791119278746361069287836372946561601405100578431111938128717140666561495080813111898202109488558561096621265239308567337749296329466417241663187914574551726364705773551364035641030648725866472588606775201376024228081883654278249894786703780584855454067901852521105687085006452151860074828848727884455502547679737215135123416294979507476923883208780593566598341629297565551284200133698174664487077095837525899512133647614346640446234016500561883972965695891491860964160287738760642334768071523412125281984634801845842372801440822415804086274304472512256722657271814772929702658224405931624190197020276172821230115810061438868574429626709096242155659591038898338580420043128063215816922179971338408273788310195551586650686412065800422896122418259517008458656640153899185479003598005337872661556474674313712486580265458405232916927456522713664238584356856100379499437116424823452712855976294396090128548327531153753209484536289309220179546608109591107757938096916717892528867541575273760542084976747562837035170460790224552687313988989077188582975578468120558440268988011337646872549752699620919403490282036368959675408733886396175296154227457542391009306073151223896800586903118701216685486556305842350943071353068090104702955037360180768628518513078071073926828246461737992726313640587681494448459693979323168123369081352914188045452064605858306036941095519386268764494969091404090615502172997554957461314052300292276656353196215143079771011692979902323639710371604456994712766010199051047422338193378525490635313525991809097887000658666256491605408037120017736878653565263056968686356170204718123346794523164409458138725322474473707746098301554455490256968018211991063882831817248077894661643603916117555470438832027084289448319089602425936901325159258948027001357406776600117570699604165388423247738031709843997183714804308786954256024736545348664246391117877961688791122045499109941030865369394061838492915231567849166535576277821534085437699829462818178798362026496361831473710352722472573375190171471339489806574570395683745671654275122647836473868550058226633459599369163216263129768027999815405405457656374950235997525776250537092212052512382314293455357759151560527648256943342315406822878995455327436679463325734881809332554560828727238047064844706168271243058709302738645021545329307430952020102826111879363850654488598208212490260658841886197277663933077223823668279969058581184553377817828986999091977810659098102579792014622224894150812513318559941417340465832099137677099702361365838472225196464104635137532568477555228662085465548644601023146003783313701625447521714586318985565136370235776929278506902410899747786212529269270664688993052537354551250526335270388741157255654262845557802776093320895710886031712807342292532063204200141169414115168364201745699036574589339158543442502948073462866207101561500762789558453628615607832554016466040218697394890773291473067324363127860498716564493987202840798579928501323886109378988727473814593333243327274087598836172477082196312999926545282664440768219805484702546671351306978718863996100762393916343631984531861372216474905679529333020761172771450142541446789647705714569897887113546412581127920686886852073470437061533148908060487930374934384462075136397592976882789806006768068329648260075568577731690065239922024324994684161576414860929647627066210517588115357693342103612397438063116444429834937289772798225013784239731825319996057363799420963744688632567331706184941281222125150982603604193237062206941959463393914393950347787276018540164294821966827236519653794490437986880298675567161940000761217812030613506371507262633540623495891467992693133640436754171875139011512411531536700866349818433079040320677489425139946338045309638125903992951244757451786731843235658953160804937338828586888838252409206451832260871145865689430917171861452475227480185796952747706164801916856106331200115771861668102678796186291770507988902981395614260441499916208464493226729573613705243060988684395712846680986699679388083086367167365442469316841727454298716791624481872139487997365878046907322676249009018196780848513214157766561786803724764709788573421821752536012327856760539905140021219093250317513051864641080746245679107693154394698885170233707159579805882794603479313879971050665770741311041255294831558395619771362794925317725021857558224454684447734489409951570421170904747371305260752321601735440519276918276322889391660687264921779438009946929239462227856918128859046807521246439109480747840715451418086355084174957077063029146301012623382907648742407335784609475692817770822455073697951581801663612695103888178909045903351515675389128400232498016333595469529467072930611253760949695655524258895547859314988571775724621688381738065843493106924912134431767951748065119137140168574541433144036451626274613090753232029966860843267137647551395800803477328407818587752809880111995835614371881247977439575706445036970826765776765566390863447797520222821239181099457769589415677138272264209680663899270846499675736811551521066082237511167957526824469936885737830609296502905827231289845600868571027839032567295112351849860572719622943529691067284053484683819968624702210460238215232625889030687308202838791083820573128119621984748598474049619318213277989066294358244666582034570596663160557279684096327535012114433384061861906218159658341370499991162890683980976076241536395893315156999815122626778471212465162538126138319770536995593819439582351943993822760397296545760834220263243823370050554923448083354917911976557818304815299614964755956390425850178998094354123615153909563730802109068021745685225802218649163234777627285602861061116569775912938201158314582065118463884703049956890449057509705230540551022382880449187466592442428982179522266572516199535517087145006848920723072486877890713517442672700869793768948353233485808132972785418745513981620670112034629795183864865210036303933732334048493783382047181114749231214805915353961687103204602640972480134759871969054763455931450991460005519286119739616986640060083544274693299644225414908854023948213933128496091893272721495469742986150870640350323290308011292796208459379566458787680717916465767915196056438346576055460669735855176323362743063067851663648226805457151749504820003755931374903244318282581748901907354332016413123135513647297840251451060827496147025859034692369052817103807040559926352335905967734064799746036093400130553630051906076895324368475162919253268376314031221177047740098016070203126794320170168483548707016908771427345562640353831782736250809095617199479360579104211944197295999365209537043947637766803811820648621412244709102283246766233564085748074561059803975128053643248719123108070278649873873778436017612330710462318216261743888918222850934316499655101417683803357553967179082648962321668168486837003903772802852484697108970444879155973095111616420224300416310500216285033280931374018318657751823815982900904823173202460845343493631994025486779362217972480114790994204876211591360582205059278213879931545391100435764865908498209415125830143996847438625067596740332350512013843603355622513176532705407667264153253298646260144052152879467102251776491240683126374011453927960072986776102560860128468599630964676289509440910532641104331024760514254138168484216728132781456561651337382381618606428768493058557711826502764786412443771425672364865634993710283612208529305203313257276635751521581066230928763449071445779501117653992471116909998205777431198238278827195374576749611906310723093265940823720896607525239392764046418438248160265109628483626201368447930851277464092204428354474194245725334800357571436426754778614275755016621923587566151145002005362796611186506394520339100173618176515741649512200295343943319961237981150259953052581927490627342536575808447098869303851135968721016732988799912019745043248334228376747435207811182538572269956483108033663196048926107781739143740631637931005047515054786938803542591159624472870105830382131736651503826073156799290222919922440446916877720625128097276657388495379618296351273389832234678197835108018486935446369918369992571040260060717601709423536930457192638869822122752146399740156869870643433740069015688966587084956052582179576605225288195011510952818703517030663137684886098157300560361519668979412485791770682696739529991089516862081611013118967379765548747917917016332223753635683851309802159486809072542892767518146803132365781998430458599227912264512838770170368027215705127688830720391187516194833811130420456619640498774431869694045069844103591073096964559246612377271134962628882452966214954399774774901352573017773842837806283538376544543232217679149047236956784680987229049977306853465395024560626346324493326956202257812008511068133318431976166707896051476612066838853939331120907681691331821898076355773577369076941001800240247144057506884738553471992122193121414564305067204398775165759990202324846066021499384982788326591139922398516344233912847201677298693230411587535948835801622691547087353811348325183683542523705066709350166198798290616391670013007892038673186446924122796064474975140105678573469317316445666396320220485503282810605481481532673012541564490877392032365735998106156379803200006510672084824368844224733199746970558041224702197189341066816974042837423582280546505658006905978367899311405707718849324868688224473875687059078334249912684704070117087125010575005659837008454517886179036983890830444697998955985988457092181679904544103051535479163310362806664122850902318495740101911123772435312591156093633301373165416037125832096435505440675488702485182984137622850943579060049341294411611517399485047541704290053562216256248226796742447470557698262230158337686644034911239255477007274591503104850167248549553836066600222405565480162858785690889478070362170310347919704548905049184147926485242219102951188194099717071256613635241030117734241201654987867601436544846025133615970021793600381411444311197935152424398032839405609341409005168596747368170671039754647925712195550403993170372803469517759471710212678029589097307170610630832830368057604038927369873639365248687501117916905863381114867922244340311117552046965501676358695171725294625334660673910005096178411423535153714955340625893491465933728709718511452210167068529833995421914438682322988668719891596098145084327865253252370402005924938771720738872484548981035151809988448178757661152423217285531887644190391311902646425933317119685827830993637013112791278904334478289849194969942890869911052239069792215581197799238801045692353703736913978036744286442173098174531634930684139145104569873129637997863559610659299538669476911522150554900236646975072903137508510877194748426339674825093552859096101407976816260774778858319819267567020972329550569681837586204429993234356719729701161672375112008263471263376600037614068088020972746942380714027109031922108765099728001546292755496066037852664104855864838902506815228938237843394173500857230156556703748418300204243865740558428992532827910318014400886277111985399993435285664538358167662420711842479849292239556414392012763662079173813130798374243748078108117061328429904258524763284266541343114950433805601762080207581267205231185053788413051270651814962147329926497189606996716140394301997630444331052516593171298618865983778299475921505703192439753002543945055715194375089161433085610479003065131404705816630298435368810357484489976525035419286029839259003096358405967963161778955949781061118533921838730194224921304535933906827407190750849950681867542769824488737452856978100166562012964031242006051627407129782499421440731823464711798567890309088383154477695015459183787089678321354964122521469435137518633861778478423628010276103667491182283937666862813814760296030407479095921396670612716186580395254991979223578394153016980924312752027521331692590247191854260955208646912744444237609091561325117038955365776023176372589583166276048525744419588930596036075515524342911655319052525682930288602596729078992922865924417771956615260867076299259414725512953033547890934869164119973191032866050137528600515681654190489281029811360015886597229519832256471946839542464464784825731867346695383882694911314843437159940241951514309188992668870854862258777404134164352594534318457028675475621025695436941399594493181269331420684699872555288178642918449574319694264082402099186296935885607001217974677042016706082976729930474835991034393278141280329127887588335676767091622708919163403303104929300571012389042834711313036755574417569891422569131125296640032952354938741010717280997418368494571542127970913747288524296627285685083881062983898181828292914142676633689221566207927214292994770483619003930816193686171218000787900220332195117751953652770193407196280564650379609769430799045948798813549549911782681176402081827662328165545633706253681364488992747128475911505856786006637934224588997584560661642126448625202120490604378680313666347527238237528274661969614020523215460550929405967333922238515953430765787567064686567399478218106098070440388182643380706935702604802182458704463522709075305232665576656438244446305911314121407161570369591070022873552552415119542222526736141196085850311976560468603692241758760139548638916466820861659020163561560091107986416998716556534386703081835747278692614942193725666482008170239740421129323413820009410494353871321854239287289258164569031209753377050751375929746652446099084923894148279920918307020737587076035923445617786474453389910032515658303763859922801524010155484673488154505020903541858894853557426331394205869612212853131409890809083540196042081303197453748369978974943782725238868728680827690016487536751555526105165824690988863291106991180579570315943128564735901069043328899081698291581175627603143995242227273500009796218987718188960270501747597968533723084414028984368013965996056528995104980772535802877536985342335864821010033894483276536239174149074020667452280967850384902995862573168053533130469578473917998600174850068626279130699475264446826747386841590800794682863330366054588165881422171368925769067103525194863948602398512054942292774963778513828388753875967209857257049778705700302707103744334841712399575661255345651677685952529009712776240590607985412637308716793095845768608342684070184919549041092821063148199235589616696097071128769714372251711396622276924926399568445045751385997197530189907647691648804059405118104185730401887542612899876000150177121274508642289781707953002821708768277446824540541850574459459295170942400547618870751254829929735739618748956520677630229794839578347594567875301130380808689873621926470898908619003411758833518185234845033059121318978041599586405298297134296974783507368668243725637543361119011575800734399890672665862562479414618670496760639373781882071821295965826141216900090790446842383813110062946049369277745568298266931251967902592965518166301694263146596500760614236797737595936400149315398912062315258978110777849401459782938440355034473220228298493291852015691046497205593610059212261893683873610181101463581871574474153821710894756239693957177858205060004705452502729328087755732532523797977650806534203629591499671408592766981127773353059208135527625217330437122009297671054081944805185014977222471856278416247690071614215910443140752057999012716931795333721512305785011501862792610519832345039985782376146478914543847977435104997059374029937915553308949012264632495568351097758302494324291440679187445805942748487563937082752927723953701774515006611988842882911631176891375919665282175043102997409086252683027283052415318318123936629837093294044554537951368512383484796172140781376102818348598695424384364637252718222914378501341492979511575520438012393554201111823398154014799307692298653121650367446871629915086564575410272906887657845703523973029010759508844262772236529812150199611175067845012106792973122745618361824369714444583215145436216502399898650411449052574138396824740232160518935744840890455302725370614455192352023911450789510614951791754272714902331290640045716329741200996085175704380418047141823998530991169525811816408594519620266414262166205995485202910007274033203264379008576500478481559456793708656041367663847007782930786590297583868002410494011790306961808513868271465545563228637194625360856826458356193701619820699542877692792325202759562097740647012629688684318713734435523557625532741694968645024148915258775304318240565123932265316550243184129860176069979656764216449580205878994021855086268445131248336364570332329007823702496278798813783175703620196850595907118093948866930068065677295290006768012652842001625161888662927937943814578874210481433715565088353289750058406372589381282741409735421653131261211262176945912640098928864559875739717430748867462174089096145297180006547273477193785107078463783828286475026361611619961764096062538753372787385181754281884135823532159940567036671666616101600130861854798269682752796705020104932985318245765963203427619704945408257655041665734030743981495522667756645628240838166084883014774727881541964572993011471338749842524098245046501498558279464529910800869560983070067349274004103787604717995357456031820411927911379445211360177389357943294608099482337886456567729393705731025199993250024390318936050201405542881955791179631549190590834031293812067570702059028712410403389095461712456772294745214611655170326191729104956005479351650122939298115602944854059891494017935702775577319256221659238626024875557927692821754709531922199321396828925170548889979345202082999153515360540115080247534543187803782852816923782365513668860421581127711252193001818252262118622301700500420344601880774104953597130796635703415387608284070163194208911843182340351528289348562092697884281859982507346202116186269325283825102026639174317139091361215117420727900513773165227772964955890479715301407556779382689662110735127021637623805446802094703088611103996139496594314105614243078595773661571171766783129678859452550853149035347944927402933925516844421693105269017108334517908951379796470541239579804420216753628446241444331080727687490841735888765954456155303097641228564620587365730078537018610078726916981203502044913804265481286465767001212438257086562118696785517803691225745150317367147657910063830768265610258910827325231745766704178654230244821577636637102102240032936623920401558296741898151284669588467413989287841396899317574949051865937324652442140076182124183965542303853236955643901835423992065144733382598531624741010901736367666912547600641865771560125519673580046196841106702423271729694779921077975999684207694895141121181720010806735461296871335611419165315843287785331205956063282748341028099696856389062185937695318649623962841430447297121317230632788767387081380415524589188446433169716190859081498625861315902997006115191787162874260399717101845396876170821605955139748273576420583935137599445283481565415661295868072072261269415588591505160534332325339284830347206230498157461532588543116541020115498478140197606199373050556364628895476211652463978194589536877119444404348035639520885987988238544235582761870558545083233409266207942800889796386472746611557732480116111069829998489167312552403254977214196470959949653950246983394579306288931830577926778647555121242819020972302880606368580804018607959865594255284826299200720528376217219803346529169886461394765091241739909516568080928890338703182099266050729518034056046620064482383786168428142722966636790090541458281839040103648198665980914162413592453018198664361829078870703107825378414181672041637631216947916425418885243992072779214871482398764479378848142564116463698641083840119673054630342969419235558541899789930712419574174159140172931625074088829152999536590311354207945373583941621692345457522830207119127724034495768097877252588373269668979616009281418501626203770564390501256242258655715935739865654307795682554040651988303168085296202186635255795543452033238826126433144962639251524960155216182999552206777646473555452374321978482819621470306438430090677538939852847861214006763334621457578844455980111305230762776958858234942509343639519749384687444169600239044366832979289110742277414442643714996578803412758929090393126017879349135439258230908953323080825789175653158754024076303979394847597456249684831521674596772627887669176124844167241431625704204748801090012438229881834302427358468146780099287220618207225178225377466461567603733029778778663517627929019605844164447969618088607120312360551216075802693895703593171605171605787868015835384881913630326680309078308773982699879975163981303091876362757737529442731620931442172579541709913033400832430614099812987520025102562673679489397903015104515792045716117309391084541964018558499447029393499969769214532170002425051824066980546583810225417292735139717938547399492546682768244933486991075290394631362593487403646118816284797169035154876400457801515320818673562040180659757237451967124240246866123408949598715120379352091086429674541059637760690105484456535240377757132687628796902864920380071694341758652284569954152734931356553146792399450251781703946985615309808682459034592236859189932589776265931058397487441746065138279628784335534767159404200718818767288654846769243784438766478803468721037415189510764436961356265147941136807377441371957386780851336500600595175367387107561906306538737596236286980878603507324126065346460286453776460219237418357068604903058319629474541599415696620144950966411405475563846842413868933754635188174389647853133819056147504606827789243131862992386976721471029349883681842282679778912935028135693771544190634179006073171809936101462608854971533818985142956230322585218421311730625196463792956003086585207777770169396785813615574554861794783842751614238202052435630088744284595989395602355496871967947968172328502466274719034051249079457566221878934892413259213807217947685228106324891087314197106028795906938371597891947664083938597336972023717141241905009411612635399215036678375591800154811029807241196305364711130738727146000566663270091721919724608267870004018163151187961212765943537202375153663686358509636958358926328742651875078503974862633169345070694945804192416739541750540027599554040420519807985260294496830178813260878378096344218316728957081038022587799001872363307875202100397509622929424216342518712393642732005941656191237268527117228453928669801445507785905897305670684773488881911643261258518725787480085287320909760726532636898602015180078059772321039773157363297148959537818591203415973436834060127953655459673747255500047104818922482456187202774984605457784895085359412104858548241412221773873191440265954498775509889741655721623596855566810802718823070870079262186869743902695449068664097963096167453978918436732607844307978048440282229760684250645173271621804541964416172626669769664227623017353538521351177475127210862892825874868997778110124991358846913602854749206589488085720703438068579878496980512758802092074448846903825783102293295700379883563466662563531096137419840115232912232388532090169722650369302255289638107946491217592478514689105081297394604156025649936018255080689771192234111899252380290645820884669756013816283554617604197074646805994903288957225525243014145706807731989375041834231305174869031970219129176613694106894548558623061674403902675885899796763481806881375798394605038466212616427457088713452055217355668003340461120408650087128599726340459380782844001290992536055075234974537679903605781242646565783089733893442860303817334911103325764758210176869771517716844248606350436592830432926604824871554570758362685511715342276680423181678242098953124685516014130620869585357431119698045102608427143865972503096441238717175076266428074661873516191287882271625828995532528010264104521665816768464267479713913860431894561141996623139459441016862920433736793363740875795403177669392171536841779430828339103468261298845170300867302556603535744843907440718190350326615523505361552961573382420469829416398491680279364770353022676732415433375796417239849450335670164937607503974118879041874737782279056587381959083441692267771824669674996493045068362979059518905555734873570949669948605811491035964645467571877382521131699105459258391199017717037605519273975877864501413040101091420772990310215282697949108695303999900954040760638415254890011827920381755484900690178972994494838813698074992456963056786746772503890142409708114540494041211552285052442055386525960622587856860545408020743164004664740845270878654761851562034447015335783231810790422270430941972107987598376744639737743265722524478220768868526002933779105493465614598724572965779206285022810757106234520689357101783360032807927548414492066593166960758827143032862784463625931009898783591496917484397441652796370312685085372025766545945915995571388234357784997083973531083908179052207338401126251706520732690234388198449373880506058271815045317492209867399043200577591389015209023599451306770732794365843363362954678756176201857004779994038379485251170656020752264547878102791695906463990409927640766770044705625034983631236865722797801522269302383238767599239220741376387465898021872779007743694223566628422657513254093502967361970515133160521163557354996436129090549961461848804053452379984907576969520497857814433749498454508968043920247346172424198322800652744812276507611168008422068271338405076000970850231902141680494535693504666226950821078314626335722973594023468408680809033430497296312887990149954854278246720505268918689474406944811169445860310943265285303829208921455352777893860018325087480018557727920792289155286562000150023683250225021706933531702149526518752956686923597721326275584843212600750055779336473406477129066848552608246664548340055166250811380113255447028311770514414867688958519689570127037600267503584160457727294850662607579199448907734232976615216999744911788439733128605169523942130657869464873863910162817617807088999360292015405686277923024166453144880025948485405419436832333316295989325665968857795377435826630183045633624606883976795185188930311793493468348436104989963364977218412803437050636596714199823358855920407907933290986978381786540180701630804266528314099921876734003698716790257323269164864586831219010077761204994930260493701428605141172803397676792088828933190711495125596008311321485887550270294530556714967193422907792266081052232586441089788595257066335524500769595046942497109342238551798033307045965581883774984773807703606526988765516229837729719421088889141920143728562406784688996176439189988967328747830542970039317955445663384551758894492469878419537985097805496341263195409815998841396840722937417161386143020207994117917861112497974228752181346375671424180118131653145458228286021873248905673795634849252986340598587188445157844254221627844743912028215120213660917899385936920672682045031967278194468481098107886604503420692635824766890118608724586540322066434791998147919868005534393981579299577553933817302593363652361024894839826680272569565400790783701345868978739156813906092614679837262612061121158726847071360909882505548842297474875027017468974332422935858211366057030151203176057371930889917517989976066929985674056621621860382426138249514661820094743416632424204597365635394617342579450311832640431864512260421669254082414445008056151414496462015094647807013536424814377900819939503314416927269715913371252350448140418879676104717832963986260165215970435647666242634357610829663909904579597065405248880214033371276864588198917433346243355082234885741294680496366610441845482895834247604552753028007568818309855774168797110024368830900334596503371133054830216245549194780508117447426925109081562453908142302444145413749207740135201637714792080095489389475764057541304044954322783786818145597466970108716338645308634501395324504846546755287754886974343191493367784070519144503659620074085734450089851550691580242625982547026471941803140210759367666872686515089334402348145565362992971156150514256294318090484999232992769402163533384256136767434704955193517453438519604577173665467871713483227387323578502660074007005372903234520208826994232801373260913002302274138696186450294230755177543785172189781500143436683835085808500913256573003468176896601631342389044959472620505895410496184532558864449172912206683734182102404231464447030685111241307746823067592763316901841908070498115764669758438257897008912821333450441992540332450338765947212807748761609150813011170177017180735736368247718066174501592869235933233531919624244280100041091658424181496928332651370909886510732467153867819816034934686540331944049857358904706148133990085016761814288192737769105454241477534208690378979541569215983566892274702776327481311388962088374747638251023913386086978614534877777258966862044364206611495927822000392778135940265113099449203920990836103277404584173739884606934222205331104617753445771724119206119961217713902284357235302829254827488335762757372559644647876768648319451602493683555609540231049558194983114363195202133468906626840964578223657160714900548509165180261118496250934217999492729631758773865787853922118113160930973403258905258569118633564218706305355627660936890938067837624498109517113960735556699025968270043702079545459399539329049173675270400546501145328373531985499315625846578973255860533667953095514134272625348665926817832238873795289906675287286155709158326764674746789259022681578667475677455047965154764016161762124941597534376521816976745798015619553015158853888254334353366077146656598032159971314901315505028496675981866069157649569712982811669225105531998839678178538888450318298947682780849975881696573424850616603120178354358250294366429405079196578694166401760431253230670139147670715430971340175019212417997124327455493837664855681083569655413691123104824000613684575389650357605005091372160752905537049856694680867928967268424384785573980787000500105092663414059541772553604638911626713522599080694143909127317982896790530704842677017470261339763747089570755085567226279402900175256714084175884584874965788512162371164149192528507894552340239970757815058929988085132034916407667976678246849036498423173617318334575462431763341661561518661090582430525913546956970705967935756746581333110461662268565069173787825562445472333957184171527206234531424903230980505116439423439285153993275182930130755119309079893886187803079592158542954325521863262729905134106772691937057874621136430093651765158888519113578623426193545672980338254511807790984112585719071227457015287208426695686945661911793432978426196080967054521899262234352958908319590580241801493127184561213608218459130728348076045912488350054598703968986623630400732391687632773300897918324122562568195054272110112272787662243091742056313411234840750517551598564418357103584316323734223384787392997766914423511448897866379347090392916222540785743202368801210718708041869032492042949743088186306479985715428953585198194107075820935307565886412622624551036340911914680862823292094086937822059883289351218741574674862989029376012381650615349817829979723994574236974519177214805820177372080227810252880729872376074280684263831125577347975874260698940584273080925497356158539200108243039596286279030112813579385936272592460549954384469796484302765762652138509996117899953770769163068130406723232334630848178570099851366892928058565038557261928592230662057762324548252904383917057315344885067256916884809890866544930896975655565617302406663469347700728186056124554175168352396914090800015560470887641736476556792749391196758839266587460105122899777173733686042164244972811592259690803428756163455382124635304407951504539124597923743107078773199219079609990031806780805785826204912370952934234154157341983970346333820612870349740146958686626862894832223934033897913863915678159900251698023194867055668933533669599663856435023664521473957399572503032410477559251458612713463556770559951320570910522511425629811323022266365515202611162946331820795173374829447693237481852358757396101771854693716904363429599271806946596759268252130735726588250402536129676158491121957789904779789621067880459711491802206307080987132367907957777598105000637483907628272899684969677099498174584726500857048173154522150973244604080305706521128101778449436821414211263998944008088434703917149447135199125406432891765800865891367976748460908814821610398646974176796470977095996951975274436189576766402976734041542955221429469439181909400288599448540580898166660933503088341508471262269478215878910641660895236723867384394238131601596321510866007442079500375248585274072083070799720850724974906044387629052930762156176871664622025996348551627614593431917188284736117559746424327740509279002679987767054654927597943708010886153217070400080348438622913777787551842997939091357687529921546038318103046559801200710332243824059836985989750431935208524575196154767401716861380772260644176078584944554230048252762955406892562778301476722376403095093567754265601326795238651953802320587519434049723038395232752988440284211155901961470281097194049683884907457794443591119101107533028745980891879758352829857389057859814752769182302637081533476912353175616534146841596652501319014625535753266387194641266227929421407674755388335142181180451430026463675169435828754361124426880125330838630710069638329682863644146477922393466775612504226854612023608541580767105566312587281798872211052552716991209330430172685688200570116691009945004337812226524484786256235700654637192986093997442389337873651891439780069594058726006310079880887333388553857321826917483152972396408860717091879834240455654586020382040698471429528175760148891421940866119224350623878698106186330942015826768069186669215824894194636539399855060520006907609517375194184293941043651670672518616455464554424751356093601575406956938507072517263469805864434983437194430958355563883843951279588100763667262281898017541923216536886301451906985661355437124901924520477480307332247815051810348705400462808804778679000970208989804643494752572030884808053597031632751626775954940345828531818426532229868337741019795594347030193571253325678771332104006823003899031831075479070589597153436403515652382120410567772262576866316949144451948016233761351574103267342699049719508641498608628222853008418784494126975638168667819481873637521250542353192518230575121941490439215191746256097810923749482011636569330309426520674024324829192662927550894196397857324862025533824100795469965144704943139655445753257592342884374524750139512726762945367065242960828947409073389530105810523573976510464643242474309179628580793676602330841169800667757471377145844453682032564442998903748699872538556549864301464042845295686269722751367555394479353236354706391172157961871557586607722564858263020422071672458494765949459492836249987616967822925766124435728358778432933841082726774824128977103407066985939045072569820309817389719121828388734286429418211002416285522406084967645025329408357077400653927463509056426329725009621209204637725443421756470615448219041623819616124606152616162827131928179965904638493443451286615302759245780604616983669376673157912302105208596675594186308209777378348528727280108509685337364783329168156626158733373935801318844659695932454968091849610797483473276946919186861470743337490267845561426797619325803572985475037600337423945321716533369388221974708986590768326674472891041409770842567674070531201959891502089919632004437360033208169068871303009714297490687280047367306552639734195207231883080779515685398897088179653797579699655969760587406213306021172972207437511745926610470234794344223671101279253379631668862063339817625030199364780007377275208068392750817498846233278603466769211442801136215432987662178721352853097812215799747456253778025132809497298693300596543248179612846022680757106937493944035448577225387559407423518445581309567968114556958608866522282944098650090541638384606580378811319230980345696553432828079708501837446638264480112794215432774877181537934314730446079019374424662365317199489334860095674578108651537985261286985826904745747781345544173849428382847407715852757204193171819845323839326473937527074675263374093624220242495898909760738703128048726065250477944977238291428091272848476446605835202623757039990435737160460152785649397828393096212449937846113712337804309228828705619913013988814240828521944025581964020087064781130827479342789952551518084032491523633068627736621065858144225226048669414249692088778023335061620840249963625078018339953087939643415578417163979232318007563712852021646058914785519700745670613811609367115878419230411920372844535601062757177044358301335233107888896163357798616148356349479942436845051738243829354438631043427291503125994678805199386404440585690786697147538331066258846180401956376947275884084369224293028822271603054485704944316331444536025412763066963937047920181779363341199424335260749912391099885728447481977476189375748376001386998782469678907871197735531850445370901037935283485505659237878498256817777254065510203663944222679208176765485486666382195789509957156448989597027066945867054069883834958867863842509025628700595146570185513050400091525315997169956789660951641042126436978028622365543924052458525269854844241126965788755373021003279999538280995669459311752323821477588914515921380511503088786713486434510053956764040924539580908693043993832679857478175866231433273639575537799417506612029477316511312615285994880960666517366385512003148294015617395221776064108656898480749955233308533329248915079223905027210483732675958897436170214603558803143303861757991734628993090546350716394577069337624347425257272327433070879532153303856846212255601488481241898290157290163771855084129239047885566251047530968543838786250143343056310584442068983343804150249159154399815956749705939984582436878381651674191657119615324811097235410114886492721703723905440715068470890071444724898929873789642895676859360742145402430215248279829233785748925194620423084640816640327456710434399114443574129858743854800187591938770556924648516798425977893781856085814662882175507599747625743337602475832979862104905122631449514054978080670289802875945890598179777123381073367793984261789918578500211517689622968386110892595828859979694701565310858388047047364066882128510752809221198097571583960423829302637972104836022129129352824949480130188720837764748137407247477369762481609075585461709822768907397224497279506265306074018590580998286057519573821902654333849695000854896567916767014225828504843328090811302404974150818032409525064372814412376570450996701890588717755472783187272335793415628625648638123509656561195609016000538468758706069438931789856248087267362679110360719144477475481301347451376683778179982510958665294722767883976528697038340729489424383869913462955401756926855349968524577172010663986432615110375920219151212956261072339371592110275870201002433825474064818226085783893896543380814400237728355005765736970247083732469434943231801385638749511076485845225118971508041835500154961765558021331253005505430015690281356071740817483967131342013945975735683801570757145675314439623925356575302381686555817758878548476846513984769085727139233091244048224163591664569494180113245625327167751026040747016143723254247360516231851401456343172982853145037517598323792006522425323665093159835078473775754951870642567357447581906809319700443446502567631193375764982803757203758648761934241181740823970724681039265367847370994940578855350756314420866235963277694414716899779870397203623843848308145818006773771759880405370484665011927359720648814248821485547541513916467716354393292167216849103635142024582625779594209098995481744838273540168498650158993862453823568642561457681534301443682289430017675360199986093037818820479855584631518715975301398609939294153622721415612060976146352245707285470245165230766277850558039551752555050717794682483358087827878402661512282815426084334145680728823688769081007050839011170665923478035936154941476287921192364893032336808418899152981698036625269481736620523539773268725199731548046201494896085230444107595146812543662308025500225235217693104039847100394015713129020027547377019667096890623069463430910002751313356512671447720698407966441599628469863788811491984756445661747776919710463675078035556635777469033668051558469210447994639140943884505911584125644413737295000220442744250590711214547093893622227775930365069852891665695476452757030741101137789277218523684254437834394078047752909163657215402729489114905538967317405325713428130590295982149320572107640199881232465657678617098216488540398164627575476925995767610653297291127987286480697305788905565462993847585224810729254565703285991671556182647607823092078573903272728707331248150333296532459278859729550028843333672792141998629650159827806885368874711882963533617205412920432656961957873772163688295926089869332362783776064031460950536009047668091449119670197913128972995282014510376450497213964536847808953108307553589417684672231557522072444102002341397891265873767489828847699712325344679133245496391928870601855791836657154533173453618959135741855931793225423689947356665163546892612251248830640766871458550814037894549125002396647116838246502179381720514388681610288823238801230192724104115853274772384163790279614063415091192152137302184258841912098364973157372651349664968129061315639162689257290134607172829058747345611729847907866780627487109818546203987976285923956407916557877702113528244885555147445267719675485060461667947457695985262844805591889999226834306455883533497470195241041660113200709576959252552322155007607944525651361450047558289038108584054962950568774297664629316458557707102249630379225436648457904341468155123069977366292796161833968945586489068073085506640445907700462407825929679078981993671232277598174296862277864056253067539955352084470493031070036647277384607635927289090302298371319596257707024809961364976906299861744748670441893261969016600414366403204785447707038704663697070181022122456341692353997033627248500734437292591843667612617268291581914975095427606378234796958690685815288591607825007935161965522152626775705906387233052121261207531042944213279273752420658694956891601108064268557967473734450142581335122283282596705380822275121144002300531091184268208384690483771736236589825998273781747395288641331047514507610312654746395951265394007618063947105435582264361395008773006188446926205271124877090838112046454980956434116050785038600124316761980027412153844027638483389842349288736657182079052225467343843170640238786411753195457455288418812316281237487211700094354574517343768885891464318118558863704503673382086994211987777898191959759138874141134238912087268883906688935771240750614911043971858748811275956527610084056338235947601302573620906231720479337337013338880914933809686091524164944829721909249992964716781826643580091111294405509550270459256359421669646154368856157578553180065410589049455960392745984361542022064803464789638750515863917960076024748992042399205411402171676994538464640796967473547200530125604330028777337766407965283434260235902686966743363439751941083098958689182233558040770067308854835322030648208407726592918415110928076285461764358862339630186695708984384564319630166496343359579208722914422697579887044767307299059951901989684547634287678318756997359943638329707723871131569862203125678031691405587858176957296469566360147038178032392464254724883841777328555099409920311258571709071345998570131148816177184020845261036874629655144932197926821960080282839104697776415308140518274921306819385669027253943337892664109301329849061402811810359067347373143806488377583172353996065020149265240875366941527268478302495573704708813478731515672367735063948759843442845032209962217303739357617530580180651188954425028533826191626523610294713254696889454050132690984537393182940257588231583973432244474868062824033240379375469585440411889473122222918878076572823385175560761279370341639252102932842320145011449166485139347022904962303952663041521801201496273015509374203861042897802033559906529371789728949610117906835953274675558314871987228938826542697617749064402145379476937042783799578603838996364603561136777924706098261598555283179883783136715104248765308147407580913191743643940396420898097430224031119941354280605409984737984158880791701126335122756953086526110767428280412603643726160276635182548881241712505481417676076406779514029224455595334976377310216084598911546086774410117915337903604982960431648207763850409165807136389686997832891192688626457799339551905508446379827800578853672985207811568415911860605134994207561720380259363415881856703419056861688112035481228607493115673069101439539053865131109451111439517582523661183385062508789311094038138270198266504372751964168995598819116442960786768267125596947574751559754214080802160093648181904254023958596459877671503846426368113781765830645830287218916640377210170887696013912075970747334279970000461196263289438896726739723925351585471754838874658204856147820301176351897264600745046087114003129527781693615254079696039539642651186134080217126746606787990972217543915931210106701934578895914148278655260258134023802701205569469851069103295079385130906251556197656542353921003017499801110408014272414913644507966229760265168426851958501815199111561673823060898713513342203776093841803871852321252362247451278476359264260918140051347266718128593341284091173243870019940885555245182413697270410601321314125675120883360231537416645484761127935796561283312790247128027832359996059871383640647199602592868801666366994870702928868210405276404357036970761025472600206160934794203924019798942057190283782512151201394579064683048374901537615725565190610507655948872577687227987056893125227750275328128097150902846528819335474264668860056391062816634837096635345918583120462405321052185919882117687204640542783569692212109441866966768187654324338683789594157806307995912647604008780967586678059585154003488160205981845770533511810647410602037831201720697803039857416733871600751851816729604450298930582653047453140215960504547980382116852691094472076515452975968185998142308451360192310272062223566945348325673400889366433418349815238554023886968701119687681841574514769528324758463200064712167913194248658931867764845149026669753969554559578750173212182851460353774251010595233658681172358336700094886469785938109885440691683633024247275497334639648333565480709428987880647338972647575943283343244649078055142367519280929527049191873280757111534754935036658309554972630953232663435462438341185928875228712635527229670066314588813102774934505821336775793075478165338374454553677835270740758198908472282135925110324512563200243060926690697394805167486625394881964662137949211693522229009724522153342580580579176783148173730608567704133564785573024685875994365497374706590510606803694248218800635755392144458719552947719803553057838588608613605441173719785338789860289402111156761299020706271473371505408100846322812798099891090623186721163351927598837434035745271739122941789128940777521761809101048842742593338731232294628751950681728822331773178622210213953329576958113956246782880152801629043466841078700344217543766029107300430798981176427750013670412444356064603722224135415065988601789433319369348749343959240766836218243548386326099186003135439960724286251771918341882027676524963903102596752409700589641713781331286538766663319323076785847689244844730973012940215800163124476435891553996315791828851883488103999619365270803233320647548581315611833444896019876135228729068364328526638092974165219165138750585475384682574785615075126267362791508223268991504140645036175086231810695488338138418726390469709467451524137834735598394086316380459316867241717268171300619113017463167835192255792222227405565481646444756965057430200050122504093301420846434748197999308347681000770530969147294341419847022928308857017453928173646059354842872578389479752018697225783014498580192675852044826917169760738508337606007715823744947584773232315793161442797469029915071874210973441716516086174322042824984847172709074944394236351798860969074215575936707703045711788430571600742093361596425861078882833416848172297578078116661660851876279803521844256100637138609243693416917176363732861570682284223628823241327108578524875198925528411096463233889652958998711525297569880734169647928566752899092944079994822982165454565808670732606386693190267132500727991644862902261205738537180481047771355404107597930194909753671171364221568651655706276528035288574349818498142424692967325337658472381201378888338078156492546412860103872664646855304264209010048092678012301239079728319049832934416436411681998657177802378582257975024972678554932205363336379412736845976467970850481826227835746655188622595183441169339671067448564701310229245821385310671765329478890695638923475034355866830535514965079881179228370858690910395288788140697122149218405365814533831065734693022750873474686981541023984043570433625258056843529154241458129882981244504648011728421962652472497856291256865193113749828526093064130457517385895092671001258175065863368485431954875951883823976990657088702639367978981844107930988878755770146497238123441650131114208384686594735987807497104135613954390540738695480784898760109058524810729467381325775531676480491471820417330178577796762950470899915035071866318700260454547936525374561716090263823772547670585857057026572970262790826216495169338405404279171863318520926694860256415896051377048805934647378059998475197041637467098435236555811968110628279349295804997909444435026235240647576095303092861768035241958071753073038088788593554412220649511862772113829400171260113314626802072570835230090748667424039664841784379543861351338442595867608707698821888515112055495459970234337028594620172633232039408319978793751932097703571489730188331801063302001696547281797878731400407360789796975950012340961685028415789866287473610632463122903020731339686029965168923025550926631728634601320841369632783545085923415188474129875202513557708423738423984188788192498286850824128269564949561852278334885539066931034636703823373911077377324712467460893390040871476691733140327731720797183016653570299619996078694216469909345555085689037377898451709121364684484233893499129736988494370548474421643058613680876798252864373876614490661837184798711766663096365194571562994175111592760453644245049346920493870633809861224492681485885516859463963780190482642306000005903844340104097460057511849314427297803380957230236022876841082581954864283021003920487959926943405294144614059373240632145288413249369688029022761120539157209625493234791317458564040037867686767975901584732915924068240734370084076782901471038646882797122601463115234194521529892906743331267073935256490163962842080628314436893823224830205597551583609522654500419142128803525109879159066243030263001472480643027045541154727458146756366239171956217377832368786738218077323881766345653813019235134182490881850920182202679392346140173828952676309112598363524569831236695794261065441195616816039452397810075971550653337599839279942761737559818425112704479119782527678159192693361508702642352968414449221536027058788154837946271822541287904718203356848542121156766215241191891018434726691432463446134563511930231801607431703221176135076726608369188968995811855717573853218476043329862769473944263765450159896566658948183524902132979041855553681563565767691066666364732384143865435976042436539295858900600506511699381748624301229008423493731642373966869962808500724048017020752765839455101754913611623102203338247975309651848738894113301414820172698336137370122569144431010376231901169291340357639921159512313153702228828894714500673410936179533904840697113160935212755315181449451083731426832558599324523374740754036118416249871201641302678375525393344136595369028850427165627614663676249752750924962624964147209679109063509104032246977849601364998390947310028185802662080767256240868954951395168386186257375415492634917279737537849437007405705469276633174770250813172446157045081483796182370615021289577082490135920600509331779451975787312482103873879352270554275735129875798099633463401237723569406692159045689549456754842264681254400511257834216662467521289507113708410522808184774804248704064679617767680370064156338543557390444636092020287584437233571480741283888317332982412612565879662970260950430400837009820166307911633932986623200957593343793556211825607107675502384040675317769430918248450005253898307627738568636535526911484943641591233916482604650574533003941000434287148314149408443582113476310296010537280189211031483581329793983783961772741562646753316499969824943416369887295433729300295148558758040958256325902070976771575766919652028026008750207816873521227902501606309438727606172292915542641160737492485699920596664906201006634594336999917696738664630399925557624701578350141109788280442628955959122164816822080990136718590931786301905239275491698653798026520993728466287877535343033107708980499665579072984656806530517095827271266149542256025375280280151666002543788485027419794561264908285764155910421002050338839205514494368590029809453489442730373085230485362493382215388629346461970052573036516669913820601307207614623206354549888081731510701849551855842500408907172667373251005260632840785804038891009444966148542270294188451342904105279243859667510762327820217494297683326487288687539318851654682571456356401535692390569575381635819258120416472023449427942708426335425476815493633919599639295614076269168687110284765081966400691518497351226085379755778514394831572043180821298965449121608998848581770973449939640620323308159411060884704418617882813583281199287149669660711797123118761162087516825529628085625230913833375471468370666942559138667860020960546396998634600522917125310739666575395120756313570412965307528276065727451779384607257228718475936905668747721672745967818267112011026314400816691885570163424116486130879836859519306490827980813643554523490739648075714306106082397864387590518714868456668007629027016167897142022878859437983718011895767497011643335339274043175314284267994769411757155941733310350789134879735222058783494149999402204533544706483214525408888135967513252017284260303008802093246678756332151847831913657515528418301017583982913473110878908600667250954519660605379642062933456005071723959160743947157874386184774675778168343322000469936232344483793805983332708476526258529883284565073116320528370777955030303370246363852894343377658973824568688296167732317466368865385515887939568040560409211090067207878202812313938525348568301784323494775952304802978671422413405493275139597790831015731339443886467268648815974327507077108934640367852774777458788931667395980809012723552740955608388154914202923840309982721209417886694838270867705341301499155812804332759122334829927440945388641283678291468725960527213257542135582737567042102166832841800733434195320856280267695654863475110922456486713313170291110384121738836317090205440226951489941332801844851377145857292446817528437162778191232999416399486432390828086759514978922945608388750580191093647750234593799596148870304350209084258985171177520543936935523206396598951013375932650341364283971657028955653861785791848911233576619434327329929968498257257179985293020281138408436864369192300647696065078549533783954720530698130904862625983472526115280956311339676815870313938295358231636091092790770992982508060963302468583539089460799590473302817603603242758915459344278977935735084504942946703851943457469031579162945665399194238226384202448757673705455323335172382029239433293862520030348355884160362674543412641928129872661732411367337257381924362383863498157156286917260441162594588016781836204386627227238691859531326855177456537132963139434875850779139026119550119308396342182699908085769562463463616972851978360551134006417367146427541926089243603276634033450788300503268771845411637888785443954297493646923049891390207824877274079296409126325694815754760785415714543752894064101918697374898144693158588147916416020553351789529117108693665640560159374014804669168989384667457224219796296225340299580455242197236433353441669093965040186471861514432573877831607683175292499466522574232856006737220948087735075474290835197480284627644438231618140806137234334496596054730045173302647660844202250612460284565016440985000050588435848781374004334227041777595802839720293506119389245948758037192799123206104807830850005074709763654788831457666230763488505115571116728416160895316556844036023561118677302614281938472894410347145573313920156066109846281535415688980877104594037150220702587093746230400310243338050823698917516297530913693512690152393992735564569260559490376511648379443881221443135899472864373440654290664195590114391628557052823066310068918858289193961392936401866431264455367109977782793254189642626166387190047306918742800026741587129897788042455117290370382137779993581977756783489813438248986186683170577412635102073200733204363397386008143104711188153462247223351603198686028615686602434037990868558654281508801246472685130781547995455625530959443715598048808148298942991776885418029152110175597619132862866522453252340702791832714074734118276421316346593601138938795923684108742656958193509699874171569402688330590118568776351155038623175056201539422251676686658966696895845010072992185017998673597238521514130772027360164112333059241310907070546139894891928548504594618628683052881364055939953210437031006018283023913933182126608418008047573955697238913882404838563216851044407381001761324265688507893874096400812314233383303487222885437495337608841928416294721326262295314186099653939234634902078004218035434611327610055675702631771720966542349470070926374401021878701356290209674250509987277585425014685367466181305627788684832233367116291668665654818903915508798497182904637689525870862083616050117084256762032551842506244026959560615707490159588176193316423003045019163988489811703718223267960181351782328409488931179042711660097629185235368944379749602605764867423217673160532936207737816961958473241718411087683838613050979710330185527219025316162082066694708357678613091121910687013722346280352629479938692995237099413623966222465763327547058337945773074386626659373535693351235969104087755766687735492336547857702024598193282142461860892434147179576352789264571238048134186627113718568596327444231009792308207330445443942152185407621488148800777962343764562918872327982842742343116011378698340667305842532864798760206735053777341462280426995576023992643560140367850814802380091362218245869601590495774413278440616293319810552686357337709278226246770544679163283768877427996603825492937155432522365601730192635560151429248845708920940515327617883802769134837809724036392992382661426753665230199420923403785331037696605386677506962782287639782124166447586894877434557705885278490205110448055809224106560905070108338048874337543677678029684262098550487488097357528957688278469118553304616185019577872143443984155966652331782038744377222275590605864194565070297018649763424886725461631813249128160035903546730771138613061194351427732553620189460947620696681373216314755885569085062943645221073877505676697618141338485782327699155248453453118788680910766563660378656845196725664946480228860043977088331160310275781986074816865511698322500138663850825817605232067555160771099814513365558165849604350626520808639853799987820761189884977779704236355878666826398376651364516993290685680867569163729988652526810365801117953342482774337761395649733583044815614086313487633558732172052028350286999462009105708761997683580354213603301344574642927017626013191792619652032001419432673692282029200613032688161962710284273464591538163115858467768779364063831153615378660144482351192999612582920788865459207562389248794762126056390744705245040118019613065334939913370913036002273013741612745084476587220750513203049596607947694036246305521616656579025113735223947694555747514374050047013841556163719822996368341133565444366479163080235580405544991865966287644108351649244569828098247823647457232875686495487535641051230423008219273562826011133192434042633455521727253966475202203552567075765974706285723000608893416475353750119284315100583683061764273674817682832935209151715035452802250137566126243672198273796873403855611132736003349501187705408561833819154312596853301779936008987251417487119085928232338495404066882798630940323791496105028427117857014436801922144988241587073440154673073498948773509683369035240180259202997149335293049130827816708354456591093362607024805271684070540399855266074288065462608894185340915955571382459758558489039727337308381775241382724496214924881901238667979639691091361193487659758425727615096152456682671408505273628541332969730706302890934655577700686304564630532228667150511080257469150968883453404505847005499090652814336815139237513724403378836491135135456440815433795206481707002502306063261567369182031942496437178846829213936142143884299906324384817027431440436974331775816596110021269535086620516427927503842611781316231193122797949311487152704132605851873556863400885938292722369132776898342508419733419472837573422827417576142341304690134607650980719407588551249899138625412349697092292006248483683520385224704279357419326213788896179290065894263164446191535976835141573838366163281809771750540627498218312931483426516717061320707361181785797781710069320646317355833861479558499714672125339826240994865314850721828444876409795208438931310536317453069896123960727144740602481022655660001744797015691147443000501444264894063731974571970453675258952083295244943470702945089673811727283193914072152417609831215299138718232275280752697028079067466569111477628499384719386560090968033865032409799280113726868596978161754863165111966942783380784252052782814771329411605959596245163910687764474729232751536065118217850934523278968314510131327831130123257011780914094274894430942414967941782744666097177631639319623286554233249478999532982958448251236771254229774145168839851423109653375422683374342863272213884387465670010431946989225272266273209824721540925351651243618632636859715327913724667608108520594080633234736611237808553324208765911607841854973376023821122086903962615347340134114175242963102055073290540313614626483761758610115120307575681514777292185877140462726891333737764581683278712272142931723747473200598512970956205277640574425116643322873323684606619532786292722720508773743384750867079821136742896331284811215066381012886648970511585063749373002180564805996864005233986665796607755168226703883194883199334056947760710409756923255508917236265871695282214706239695329660881878753956913379722425404808491452662560663474474713245195792799797621053360208298320045670459265307419560928677201710972564729167899297547311381831033415277055538257318916719436185765202551399557537132411286558652256815274461610614563519100878192301372477331528526459005727465311562575700069336566866023163826109461805673264409169501098078573165627306131423574722639531014836676237479188091649775474783400439823691882917323031853133679940073080852479125181895623971066618463978217389315721656759658170303854789230156845641317827945013842697208383949888396957690621598110162173217835335958766545320122095732531931816905945202419426842864697101424707763607267828340027571369949675313989874462720618625511478815089431149898163903687424365318715006920865599307789767755814145111236754409393108680671011123164803316526209884608748090580001761046102074332719388769638384415882026327641709213207055103934876304335492996199580844516465938024440308357843903234280847130935995999845127706391004561082161770942348976101584763318641633187140663551309304507812631693292233798153161757175320806531254257718221761713742855389843741220540100880147577554614121665385485572046002179531575261467678889756528939033339175553638276509102126332466964177337580662748048325949789699154913130900346002279592792058140325858988901454661379623668228183970306169991067307683883967008730456212982180488225509011064878447549172475750001355201933339239499347399762949689273933523919084985797930677509359802167131917697475165588386342152890320962417598868216770240063173822259475861361092765570002541632303032202144388636672872774300867527391377681195146679507228907769715151670785451788230484466378869522726818223062108853454804083354313436944814002205158023867995698862880320986743530335923019290213301188414269187511952884532251828436875604255749332402027783422880568506037658909938596341375617915968404979906749346519901297126450085755935098325382765055876471837072211771621718562542167475502701411398266802252959882618188883089510232513693113915588088215544988811201845869782506331546594478825247012627657465267183870729797743213922087188038375603495605667511003863442439358921444524872498176529330527293407788449510405977479822789405124490273560751758983497814812024177846820385137309085621868921848859139580368080181630455557659369732178097947563074812627168597959759189026464176394888406261161781200875097728427785396313752156079785747691203072528304684909512703288161133185897043281775317560318808398652578604954181014752611417052225190833465499439456667146045462804097956597737097690510257712814554759738390812327053990224339296544724411527268649999812810399575987628065115944850182274305550252840850626368854561941691955914350273674552932090510798114136599970517474086019322160555212162114649813868359646133621622311250248000261706716275720961697966662601534648078881010260740076690354313680317853490497712239149459980254681343627917863917267005234985835548415451705034940141037889139278024035643682093248817094143804388909788682900483661332427397295500665373052025159952575175793211350783859014711669415262249038539348978469176369082791083691974233282569920944152209484285021158468433801783942750496187338731715012417460641225467634554912292206905572211919573909959693935087949685196782588295932199665002135579534228361654260563643938125519432003497914761181393546133725813141661313767385549267467692986428650662546826810685717577289523967718062678382316039659585629511013013946958034521500439357649239353296382573369120382126480932130045449729596505101501545075131931667287420985737291540991349803654747807633243514527404090677977147554904749145992956546997690301718398388214967835523353883155839239682932580908621688841968173896649792500536436359155636660869109968313008281534234776919047380773219293074159056397499986337194978093607773075524900213518692953016647248048855355572733788948011308662130591822023379574731716013323930452972447009892978286178669009015341530604682238746912801902442264328238849951521122915312343650426382929905800702965527900309790998071110442467032466434386486833064641310047139436671234416176964981954900290625404161009627101894775390651744707423691134946729883037839783702928905697088890598457261515728521294706035186482305463998529863061560094869326279117766139019967083469301816123552840358397805755259455602076334031576008573363547249278899836042189254119561972280198345707459611369865109598182625149176583480979200540223840369655121863662310844237153917382282239663990667255759663509100041890749769312708522874064957820727448099148050470623118418150866057666487825182902812625746580087783934940175941033140885724843402150159931294937050927794410047705085395035421377188868800594838917294827635808476584079506706199533900840363469108316633060872391846791613119061877211758166799854019515975932928649831636520074420161631320000681187587993940313841602444583046732353733226230760328204374967375724024374320630279731396496824569258744409769952947276054925997867952709954852803995425401755122720265323153178885569078781965871200244911803667296652090229268514958501090659003715008521641157840648110087706765649882763130691865978555180522745816616083445680957391150146748823200880318453798410072449379086159869354671462094934334565656879174438640465486214165146613614971800305479262018524947097906270352847300177955631581448841862088830903492817744986791503756773769482732616589965904958928047402276846676230162506907082847790883802900400493529468454899307264189043764594259679106176857568061790697619203368223336276111792480185802376812671596179232249887050722318908824766931711943458385179346071098664203324457021908156919185635149690794331773417602774606400501651181043031015245020998300951391681068813393126216099929144809949973286686742441896233921411045359220982609589154773212768007158345769616365987288501549551170670765740399403459985605411801588301495111901466583847754389635612124156677312503925090737755776347938589188878029232919377726986053961579693316832462385360897861495276912846906112143002587686827760105650837786260121926581180103510214339758057265947117030870973412551740598846161643197545929874167173866854946514345697648531862863345268016983398669064345788618375662225449724934100367397335002990285002491416753544352410717301424600459172940837166543801445750568472650579225957989985821674795566016915078712050857379477572139250210484044487686344194521332979685161160297123678328200019844486033941191799283516324946816395298620366552803615181375506533462627049272207647701246074205180890615888012551183630772948443587662660027612726231320663046841328721729788999566135971583945655524166540167980104184637227823238410288522541680079407960744912102868054934150823597281739211114082293751472537488670583280037203830436075274797872886112670597230348498819751775297736189909361443152862841909749419213941162340604238214389686330192428546632720439655609097958194214548080021601029739970728678739781425018059787862016856356238109198886990305447863235195883124917284840214121025448253231316883464420317572130321030142680917813623191479100411011968944781683531245235565740232308390332824275378386387010122133982125995856750057757492240014995416995454609875637022351359715821466138781697492264204133453910444729373238789626411741817260278821606989998227112992503138065770008136690461208433061081226929732182527912106545005697693744917358846108080333504425639555122554845776808760911522237623729887724616997389375579793693276137517141084451913430697029652328032567418227843682454532927175687801186525156662446326340362956466226989746908486029528643702841257313950732659372296638244975724433717277715933940989117242225826853149616856306884076763794367300100606559792566544117448606683723403744186645085807582908526374313120794488594635385807947100768571993766051451164341692524348391259089078324030820610529594250867481976806465859312337050981035567539330072447825854158178180534164459744905841082107440446769338269976230343290642362952128344206746794186341595875611113409812893862473441931980501627421597428541496312313099097430444109295853919915526664038973724546315180072175972515362971528221795475844922574938845565315699204247360359226104168136415227551477221621175274264360262960080783331916901886376330874777143929089200573167948282386966589258581610205829821084002660179575554055374774958284665996789086798769491375372105604646348155215334509625930107158691547404384922891732435949800706365972285885802956927598691521437094013029502697270399543956305900557242397019581466170730990803219451109610117829808552188804300206763823004120915546324158018241968007126021555584692527915713933065852131703241980697952272912919732564857760504204781925157167798211538912444287129038827103412681485986223067813480667725714412738757836361229827703622384716916260303940028892030286495023868778838256341882595085419716584446142211152200146678104803098792164896010429075547498939095495667411190676073753430355046677082889039939303600679637507976854651481558710368015445577597888628664323426389263059476178992840950458369279089441038797686426490786031089691953795811016561404793074022153132020150978347927182786263171681396007346023449597981372156200678110739676165563931891732052721568566990747513401486037878610824811265541714233658923581661830407140637446562954158029007118796247486991304308594655852153020309331658143391932768604556980071122937707532055889317633210101027113409996444763480129329825453242927232672474169694629894322703457139100048117177683863306055870350182278558202808185018973374449018978129038024749234421827337626208497564706599048826216394876004372255409424987971143720214539377141176193235711499427447097631422905154666178937444731739070558803036663253026478556187953503602119560365698232007076193725974873583998922646661200005596495894953153133477868406802924584863869041224288415232856521124934210323259584280156211636468198965133828815426313449727474379978671796421320450027358100842822776602839835614853157335920310866913302481673162830965947866464590747231376061812433502073637986421872166530099219743692180676612960558061508303850141284998381340749025204409301959507499479774620604891837698627589238254139988871900724020291986387883235076931707579909655809378421937848137145276014128827169896391871700578891018522127694851046107906613619174968326252759771900213272531059684269026960723409355349878778428101092020035375600234499460026141278704204871672659637626616121703449418984463111392083148566079723945031450012044734642002493927584834648877992655111936771289441830847780491081407232610058162838345485703927197691014372382809496722258756905659962517603089897337051954528027822901353198346505717942775733878024087929345620895481288579855085729840489632198063109277600354310328774635651704960696181059637851184904883989150160434438719581868665368680635061760677628167169723984100433517365309044023468755740200555795017616172220041519857206423531449970955232682258945806911905533616455846911158067087985476314610705672938983938188161531779847080069104534019492337055100412333556421787681540829004858848915427039600573081010010213092589257228375540666966019247108774919456846387708079073331617490349835296123146429661023198360552541028421576834283239102623047464210407283288888691954225679544905386387016212299543212559383103723233657984408258422197719625283089784076949889286664228772061469955975960904824562551482317694605141420556227461994753647601347682153214634220668851108960953222482581694188276268240884172496748792818552977275796354068650737394426026031211906880042208757834815660527171043533706125257002579012038770098275756969955841600860873224623999069243284690044419538260383615554385098867982138326871669582947919730995359807192478043067635838408621143501740573131600680192545740201915881659362077586972851625914597343591059559102943873454105241119022404776905438499892720780824302042664512188369018797201622545531490869421597627311810732571512638570226658579143164568339813988279144269852477766249789257240672361372078418333142668946429757213668745048788596119498381971308049190309246529357696693515432985408618503449517195869117344428509369491203718168743273966125754220987187845331868951087246151247968688992935081993034151060017276513019143465360297362977258634170222349473253050061724676797657407271069570577041071521974601679206844959848242686277139547363838641427490299636722826529638221962118550392830769337395548746532319738434517862119646362876485048729610448660445032100075418278436968286336781999064170630430084777524934096936857390313118488748851877020193361326784292831049074339643657227454829934093963541102404063767311664348416776788334344602893175356744839731081223720259093946369662987486849820978392418376452117989570677164635930488990958826109113542372377613141787866274047158871271816857331892732124038861730215047813782870425891534680575444982376786065798071313427001483019742454329327956809993117907304939285338124286516393894143406610520178325545830357364110689087928547545023617656524209991202849665879246662417697118380080394924008083213851732298176457610564733529347996211404781718703256849113886438061127659169096542503366903567565080582267342963331740767826506936145731698587551716123578363795014311703656531854308273779331132960468062492829170032401153023521026407338605208836677981809653289822104712796977494940521974165852428109720621347409248671895371818270596079415093935099766289551614976796534669892382443120599112808991923492598906436120009222295476928440016859960349402671784242312997738903437802657116555236180506797917578829651287815909120492357233602626940354156180394267025838644990636542341539758111350433080766192683306864393270913941719243670832603150111527744986133256260323228193341396160978029149506987764450920822582823525023685090057338485010161630469784542683475746201008782442441062248399222602062326989403929960466158705276643623982472047004239783730544050702689392538643530695533106559249011891055608645590045036549106635930469566580579873629648601882002561865865898368062129241379552243106510748195864280232815730902344479301495085329530094274945621970467938528700607977003853436796205620414884371061812446960044621657229008353848352857438843700679442906952513473467164042221609787100641367466126938200556888095690333430710060700602023731011680078035171974604150018524977224109944851689347866565307127116623271814879334499175143917577366233413736261219791662991152539709937838553876958566246369253695788287967835533082706896760823466951774645364059849997810599994054015093573226689702784114050137693365884925628362679165209369966905817269230842265590933083967818808505824399345590400980648283593618604100733809773600179643149906752325648567703850521511862418465884393011320490476208851602999470014554307860157123079026979882373228497879083775049275365927825609957611232934636342891817200764150253225843382301832362669897324587715849655106764634486003325733112970514538078937823883651452590716948725208182910742723965939659148634046197410371761300627969762899878878701521374410666125928884698466637180020460878868355831974736711935006418735802918694442543437775221393636925398483159066658768365451226686739182291348094518030364375337473128878550019112935610061354261601108549001255812387720100812508048656753074287910367558675029690573253484230675171730896793196675462895011266578015979942541633761134072489872080521301655444444308284045240071080436403583946736370181803585934394707191077237094066287108427647785752109157129258908216701607983379348894952170296508425139360600438992856040522444497440258516883684052061022292234978101487688674605649805119762011933737499894912400170576866911259009348733479062992962936670908012911724486581039055494390545043144560921927521838195377936206414025974992452277825222548747205670067435912064707193304965365924909706067403802028878042798807452582256936808306056878924983327263527719423210477179186425772341971621440360478467830591713652294349836352645846643724143433184108103776362087763697968453304544393003974520555829269774495832524273291795027495582383612994034038391747355490667754126932619988691933103270921915301561833552631152754280966969671309885047507246318453465124448603446998129371088359246703136692136394264929799474638478340022524297572280629398060298336245958051133580963669681975698330309335590262951185253913880381712473868295668830666609291061796734647870476888841092701932170959525216812072896923700774542169499650443940219825686822772981163023536517579506647769141142442662515473529935421784307965392667333428799528536276136219348533577009886943570796761756786186042577505305866304055160207972848017105786821737580696701611596070941230790078364567247283111707503382174554862655988459539583306930744210214459578515273842290619082039194016491211820995809463757232323744715800389738201713963075570791218580780212821230551948690221620605087406376399098176757565101183989391397385123384594165928446657940175019803247436883190121414337219017481584464368987101157058542117095099660986496323099126968646524082082075509071963811905530420509355008456503078841225502948963362423008843438983938856110708980532967297615823388974450247911102483443013835307154668033175126786848199307306379645484835449650903028693697282149668633450840389816392406580840960503135049128697219119784223319471161844533648377649301094839085788202941243834486673872911416595005420183069058193600744667337889559397432773138276449753620887793381872018929662979855258468240925693558554933796398375768250925313909855711861976080903100435131702855718448309086850229718455193502876170361437601842616720517508884709808559818860710470443021120835264122966976992194019579296972376338418222058769351287598158058393800873724104415809031605566051868477277689537333306001903108385219748890858877183549315268253363240343220498988026597364371024753181046633014991850047474200324802512396481690213239475553733287033714428388360523092128150615545057291826612846830052476862082138295820354198735814982597120236674667356913518112805846001589589843690409989395747731417919078129055147642014693490602846343219245125980044362865136334404504383032866637183518266991887786083352652012162693300666767742039110627186400342734265394043818464246424817680029548493012274127421249969139443823837917677543472866862709199422600308004221958646012928340121417351656795051208687566583891069215209714148691747513966459288279860605443032724767695316248763622667715036449101555926505696099770463729907059818646610390903522631539843585581580627839917836107391986063112036549172796502459160331680746509542517758989994852345364839678291672737929093997491314831315868887442931505995672005139878625865332595005259940837531097986484132124833869890405388755669253895841849869319328668643636993019205433543387875344982428684690502037753674507467758052391105661123600366858719818429771926517667989418981565292326535155902931823583367083617748362518821029328791801329887379713328625431206667241959921654070487769328744664737353665930958193114397623791754516986181648011927225212644357094919433149141607309908191878250707648098146881819843340675873256905185623798750984399491050633241350214531682861001989332357027712654812181029965548247603338072364505739112796921878948347013444623089341632076667486451047552187080015701400307306897327681370429199344005008642328065015563639205614653365814901430886647724122446703127493332186700712798448511758208927482942689505536335264322719665926651879535984597022484420146963288954206621302586718272270734134479600913943517540063452408316362936907874816237377145120552985055911342293269114240574919509760779382973249775683404905195534798134692646418756631830499861860986958917467638850093162950400489602318610272567822653629610079384727391679823270671250186605183642815644009901514144941595324484652695827566600417386897400469813632124108511402054259689648037851642193147871915166744232898655375286585612159682830634881183178681430738454451513008432780797645563240162842855682532818203774693529856560427753172205051872447221204283212430110631132428975343055205998160227766809380066005655747527789951054252609265549261951740180828796746018166800183742369008099313760829142043958989400231609538509112980847093958066394753567145842730694300823033042375339626549440553922969833304043187274305029613802345405729426007381084940922207808625655606188181422075894048233199325279563425319669643279911368102973265487790194017739648938418877005549389452720831751402894122491002817272753397282544687641695647744892929827949433113175894801379710348179710640485029820917319119823715408786886755527966086378832077103791563477368377766388079489314868005387642890578125535613214267817502943977615739199395534547021072421249604100707809297133573435322570593322110762098929820268649027230810818959226901622934961296127944153258902579347666780023392266305050033689326300827100002794197024664828447437513841700453239451486106456879778204221506784462784875133453719191785406602678363133758110160531406821335541348762253327726272865123014600086842648086507106597824790797406498603552082017758492777326294706729225556198549534990514765464550615995916666477605647334615464067379605063698953385031635366791058033026861528652590066120746084457208787430277266864333340669757589007605882901886559801105657200458920006726138026678628631302978649692883566778955018463568619995203933508029485250881029358097582576449163682062005326245061950215092038680909812326609400694999137541325928329220503419718420353338409449572083658755702370974821824349760930749081463745070670419745625697396853944529943739389619993228276615041533975124395253887967922627563870557862511779211309074965646140352731972906215609327261508030810709592841532811829486158923547455207011287350354908130982334914841189224093276551158137145544965484013157051054004137292434243886382824165178988707096565588514966364804212800659509662185504507956430266903035039787266041362786356663574313800127437245292016442886511283023090851121341894458926104387935083774274703104541097491470509236716294599397316759754229002056716959716679425542344103149299118662212537837263008882321077047622151466448576977739255271332181370136797747994876325420361368886867107211419383595991928542127012818087576617709921402553337474579313173229832589567116052926847949777229711458407175738541771297381525372477406875402170294934172925079698762400837147907649126276271792788681133885585495714352443138336204504082966781884408624691993152086947287433807535036751568114270806177870374570636941013046719320190718884673974303973590072427253810958285049149274020416191031899528920358309814643519674601179112961149671351486928172344114367165346229125254119215439089939531254992841445018703711693101009439438866624963996841269848746281973969331261059262392969984384296256791605933051327439707044013376839327543358059363196333039036060222864763067297871890848608412569694235424263293127377359865218465628477614499779536521499464715053535107974629037750894507421107189043626640379284298997676553879042094114016531252448479714255065038822686677699760253018472304932113484843806948026924634051739708572758629212898130203148452870083116308700415348059668857829483349544004650551321410503975444684365749659214393752435330383319680431907895598558029751142984268804308466563994384273211476771975534686480950656703726671920044032046219859656284734467900390248780575826421421808226227070666650848299102936823202986055325941909132003544015585418251851608152724314676951830282152726053595652817275233204684277144478183732471007085724939174733078017303739730129459202881508453722700256777441076104102366608546040604653770570207532075574564049838410509842791351006922199767844504626902139239653319429462382897290862507959513504950766844497873323888221897327049838298295933293928529881818612185411155361784707849242378563526907055269205934885839070595639745556699215233937806411048346139428483008819351239358705436706879271108305223706319457826326771167907804098775965867026295597240266596761136165021646587246590699981946140214120281332847357889587084366430706808577903082958605637199420589959861943947117535915773744075530483362233531337039203915116635441760222163323041780224094770199743668698169439203269643936226322541356869342331999459367839259562654681162678591633423498046342631919308609770334156058851807120329734458968076649892780504432859642044947751709804701948806549485422301060191874870535974885920913800720443284996287475556888801364783688239884206603000872733655113105459987735639354600502210628823013904291999524186882526677209072290194093551207737340008647716841966650605435646001117367785238038635945739679465388402937150963398618368275059015285058083355056600022107211922308469496143397601153922130782024218567242373057306247010333295066060992364177732398047171278480634816168872224782079904931690430908065340637446612033584327842756451703692286918855915752483523643747249744192044183937345988338339376139419029073394216483296736146665377358396222420116262278396235707754752424948125424376417579834614406143976907130333863343183056961260921946659029977266068991015306817120841264020206312172528764124532099775360154729802440647090440872311194088879118221110564531013299048850257219693867879842813228145874763607186494501159238027424982778237817937178032343466447551168777716786997003488955272818586210953633042025354599159887555533718881889893460104284481821189877658175428297642924925118446441393116309548296776640434401155040922861275349834505717393643753762543827209159937096857445102869318511169636516930449084890850898906017325085353777852686005423996978657372445969733317506833531547018691634109991594568962471514447870225500995596847021772493775460609402816918660254580049609663710898252023554167158621866714079153319419312709677812183305404140692308885253041859486408863288529634467093149686087453041046758806676346759999951838064809770044575931011140003911410587870155410370875809628635943825073851424624602637845821680151829932671983921800132331891533113913512030862446044773781196624747282804638047238432307129048205594872004034520943302843161763520319421795749212811604616689498899378994112241232323356061041084653249211678899914715340046385651596434942527569570840960702794549684111897311512955569210466103695498389834393303714017297223204357017601216717233827145226128877050541955227962077840691021065167870112835695898003366091004108759738725584630130486131545695008742492512285118248980983179610196246125282917904474257905919071016424810052374851108612448922515263109808744195193894563849314004258589958718349966607246075173825936335010105298295852614051297076065188402758549632223374307624943884821028601111486614383826099892428046748292688218026341508225681247400859482420759929600285739255693160084622340949408499887965556885063415273669187505145679323750258349813928059000396714539979756603080155073838784408222136965283543729492228687640708470275068950439539405229077079919257998386068857549267537125789428795301180991160508185824280954701606547460947133220319811436033148461770121711417298009624515828334152316157835497412143561419246552297914299431604688715865007638134554118957888780841490037547320249677177787893214932050556158067696923126557704541344015905933748013102508612583149921730914456591614350449676830990356983591428336365361111301773216164023646955938271519083450993685648120372838523001884938805053542867015083863182484634415089282057413945528776714396341868954815701948916885009091524690305290934865961660001970381377129937513143126905532292704337115258934881193769976916333468992627715437856410641714178324303210892793163509289797624765014544537288077014433261969782172828180198907775437793620836354925239703701189788431681903991988776015701771282830075274058292698727670646546025498582611820078794049471224103645238786901213510105167887221003989358449504171110219111779954378097458199593805611581598568889317841849697800828599605147105379063043808571160613284922060713364953861030153253227699384597464418990867021440625558041307187656505628886858090758314002449639512733195201968787166091598382986452323480421230931811882989127588880374240896098129862074669351040528704108754521228400032542561511631004441946029322220465978754839711295695588253295220665147554505003562900134754604874987532660076577218987191481760695087657320753966398080734327065679363243032550341103126573100620092324049849359605356359903133403847986003085127529846402674833887375050042608131939946077077738065900488735529749125692972734939679682072575405542973343647162512938092007306204683036375186686634524784848163939034737648689824918373879486708987142602245229923722701757880392730911835631507425136790920587439471895804351263052134290877960110119230686733279205469948904544226813254577479209642200697724361811775204429216095570507653208711348603130984098395197694273742400736269618084966459328195778715085838200252265198852837013201387485251071347002031715609888038335473384810494136251303603235276898995443732649339801755373315841379091777245667879159884112395643854967590215761450428392581662011462207092701996070275247257553002407649694885655904762618963661817782799864515321439302078706539489470748019331131215215064254935787918298575128455772155888451066687387498932113800458203717086849514227301951252865016382266010540038220616863932175155384592022976361091645836377840113293572051607175545879362782799196854790802111128176956290348716046012236372839835641326463688813886252854071607825256728733604235800048620803108119734494529348731202993847961703319074770448249003392711244665600303769136932250000219243199420016609674075387721749991266659761111897964693501813383023671654195619266326174926397795484210856646326044182260196081698569217783182796060195966446783521480327403079654663882449343171878409071456224849381811445525614693652963166860242161908641999067418261158948679426137383205156496069704941426466400521323637636239325451109135788173712704269463268332994971654323330243925032476590809830665365582814192681813781568873563762553144521415683684369271267348023977770887935301993089762205350760053514596755223276231525262190586699443465225401788966155617648452087864687601275308479466126688109284717668263958693900510962947438436703416827088058636659530045347238725265271044281620615407248148698869489132452715788028454062818024011480211146679656649045699565407188827600071648016474052924744009337561836917965114890457418872698432402341820802251755492628140193872279908044383508238344904799323628461149214026654960009021527705028266130670296039425656752107652587364017364727377851841949165168581685455589288111341061973233969101693665169436181457086725603485480265449377638780988465063122237336086210624967799176040868420021014053249797518998366312789297500798473093221152604438065260109092551641845372120611224785461559452046253041224588469213827627645384827782819496506952377449933667123873389456928754467710327442169432883975404371685533669755471313511636022771756770488928811519395788732230355370159614618587658955030884208074758141098568202307994174008320724138013373138747231708063574593434039279693257293288412232013909213106343481013174541553466598412354960759324084452890293252932304473020111242682148296104943237114786953533483668293770882870900584570038748034404541864066855981716324130842215399377329836030598692873445249554384435048182078138246717252623606516600909292927743346921575832622862340274120123200158634190032856171359194615044731961325580369495921446576437038239420669433271868030718441248013527211284162897285592267280211899222751809631300291668065099672559353893949498086134506936539618744310650567423505867794337554988140410498280660096308445429688695895631131831473646183576132762870771497172006115888343038992014005077286972168703479293813463055346154388759117669717026696825870296261111214394958741446404547974578483149497069856442601326701644326768778376418742739775174795699985965543257525701510278798510704256866372142455876833928546710552902769093800023630418541976836552994653048872291365404074774898127438185020892281585925816483984911478493219891003447854135852724195483800151767574905477950240377930468015488070514349646262601282752621940999637749887487305539684039653784776988249217247209199442133724987870048393260071592302203203764643192203866786245222784574448739190034219564065130771593364576977741964883571872334883196297100117038937906408350198439717306184083535748773759693887447629152543505591221077522523792160561872038751040599848338434631441406948567346356556660013217556319622147915841844994504695630024915953705529313014078426911585879336715196053657586731385351256318024458642844300707886659350565818116751965448108139643803529982517007425556965280831669755527697412481333074044307475822173061557203704307894501961363513380207426383644497449883320292574341975490612100017248765248131896297403156304734314058542779598570435329112703189958813030828243291395522270037415956881356858148003690339008136673183563544729607559084767739298008512821678155079514806450485314921412170496137952603921852335569709378627641922417169635885657641038595348348398516922554382405853055045775645907042281421515832910821738628493554695783307748736730987965179664840473678953104712955534642067429746183850038392683999051669481916134490325124343041862653222029566267243921844346937089919175809499294139694102078461121111151397275767739749910593922338186844931477948700373675588169428894145178355363925073038125364701794061579121901916872113426123338491514920898096571472732437891134149894082345928870051651608106880718879949792062062414996835087020233615766395979364633795508849925679867210172824992444151001483825976836967612976953950210615189565689012605630811963811733480464849499885531516374909810321446992644517730199947923801967111337030939786861155683989969271693322424059327427620688225204269208408891322641121217124985533339265077878741707284256140363186012976053288640693927861006502970812168404204401650546216613087690210275980350870776589690574119974224202488433134459029320251868156329744820285601691398655436300584942537664122152662422904376868506710541133728637138659415735886135179216825087255874427867264611847972583314270034237675495222337312679377155486180379752557261166076689725203426243675332456558563421250878008165974886023037704730521209562873671238836425925803077476867112183518209524870965910494908469176622218643594305220013409076798007936987022397223707844425235771258573101891633309839080611245382489627949909257683328768331791668764879958148208789442454112304674760362919657109530121795085222508965074847780946821616117724618034193843304444164327341650587969268609755177961614398888632705371308911656901526676408549644597131960566713225390366537884684516740681956139432894743998574157423400206654298352865325831116055793389087288632229406403584268127333955844085137742473918636559873797114738236778395452072751856835665866782787258060500036022533256484007781355767645140539164104221221205107819106484287456930055139390166812644779273282171817536142262136760823491084382437797004425633461942161854243990311707605265445962072802238887426816044356344423532630034179783909708828818731908067003719436938929507522523493805371735981502526080841322311949618632791808065063426753278032785355934754901356568460281076057995056357678305616327840190514260858282455386423505254579149974473707690512913069717527732089574152623763336264429263850120695799472241814543043477694050675980627522583529520117256507499918580324683438340046549036371011207926413886877227066195464444223953216885473452344991387860709140356315869419595470193226539943430712977557433162385829922075128740976227454281271521084049550248341034204773356475956136280314944448199116132957899099313372483904395640998909664560640300589407070215636041233118598273641165671015877768995409241513504917333056616845640722012437437263395639195345949739631769220594534504153727608691446423846195222370492681959486268683801231244701714730287438489803209575098524012227373464578616856321866576338176969916393909637968082178017643800326695196119690055836219202207316839333387259872461242707745242692570085902897445925374021940281557589334362466911838572114559611371536323171657782268869482770588142653132130494145301733789756598154320853858588163941412436955622906046796795266243759866603814705971937980645696658100358620930508692656059405726390683351912232937278733584391662255112281345239654814165486513360289435646716456065566681290390903359252567489876026425800837037684696172953135455458380268272789287047058991404930126179347010609913612554494208399597450910426935252136614968608440343341848332040217033628372261347755052751923757690059882517588553667638817857054797283257727703352948835967597196943793295011209829622966447980444384958562273689451847610508893561899449187635276369525221801387767922263105119300377425869136208977903095700218579105051064037074497513785489179401789287864904759775580696174543469109826895111452395965792701155454236211625286947512391971786590992093318342981625648360523350293947807688206883399694796087059071544661857670745514358532733944819319560968904788180442227105544796806883958785196716415422974367108443891687002411686389061397134659002514687254167918566987961318505157053392168324864663664457866185084026142041870288835237843871640616021039815543050736167966110166490186245041229877313196919278270015611595756078981374868114917173123344249050756844137556420871456347513813889867907158407310864572261098238201361933743161856283524115936879230870764958527167634657368093325914383007621947517407238485452913097524370670432443470125168886915070734935221263881203954203259059606177786178602849508521612629664642286619988189835950413732734039322718498962634744300271377146066830701389405646524877179092966657201278783211968023379994559543271720523592939805001479024810486320086899580941621799968579668454629943633239846705072722417931522557886373595202867623180224617898523605396751549320694932292711281353478031814641496177537846839375045762274784720323685253759860141410999109887767411573722426892010752276883255125672221797604388892215791380820819561384195594409889246625852435955287961883659224898602352895187459464826915365523587814624272302297535394051554622385366361045032131576907501242635184224253583202972779142321091347484919617445065179213480510498752551779726098853506646334767015016458145750393023819553847196196607760670858572414932116875003822958755196782331548860091237474842480307893791777452802347532357746069389122411306269418193655662998317901069080644367856740061405322952812844073660092356816988154562149202717627483078860284354085588684045215617978445998044420625136084916838462445778024006734192075978397563355866820267938446971339848915096441952090520090797738943774766827679042554933830390970794551556369661715470145131381141215857053149435194426230960559297676586355814404179818049921096136062510613035951075308420574675676974917642166644420452939704772901415293207728727902397260209539957140711864180089190127504651879630260901150760376266068205959670906678891563831530666089275417495413887091916412331046532374339033090240724844464144142702424997653790381581823154919981000890764563679628285772367432220743267868442048971599169749215224104505413788386820430717061021191064649086098048215868515765085279697572063342961850496080012608501905771464483734126577055465215083348477269666649300706213368892576113268304525216698729407783459582072512414861051776824416180640933511900153129368841822058019273498659633551712099554511808277450433880303480539592081961662783624252541756876158160778474264795678264633948665191012436525700903310205601926402773368735493253071838818820489279313365395410433774541583059900909901288710033909493962175093136392742643904387015218222172397810643804575621183850581145183611104238888172288965408071081394568218272049459676917123700263189983999686081436776264049201535611124515673132011044681597665574101367203673621012945029597396325669480276839341410211168914823430887563975855944946225236141422726636717542316835762557212107205522372220498658135343556831296533560634441826554201791072723996558913053713433495164166499049522511553482579526379185751156132375985485432401735889200274043969408021939384891984596669600508013846881802708353061170190142258980223825805059592826410119138511670063545483474946457391253285657930008428259802540798449398374138327882532378430394726887745385418326269618237133810002042347223056854087858319528857060661755678163048437758107949139925421410771997142802650867372259240037953777038180369120316017397668762134206645569123767895605795476816578982283414352700918310629239302962821561075678876407296871155902523193562401922083773681989641863055639016944152136110588018701597603077344310623141308029314340802861290315405476418072926730923660160395198855046568775047208753678099663805383621153786455517340814778730647116673805463144409321601867846393009454171546718962301761703215221035435404277785770962087631905443908266673554763941806661677796911473943387080222280452882273461896958944137622428164544644435199983388654740806437392337880227102671977099570770560216024725252122723869227261826148932420597116805457516966346664337694003638087937253453651344653860051321478147304530267682311166210869830457418816520616021138954551502316734601888297040102320122933930207319846231336686332050302291304185345056537965054830233239097954789146065659038385420050159513757087107557272211554465071094737210241235486032146065390715968776519378639694751194613499679298585599846073957171089327892788288707539146197254633387992343811956611507801648106116398588498588607167923224505168258860547333051805584533985847403218318210330142630813389854256583617182623312794555060560469370357204246030400442322964952021273743918980586322691632262211349727999786858275061925166006896384096444572918766994261189354135239078731604355752288829764492300522351117424154049832591067144081239778431078211163929276324780943859256630935054902944884356735085177038374459781491560757229216985240981029605584034069641199548483614975390660934244889219680787009942446322315610490877892008433025412370315504609398156207425320595535217108346808765342013740330297017634600455732604774797175589734590510329278015876656542482814096959590364387205858995690867691346179192387469721903632478856353531723081299540577703918496095398893885901376688136546479748640167826392979344554501540464828239628857660138160926345223182864385073835408330356103214941799080055071355355339905852075110659385559416351943360200981047274967333432505118941134958424142919707512415790717035114992954076073982490812664160114233058467349648019574440089831773996998895364384677288991803234144156429903522498580916021682123608562566196250914700924793032576030503620203156088457812959098998829970998983474727055541427443156132972550869932339724878243310771480254843515526905734186303792239009460593231351112592925572345180543237427516623727212685856261631917930226837555536020210620360195214027682771241439001276947712519792683244991615191962170645983804373827859682805041915168384643157612147188470352457314615228056566097845115202643140269663513674874088749803794932702974052428030364767418718896701891130210829869016379639584341907912666117380250123038259922968953058635917503782037034106608371788037845320810744569520482695562106756796209401878712884085304315613616427986432438054156493758445140816997459949616130013694725155414351112635118330434567223315286538657742451661021641534246127684345341382720536258566744874613818117426045122560291605607651736831574477183860970570206879444615680923332112915955600521322063959989956746455590917590823387338682800437470141692335802247105244854598592121293132578634041532180774083348356402334144352190276241098057610851111969987984224943231912541360183863892105001454957519292650930895481591064704364559032624408971397937045741181754804501560306494533005282271629554214826124795052781642329648285765573657247165691525798780226062070589625597149488242141174813952530603673213933574762255950398111688067279802230744784669639989746685651407925028820556537759892305865827176510762633990104327567609171973698204264192061966531478789184508684559179188288640552886418208975159205204522757681428608128092591160382194002961573620809892413772867595175484930765781615730296335238333221742501021484851940485176653022637327694404361288913737352476532842074329612247885446041398914814811540158772503794528761751976784012892728852282771814663865117122897879892354046645013414443094442528591033944224470771024105314745946701559555942871551173684588844992692969997349164141809118839228410089774672228012987621108380033814857266380497289938156967717120935478853665914459159176635590896547726332544472411294567403055126783927577181404860570961769381929269966738589203245776886623845654145558354451476845052713811226914298879175117895654148778777343498340306778560438601155131692055776545465954351899385534131057474980126665262221787325488682128463231087458734218446112874749463293412368193908047935222596092200766619198882967066710971541699902001939041096704183896717295239873147578589096159930263709387310992702080925986242502133112511514988256618972770847072270519089724640434695709862405792720561448036321543171904954899220288590069767463357945586496950231378806061311338447594314993794361849025354886148037637158424281081257208045402166773676322554427064529751022747577290445496553122685937814908636202044588432791782144749218405287243365299143524640516893221656402291251193256474281420961070452521053551921774403728573217171228050263846078952762663532413575139651471307883973470273464603565906672673020602630657824687387095686640134482798907236669916460244687849149956707614181401895361827329916187752497357260367022704999303728689360647641705360285775031705522411076003334856967977445781203677574372055608700761780128657046367813986256743881918090822776328894235749279900411870065131958922663171064716670053209518054420097895739096445510847530107134528144163704050851093965848208960442810273130592934837260587057328033735745784027827770594810467687089576376173237738068611921673869862986693969707312593844689025502051995952803806912705265478804486824101008670276333195750921129159319658964718720253162617704312476912537665310294492831216194113755165973584263904283905398566407769446184807419653488222813994478507332902574084422033158286252439817424826216929679684579088816269606062456874302101277107178819001721959799042620396738726374332094887443781544927335364352769064225781387680789823164660706568103699475428978271747218356258753382399368344189031688882037347128048992295040233079568073189628512297358431262140200534219334517525866901054239479495134097219383804866856762206073306535189966362991174602167131112635656853283655066595038392490289159583434273831081915258859553671360101616346981610656977670202021877413413313358386971962814316856161980987386395467151809132524573394788344091810191488153011832010823819089121927128835671168140443333007685088340161787959471459987351574121494001655417227515284785659342198068853999921719061355692821250165098892279589885133379433944498625025720728492086760857265310758273700685582406281724732497556233386756428295281713352904270021626782850654592992715123510238073647899439031975689135803228956518101773064381464098425751983891106364108775687414738874949428644794518363981050449121530793796068777436836998552620611658419730412929364049238443270757712452979587647973126647046044935524439492332813428825580414159596255890291412522871851871642307311442515611470416363815769495659117718993040387087280890968852331377171217436069541683858667675013953501885051478962974729212413323248772656792489195542961789280161019995984642544520554920085731375708796695965434649070473295556545741989163990544364625729631381778824946731158355203614674822158491152556010453491600407688334715099510531315970163567282873684794968641185809347831861750925593074128310948796466791081425506667493288884654800682650424856963315705884095724017764384709433705231324129486264361377192562715576720618836265716277847950031299984224068265648379495708808607820736542001646071102643871472270515917696844311963466550670006007974394878664316111041261898790639554555803134359447895853745726003332541431244988359985574961097213200202327508067346159923706179843410718984431450139341155109261452151322758324007474638109347290675971279940534206151541523518115215428437633906362534131510614859295393208928160778380259391409118763745453194645942927011710397801419525306090487190761059932126123645760549074719040569289159632757737635954566995413453612414018747513901354001066190582832469747795515613959719969430408558794939752246527384210404257371346923559457683034492995752072568328354504137545185380431683509515335534779810258710053951926849070616996818007292765913512725720504869598864915772253323201675195643515510145530157706849411789920860563493858698304429628576297659880997109154568036196493876046750418154376812702960307389061419681271957263484408358250106578284800295702278812905867671902321592569494690050431261219252095880997821147895551706132780401100403309004948311766263815128943492122058091073754858415601971371173680056642048668688872421763538118587611315432192856101126200317163988283594498087431080676572755490522422617407413293691328204019080836655066873754045415467411394829683152281657885156552846303707127087454845120158509659737081256002375119728770834873819867200380450555031634046936580866372468491282430789485387915059563962225898519278696058070227875254106040551763791152860316649730145484085002793799983556433217138730842617723070631372177077661408508169760868804530037449970374873372882918436471047467468082113150576140818163528209416537382230541759681115737539765635608295911578958977318771207822294207847693608837121515009859580067803340946395632798096191048892970340721292004002940377841435596193437992696364105758458283219437376536193368652762666401668387016303596972609600667849983401765958867866471609589694817551693405210516573040179976498175413448229732543545177575411490346496754347703723393111304036244596381903781461581728654415624356085175367022970736618353008128326210569999019298562751253579839624764986396742844940462952749085211804787500290540350333926048524199534506827210234446972607210352132649146984997454429211608240031932777191235144052837671091565139093159127782629044490466733757143176088044743209889105200595791533453383855615384059556596436854208694811287905800024914457208132563903842927018442460788112087325406786490552369836051192107369965988575274551503748181769814242745789469357627733483606084251756575508941019952867817301207085246268177014879836483584408874319366991226651484034429464649441525202036411675381970542355638758243276042218734708113003130695402370689914047634972725459936324354512565973617206195498265388082913642571645919636688113473715567612828454632959184897435845095985663811599723466727012675904548683281099839299892551761270150741362145505728179833245795996012861103922983390872658860729126850651916281133761087487371144861256726877595138488145414733787204057980246886861345074346524754163747955469825564286380852099020191545074792160413989794301159556076865647248627010776296349239766549303976853953821363740350395908692808113571282764078763703739523787540869768141851097359963420185966386993223491899505548665210848451898606802432710660398483862327886982688998635204317704170290600015766016952778549892022675652769418556620253080241518222907402351233508197313199363923662606958372018523917205177564062749242990766060697238757728295704873096024521740839606403969383480231542831442308604197372360751390459594900071679443984392249908947250958254282664522266805298104268360409037398406125065119584847862679585409513122974427211798816132260975076195218193313619641368576